From 903397953926138fa33fe64c404302a9b7deaf6f Mon Sep 17 00:00:00 2001 From: StackRyan Date: Wed, 4 Aug 2021 14:42:16 +0800 Subject: [PATCH] [bsp]add mindmotion MM32F103xx BSP. --- bsp/mm32f103x/.config | 634 ++ bsp/mm32f103x/.ignore_format.yml | 5 + bsp/mm32f103x/Kconfig | 26 + .../CMSIS/IAR_CORE/arm_common_tables.h | 136 + .../CMSIS/IAR_CORE/arm_const_structs.h | 79 + .../Libraries/CMSIS/IAR_CORE/arm_math.h | 7435 +++++++++++++++++ .../Libraries/CMSIS/IAR_CORE/core_cm0.h | 704 ++ .../Libraries/CMSIS/IAR_CORE/core_cm0plus.h | 814 ++ .../Libraries/CMSIS/IAR_CORE/core_cm3.h | 1638 ++++ .../Libraries/CMSIS/IAR_CORE/core_cm4.h | 1789 ++++ .../Libraries/CMSIS/IAR_CORE/core_cm7.h | 2208 +++++ .../Libraries/CMSIS/IAR_CORE/core_cmFunc.h | 637 ++ .../Libraries/CMSIS/IAR_CORE/core_cmInstr.h | 880 ++ .../Libraries/CMSIS/IAR_CORE/core_cmSimd.h | 697 ++ .../Libraries/CMSIS/IAR_CORE/core_sc000.h | 833 ++ .../Libraries/CMSIS/IAR_CORE/core_sc300.h | 1618 ++++ .../CMSIS/KEIL_CORE/arm_common_tables.h | 93 + .../CMSIS/KEIL_CORE/arm_const_structs.h | 85 + .../Libraries/CMSIS/KEIL_CORE/arm_math.h | 7207 ++++++++++++++++ .../Libraries/CMSIS/KEIL_CORE/core_cm0.h | 660 ++ .../Libraries/CMSIS/KEIL_CORE/core_cm0plus.h | 785 ++ .../Libraries/CMSIS/KEIL_CORE/core_cm3.h | 1615 ++++ .../Libraries/CMSIS/KEIL_CORE/core_cm4.h | 1759 ++++ .../Libraries/CMSIS/KEIL_CORE/core_cm4_simd.h | 673 ++ .../Libraries/CMSIS/KEIL_CORE/core_cmFunc.h | 637 ++ .../Libraries/CMSIS/KEIL_CORE/core_cmInstr.h | 880 ++ .../Libraries/CMSIS/KEIL_CORE/core_sc000.h | 804 ++ .../Libraries/CMSIS/KEIL_CORE/core_sc300.h | 1586 ++++ .../Libraries/MM32F103/HAL_lib/inc/HAL_adc.h | 412 + .../Libraries/MM32F103/HAL_lib/inc/HAL_bkp.h | 186 + .../Libraries/MM32F103/HAL_lib/inc/HAL_can.h | 392 + .../Libraries/MM32F103/HAL_lib/inc/HAL_conf.h | 48 + .../Libraries/MM32F103/HAL_lib/inc/HAL_crc.h | 85 + .../Libraries/MM32F103/HAL_lib/inc/HAL_dma.h | 354 + .../Libraries/MM32F103/HAL_lib/inc/HAL_exti.h | 170 + .../MM32F103/HAL_lib/inc/HAL_flash.h | 307 + .../Libraries/MM32F103/HAL_lib/inc/HAL_gpio.h | 325 + .../Libraries/MM32F103/HAL_lib/inc/HAL_i2c.h | 333 + .../Libraries/MM32F103/HAL_lib/inc/HAL_iwdg.h | 131 + .../Libraries/MM32F103/HAL_lib/inc/HAL_misc.h | 166 + .../Libraries/MM32F103/HAL_lib/inc/HAL_pwr.h | 155 + .../Libraries/MM32F103/HAL_lib/inc/HAL_rcc.h | 425 + .../Libraries/MM32F103/HAL_lib/inc/HAL_rtc.h | 135 + .../Libraries/MM32F103/HAL_lib/inc/HAL_spi.h | 418 + .../Libraries/MM32F103/HAL_lib/inc/HAL_tim.h | 1036 +++ .../Libraries/MM32F103/HAL_lib/inc/HAL_uart.h | 247 + .../Libraries/MM32F103/HAL_lib/inc/HAL_wwdg.h | 106 + .../Libraries/MM32F103/HAL_lib/src/HAL_adc.c | 785 ++ .../Libraries/MM32F103/HAL_lib/src/HAL_bkp.c | 300 + .../Libraries/MM32F103/HAL_lib/src/HAL_can.c | 971 +++ .../Libraries/MM32F103/HAL_lib/src/HAL_crc.c | 164 + .../Libraries/MM32F103/HAL_lib/src/HAL_dma.c | 545 ++ .../Libraries/MM32F103/HAL_lib/src/HAL_exti.c | 262 + .../MM32F103/HAL_lib/src/HAL_flash.c | 930 +++ .../Libraries/MM32F103/HAL_lib/src/HAL_gpio.c | 574 ++ .../Libraries/MM32F103/HAL_lib/src/HAL_i2c.c | 818 ++ .../Libraries/MM32F103/HAL_lib/src/HAL_iwdg.c | 194 + .../Libraries/MM32F103/HAL_lib/src/HAL_misc.c | 217 + .../Libraries/MM32F103/HAL_lib/src/HAL_pwr.c | 346 + .../Libraries/MM32F103/HAL_lib/src/HAL_rcc.c | 1149 +++ .../Libraries/MM32F103/HAL_lib/src/HAL_rtc.c | 339 + .../Libraries/MM32F103/HAL_lib/src/HAL_spi.c | 693 ++ .../Libraries/MM32F103/HAL_lib/src/HAL_tim.c | 2838 +++++++ .../Libraries/MM32F103/HAL_lib/src/HAL_uart.c | 463 + .../Libraries/MM32F103/HAL_lib/src/HAL_wwdg.c | 221 + .../Libraries/MM32F103/Include/HAL_device.h | 37 + .../Libraries/MM32F103/Include/MM32F103.h | 4404 ++++++++++ .../MM32F103/Include/SYSTEM_MM32F103.h | 41 + .../Source/IAR_StartAsm/startup_MM32F103.s | 333 + .../Source/KEIL_StartAsm/startup_MM32F103.s | 299 + .../MM32F103/Source/system_MM32F103.c | 965 +++ bsp/mm32f103x/Libraries/SConscript | 16 + bsp/mm32f103x/README.md | 112 + bsp/mm32f103x/SConscript | 11 + bsp/mm32f103x/SConstruct | 40 + bsp/mm32f103x/applications/SConscript | 9 + bsp/mm32f103x/drivers/Kconfig | 23 + bsp/mm32f103x/drivers/SConscript | 24 + bsp/mm32f103x/drivers/board.c | 59 + bsp/mm32f103x/drivers/board.h | 32 + bsp/mm32f103x/drivers/drv_gpio.c | 544 ++ bsp/mm32f103x/drivers/drv_gpio.h | 15 + bsp/mm32f103x/drivers/drv_uart.c | 248 + bsp/mm32f103x/drivers/drv_uart.h | 16 + bsp/mm32f103x/drivers/linker_scripts/link.icf | 34 + bsp/mm32f103x/drivers/linker_scripts/link.lds | 137 + bsp/mm32f103x/drivers/linker_scripts/link.sct | 15 + .../figures/MM32 MiniBoard Rev.D2_1.jpg | Bin 0 -> 1945862 bytes .../figures/MM32 MiniBoard Rev.D2_2.jpg | Bin 0 -> 2271880 bytes bsp/mm32f103x/project.ewd | 2966 +++++++ bsp/mm32f103x/project.ewp | 2334 ++++++ bsp/mm32f103x/project.eww | 10 + bsp/mm32f103x/rtconfig.h | 186 + bsp/mm32f103x/rtconfig.py | 135 + bsp/mm32f103x/template.ewp | 2106 +++++ bsp/mm32f103x/template.eww | 10 + bsp/mm32f103x/template.uvopt | 184 + bsp/mm32f103x/template.uvoptx | 182 + bsp/mm32f103x/template.uvprojx | 406 + 99 files changed, 70090 insertions(+) create mode 100644 bsp/mm32f103x/.config create mode 100644 bsp/mm32f103x/.ignore_format.yml create mode 100644 bsp/mm32f103x/Kconfig create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_common_tables.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_const_structs.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_math.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0plus.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm3.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm4.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm7.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmFunc.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmInstr.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmSimd.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc000.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc300.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_common_tables.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_const_structs.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_math.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0plus.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm3.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4_simd.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmFunc.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmInstr.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc000.h create mode 100644 bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc300.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_adc.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_bkp.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_can.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_conf.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_crc.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_dma.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_exti.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_flash.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_gpio.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_i2c.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_iwdg.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_misc.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_pwr.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rcc.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rtc.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_spi.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_tim.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_uart.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_wwdg.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_adc.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_bkp.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_can.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_crc.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_dma.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_exti.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_flash.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_gpio.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_i2c.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_iwdg.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_misc.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_pwr.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rcc.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rtc.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_spi.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_tim.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_uart.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_wwdg.c create mode 100644 bsp/mm32f103x/Libraries/MM32F103/Include/HAL_device.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/Include/MM32F103.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/Include/SYSTEM_MM32F103.h create mode 100644 bsp/mm32f103x/Libraries/MM32F103/Source/IAR_StartAsm/startup_MM32F103.s create mode 100644 bsp/mm32f103x/Libraries/MM32F103/Source/KEIL_StartAsm/startup_MM32F103.s create mode 100644 bsp/mm32f103x/Libraries/MM32F103/Source/system_MM32F103.c create mode 100644 bsp/mm32f103x/Libraries/SConscript create mode 100644 bsp/mm32f103x/README.md create mode 100644 bsp/mm32f103x/SConscript create mode 100644 bsp/mm32f103x/SConstruct create mode 100644 bsp/mm32f103x/applications/SConscript create mode 100644 bsp/mm32f103x/drivers/Kconfig create mode 100644 bsp/mm32f103x/drivers/SConscript create mode 100644 bsp/mm32f103x/drivers/board.c create mode 100644 bsp/mm32f103x/drivers/board.h create mode 100644 bsp/mm32f103x/drivers/drv_gpio.c create mode 100644 bsp/mm32f103x/drivers/drv_gpio.h create mode 100644 bsp/mm32f103x/drivers/drv_uart.c create mode 100644 bsp/mm32f103x/drivers/drv_uart.h create mode 100644 bsp/mm32f103x/drivers/linker_scripts/link.icf create mode 100644 bsp/mm32f103x/drivers/linker_scripts/link.lds create mode 100644 bsp/mm32f103x/drivers/linker_scripts/link.sct create mode 100644 bsp/mm32f103x/figures/MM32 MiniBoard Rev.D2_1.jpg create mode 100644 bsp/mm32f103x/figures/MM32 MiniBoard Rev.D2_2.jpg create mode 100644 bsp/mm32f103x/project.ewd create mode 100644 bsp/mm32f103x/project.ewp create mode 100644 bsp/mm32f103x/project.eww create mode 100644 bsp/mm32f103x/rtconfig.h create mode 100644 bsp/mm32f103x/rtconfig.py create mode 100644 bsp/mm32f103x/template.ewp create mode 100644 bsp/mm32f103x/template.eww create mode 100644 bsp/mm32f103x/template.uvopt create mode 100644 bsp/mm32f103x/template.uvoptx create mode 100644 bsp/mm32f103x/template.uvprojx diff --git a/bsp/mm32f103x/.config b/bsp/mm32f103x/.config new file mode 100644 index 000000000..42d5c5461 --- /dev/null +++ b/bsp/mm32f103x/.config @@ -0,0 +1,634 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=100 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +# CONFIG_RT_USING_TIMER_SOFT is not set + +# +# kservice optimization +# +# CONFIG_RT_KSERVICE_USING_STDLIB is not set +# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set +# CONFIG_RT_USING_ASM_MEMCPY is not set +CONFIG_RT_DEBUG=y +CONFIG_RT_DEBUG_COLOR=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +CONFIG_RT_USING_MEMHEAP=y +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +# CONFIG_RT_PRINTF_LONGLONG is not set +CONFIG_RT_VER_NUM=0x40004 +# CONFIG_RT_USING_CPU_FFS is not set +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=1024 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_RT_USING_MSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=1024 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_USING_SERIAL_V1=y +# CONFIG_RT_USING_SERIAL_V2 is not set +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set +CONFIG_RT_LIBC_USING_TIME=y +CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_RT_LINK is not set + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set +# CONFIG_PKG_USING_ZB_COORDINATOR is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ULOG_FILE is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set + +# +# system packages +# + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_WCWIDTH is not set +# CONFIG_PKG_USING_MCUBOOT is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_BLUETRUM_SDK is not set + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set + +# +# miscellaneous packages +# + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_MINIZIP is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_TERMBOX is not set + +# +# Privated Packages of RealThread +# +# CONFIG_PKG_USING_CODEC is not set +# CONFIG_PKG_USING_PLAYER is not set +# CONFIG_PKG_USING_MPLAYER is not set +# CONFIG_PKG_USING_PERSIMMON_SRC is not set +# CONFIG_PKG_USING_JS_PERSIMMON is not set +# CONFIG_PKG_USING_JERRYSCRIPT_WIN32 is not set + +# +# Network Utilities +# +# CONFIG_PKG_USING_WICED is not set +# CONFIG_PKG_USING_CLOUDSDK is not set +# CONFIG_PKG_USING_POWER_MANAGER is not set +# CONFIG_PKG_USING_RT_OTA is not set +# CONFIG_PKG_USING_RTINSIGHT is not set +# CONFIG_PKG_USING_SMARTCONFIG is not set +# CONFIG_PKG_USING_RTX is not set +# CONFIG_RT_USING_TESTCASE is not set +# CONFIG_PKG_USING_NGHTTP2 is not set +# CONFIG_PKG_USING_AVS is not set +# CONFIG_PKG_USING_ALI_LINKKIT is not set +# CONFIG_PKG_USING_STS is not set +# CONFIG_PKG_USING_DLMS is not set +# CONFIG_PKG_USING_AUDIO_FRAMEWORK is not set +# CONFIG_PKG_USING_ZBAR is not set +# CONFIG_PKG_USING_MCF is not set +# CONFIG_PKG_USING_URPC is not set +# CONFIG_PKG_USING_DCM is not set +# CONFIG_PKG_USING_EMQ is not set +# CONFIG_PKG_USING_CFGM is not set +# CONFIG_PKG_USING_RT_CMSIS_DAP is not set +# CONFIG_PKG_USING_SMODULE is not set +# CONFIG_PKG_USING_SNFD is not set +# CONFIG_PKG_USING_UDBD is not set +# CONFIG_PKG_USING_BENCHMARK is not set +# CONFIG_PKG_USING_UBJSON is not set +# CONFIG_PKG_USING_DATATYPE is not set +# CONFIG_PKG_USING_FASTFS is not set +# CONFIG_PKG_USING_RIL is not set +# CONFIG_PKG_USING_WATCH_DCM_SVC is not set +# CONFIG_PKG_USING_WATCH_APP_FWK is not set +# CONFIG_PKG_USING_GUI_TEST is not set +# CONFIG_PKG_USING_PMEM is not set +# CONFIG_PKG_USING_LWRDP is not set + +# +# Hardware Drivers Config +# + +# +# On-chip Peripheral Drivers +# + +# +# GPIO Drivers +# +CONFIG_BSP_USING_GPIO=y + +# +# UART Drivers +# +CONFIG_BSP_USING_UART1=y +# CONFIG_BSP_USING_UART2 is not set +CONFIG_SOC_MM32L373=y diff --git a/bsp/mm32f103x/.ignore_format.yml b/bsp/mm32f103x/.ignore_format.yml new file mode 100644 index 000000000..60981f7d8 --- /dev/null +++ b/bsp/mm32f103x/.ignore_format.yml @@ -0,0 +1,5 @@ + +file_path: + +dir_path: +- Libraries diff --git a/bsp/mm32f103x/Kconfig b/bsp/mm32f103x/Kconfig new file mode 100644 index 000000000..b6f921f99 --- /dev/null +++ b/bsp/mm32f103x/Kconfig @@ -0,0 +1,26 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "drivers/Kconfig" + +config SOC_MM32L373 + bool + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_common_tables.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_common_tables.h new file mode 100644 index 000000000..31e6005c3 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_common_tables.h @@ -0,0 +1,136 @@ +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2014 ARM Limited. All rights reserved. +* +* $Date: 31. July 2014 +* $Revision: V1.4.4 +* +* Project: CMSIS DSP Library +* Title: arm_common_tables.h +* +* Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions +* +* Target Processor: Cortex-M4/Cortex-M3 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* -------------------------------------------------------------------- */ + +#ifndef _ARM_COMMON_TABLES_H +#define _ARM_COMMON_TABLES_H + +#include "arm_math.h" + +extern const uint16_t armBitRevTable[1024]; +extern const q15_t armRecipTableQ15[64]; +extern const q31_t armRecipTableQ31[64]; +//extern const q31_t realCoefAQ31[1024]; +//extern const q31_t realCoefBQ31[1024]; +extern const float32_t twiddleCoef_16[32]; +extern const float32_t twiddleCoef_32[64]; +extern const float32_t twiddleCoef_64[128]; +extern const float32_t twiddleCoef_128[256]; +extern const float32_t twiddleCoef_256[512]; +extern const float32_t twiddleCoef_512[1024]; +extern const float32_t twiddleCoef_1024[2048]; +extern const float32_t twiddleCoef_2048[4096]; +extern const float32_t twiddleCoef_4096[8192]; +#define twiddleCoef twiddleCoef_4096 +extern const q31_t twiddleCoef_16_q31[24]; +extern const q31_t twiddleCoef_32_q31[48]; +extern const q31_t twiddleCoef_64_q31[96]; +extern const q31_t twiddleCoef_128_q31[192]; +extern const q31_t twiddleCoef_256_q31[384]; +extern const q31_t twiddleCoef_512_q31[768]; +extern const q31_t twiddleCoef_1024_q31[1536]; +extern const q31_t twiddleCoef_2048_q31[3072]; +extern const q31_t twiddleCoef_4096_q31[6144]; +extern const q15_t twiddleCoef_16_q15[24]; +extern const q15_t twiddleCoef_32_q15[48]; +extern const q15_t twiddleCoef_64_q15[96]; +extern const q15_t twiddleCoef_128_q15[192]; +extern const q15_t twiddleCoef_256_q15[384]; +extern const q15_t twiddleCoef_512_q15[768]; +extern const q15_t twiddleCoef_1024_q15[1536]; +extern const q15_t twiddleCoef_2048_q15[3072]; +extern const q15_t twiddleCoef_4096_q15[6144]; +extern const float32_t twiddleCoef_rfft_32[32]; +extern const float32_t twiddleCoef_rfft_64[64]; +extern const float32_t twiddleCoef_rfft_128[128]; +extern const float32_t twiddleCoef_rfft_256[256]; +extern const float32_t twiddleCoef_rfft_512[512]; +extern const float32_t twiddleCoef_rfft_1024[1024]; +extern const float32_t twiddleCoef_rfft_2048[2048]; +extern const float32_t twiddleCoef_rfft_4096[4096]; + + +/* floating-point bit reversal tables */ +#define ARMBITREVINDEXTABLE__16_TABLE_LENGTH ((uint16_t)20 ) +#define ARMBITREVINDEXTABLE__32_TABLE_LENGTH ((uint16_t)48 ) +#define ARMBITREVINDEXTABLE__64_TABLE_LENGTH ((uint16_t)56 ) +#define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208 ) +#define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440 ) +#define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448 ) +#define ARMBITREVINDEXTABLE1024_TABLE_LENGTH ((uint16_t)1800) +#define ARMBITREVINDEXTABLE2048_TABLE_LENGTH ((uint16_t)3808) +#define ARMBITREVINDEXTABLE4096_TABLE_LENGTH ((uint16_t)4032) + +extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE__16_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE__32_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE__64_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE1024_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE2048_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE4096_TABLE_LENGTH]; + +/* fixed-point bit reversal tables */ +#define ARMBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH ((uint16_t)12 ) +#define ARMBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH ((uint16_t)24 ) +#define ARMBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH ((uint16_t)56 ) +#define ARMBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH ((uint16_t)112 ) +#define ARMBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH ((uint16_t)240 ) +#define ARMBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH ((uint16_t)480 ) +#define ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992 ) +#define ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984) +#define ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032) + +extern const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH]; + +/* Tables for Fast Math Sine and Cosine */ +extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1]; +extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1]; +extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1]; + +#endif /* ARM_COMMON_TABLES_H */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_const_structs.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_const_structs.h new file mode 100644 index 000000000..2033c5e37 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_const_structs.h @@ -0,0 +1,79 @@ +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2014 ARM Limited. All rights reserved. +* +* $Date: 31. July 2014 +* $Revision: V1.4.4 +* +* Project: CMSIS DSP Library +* Title: arm_const_structs.h +* +* Description: This file has constant structs that are initialized for +* user convenience. For example, some can be given as +* arguments to the arm_cfft_f32() function. +* +* Target Processor: Cortex-M4/Cortex-M3 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* -------------------------------------------------------------------- */ + +#ifndef _ARM_CONST_STRUCTS_H +#define _ARM_CONST_STRUCTS_H + +#include "arm_math.h" +#include "arm_common_tables.h" + +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len16; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len32; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len64; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len128; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len256; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len512; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048; +extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096; + +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len16; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len32; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len64; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len128; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len256; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len512; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048; +extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096; + +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len16; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len32; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len64; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len128; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len256; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len512; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048; +extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096; + +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_math.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_math.h new file mode 100644 index 000000000..1fb2c2580 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/arm_math.h @@ -0,0 +1,7435 @@ +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2014 ARM Limited. All rights reserved. +* +* $Date: 12. March 2014 +* $Revision: V1.4.4 +* +* Project: CMSIS DSP Library +* Title: arm_math.h +* +* Description: Public header file for CMSIS DSP Library +* +* Target Processor: Cortex-M7/Cortex-M4/Cortex-M3/Cortex-M0 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. + * -------------------------------------------------------------------- */ + +/** + \mainpage CMSIS DSP Software Library + * + * Introduction + * ------------ + * + * This user manual describes the CMSIS DSP software library, + * a suite of common signal processing functions for use on Cortex-M processor based devices. + * + * The library is divided into a number of functions each covering a specific category: + * - Basic math functions + * - Fast math functions + * - Complex math functions + * - Filters + * - Matrix functions + * - Transforms + * - Motor control functions + * - Statistical functions + * - Support functions + * - Interpolation functions + * + * The library has separate functions for operating on 8-bit integers, 16-bit integers, + * 32-bit integer and 32-bit floating-point values. + * + * Using the Library + * ------------ + * + * The library installer contains prebuilt versions of the libraries in the Lib folder. + * - arm_cortexM4lf_math.lib (Little endian and Floating Point Unit on Cortex-M4) + * - arm_cortexM4bf_math.lib (Big endian and Floating Point Unit on Cortex-M4) + * - arm_cortexM4l_math.lib (Little endian on Cortex-M4) + * - arm_cortexM4b_math.lib (Big endian on Cortex-M4) + * - arm_cortexM3l_math.lib (Little endian on Cortex-M3) + * - arm_cortexM3b_math.lib (Big endian on Cortex-M3) + * - arm_cortexM0l_math.lib (Little endian on Cortex-M0) + * - arm_cortexM0b_math.lib (Big endian on Cortex-M3) + * + * The library functions are declared in the public file arm_math.h which is placed in the Include folder. + * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single + * public header file arm_math.h for Cortex-M4/M3/M0 with little endian and big endian. Same header file will be used for floating point unit(FPU) variants. + * Define the appropriate pre processor MACRO ARM_MATH_CM4 or ARM_MATH_CM3 or + * ARM_MATH_CM0 or ARM_MATH_CM0PLUS depending on the target processor in the application. + * + * Examples + * -------- + * + * The library ships with a number of examples which demonstrate how to use the library functions. + * + * Toolchain Support + * ------------ + * + * The library has been developed and tested with MDK-ARM version 4.60. + * The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly. + * + * Building the Library + * ------------ + * + * The library installer contains a project file to re build libraries on MDK-ARM Tool chain in the CMSIS\\DSP_Lib\\Source\\ARM folder. + * - arm_cortexM_math.uvproj + * + * + * The libraries can be built by opening the arm_cortexM_math.uvproj project in MDK-ARM, selecting a specific target, and defining the optional pre processor MACROs detailed above. + * + * Pre-processor Macros + * ------------ + * + * Each library project have differant pre-processor macros. + * + * - UNALIGNED_SUPPORT_DISABLE: + * + * Define macro UNALIGNED_SUPPORT_DISABLE, If the silicon does not support unaligned memory access + * + * - ARM_MATH_BIG_ENDIAN: + * + * Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets. + * + * - ARM_MATH_MATRIX_CHECK: + * + * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices + * + * - ARM_MATH_ROUNDING: + * + * Define macro ARM_MATH_ROUNDING for rounding on support functions + * + * - ARM_MATH_CMx: + * + * Define macro ARM_MATH_CM4 for building the library on Cortex-M4 target, ARM_MATH_CM3 for building library on Cortex-M3 target + * and ARM_MATH_CM0 for building library on cortex-M0 target, ARM_MATH_CM0PLUS for building library on cortex-M0+ target. + * + * - __FPU_PRESENT: + * + * Initialize macro __FPU_PRESENT = 1 when building on FPU supported Targets. Enable this macro for M4bf and M4lf libraries + * + *
+ * CMSIS-DSP in ARM::CMSIS Pack + * ----------------------------- + * + * The following files relevant to CMSIS-DSP are present in the ARM::CMSIS Pack directories: + * |File/Folder |Content | + * |------------------------------|------------------------------------------------------------------------| + * |\b CMSIS\\Documentation\\DSP | This documentation | + * |\b CMSIS\\DSP_Lib | Software license agreement (license.txt) | + * |\b CMSIS\\DSP_Lib\\Examples | Example projects demonstrating the usage of the library functions | + * |\b CMSIS\\DSP_Lib\\Source | Source files for rebuilding the library | + * + *
+ * Revision History of CMSIS-DSP + * ------------ + * Please refer to \ref ChangeLog_pg. + * + * Copyright Notice + * ------------ + * + * Copyright (C) 2010-2014 ARM Limited. All rights reserved. + */ + + +/** + * @defgroup groupMath Basic Math Functions + */ + +/** + * @defgroup groupFastMath Fast Math Functions + * This set of functions provides a fast approximation to sine, cosine, and square root. + * As compared to most of the other functions in the CMSIS math library, the fast math functions + * operate on individual values and not arrays. + * There are separate functions for Q15, Q31, and floating-point data. + * + */ + +/** + * @defgroup groupCmplxMath Complex Math Functions + * This set of functions operates on complex data vectors. + * The data in the complex arrays is stored in an interleaved fashion + * (real, imag, real, imag, ...). + * In the API functions, the number of samples in a complex array refers + * to the number of complex values; the array contains twice this number of + * real values. + */ + +/** + * @defgroup groupFilters Filtering Functions + */ + +/** + * @defgroup groupMatrix Matrix Functions + * + * This set of functions provides basic matrix math operations. + * The functions operate on matrix data structures. For example, + * the type + * definition for the floating-point matrix structure is shown + * below: + *
+ *     typedef struct
+ *     {
+ *       uint16_t numRows;     // number of rows of the matrix.
+ *       uint16_t numCols;     // number of columns of the matrix.
+ *       float32_t *pData;     // points to the data of the matrix.
+ *     } arm_matrix_instance_f32;
+ * 
+ * There are similar definitions for Q15 and Q31 data types. + * + * The structure specifies the size of the matrix and then points to + * an array of data. The array is of size numRows X numCols + * and the values are arranged in row order. That is, the + * matrix element (i, j) is stored at: + *
+ *     pData[i*numCols + j]
+ * 
+ * + * \par Init Functions + * There is an associated initialization function for each type of matrix + * data structure. + * The initialization function sets the values of the internal structure fields. + * Refer to the function arm_mat_init_f32(), arm_mat_init_q31() + * and arm_mat_init_q15() for floating-point, Q31 and Q15 types, respectively. + * + * \par + * Use of the initialization function is optional. However, if initialization function is used + * then the instance structure cannot be placed into a const data section. + * To place the instance structure in a const data + * section, manually initialize the data structure. For example: + *
+ * arm_matrix_instance_f32 S = {nRows, nColumns, pData};
+ * arm_matrix_instance_q31 S = {nRows, nColumns, pData};
+ * arm_matrix_instance_q15 S = {nRows, nColumns, pData};
+ * 
+ * where nRows specifies the number of rows, nColumns + * specifies the number of columns, and pData points to the + * data array. + * + * \par Size Checking + * By default all of the matrix functions perform size checking on the input and + * output matrices. For example, the matrix addition function verifies that the + * two input matrices and the output matrix all have the same number of rows and + * columns. If the size check fails the functions return: + *
+ *     ARM_MATH_SIZE_MISMATCH
+ * 
+ * Otherwise the functions return + *
+ *     ARM_MATH_SUCCESS
+ * 
+ * There is some overhead associated with this matrix size checking. + * The matrix size checking is enabled via the \#define + *
+ *     ARM_MATH_MATRIX_CHECK
+ * 
+ * within the library project settings. By default this macro is defined + * and size checking is enabled. By changing the project settings and + * undefining this macro size checking is eliminated and the functions + * run a bit faster. With size checking disabled the functions always + * return ARM_MATH_SUCCESS. + */ + +/** + * @defgroup groupTransforms Transform Functions + */ + +/** + * @defgroup groupController Controller Functions + */ + +/** + * @defgroup groupStats Statistics Functions + */ +/** + * @defgroup groupSupport Support Functions + */ + +/** + * @defgroup groupInterpolation Interpolation Functions + * These functions perform 1- and 2-dimensional interpolation of data. + * Linear interpolation is used for 1-dimensional data and + * bilinear interpolation is used for 2-dimensional data. + */ + +/** + * @defgroup groupExamples Examples + */ +#ifndef _ARM_MATH_H +#define _ARM_MATH_H + +#define __CMSIS_GENERIC /* disable NVIC and Systick functions */ + +#if defined(ARM_MATH_CM7) +#include "core_cm7.h" +#elif defined (ARM_MATH_CM4) +#include "core_cm4.h" +#elif defined (ARM_MATH_CM3) +#include "core_cm3.h" +#elif defined (ARM_MATH_CM0) +#include "core_cm0.h" +#define ARM_MATH_CM0_FAMILY +#elif defined (ARM_MATH_CM0PLUS) +#include "core_cm0plus.h" +#define ARM_MATH_CM0_FAMILY +#else +#include "ARMCM4.h" +#warning "Define either ARM_MATH_CM4 OR ARM_MATH_CM3...By Default building on ARM_MATH_CM4....." +#endif + +#undef __CMSIS_GENERIC /* enable NVIC and Systick functions */ +#include "string.h" +#include "math.h" +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Macros required for reciprocal calculation in Normalized LMS + */ + +#define DELTA_Q31 (0x100) +#define DELTA_Q15 0x5 +#define INDEX_MASK 0x0000003F +#ifndef PI +#define PI 3.14159265358979f +#endif + +/** + * @brief Macros required for SINE and COSINE Fast math approximations + */ + +#define FAST_MATH_TABLE_SIZE 512 +#define FAST_MATH_Q31_SHIFT (32 - 10) +#define FAST_MATH_Q15_SHIFT (16 - 10) +#define CONTROLLER_Q31_SHIFT (32 - 9) +#define TABLE_SIZE 256 +#define TABLE_SPACING_Q31 0x400000 +#define TABLE_SPACING_Q15 0x80 + +/** + * @brief Macros required for SINE and COSINE Controller functions + */ +/* 1.31(q31) Fixed value of 2/360 */ +/* -1 to +1 is divided into 360 values so total spacing is (2/360) */ +#define INPUT_SPACING 0xB60B61 + +/** + * @brief Macro for Unaligned Support + */ +#ifndef UNALIGNED_SUPPORT_DISABLE +#define ALIGN4 +#else +#if defined (__GNUC__) +#define ALIGN4 __attribute__((aligned(4))) +#else +#define ALIGN4 __align(4) +#endif +#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ + +/** + * @brief Error status returned by some functions in the library. + */ + +typedef enum { + ARM_MATH_SUCCESS = 0, /**< No error */ + ARM_MATH_ARGUMENT_ERROR = -1, /**< One or more arguments are incorrect */ + ARM_MATH_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */ + ARM_MATH_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation. */ + ARM_MATH_NANINF = -4, /**< Not-a-number (NaN) or infinity is generated */ + ARM_MATH_SINGULAR = -5, /**< Generated by matrix inversion if the input matrix is singular and cannot be inverted. */ + ARM_MATH_TEST_FAILURE = -6 /**< Test Failed */ +} arm_status; + +/** + * @brief 8-bit fractional data type in 1.7 format. + */ +typedef int8_t q7_t; + +/** + * @brief 16-bit fractional data type in 1.15 format. + */ +typedef int16_t q15_t; + +/** + * @brief 32-bit fractional data type in 1.31 format. + */ +typedef int32_t q31_t; + +/** + * @brief 64-bit fractional data type in 1.63 format. + */ +typedef int64_t q63_t; + +/** + * @brief 32-bit floating-point type definition. + */ +typedef float float32_t; + +/** + * @brief 64-bit floating-point type definition. + */ +typedef double float64_t; + +/** + * @brief definition to read/write two 16 bit values. + */ +#if defined __CC_ARM +#define __SIMD32_TYPE int32_t __packed +#define CMSIS_UNUSED __attribute__((unused)) +#elif defined __ICCARM__ +#define CMSIS_UNUSED +#define __SIMD32_TYPE int32_t __packed +#elif defined __GNUC__ +#define __SIMD32_TYPE int32_t +#define CMSIS_UNUSED __attribute__((unused)) +#elif defined __CSMC__ /* Cosmic */ +#define CMSIS_UNUSED +#define __SIMD32_TYPE int32_t +#else +#error Unknown compiler +#endif + +#define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr)) +#define __SIMD32_CONST(addr) ((__SIMD32_TYPE *)(addr)) + +#define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE *) (addr)) + +#define __SIMD64(addr) (*(int64_t **) & (addr)) + +#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) +/** + * @brief definition to pack two 16 bit values. + */ +#define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \ + (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) ) +#define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \ + (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) ) + +#endif + + +/** +* @brief definition to pack four 8 bit values. +*/ +#ifndef ARM_MATH_BIG_ENDIAN + +#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \ + (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \ + (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \ + (((int32_t)(v3) << 24) & (int32_t)0xFF000000) ) +#else + +#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \ + (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \ + (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \ + (((int32_t)(v0) << 24) & (int32_t)0xFF000000) ) + +#endif + + +/** + * @brief Clips Q63 to Q31 values. + */ +static __INLINE q31_t clip_q63_to_q31( + q63_t x) +{ + return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? + ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x; +} + +/** + * @brief Clips Q63 to Q15 values. + */ +static __INLINE q15_t clip_q63_to_q15( + q63_t x) +{ + return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? + ((0x7FFF ^ ((q15_t) (x >> 63)))) : (q15_t) (x >> 15); +} + +/** + * @brief Clips Q31 to Q7 values. + */ +static __INLINE q7_t clip_q31_to_q7( + q31_t x) +{ + return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ? + ((0x7F ^ ((q7_t) (x >> 31)))) : (q7_t) x; +} + +/** + * @brief Clips Q31 to Q15 values. + */ +static __INLINE q15_t clip_q31_to_q15( + q31_t x) +{ + return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ? + ((0x7FFF ^ ((q15_t) (x >> 31)))) : (q15_t) x; +} + +/** + * @brief Multiplies 32 X 64 and returns 32 bit result in 2.30 format. + */ + +static __INLINE q63_t mult32x64( + q63_t x, + q31_t y) +{ + return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) + + (((q63_t) (x >> 32) * y))); +} + + +#if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM ) +#define __CLZ __clz +#endif + +#if defined (ARM_MATH_CM0_FAMILY) && ((defined (__ICCARM__)) ||(defined (__GNUC__)) || defined (__TASKING__) ) + +static __INLINE uint32_t __CLZ( + q31_t data); + + +static __INLINE uint32_t __CLZ( + q31_t data) +{ + uint32_t count = 0; + uint32_t mask = 0x80000000; + + while((data & mask) == 0) { + count += 1u; + mask = mask >> 1u; + } + + return (count); + +} + +#endif + +/** + * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type. + */ + +static __INLINE uint32_t arm_recip_q31( + q31_t in, + q31_t* dst, + q31_t* pRecipTable) +{ + + uint32_t out, tempVal; + uint32_t index, i; + uint32_t signBits; + + if(in > 0) { + signBits = __CLZ(in) - 1; + } + else { + signBits = __CLZ(-in) - 1; + } + + /* Convert input sample to 1.31 format */ + in = in << signBits; + + /* calculation of index for initial approximated Val */ + index = (uint32_t) (in >> 24u); + index = (index & INDEX_MASK); + + /* 1.31 with exp 1 */ + out = pRecipTable[index]; + + /* calculation of reciprocal value */ + /* running approximation for two iterations */ + for (i = 0u; i < 2u; i++) { + tempVal = (q31_t) (((q63_t) in * out) >> 31u); + tempVal = 0x7FFFFFFF - tempVal; + /* 1.31 with exp 1 */ + //out = (q31_t) (((q63_t) out * tempVal) >> 30u); + out = (q31_t) clip_q63_to_q31(((q63_t) out * tempVal) >> 30u); + } + + /* write output */ + *dst = out; + + /* return num of signbits of out = 1/in value */ + return (signBits + 1u); + +} + +/** + * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type. + */ +static __INLINE uint32_t arm_recip_q15( + q15_t in, + q15_t* dst, + q15_t* pRecipTable) +{ + + uint32_t out = 0, tempVal = 0; + uint32_t index = 0, i = 0; + uint32_t signBits = 0; + + if(in > 0) { + signBits = __CLZ(in) - 17; + } + else { + signBits = __CLZ(-in) - 17; + } + + /* Convert input sample to 1.15 format */ + in = in << signBits; + + /* calculation of index for initial approximated Val */ + index = in >> 8; + index = (index & INDEX_MASK); + + /* 1.15 with exp 1 */ + out = pRecipTable[index]; + + /* calculation of reciprocal value */ + /* running approximation for two iterations */ + for (i = 0; i < 2; i++) { + tempVal = (q15_t) (((q31_t) in * out) >> 15); + tempVal = 0x7FFF - tempVal; + /* 1.15 with exp 1 */ + out = (q15_t) (((q31_t) out * tempVal) >> 14); + } + + /* write output */ + *dst = out; + + /* return num of signbits of out = 1/in value */ + return (signBits + 1); + +} + + +/* + * @brief C custom defined intrinisic function for only M0 processors + */ +#if defined(ARM_MATH_CM0_FAMILY) + +static __INLINE q31_t __SSAT( + q31_t x, + uint32_t y) +{ + int32_t posMax, negMin; + uint32_t i; + + posMax = 1; + for (i = 0; i < (y - 1); i++) { + posMax = posMax * 2; + } + + if(x > 0) { + posMax = (posMax - 1); + + if(x > posMax) { + x = posMax; + } + } + else { + negMin = -posMax; + + if(x < negMin) { + x = negMin; + } + } + return (x); + + +} + +#endif /* end of ARM_MATH_CM0_FAMILY */ + + + +/* + * @brief C custom defined intrinsic function for M3 and M0 processors + */ +#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) + +/* + * @brief C custom defined QADD8 for M3 and M0 processors + */ +static __INLINE q31_t __QADD8( + q31_t x, + q31_t y) +{ + + q31_t sum; + q7_t r, s, t, u; + + r = (q7_t) x; + s = (q7_t) y; + + r = __SSAT((q31_t) (r + s), 8); + s = __SSAT(((q31_t) (((x << 16) >> 24) + ((y << 16) >> 24))), 8); + t = __SSAT(((q31_t) (((x << 8) >> 24) + ((y << 8) >> 24))), 8); + u = __SSAT(((q31_t) ((x >> 24) + (y >> 24))), 8); + + sum = + (((q31_t) u << 24) & 0xFF000000) | (((q31_t) t << 16) & 0x00FF0000) | + (((q31_t) s << 8) & 0x0000FF00) | (r & 0x000000FF); + + return sum; + +} + +/* + * @brief C custom defined QSUB8 for M3 and M0 processors + */ +static __INLINE q31_t __QSUB8( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s, t, u; + + r = (q7_t) x; + s = (q7_t) y; + + r = __SSAT((r - s), 8); + s = __SSAT(((q31_t) (((x << 16) >> 24) - ((y << 16) >> 24))), 8) << 8; + t = __SSAT(((q31_t) (((x << 8) >> 24) - ((y << 8) >> 24))), 8) << 16; + u = __SSAT(((q31_t) ((x >> 24) - (y >> 24))), 8) << 24; + + sum = + (u & 0xFF000000) | (t & 0x00FF0000) | (s & 0x0000FF00) | (r & + 0x000000FF); + + return sum; +} + +/* + * @brief C custom defined QADD16 for M3 and M0 processors + */ + +/* + * @brief C custom defined QADD16 for M3 and M0 processors + */ +static __INLINE q31_t __QADD16( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (q15_t) x; + s = (q15_t) y; + + r = __SSAT(r + s, 16); + s = __SSAT(((q31_t) ((x >> 16) + (y >> 16))), 16) << 16; + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; + +} + +/* + * @brief C custom defined SHADD16 for M3 and M0 processors + */ +static __INLINE q31_t __SHADD16( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (q15_t) x; + s = (q15_t) y; + + r = ((r >> 1) + (s >> 1)); + s = ((q31_t) ((x >> 17) + (y >> 17))) << 16; + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; + +} + +/* + * @brief C custom defined QSUB16 for M3 and M0 processors + */ +static __INLINE q31_t __QSUB16( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (q15_t) x; + s = (q15_t) y; + + r = __SSAT(r - s, 16); + s = __SSAT(((q31_t) ((x >> 16) - (y >> 16))), 16) << 16; + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; +} + +/* + * @brief C custom defined SHSUB16 for M3 and M0 processors + */ +static __INLINE q31_t __SHSUB16( + q31_t x, + q31_t y) +{ + + q31_t diff; + q31_t r, s; + + r = (q15_t) x; + s = (q15_t) y; + + r = ((r >> 1) - (s >> 1)); + s = (((x >> 17) - (y >> 17)) << 16); + + diff = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return diff; +} + +/* + * @brief C custom defined QASX for M3 and M0 processors + */ +static __INLINE q31_t __QASX( + q31_t x, + q31_t y) +{ + + q31_t sum = 0; + + sum = + ((sum + + clip_q31_to_q15((q31_t) ((q15_t) (x >> 16) + (q15_t) y))) << 16) + + clip_q31_to_q15((q31_t) ((q15_t) x - (q15_t) (y >> 16))); + + return sum; +} + +/* + * @brief C custom defined SHASX for M3 and M0 processors + */ +static __INLINE q31_t __SHASX( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (q15_t) x; + s = (q15_t) y; + + r = ((r >> 1) - (y >> 17)); + s = (((x >> 17) + (s >> 1)) << 16); + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; +} + + +/* + * @brief C custom defined QSAX for M3 and M0 processors + */ +static __INLINE q31_t __QSAX( + q31_t x, + q31_t y) +{ + + q31_t sum = 0; + + sum = + ((sum + + clip_q31_to_q15((q31_t) ((q15_t) (x >> 16) - (q15_t) y))) << 16) + + clip_q31_to_q15((q31_t) ((q15_t) x + (q15_t) (y >> 16))); + + return sum; +} + +/* + * @brief C custom defined SHSAX for M3 and M0 processors + */ +static __INLINE q31_t __SHSAX( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (q15_t) x; + s = (q15_t) y; + + r = ((r >> 1) + (y >> 17)); + s = (((x >> 17) - (s >> 1)) << 16); + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; +} + +/* + * @brief C custom defined SMUSDX for M3 and M0 processors + */ +static __INLINE q31_t __SMUSDX( + q31_t x, + q31_t y) +{ + + return ((q31_t) (((q15_t) x * (q15_t) (y >> 16)) - + ((q15_t) (x >> 16) * (q15_t) y))); +} + +/* + * @brief C custom defined SMUADX for M3 and M0 processors + */ +static __INLINE q31_t __SMUADX( + q31_t x, + q31_t y) +{ + + return ((q31_t) (((q15_t) x * (q15_t) (y >> 16)) + + ((q15_t) (x >> 16) * (q15_t) y))); +} + +/* + * @brief C custom defined QADD for M3 and M0 processors + */ +static __INLINE q31_t __QADD( + q31_t x, + q31_t y) +{ + return clip_q63_to_q31((q63_t) x + y); +} + +/* + * @brief C custom defined QSUB for M3 and M0 processors + */ +static __INLINE q31_t __QSUB( + q31_t x, + q31_t y) +{ + return clip_q63_to_q31((q63_t) x - y); +} + +/* + * @brief C custom defined SMLAD for M3 and M0 processors + */ +static __INLINE q31_t __SMLAD( + q31_t x, + q31_t y, + q31_t sum) +{ + + return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) + + ((q15_t) x * (q15_t) y)); +} + +/* + * @brief C custom defined SMLADX for M3 and M0 processors + */ +static __INLINE q31_t __SMLADX( + q31_t x, + q31_t y, + q31_t sum) +{ + + return (sum + ((q15_t) (x >> 16) * (q15_t) (y)) + + ((q15_t) x * (q15_t) (y >> 16))); +} + +/* + * @brief C custom defined SMLSDX for M3 and M0 processors + */ +static __INLINE q31_t __SMLSDX( + q31_t x, + q31_t y, + q31_t sum) +{ + + return (sum - ((q15_t) (x >> 16) * (q15_t) (y)) + + ((q15_t) x * (q15_t) (y >> 16))); +} + +/* + * @brief C custom defined SMLALD for M3 and M0 processors + */ +static __INLINE q63_t __SMLALD( + q31_t x, + q31_t y, + q63_t sum) +{ + + return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) + + ((q15_t) x * (q15_t) y)); +} + +/* + * @brief C custom defined SMLALDX for M3 and M0 processors + */ +static __INLINE q63_t __SMLALDX( + q31_t x, + q31_t y, + q63_t sum) +{ + + return (sum + ((q15_t) (x >> 16) * (q15_t) y)) + + ((q15_t) x * (q15_t) (y >> 16)); +} + +/* + * @brief C custom defined SMUAD for M3 and M0 processors + */ +static __INLINE q31_t __SMUAD( + q31_t x, + q31_t y) +{ + + return (((x >> 16) * (y >> 16)) + + (((x << 16) >> 16) * ((y << 16) >> 16))); +} + +/* + * @brief C custom defined SMUSD for M3 and M0 processors + */ +static __INLINE q31_t __SMUSD( + q31_t x, + q31_t y) +{ + + return (-((x >> 16) * (y >> 16)) + + (((x << 16) >> 16) * ((y << 16) >> 16))); +} + + +/* + * @brief C custom defined SXTB16 for M3 and M0 processors + */ +static __INLINE q31_t __SXTB16( + q31_t x) +{ + + return ((((x << 24) >> 24) & 0x0000FFFF) | + (((x << 8) >> 8) & 0xFFFF0000)); +} + + +#endif /* defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */ + + +/** + * @brief Instance structure for the Q7 FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q7_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q7_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ +} arm_fir_instance_q7; + +/** + * @brief Instance structure for the Q15 FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ +} arm_fir_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ +} arm_fir_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ +} arm_fir_instance_f32; + + +/** + * @brief Processing function for the Q7 FIR filter. + * @param[in] *S points to an instance of the Q7 FIR filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_q7( + const arm_fir_instance_q7* S, + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q7 FIR filter. + * @param[in,out] *S points to an instance of the Q7 FIR structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed. + * @return none + */ +void arm_fir_init_q7( + arm_fir_instance_q7* S, + uint16_t numTaps, + q7_t* pCoeffs, + q7_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q15 FIR filter. + * @param[in] *S points to an instance of the Q15 FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_q15( + const arm_fir_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the fast Q15 FIR filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q15 FIR filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_fast_q15( + const arm_fir_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q15 FIR filter. + * @param[in,out] *S points to an instance of the Q15 FIR filter structure. + * @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than or equal to 4. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_ARGUMENT_ERROR if + * numTaps is not a supported value. + */ + +arm_status arm_fir_init_q15( + arm_fir_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR filter. + * @param[in] *S points to an instance of the Q31 FIR filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_q31( + const arm_fir_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the fast Q31 FIR filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q31 FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_fast_q31( + const arm_fir_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 FIR filter. + * @param[in,out] *S points to an instance of the Q31 FIR structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + * @return none. + */ +void arm_fir_init_q31( + arm_fir_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the floating-point FIR filter. + * @param[in] *S points to an instance of the floating-point FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_f32( + const arm_fir_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point FIR filter. + * @param[in,out] *S points to an instance of the floating-point FIR filter structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + * @return none. + */ +void arm_fir_init_f32( + arm_fir_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + uint32_t blockSize); + + +/** + * @brief Instance structure for the Q15 Biquad cascade filter. + */ +typedef struct { + int8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q15_t* pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + q15_t* pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + int8_t postShift; /**< Additional shift, in bits, applied to each output sample. */ + +} arm_biquad_casd_df1_inst_q15; + + +/** + * @brief Instance structure for the Q31 Biquad cascade filter. + */ +typedef struct { + uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q31_t* pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + q31_t* pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + uint8_t postShift; /**< Additional shift, in bits, applied to each output sample. */ + +} arm_biquad_casd_df1_inst_q31; + +/** + * @brief Instance structure for the floating-point Biquad cascade filter. + */ +typedef struct { + uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t* pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + float32_t* pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + + +} arm_biquad_casd_df1_inst_f32; + + + +/** + * @brief Processing function for the Q15 Biquad cascade filter. + * @param[in] *S points to an instance of the Q15 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_q15( + const arm_biquad_casd_df1_inst_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q15 Biquad cascade filter. + * @param[in,out] *S points to an instance of the Q15 Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format + * @return none + */ + +void arm_biquad_cascade_df1_init_q15( + arm_biquad_casd_df1_inst_q15* S, + uint8_t numStages, + q15_t* pCoeffs, + q15_t* pState, + int8_t postShift); + + +/** + * @brief Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q15 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_fast_q15( + const arm_biquad_casd_df1_inst_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q31 Biquad cascade filter + * @param[in] *S points to an instance of the Q31 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_q31( + const arm_biquad_casd_df1_inst_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q31 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_fast_q31( + const arm_biquad_casd_df1_inst_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 Biquad cascade filter. + * @param[in,out] *S points to an instance of the Q31 Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format + * @return none + */ + +void arm_biquad_cascade_df1_init_q31( + arm_biquad_casd_df1_inst_q31* S, + uint8_t numStages, + q31_t* pCoeffs, + q31_t* pState, + int8_t postShift); + +/** + * @brief Processing function for the floating-point Biquad cascade filter. + * @param[in] *S points to an instance of the floating-point Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_f32( + const arm_biquad_casd_df1_inst_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point Biquad cascade filter. + * @param[in,out] *S points to an instance of the floating-point Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @return none + */ + +void arm_biquad_cascade_df1_init_f32( + arm_biquad_casd_df1_inst_f32* S, + uint8_t numStages, + float32_t* pCoeffs, + float32_t* pState); + + +/** + * @brief Instance structure for the floating-point matrix structure. + */ + +typedef struct { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + float32_t* pData; /**< points to the data of the matrix. */ +} arm_matrix_instance_f32; + + +/** + * @brief Instance structure for the floating-point matrix structure. + */ + +typedef struct { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + float64_t* pData; /**< points to the data of the matrix. */ +} arm_matrix_instance_f64; + +/** + * @brief Instance structure for the Q15 matrix structure. + */ + +typedef struct { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + q15_t* pData; /**< points to the data of the matrix. */ + +} arm_matrix_instance_q15; + +/** + * @brief Instance structure for the Q31 matrix structure. + */ + +typedef struct { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + q31_t* pData; /**< points to the data of the matrix. */ + +} arm_matrix_instance_q31; + + + +/** + * @brief Floating-point matrix addition. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_add_f32( + const arm_matrix_instance_f32* pSrcA, + const arm_matrix_instance_f32* pSrcB, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix addition. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_add_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix addition. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_add_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + +/** + * @brief Floating-point, complex, matrix multiplication. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_cmplx_mult_f32( + const arm_matrix_instance_f32* pSrcA, + const arm_matrix_instance_f32* pSrcB, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15, complex, matrix multiplication. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_cmplx_mult_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst, + q15_t* pScratch); + +/** + * @brief Q31, complex, matrix multiplication. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_cmplx_mult_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Floating-point matrix transpose. + * @param[in] *pSrc points to the input matrix + * @param[out] *pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_trans_f32( + const arm_matrix_instance_f32* pSrc, + arm_matrix_instance_f32* pDst); + + +/** + * @brief Q15 matrix transpose. + * @param[in] *pSrc points to the input matrix + * @param[out] *pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_trans_q15( + const arm_matrix_instance_q15* pSrc, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix transpose. + * @param[in] *pSrc points to the input matrix + * @param[out] *pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_trans_q31( + const arm_matrix_instance_q31* pSrc, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Floating-point matrix multiplication + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_f32( + const arm_matrix_instance_f32* pSrcA, + const arm_matrix_instance_f32* pSrcB, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix multiplication + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @param[in] *pState points to the array for storing intermediate results + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst, + q15_t* pState); + +/** + * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @param[in] *pState points to the array for storing intermediate results + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_fast_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst, + q15_t* pState); + +/** + * @brief Q31 matrix multiplication + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + +/** + * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_fast_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Floating-point matrix subtraction + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_sub_f32( + const arm_matrix_instance_f32* pSrcA, + const arm_matrix_instance_f32* pSrcB, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix subtraction + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_sub_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix subtraction + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_sub_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + +/** + * @brief Floating-point matrix scaling. + * @param[in] *pSrc points to the input matrix + * @param[in] scale scale factor + * @param[out] *pDst points to the output matrix + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_scale_f32( + const arm_matrix_instance_f32* pSrc, + float32_t scale, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix scaling. + * @param[in] *pSrc points to input matrix + * @param[in] scaleFract fractional portion of the scale factor + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to output matrix + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_scale_q15( + const arm_matrix_instance_q15* pSrc, + q15_t scaleFract, + int32_t shift, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix scaling. + * @param[in] *pSrc points to input matrix + * @param[in] scaleFract fractional portion of the scale factor + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_scale_q31( + const arm_matrix_instance_q31* pSrc, + q31_t scaleFract, + int32_t shift, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Q31 matrix initialization. + * @param[in,out] *S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] *pData points to the matrix data array. + * @return none + */ + +void arm_mat_init_q31( + arm_matrix_instance_q31* S, + uint16_t nRows, + uint16_t nColumns, + q31_t* pData); + +/** + * @brief Q15 matrix initialization. + * @param[in,out] *S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] *pData points to the matrix data array. + * @return none + */ + +void arm_mat_init_q15( + arm_matrix_instance_q15* S, + uint16_t nRows, + uint16_t nColumns, + q15_t* pData); + +/** + * @brief Floating-point matrix initialization. + * @param[in,out] *S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] *pData points to the matrix data array. + * @return none + */ + +void arm_mat_init_f32( + arm_matrix_instance_f32* S, + uint16_t nRows, + uint16_t nColumns, + float32_t* pData); + + + +/** + * @brief Instance structure for the Q15 PID Control. + */ +typedef struct { + q15_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ +#ifdef ARM_MATH_CM0_FAMILY + q15_t A1; + q15_t A2; +#else + q31_t A1; /**< The derived gain A1 = -Kp - 2Kd | Kd.*/ +#endif + q15_t state[3]; /**< The state array of length 3. */ + q15_t Kp; /**< The proportional gain. */ + q15_t Ki; /**< The integral gain. */ + q15_t Kd; /**< The derivative gain. */ +} arm_pid_instance_q15; + +/** + * @brief Instance structure for the Q31 PID Control. + */ +typedef struct { + q31_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ + q31_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ + q31_t A2; /**< The derived gain, A2 = Kd . */ + q31_t state[3]; /**< The state array of length 3. */ + q31_t Kp; /**< The proportional gain. */ + q31_t Ki; /**< The integral gain. */ + q31_t Kd; /**< The derivative gain. */ + +} arm_pid_instance_q31; + +/** + * @brief Instance structure for the floating-point PID Control. + */ +typedef struct { + float32_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ + float32_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ + float32_t A2; /**< The derived gain, A2 = Kd . */ + float32_t state[3]; /**< The state array of length 3. */ + float32_t Kp; /**< The proportional gain. */ + float32_t Ki; /**< The integral gain. */ + float32_t Kd; /**< The derivative gain. */ +} arm_pid_instance_f32; + + + +/** + * @brief Initialization function for the floating-point PID Control. + * @param[in,out] *S points to an instance of the PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + * @return none. + */ +void arm_pid_init_f32( + arm_pid_instance_f32* S, + int32_t resetStateFlag); + +/** + * @brief Reset function for the floating-point PID Control. + * @param[in,out] *S is an instance of the floating-point PID Control structure + * @return none + */ +void arm_pid_reset_f32( + arm_pid_instance_f32* S); + + +/** + * @brief Initialization function for the Q31 PID Control. + * @param[in,out] *S points to an instance of the Q15 PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + * @return none. + */ +void arm_pid_init_q31( + arm_pid_instance_q31* S, + int32_t resetStateFlag); + + +/** + * @brief Reset function for the Q31 PID Control. + * @param[in,out] *S points to an instance of the Q31 PID Control structure + * @return none + */ + +void arm_pid_reset_q31( + arm_pid_instance_q31* S); + +/** + * @brief Initialization function for the Q15 PID Control. + * @param[in,out] *S points to an instance of the Q15 PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + * @return none. + */ +void arm_pid_init_q15( + arm_pid_instance_q15* S, + int32_t resetStateFlag); + +/** + * @brief Reset function for the Q15 PID Control. + * @param[in,out] *S points to an instance of the q15 PID Control structure + * @return none + */ +void arm_pid_reset_q15( + arm_pid_instance_q15* S); + + +/** + * @brief Instance structure for the floating-point Linear Interpolate function. + */ +typedef struct { + uint32_t nValues; /**< nValues */ + float32_t x1; /**< x1 */ + float32_t xSpacing; /**< xSpacing */ + float32_t* pYData; /**< pointer to the table of Y values */ +} arm_linear_interp_instance_f32; + +/** + * @brief Instance structure for the floating-point bilinear interpolation function. + */ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + float32_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_f32; + +/** +* @brief Instance structure for the Q31 bilinear interpolation function. +*/ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q31_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_q31; + +/** +* @brief Instance structure for the Q15 bilinear interpolation function. +*/ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q15_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_q15; + +/** +* @brief Instance structure for the Q15 bilinear interpolation function. +*/ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q7_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_q7; + + +/** + * @brief Q7 vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_q7( + q7_t* pSrcA, + q7_t* pSrcB, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Floating-point vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t blockSize); + + + + + + +/** + * @brief Instance structure for the Q15 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q15_t* pTwiddle; /**< points to the Sin twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix2_instance_q15; + +/* Deprecated */ +arm_status arm_cfft_radix2_init_q15( + arm_cfft_radix2_instance_q15* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ +void arm_cfft_radix2_q15( + const arm_cfft_radix2_instance_q15* S, + q15_t* pSrc); + + + +/** + * @brief Instance structure for the Q15 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q15_t* pTwiddle; /**< points to the twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix4_instance_q15; + +/* Deprecated */ +arm_status arm_cfft_radix4_init_q15( + arm_cfft_radix4_instance_q15* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ +void arm_cfft_radix4_q15( + const arm_cfft_radix4_instance_q15* S, + q15_t* pSrc); + +/** + * @brief Instance structure for the Radix-2 Q31 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q31_t* pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix2_instance_q31; + +/* Deprecated */ +arm_status arm_cfft_radix2_init_q31( + arm_cfft_radix2_instance_q31* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ +void arm_cfft_radix2_q31( + const arm_cfft_radix2_instance_q31* S, + q31_t* pSrc); + +/** + * @brief Instance structure for the Q31 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q31_t* pTwiddle; /**< points to the twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix4_instance_q31; + +/* Deprecated */ +void arm_cfft_radix4_q31( + const arm_cfft_radix4_instance_q31* S, + q31_t* pSrc); + +/* Deprecated */ +arm_status arm_cfft_radix4_init_q31( + arm_cfft_radix4_instance_q31* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + float32_t* pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + float32_t onebyfftLen; /**< value of 1/fftLen. */ +} arm_cfft_radix2_instance_f32; + +/* Deprecated */ +arm_status arm_cfft_radix2_init_f32( + arm_cfft_radix2_instance_f32* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ +void arm_cfft_radix2_f32( + const arm_cfft_radix2_instance_f32* S, + float32_t* pSrc); + +/** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + float32_t* pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + float32_t onebyfftLen; /**< value of 1/fftLen. */ +} arm_cfft_radix4_instance_f32; + +/* Deprecated */ +arm_status arm_cfft_radix4_init_f32( + arm_cfft_radix4_instance_f32* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ +void arm_cfft_radix4_f32( + const arm_cfft_radix4_instance_f32* S, + float32_t* pSrc); + +/** + * @brief Instance structure for the fixed-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + const q15_t* pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ +} arm_cfft_instance_q15; + +void arm_cfft_q15( + const arm_cfft_instance_q15* S, + q15_t* p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/** + * @brief Instance structure for the fixed-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + const q31_t* pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ +} arm_cfft_instance_q31; + +void arm_cfft_q31( + const arm_cfft_instance_q31* S, + q31_t* p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + const float32_t* pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ +} arm_cfft_instance_f32; + +void arm_cfft_f32( + const arm_cfft_instance_f32* S, + float32_t* p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/** + * @brief Instance structure for the Q15 RFFT/RIFFT function. + */ + +typedef struct { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + q15_t* pTwiddleAReal; /**< points to the real twiddle factor table. */ + q15_t* pTwiddleBReal; /**< points to the imag twiddle factor table. */ + const arm_cfft_instance_q15* pCfft; /**< points to the complex FFT instance. */ +} arm_rfft_instance_q15; + +arm_status arm_rfft_init_q15( + arm_rfft_instance_q15* S, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + +void arm_rfft_q15( + const arm_rfft_instance_q15* S, + q15_t* pSrc, + q15_t* pDst); + +/** + * @brief Instance structure for the Q31 RFFT/RIFFT function. + */ + +typedef struct { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + q31_t* pTwiddleAReal; /**< points to the real twiddle factor table. */ + q31_t* pTwiddleBReal; /**< points to the imag twiddle factor table. */ + const arm_cfft_instance_q31* pCfft; /**< points to the complex FFT instance. */ +} arm_rfft_instance_q31; + +arm_status arm_rfft_init_q31( + arm_rfft_instance_q31* S, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + +void arm_rfft_q31( + const arm_rfft_instance_q31* S, + q31_t* pSrc, + q31_t* pDst); + +/** + * @brief Instance structure for the floating-point RFFT/RIFFT function. + */ + +typedef struct { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint16_t fftLenBy2; /**< length of the complex FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + float32_t* pTwiddleAReal; /**< points to the real twiddle factor table. */ + float32_t* pTwiddleBReal; /**< points to the imag twiddle factor table. */ + arm_cfft_radix4_instance_f32* pCfft; /**< points to the complex FFT instance. */ +} arm_rfft_instance_f32; + +arm_status arm_rfft_init_f32( + arm_rfft_instance_f32* S, + arm_cfft_radix4_instance_f32* S_CFFT, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + +void arm_rfft_f32( + const arm_rfft_instance_f32* S, + float32_t* pSrc, + float32_t* pDst); + +/** + * @brief Instance structure for the floating-point RFFT/RIFFT function. + */ + +typedef struct { + arm_cfft_instance_f32 Sint; /**< Internal CFFT structure. */ + uint16_t fftLenRFFT; /**< length of the real sequence */ + float32_t* pTwiddleRFFT; /**< Twiddle factors real stage */ +} arm_rfft_fast_instance_f32 ; + +arm_status arm_rfft_fast_init_f32 ( + arm_rfft_fast_instance_f32* S, + uint16_t fftLen); + +void arm_rfft_fast_f32( + arm_rfft_fast_instance_f32* S, + float32_t* p, float32_t* pOut, + uint8_t ifftFlag); + +/** + * @brief Instance structure for the floating-point DCT4/IDCT4 function. + */ + +typedef struct { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + float32_t normalize; /**< normalizing factor. */ + float32_t* pTwiddle; /**< points to the twiddle factor table. */ + float32_t* pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_f32* pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_f32* pCfft; /**< points to the complex FFT instance. */ +} arm_dct4_instance_f32; + +/** + * @brief Initialization function for the floating-point DCT4/IDCT4. + * @param[in,out] *S points to an instance of floating-point DCT4/IDCT4 structure. + * @param[in] *S_RFFT points to an instance of floating-point RFFT/RIFFT structure. + * @param[in] *S_CFFT points to an instance of floating-point CFFT/CIFFT structure. + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported transform length. + */ + +arm_status arm_dct4_init_f32( + arm_dct4_instance_f32* S, + arm_rfft_instance_f32* S_RFFT, + arm_cfft_radix4_instance_f32* S_CFFT, + uint16_t N, + uint16_t Nby2, + float32_t normalize); + +/** + * @brief Processing function for the floating-point DCT4/IDCT4. + * @param[in] *S points to an instance of the floating-point DCT4/IDCT4 structure. + * @param[in] *pState points to state buffer. + * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. + * @return none. + */ + +void arm_dct4_f32( + const arm_dct4_instance_f32* S, + float32_t* pState, + float32_t* pInlineBuffer); + +/** + * @brief Instance structure for the Q31 DCT4/IDCT4 function. + */ + +typedef struct { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + q31_t normalize; /**< normalizing factor. */ + q31_t* pTwiddle; /**< points to the twiddle factor table. */ + q31_t* pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_q31* pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_q31* pCfft; /**< points to the complex FFT instance. */ +} arm_dct4_instance_q31; + +/** + * @brief Initialization function for the Q31 DCT4/IDCT4. + * @param[in,out] *S points to an instance of Q31 DCT4/IDCT4 structure. + * @param[in] *S_RFFT points to an instance of Q31 RFFT/RIFFT structure + * @param[in] *S_CFFT points to an instance of Q31 CFFT/CIFFT structure + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. + */ + +arm_status arm_dct4_init_q31( + arm_dct4_instance_q31* S, + arm_rfft_instance_q31* S_RFFT, + arm_cfft_radix4_instance_q31* S_CFFT, + uint16_t N, + uint16_t Nby2, + q31_t normalize); + +/** + * @brief Processing function for the Q31 DCT4/IDCT4. + * @param[in] *S points to an instance of the Q31 DCT4 structure. + * @param[in] *pState points to state buffer. + * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. + * @return none. + */ + +void arm_dct4_q31( + const arm_dct4_instance_q31* S, + q31_t* pState, + q31_t* pInlineBuffer); + +/** + * @brief Instance structure for the Q15 DCT4/IDCT4 function. + */ + +typedef struct { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + q15_t normalize; /**< normalizing factor. */ + q15_t* pTwiddle; /**< points to the twiddle factor table. */ + q15_t* pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_q15* pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_q15* pCfft; /**< points to the complex FFT instance. */ +} arm_dct4_instance_q15; + +/** + * @brief Initialization function for the Q15 DCT4/IDCT4. + * @param[in,out] *S points to an instance of Q15 DCT4/IDCT4 structure. + * @param[in] *S_RFFT points to an instance of Q15 RFFT/RIFFT structure. + * @param[in] *S_CFFT points to an instance of Q15 CFFT/CIFFT structure. + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. + */ + +arm_status arm_dct4_init_q15( + arm_dct4_instance_q15* S, + arm_rfft_instance_q15* S_RFFT, + arm_cfft_radix4_instance_q15* S_CFFT, + uint16_t N, + uint16_t Nby2, + q15_t normalize); + +/** + * @brief Processing function for the Q15 DCT4/IDCT4. + * @param[in] *S points to an instance of the Q15 DCT4 structure. + * @param[in] *pState points to state buffer. + * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. + * @return none. + */ + +void arm_dct4_q15( + const arm_dct4_instance_q15* S, + q15_t* pState, + q15_t* pInlineBuffer); + +/** + * @brief Floating-point vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Q7 vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_q7( + q7_t* pSrcA, + q7_t* pSrcB, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Floating-point vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Q7 vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_q7( + q7_t* pSrcA, + q7_t* pSrcB, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a floating-point vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scale scale factor to be applied + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_f32( + float32_t* pSrc, + float32_t scale, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a Q7 vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_q7( + q7_t* pSrc, + q7_t scaleFract, + int8_t shift, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a Q15 vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_q15( + q15_t* pSrc, + q15_t scaleFract, + int8_t shift, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a Q31 vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_q31( + q31_t* pSrc, + q31_t scaleFract, + int8_t shift, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Q7 vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_q7( + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Floating-point vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Dot product of floating-point vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_f32( + float32_t* pSrcA, + float32_t* pSrcB, + uint32_t blockSize, + float32_t* result); + +/** + * @brief Dot product of Q7 vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_q7( + q7_t* pSrcA, + q7_t* pSrcB, + uint32_t blockSize, + q31_t* result); + +/** + * @brief Dot product of Q15 vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_q15( + q15_t* pSrcA, + q15_t* pSrcB, + uint32_t blockSize, + q63_t* result); + +/** + * @brief Dot product of Q31 vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_q31( + q31_t* pSrcA, + q31_t* pSrcB, + uint32_t blockSize, + q63_t* result); + +/** + * @brief Shifts the elements of a Q7 vector a specified number of bits. + * @param[in] *pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_shift_q7( + q7_t* pSrc, + int8_t shiftBits, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Shifts the elements of a Q15 vector a specified number of bits. + * @param[in] *pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_shift_q15( + q15_t* pSrc, + int8_t shiftBits, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Shifts the elements of a Q31 vector a specified number of bits. + * @param[in] *pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_shift_q31( + q31_t* pSrc, + int8_t shiftBits, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a floating-point vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_f32( + float32_t* pSrc, + float32_t offset, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a Q7 vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_q7( + q7_t* pSrc, + q7_t offset, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a Q15 vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_q15( + q15_t* pSrc, + q15_t offset, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a Q31 vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_q31( + q31_t* pSrc, + q31_t offset, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a floating-point vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a Q7 vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_q7( + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a Q15 vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a Q31 vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); +/** + * @brief Copies the elements of a floating-point vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Copies the elements of a Q7 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_q7( + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Copies the elements of a Q15 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Copies the elements of a Q31 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); +/** + * @brief Fills a constant value into a floating-point vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_f32( + float32_t value, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Fills a constant value into a Q7 vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_q7( + q7_t value, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Fills a constant value into a Q15 vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_q15( + q15_t value, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Fills a constant value into a Q31 vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_q31( + q31_t value, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Convolution of floating-point sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_f32( + float32_t* pSrcA, + uint32_t srcALen, + float32_t* pSrcB, + uint32_t srcBLen, + float32_t* pDst); + + +/** + * @brief Convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return none. + */ + + +void arm_conv_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + +/** + * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_fast_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + +/** + * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return none. + */ + +void arm_conv_fast_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + + +/** + * @brief Convolution of Q31 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + +/** + * @brief Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_fast_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + + +/** +* @brief Convolution of Q7 sequences. +* @param[in] *pSrcA points to the first input sequence. +* @param[in] srcALen length of the first input sequence. +* @param[in] *pSrcB points to the second input sequence. +* @param[in] srcBLen length of the second input sequence. +* @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. +* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. +* @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). +* @return none. +*/ + +void arm_conv_opt_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + + +/** + * @brief Convolution of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst); + + +/** + * @brief Partial convolution of floating-point sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_f32( + float32_t* pSrcA, + uint32_t srcALen, + float32_t* pSrcB, + uint32_t srcBLen, + float32_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + +/** +* @brief Partial convolution of Q15 sequences. +* @param[in] *pSrcA points to the first input sequence. +* @param[in] srcALen length of the first input sequence. +* @param[in] *pSrcB points to the second input sequence. +* @param[in] srcBLen length of the second input sequence. +* @param[out] *pDst points to the block of output data +* @param[in] firstIndex is the first output sample to start with. +* @param[in] numPoints is the number of output points to be computed. +* @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. +* @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). +* @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. +*/ + +arm_status arm_conv_partial_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Partial convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + +/** + * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_fast_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + +/** + * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_fast_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Partial convolution of Q31 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + +/** + * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_fast_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + +/** + * @brief Partial convolution of Q7 sequences + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_opt_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Partial convolution of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + +/** + * @brief Instance structure for the Q15 FIR decimator. + */ + +typedef struct { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ +} arm_fir_decimate_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR decimator. + */ + +typedef struct { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + +} arm_fir_decimate_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR decimator. + */ + +typedef struct { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + +} arm_fir_decimate_instance_f32; + + + +/** + * @brief Processing function for the floating-point FIR decimator. + * @param[in] *S points to an instance of the floating-point FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_f32( + const arm_fir_decimate_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the floating-point FIR decimator. + * @param[in,out] *S points to an instance of the floating-point FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + +arm_status arm_fir_decimate_init_f32( + arm_fir_decimate_instance_f32* S, + uint16_t numTaps, + uint8_t M, + float32_t* pCoeffs, + float32_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q15 FIR decimator. + * @param[in] *S points to an instance of the Q15 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_q15( + const arm_fir_decimate_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q15 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_fast_q15( + const arm_fir_decimate_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + + +/** + * @brief Initialization function for the Q15 FIR decimator. + * @param[in,out] *S points to an instance of the Q15 FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + +arm_status arm_fir_decimate_init_q15( + arm_fir_decimate_instance_q15* S, + uint16_t numTaps, + uint8_t M, + q15_t* pCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR decimator. + * @param[in] *S points to an instance of the Q31 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_q31( + const arm_fir_decimate_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q31 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_fast_q31( + arm_fir_decimate_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q31 FIR decimator. + * @param[in,out] *S points to an instance of the Q31 FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + +arm_status arm_fir_decimate_init_q31( + arm_fir_decimate_instance_q31* S, + uint16_t numTaps, + uint8_t M, + q31_t* pCoeffs, + q31_t* pState, + uint32_t blockSize); + + + +/** + * @brief Instance structure for the Q15 FIR interpolator. + */ + +typedef struct { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + q15_t* pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */ +} arm_fir_interpolate_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR interpolator. + */ + +typedef struct { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + q31_t* pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */ +} arm_fir_interpolate_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR interpolator. + */ + +typedef struct { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + float32_t* pState; /**< points to the state variable array. The array is of length phaseLength+numTaps-1. */ +} arm_fir_interpolate_instance_f32; + + +/** + * @brief Processing function for the Q15 FIR interpolator. + * @param[in] *S points to an instance of the Q15 FIR interpolator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_interpolate_q15( + const arm_fir_interpolate_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q15 FIR interpolator. + * @param[in,out] *S points to an instance of the Q15 FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + +arm_status arm_fir_interpolate_init_q15( + arm_fir_interpolate_instance_q15* S, + uint8_t L, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR interpolator. + * @param[in] *S points to an instance of the Q15 FIR interpolator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_interpolate_q31( + const arm_fir_interpolate_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 FIR interpolator. + * @param[in,out] *S points to an instance of the Q31 FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + +arm_status arm_fir_interpolate_init_q31( + arm_fir_interpolate_instance_q31* S, + uint8_t L, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the floating-point FIR interpolator. + * @param[in] *S points to an instance of the floating-point FIR interpolator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_interpolate_f32( + const arm_fir_interpolate_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point FIR interpolator. + * @param[in,out] *S points to an instance of the floating-point FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + +arm_status arm_fir_interpolate_init_f32( + arm_fir_interpolate_instance_f32* S, + uint8_t L, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + uint32_t blockSize); + +/** + * @brief Instance structure for the high precision Q31 Biquad cascade filter. + */ + +typedef struct { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q63_t* pState; /**< points to the array of state coefficients. The array is of length 4*numStages. */ + q31_t* pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ + uint8_t postShift; /**< additional shift, in bits, applied to each output sample. */ + +} arm_biquad_cas_df1_32x64_ins_q31; + + +/** + * @param[in] *S points to an instance of the high precision Q31 Biquad cascade filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cas_df1_32x64_q31( + const arm_biquad_cas_df1_32x64_ins_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @param[in,out] *S points to an instance of the high precision Q31 Biquad cascade filter structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] postShift shift to be applied to the output. Varies according to the coefficients format + * @return none + */ + +void arm_biquad_cas_df1_32x64_init_q31( + arm_biquad_cas_df1_32x64_ins_q31* S, + uint8_t numStages, + q31_t* pCoeffs, + q63_t* pState, + uint8_t postShift); + + + +/** + * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter. + */ + +typedef struct { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t* pState; /**< points to the array of state coefficients. The array is of length 2*numStages. */ + float32_t* pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ +} arm_biquad_cascade_df2T_instance_f32; + + + +/** + * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter. + */ + +typedef struct { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t* pState; /**< points to the array of state coefficients. The array is of length 4*numStages. */ + float32_t* pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ +} arm_biquad_cascade_stereo_df2T_instance_f32; + + + +/** + * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter. + */ + +typedef struct { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float64_t* pState; /**< points to the array of state coefficients. The array is of length 2*numStages. */ + float64_t* pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ +} arm_biquad_cascade_df2T_instance_f64; + + +/** + * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in] *S points to an instance of the filter data structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df2T_f32( + const arm_biquad_cascade_df2T_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. 2 channels + * @param[in] *S points to an instance of the filter data structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_stereo_df2T_f32( + const arm_biquad_cascade_stereo_df2T_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in] *S points to an instance of the filter data structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df2T_f64( + const arm_biquad_cascade_df2T_instance_f64* S, + float64_t* pSrc, + float64_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in,out] *S points to an instance of the filter data structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @return none + */ + +void arm_biquad_cascade_df2T_init_f32( + arm_biquad_cascade_df2T_instance_f32* S, + uint8_t numStages, + float32_t* pCoeffs, + float32_t* pState); + + +/** + * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in,out] *S points to an instance of the filter data structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @return none + */ + +void arm_biquad_cascade_stereo_df2T_init_f32( + arm_biquad_cascade_stereo_df2T_instance_f32* S, + uint8_t numStages, + float32_t* pCoeffs, + float32_t* pState); + + +/** + * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in,out] *S points to an instance of the filter data structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @return none + */ + +void arm_biquad_cascade_df2T_init_f64( + arm_biquad_cascade_df2T_instance_f64* S, + uint8_t numStages, + float64_t* pCoeffs, + float64_t* pState); + + + +/** + * @brief Instance structure for the Q15 FIR lattice filter. + */ + +typedef struct { + uint16_t numStages; /**< number of filter stages. */ + q15_t* pState; /**< points to the state variable array. The array is of length numStages. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ +} arm_fir_lattice_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR lattice filter. + */ + +typedef struct { + uint16_t numStages; /**< number of filter stages. */ + q31_t* pState; /**< points to the state variable array. The array is of length numStages. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ +} arm_fir_lattice_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR lattice filter. + */ + +typedef struct { + uint16_t numStages; /**< number of filter stages. */ + float32_t* pState; /**< points to the state variable array. The array is of length numStages. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ +} arm_fir_lattice_instance_f32; + +/** + * @brief Initialization function for the Q15 FIR lattice filter. + * @param[in] *S points to an instance of the Q15 FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] *pState points to the state buffer. The array is of length numStages. + * @return none. + */ + +void arm_fir_lattice_init_q15( + arm_fir_lattice_instance_q15* S, + uint16_t numStages, + q15_t* pCoeffs, + q15_t* pState); + + +/** + * @brief Processing function for the Q15 FIR lattice filter. + * @param[in] *S points to an instance of the Q15 FIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_lattice_q15( + const arm_fir_lattice_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 FIR lattice filter. + * @param[in] *S points to an instance of the Q31 FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] *pState points to the state buffer. The array is of length numStages. + * @return none. + */ + +void arm_fir_lattice_init_q31( + arm_fir_lattice_instance_q31* S, + uint16_t numStages, + q31_t* pCoeffs, + q31_t* pState); + + +/** + * @brief Processing function for the Q31 FIR lattice filter. + * @param[in] *S points to an instance of the Q31 FIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_fir_lattice_q31( + const arm_fir_lattice_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point FIR lattice filter. + * @param[in] *S points to an instance of the floating-point FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] *pState points to the state buffer. The array is of length numStages. + * @return none. + */ + +void arm_fir_lattice_init_f32( + arm_fir_lattice_instance_f32* S, + uint16_t numStages, + float32_t* pCoeffs, + float32_t* pState); + +/** + * @brief Processing function for the floating-point FIR lattice filter. + * @param[in] *S points to an instance of the floating-point FIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_fir_lattice_f32( + const arm_fir_lattice_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Instance structure for the Q15 IIR lattice filter. + */ +typedef struct { + uint16_t numStages; /**< number of stages in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + q15_t* pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + q15_t* pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ +} arm_iir_lattice_instance_q15; + +/** + * @brief Instance structure for the Q31 IIR lattice filter. + */ +typedef struct { + uint16_t numStages; /**< number of stages in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + q31_t* pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + q31_t* pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ +} arm_iir_lattice_instance_q31; + +/** + * @brief Instance structure for the floating-point IIR lattice filter. + */ +typedef struct { + uint16_t numStages; /**< number of stages in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + float32_t* pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + float32_t* pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ +} arm_iir_lattice_instance_f32; + +/** + * @brief Processing function for the floating-point IIR lattice filter. + * @param[in] *S points to an instance of the floating-point IIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_f32( + const arm_iir_lattice_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point IIR lattice filter. + * @param[in] *S points to an instance of the floating-point IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. + * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. + * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize-1. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_init_f32( + arm_iir_lattice_instance_f32* S, + uint16_t numStages, + float32_t* pkCoeffs, + float32_t* pvCoeffs, + float32_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q31 IIR lattice filter. + * @param[in] *S points to an instance of the Q31 IIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_q31( + const arm_iir_lattice_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q31 IIR lattice filter. + * @param[in] *S points to an instance of the Q31 IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. + * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. + * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_init_q31( + arm_iir_lattice_instance_q31* S, + uint16_t numStages, + q31_t* pkCoeffs, + q31_t* pvCoeffs, + q31_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q15 IIR lattice filter. + * @param[in] *S points to an instance of the Q15 IIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_q15( + const arm_iir_lattice_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q15 IIR lattice filter. + * @param[in] *S points to an instance of the fixed-point Q15 IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] *pkCoeffs points to reflection coefficient buffer. The array is of length numStages. + * @param[in] *pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1. + * @param[in] *pState points to state buffer. The array is of length numStages+blockSize. + * @param[in] blockSize number of samples to process per call. + * @return none. + */ + +void arm_iir_lattice_init_q15( + arm_iir_lattice_instance_q15* S, + uint16_t numStages, + q15_t* pkCoeffs, + q15_t* pvCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Instance structure for the floating-point LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + float32_t mu; /**< step size that controls filter coefficient updates. */ +} arm_lms_instance_f32; + +/** + * @brief Processing function for floating-point LMS filter. + * @param[in] *S points to an instance of the floating-point LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_f32( + const arm_lms_instance_f32* S, + float32_t* pSrc, + float32_t* pRef, + float32_t* pOut, + float32_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for floating-point LMS filter. + * @param[in] *S points to an instance of the floating-point LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to the coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_init_f32( + arm_lms_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + float32_t mu, + uint32_t blockSize); + +/** + * @brief Instance structure for the Q15 LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q15_t mu; /**< step size that controls filter coefficient updates. */ + uint32_t postShift; /**< bit shift applied to coefficients. */ +} arm_lms_instance_q15; + + +/** + * @brief Initialization function for the Q15 LMS filter. + * @param[in] *S points to an instance of the Q15 LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to the coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_init_q15( + arm_lms_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + q15_t mu, + uint32_t blockSize, + uint32_t postShift); + +/** + * @brief Processing function for Q15 LMS filter. + * @param[in] *S points to an instance of the Q15 LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_q15( + const arm_lms_instance_q15* S, + q15_t* pSrc, + q15_t* pRef, + q15_t* pOut, + q15_t* pErr, + uint32_t blockSize); + + +/** + * @brief Instance structure for the Q31 LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q31_t mu; /**< step size that controls filter coefficient updates. */ + uint32_t postShift; /**< bit shift applied to coefficients. */ + +} arm_lms_instance_q31; + +/** + * @brief Processing function for Q31 LMS filter. + * @param[in] *S points to an instance of the Q15 LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_q31( + const arm_lms_instance_q31* S, + q31_t* pSrc, + q31_t* pRef, + q31_t* pOut, + q31_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for Q31 LMS filter. + * @param[in] *S points to an instance of the Q31 LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_init_q31( + arm_lms_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + q31_t mu, + uint32_t blockSize, + uint32_t postShift); + +/** + * @brief Instance structure for the floating-point normalized LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + float32_t mu; /**< step size that control filter coefficient updates. */ + float32_t energy; /**< saves previous frame energy. */ + float32_t x0; /**< saves previous input sample. */ +} arm_lms_norm_instance_f32; + +/** + * @brief Processing function for floating-point normalized LMS filter. + * @param[in] *S points to an instance of the floating-point normalized LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_f32( + arm_lms_norm_instance_f32* S, + float32_t* pSrc, + float32_t* pRef, + float32_t* pOut, + float32_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for floating-point normalized LMS filter. + * @param[in] *S points to an instance of the floating-point LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_init_f32( + arm_lms_norm_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + float32_t mu, + uint32_t blockSize); + + +/** + * @brief Instance structure for the Q31 normalized LMS filter. + */ +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q31_t mu; /**< step size that controls filter coefficient updates. */ + uint8_t postShift; /**< bit shift applied to coefficients. */ + q31_t* recipTable; /**< points to the reciprocal initial value table. */ + q31_t energy; /**< saves previous frame energy. */ + q31_t x0; /**< saves previous input sample. */ +} arm_lms_norm_instance_q31; + +/** + * @brief Processing function for Q31 normalized LMS filter. + * @param[in] *S points to an instance of the Q31 normalized LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_q31( + arm_lms_norm_instance_q31* S, + q31_t* pSrc, + q31_t* pRef, + q31_t* pOut, + q31_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for Q31 normalized LMS filter. + * @param[in] *S points to an instance of the Q31 normalized LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_norm_init_q31( + arm_lms_norm_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + q31_t mu, + uint32_t blockSize, + uint8_t postShift); + +/** + * @brief Instance structure for the Q15 normalized LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< Number of coefficients in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q15_t mu; /**< step size that controls filter coefficient updates. */ + uint8_t postShift; /**< bit shift applied to coefficients. */ + q15_t* recipTable; /**< Points to the reciprocal initial value table. */ + q15_t energy; /**< saves previous frame energy. */ + q15_t x0; /**< saves previous input sample. */ +} arm_lms_norm_instance_q15; + +/** + * @brief Processing function for Q15 normalized LMS filter. + * @param[in] *S points to an instance of the Q15 normalized LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_q15( + arm_lms_norm_instance_q15* S, + q15_t* pSrc, + q15_t* pRef, + q15_t* pOut, + q15_t* pErr, + uint32_t blockSize); + + +/** + * @brief Initialization function for Q15 normalized LMS filter. + * @param[in] *S points to an instance of the Q15 normalized LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_norm_init_q15( + arm_lms_norm_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + q15_t mu, + uint32_t blockSize, + uint8_t postShift); + +/** + * @brief Correlation of floating-point sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_f32( + float32_t* pSrcA, + uint32_t srcALen, + float32_t* pSrcB, + uint32_t srcBLen, + float32_t* pDst); + + +/** +* @brief Correlation of Q15 sequences +* @param[in] *pSrcA points to the first input sequence. +* @param[in] srcALen length of the first input sequence. +* @param[in] *pSrcB points to the second input sequence. +* @param[in] srcBLen length of the second input sequence. +* @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. +* @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. +* @return none. +*/ +void arm_correlate_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch); + + +/** + * @brief Correlation of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + +/** + * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_fast_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + + + +/** + * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @return none. + */ + +void arm_correlate_fast_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch); + +/** + * @brief Correlation of Q31 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + +/** + * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_fast_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + + + +/** + * @brief Correlation of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return none. + */ + +void arm_correlate_opt_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Correlation of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst); + + +/** + * @brief Instance structure for the floating-point sparse FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + float32_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_f32; + +/** + * @brief Instance structure for the Q31 sparse FIR filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q31_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_q31; + +/** + * @brief Instance structure for the Q15 sparse FIR filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q15_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_q15; + +/** + * @brief Instance structure for the Q7 sparse FIR filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q7_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q7_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_q7; + +/** + * @brief Processing function for the floating-point sparse FIR filter. + * @param[in] *S points to an instance of the floating-point sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_f32( + arm_fir_sparse_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + float32_t* pScratchIn, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point sparse FIR filter. + * @param[in,out] *S points to an instance of the floating-point sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_f32( + arm_fir_sparse_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 sparse FIR filter. + * @param[in] *S points to an instance of the Q31 sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_q31( + arm_fir_sparse_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + q31_t* pScratchIn, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 sparse FIR filter. + * @param[in,out] *S points to an instance of the Q31 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_q31( + arm_fir_sparse_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + +/** + * @brief Processing function for the Q15 sparse FIR filter. + * @param[in] *S points to an instance of the Q15 sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] *pScratchOut points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_q15( + arm_fir_sparse_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + q15_t* pScratchIn, + q31_t* pScratchOut, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q15 sparse FIR filter. + * @param[in,out] *S points to an instance of the Q15 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_q15( + arm_fir_sparse_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + +/** + * @brief Processing function for the Q7 sparse FIR filter. + * @param[in] *S points to an instance of the Q7 sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] *pScratchOut points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_q7( + arm_fir_sparse_instance_q7* S, + q7_t* pSrc, + q7_t* pDst, + q7_t* pScratchIn, + q31_t* pScratchOut, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q7 sparse FIR filter. + * @param[in,out] *S points to an instance of the Q7 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_q7( + arm_fir_sparse_instance_q7* S, + uint16_t numTaps, + q7_t* pCoeffs, + q7_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + + +/* + * @brief Floating-point sin_cos function. + * @param[in] theta input value in degrees + * @param[out] *pSinVal points to the processed sine output. + * @param[out] *pCosVal points to the processed cos output. + * @return none. + */ + +void arm_sin_cos_f32( + float32_t theta, + float32_t* pSinVal, + float32_t* pCcosVal); + +/* + * @brief Q31 sin_cos function. + * @param[in] theta scaled input value in degrees + * @param[out] *pSinVal points to the processed sine output. + * @param[out] *pCosVal points to the processed cosine output. + * @return none. + */ + +void arm_sin_cos_q31( + q31_t theta, + q31_t* pSinVal, + q31_t* pCosVal); + + +/** + * @brief Floating-point complex conjugate. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_conj_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex conjugate. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_conj_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex conjugate. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_conj_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t numSamples); + + + +/** + * @brief Floating-point complex magnitude squared + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_squared_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex magnitude squared + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_squared_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex magnitude squared + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_squared_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t numSamples); + + +/** + * @ingroup groupController + */ + +/** + * @defgroup PID PID Motor Control + * + * A Proportional Integral Derivative (PID) controller is a generic feedback control + * loop mechanism widely used in industrial control systems. + * A PID controller is the most commonly used type of feedback controller. + * + * This set of functions implements (PID) controllers + * for Q15, Q31, and floating-point data types. The functions operate on a single sample + * of data and each call to the function returns a single processed value. + * S points to an instance of the PID control data structure. in + * is the input sample value. The functions return the output value. + * + * \par Algorithm: + *
+ *    y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2]
+ *    A0 = Kp + Ki + Kd
+ *    A1 = (-Kp ) - (2 * Kd )
+ *    A2 = Kd  
+ * + * \par + * where \c Kp is proportional constant, \c Ki is Integral constant and \c Kd is Derivative constant + * + * \par + * \image html PID.gif "Proportional Integral Derivative Controller" + * + * \par + * The PID controller calculates an "error" value as the difference between + * the measured output and the reference input. + * The controller attempts to minimize the error by adjusting the process control inputs. + * The proportional value determines the reaction to the current error, + * the integral value determines the reaction based on the sum of recent errors, + * and the derivative value determines the reaction based on the rate at which the error has been changing. + * + * \par Instance Structure + * The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instance data structure. + * A separate instance structure must be defined for each PID Controller. + * There are separate instance structure declarations for each of the 3 supported data types. + * + * \par Reset Functions + * There is also an associated reset function for each data type which clears the state array. + * + * \par Initialization Functions + * There is also an associated initialization function for each data type. + * The initialization function performs the following operations: + * - Initializes the Gains A0, A1, A2 from Kp,Ki, Kd gains. + * - Zeros out the values in the state buffer. + * + * \par + * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function. + * + * \par Fixed-Point Behavior + * Care must be taken when using the fixed-point versions of the PID Controller functions. + * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup PID + * @{ + */ + +/** + * @brief Process function for the floating-point PID Control. + * @param[in,out] *S is an instance of the floating-point PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + */ + + +static __INLINE float32_t arm_pid_f32( + arm_pid_instance_f32* S, + float32_t in) +{ + float32_t out; + + /* y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] */ + out = (S->A0 * in) + + (S->A1 * S->state[0]) + (S->A2 * S->state[1]) + (S->state[2]); + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + +} + +/** + * @brief Process function for the Q31 PID Control. + * @param[in,out] *S points to an instance of the Q31 PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 64-bit accumulator. + * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. + * Thus, if the accumulator result overflows it wraps around rather than clip. + * In order to avoid overflows completely the input signal must be scaled down by 2 bits as there are four additions. + * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. + */ + +static __INLINE q31_t arm_pid_q31( + arm_pid_instance_q31* S, + q31_t in) +{ + q63_t acc; + q31_t out; + + /* acc = A0 * x[n] */ + acc = (q63_t) S->A0 * in; + + /* acc += A1 * x[n-1] */ + acc += (q63_t) S->A1 * S->state[0]; + + /* acc += A2 * x[n-2] */ + acc += (q63_t) S->A2 * S->state[1]; + + /* convert output to 1.31 format to add y[n-1] */ + out = (q31_t) (acc >> 31u); + + /* out += y[n-1] */ + out += S->state[2]; + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + +} + +/** + * @brief Process function for the Q15 PID Control. + * @param[in,out] *S points to an instance of the Q15 PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using a 64-bit internal accumulator. + * Both Gains and state variables are represented in 1.15 format and multiplications yield a 2.30 result. + * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. + * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. + * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. + * Lastly, the accumulator is saturated to yield a result in 1.15 format. + */ + +static __INLINE q15_t arm_pid_q15( + arm_pid_instance_q15* S, + q15_t in) +{ + q63_t acc; + q15_t out; + +#ifndef ARM_MATH_CM0_FAMILY + __SIMD32_TYPE* vstate; + + /* Implementation of PID controller */ + + /* acc = A0 * x[n] */ + acc = (q31_t) __SMUAD(S->A0, in); + + /* acc += A1 * x[n-1] + A2 * x[n-2] */ + vstate = __SIMD32_CONST(S->state); + acc = __SMLALD(S->A1, (q31_t) * vstate, acc); + +#else + /* acc = A0 * x[n] */ + acc = ((q31_t) S->A0) * in; + + /* acc += A1 * x[n-1] + A2 * x[n-2] */ + acc += (q31_t) S->A1 * S->state[0]; + acc += (q31_t) S->A2 * S->state[1]; + +#endif + + /* acc += y[n-1] */ + acc += (q31_t) S->state[2] << 15; + + /* saturate the output */ + out = (q15_t) (__SSAT((acc >> 15), 16)); + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + +} + +/** + * @} end of PID group + */ + + +/** + * @brief Floating-point matrix inverse. + * @param[in] *src points to the instance of the input floating-point matrix structure. + * @param[out] *dst points to the instance of the output floating-point matrix structure. + * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match. + * If the input matrix is singular (does not have an inverse), then the algorithm terminates and returns error status ARM_MATH_SINGULAR. + */ + +arm_status arm_mat_inverse_f32( + const arm_matrix_instance_f32* src, + arm_matrix_instance_f32* dst); + + +/** + * @brief Floating-point matrix inverse. + * @param[in] *src points to the instance of the input floating-point matrix structure. + * @param[out] *dst points to the instance of the output floating-point matrix structure. + * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match. + * If the input matrix is singular (does not have an inverse), then the algorithm terminates and returns error status ARM_MATH_SINGULAR. + */ + +arm_status arm_mat_inverse_f64( + const arm_matrix_instance_f64* src, + arm_matrix_instance_f64* dst); + + + +/** + * @ingroup groupController + */ + + +/** + * @defgroup clarke Vector Clarke Transform + * Forward Clarke transform converts the instantaneous stator phases into a two-coordinate time invariant vector. + * Generally the Clarke transform uses three-phase currents Ia, Ib and Ic to calculate currents + * in the two-phase orthogonal stator axis Ialpha and Ibeta. + * When Ialpha is superposed with Ia as shown in the figure below + * \image html clarke.gif Stator current space vector and its components in (a,b). + * and Ia + Ib + Ic = 0, in this condition Ialpha and Ibeta + * can be calculated using only Ia and Ib. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html clarkeFormula.gif + * where Ia and Ib are the instantaneous stator phases and + * pIalpha and pIbeta are the two coordinates of time invariant vector. + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Clarke transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup clarke + * @{ + */ + +/** + * + * @brief Floating-point Clarke transform + * @param[in] Ia input three-phase coordinate a + * @param[in] Ib input three-phase coordinate b + * @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] *pIbeta points to output two-phase orthogonal vector axis beta + * @return none. + */ + +static __INLINE void arm_clarke_f32( + float32_t Ia, + float32_t Ib, + float32_t* pIalpha, + float32_t* pIbeta) +{ + /* Calculate pIalpha using the equation, pIalpha = Ia */ + *pIalpha = Ia; + + /* Calculate pIbeta using the equation, pIbeta = (1/sqrt(3)) * Ia + (2/sqrt(3)) * Ib */ + *pIbeta = + ((float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib); + +} + +/** + * @brief Clarke transform for Q31 version + * @param[in] Ia input three-phase coordinate a + * @param[in] Ib input three-phase coordinate b + * @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] *pIbeta points to output two-phase orthogonal vector axis beta + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition, hence there is no risk of overflow. + */ + +static __INLINE void arm_clarke_q31( + q31_t Ia, + q31_t Ib, + q31_t* pIalpha, + q31_t* pIbeta) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + + /* Calculating pIalpha from Ia by equation pIalpha = Ia */ + *pIalpha = Ia; + + /* Intermediate product is calculated by (1/(sqrt(3)) * Ia) */ + product1 = (q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30); + + /* Intermediate product is calculated by (2/sqrt(3) * Ib) */ + product2 = (q31_t) (((q63_t) Ib * 0x49E69D16) >> 30); + + /* pIbeta is calculated by adding the intermediate products */ + *pIbeta = __QADD(product1, product2); +} + +/** + * @} end of clarke group + */ + +/** + * @brief Converts the elements of the Q7 vector to Q31 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_q7_to_q31( + q7_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + + + +/** + * @ingroup groupController + */ + +/** + * @defgroup inv_clarke Vector Inverse Clarke Transform + * Inverse Clarke transform converts the two-coordinate time invariant vector into instantaneous stator phases. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html clarkeInvFormula.gif + * where pIa and pIb are the instantaneous stator phases and + * Ialpha and Ibeta are the two coordinates of time invariant vector. + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Clarke transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup inv_clarke + * @{ + */ + +/** +* @brief Floating-point Inverse Clarke transform +* @param[in] Ialpha input two-phase orthogonal vector axis alpha +* @param[in] Ibeta input two-phase orthogonal vector axis beta +* @param[out] *pIa points to output three-phase coordinate a +* @param[out] *pIb points to output three-phase coordinate b +* @return none. +*/ + + +static __INLINE void arm_inv_clarke_f32( + float32_t Ialpha, + float32_t Ibeta, + float32_t* pIa, + float32_t* pIb) +{ + /* Calculating pIa from Ialpha by equation pIa = Ialpha */ + *pIa = Ialpha; + + /* Calculating pIb from Ialpha and Ibeta by equation pIb = -(1/2) * Ialpha + (sqrt(3)/2) * Ibeta */ + *pIb = -0.5 * Ialpha + (float32_t) 0.8660254039 * Ibeta; + +} + +/** + * @brief Inverse Clarke transform for Q31 version + * @param[in] Ialpha input two-phase orthogonal vector axis alpha + * @param[in] Ibeta input two-phase orthogonal vector axis beta + * @param[out] *pIa points to output three-phase coordinate a + * @param[out] *pIb points to output three-phase coordinate b + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the subtraction, hence there is no risk of overflow. + */ + +static __INLINE void arm_inv_clarke_q31( + q31_t Ialpha, + q31_t Ibeta, + q31_t* pIa, + q31_t* pIb) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + + /* Calculating pIa from Ialpha by equation pIa = Ialpha */ + *pIa = Ialpha; + + /* Intermediate product is calculated by (1/(2*sqrt(3)) * Ia) */ + product1 = (q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31); + + /* Intermediate product is calculated by (1/sqrt(3) * pIb) */ + product2 = (q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31); + + /* pIb is calculated by subtracting the products */ + *pIb = __QSUB(product2, product1); + +} + +/** + * @} end of inv_clarke group + */ + +/** + * @brief Converts the elements of the Q7 vector to Q15 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_q7_to_q15( + q7_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + + +/** + * @ingroup groupController + */ + +/** + * @defgroup park Vector Park Transform + * + * Forward Park transform converts the input two-coordinate vector to flux and torque components. + * The Park transform can be used to realize the transformation of the Ialpha and the Ibeta currents + * from the stationary to the moving reference frame and control the spatial relationship between + * the stator vector current and rotor flux vector. + * If we consider the d axis aligned with the rotor flux, the diagram below shows the + * current vector and the relationship from the two reference frames: + * \image html park.gif "Stator current space vector and its component in (a,b) and in the d,q rotating reference frame" + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html parkFormula.gif + * where Ialpha and Ibeta are the stator vector components, + * pId and pIq are rotor vector components and cosVal and sinVal are the + * cosine and sine values of theta (rotor flux position). + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Park transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup park + * @{ + */ + +/** + * @brief Floating-point Park transform + * @param[in] Ialpha input two-phase vector coordinate alpha + * @param[in] Ibeta input two-phase vector coordinate beta + * @param[out] *pId points to output rotor reference frame d + * @param[out] *pIq points to output rotor reference frame q + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * @return none. + * + * The function implements the forward Park transform. + * + */ + +static __INLINE void arm_park_f32( + float32_t Ialpha, + float32_t Ibeta, + float32_t* pId, + float32_t* pIq, + float32_t sinVal, + float32_t cosVal) +{ + /* Calculate pId using the equation, pId = Ialpha * cosVal + Ibeta * sinVal */ + *pId = Ialpha * cosVal + Ibeta * sinVal; + + /* Calculate pIq using the equation, pIq = - Ialpha * sinVal + Ibeta * cosVal */ + *pIq = -Ialpha * sinVal + Ibeta * cosVal; + +} + +/** + * @brief Park transform for Q31 version + * @param[in] Ialpha input two-phase vector coordinate alpha + * @param[in] Ibeta input two-phase vector coordinate beta + * @param[out] *pId points to output rotor reference frame d + * @param[out] *pIq points to output rotor reference frame q + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition and subtraction, hence there is no risk of overflow. + */ + + +static __INLINE void arm_park_q31( + q31_t Ialpha, + q31_t Ibeta, + q31_t* pId, + q31_t* pIq, + q31_t sinVal, + q31_t cosVal) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + q31_t product3, product4; /* Temporary variables used to store intermediate results */ + + /* Intermediate product is calculated by (Ialpha * cosVal) */ + product1 = (q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31); + + /* Intermediate product is calculated by (Ibeta * sinVal) */ + product2 = (q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31); + + + /* Intermediate product is calculated by (Ialpha * sinVal) */ + product3 = (q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31); + + /* Intermediate product is calculated by (Ibeta * cosVal) */ + product4 = (q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31); + + /* Calculate pId by adding the two intermediate products 1 and 2 */ + *pId = __QADD(product1, product2); + + /* Calculate pIq by subtracting the two intermediate products 3 from 4 */ + *pIq = __QSUB(product4, product3); +} + +/** + * @} end of park group + */ + +/** + * @brief Converts the elements of the Q7 vector to floating-point vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q7_to_float( + q7_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @ingroup groupController + */ + +/** + * @defgroup inv_park Vector Inverse Park transform + * Inverse Park transform converts the input flux and torque components to two-coordinate vector. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html parkInvFormula.gif + * where pIalpha and pIbeta are the stator vector components, + * Id and Iq are rotor vector components and cosVal and sinVal are the + * cosine and sine values of theta (rotor flux position). + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Park transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup inv_park + * @{ + */ + +/** +* @brief Floating-point Inverse Park transform +* @param[in] Id input coordinate of rotor reference frame d +* @param[in] Iq input coordinate of rotor reference frame q +* @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha +* @param[out] *pIbeta points to output two-phase orthogonal vector axis beta +* @param[in] sinVal sine value of rotation angle theta +* @param[in] cosVal cosine value of rotation angle theta +* @return none. +*/ + +static __INLINE void arm_inv_park_f32( + float32_t Id, + float32_t Iq, + float32_t* pIalpha, + float32_t* pIbeta, + float32_t sinVal, + float32_t cosVal) +{ + /* Calculate pIalpha using the equation, pIalpha = Id * cosVal - Iq * sinVal */ + *pIalpha = Id * cosVal - Iq * sinVal; + + /* Calculate pIbeta using the equation, pIbeta = Id * sinVal + Iq * cosVal */ + *pIbeta = Id * sinVal + Iq * cosVal; + +} + + +/** + * @brief Inverse Park transform for Q31 version + * @param[in] Id input coordinate of rotor reference frame d + * @param[in] Iq input coordinate of rotor reference frame q + * @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] *pIbeta points to output two-phase orthogonal vector axis beta + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition, hence there is no risk of overflow. + */ + + +static __INLINE void arm_inv_park_q31( + q31_t Id, + q31_t Iq, + q31_t* pIalpha, + q31_t* pIbeta, + q31_t sinVal, + q31_t cosVal) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + q31_t product3, product4; /* Temporary variables used to store intermediate results */ + + /* Intermediate product is calculated by (Id * cosVal) */ + product1 = (q31_t) (((q63_t) (Id) * (cosVal)) >> 31); + + /* Intermediate product is calculated by (Iq * sinVal) */ + product2 = (q31_t) (((q63_t) (Iq) * (sinVal)) >> 31); + + + /* Intermediate product is calculated by (Id * sinVal) */ + product3 = (q31_t) (((q63_t) (Id) * (sinVal)) >> 31); + + /* Intermediate product is calculated by (Iq * cosVal) */ + product4 = (q31_t) (((q63_t) (Iq) * (cosVal)) >> 31); + + /* Calculate pIalpha by using the two intermediate products 1 and 2 */ + *pIalpha = __QSUB(product1, product2); + + /* Calculate pIbeta by using the two intermediate products 3 and 4 */ + *pIbeta = __QADD(product4, product3); + +} + +/** + * @} end of Inverse park group + */ + + +/** + * @brief Converts the elements of the Q31 vector to floating-point vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q31_to_float( + q31_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @ingroup groupInterpolation + */ + +/** + * @defgroup LinearInterpolate Linear Interpolation + * + * Linear interpolation is a method of curve fitting using linear polynomials. + * Linear interpolation works by effectively drawing a straight line between two neighboring samples and returning the appropriate point along that line + * + * \par + * \image html LinearInterp.gif "Linear interpolation" + * + * \par + * A Linear Interpolate function calculates an output value(y), for the input(x) + * using linear interpolation of the input values x0, x1( nearest input values) and the output values y0 and y1(nearest output values) + * + * \par Algorithm: + *
+ *       y = y0 + (x - x0) * ((y1 - y0)/(x1-x0))
+ *       where x0, x1 are nearest values of input x
+ *             y0, y1 are nearest values to output y
+ * 
+ * + * \par + * This set of functions implements Linear interpolation process + * for Q7, Q15, Q31, and floating-point data types. The functions operate on a single + * sample of data and each call to the function returns a single processed value. + * S points to an instance of the Linear Interpolate function data structure. + * x is the input sample value. The functions returns the output value. + * + * \par + * if x is outside of the table boundary, Linear interpolation returns first value of the table + * if x is below input range and returns last value of table if x is above range. + */ + +/** + * @addtogroup LinearInterpolate + * @{ + */ + +/** + * @brief Process function for the floating-point Linear Interpolation Function. + * @param[in,out] *S is an instance of the floating-point Linear Interpolation structure + * @param[in] x input sample to process + * @return y processed output sample. + * + */ + +static __INLINE float32_t arm_linear_interp_f32( + arm_linear_interp_instance_f32* S, + float32_t x) +{ + + float32_t y; + float32_t x0, x1; /* Nearest input values */ + float32_t y0, y1; /* Nearest output values */ + float32_t xSpacing = S->xSpacing; /* spacing between input values */ + int32_t i; /* Index variable */ + float32_t* pYData = S->pYData; /* pointer to output table */ + + /* Calculation of index */ + i = (int32_t) ((x - S->x1) / xSpacing); + + if(i < 0) { + /* Iniatilize output for below specified range as least output value of table */ + y = pYData[0]; + } + else if((uint32_t)i >= S->nValues) { + /* Iniatilize output for above specified range as last output value of table */ + y = pYData[S->nValues - 1]; + } + else { + /* Calculation of nearest input values */ + x0 = S->x1 + i * xSpacing; + x1 = S->x1 + (i + 1) * xSpacing; + + /* Read of nearest output values */ + y0 = pYData[i]; + y1 = pYData[i + 1]; + + /* Calculation of output */ + y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0)); + + } + + /* returns output value */ + return (y); +} + +/** +* +* @brief Process function for the Q31 Linear Interpolation Function. +* @param[in] *pYData pointer to Q31 Linear Interpolation table +* @param[in] x input sample to process +* @param[in] nValues number of table values +* @return y processed output sample. +* +* \par +* Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. +* This function can support maximum of table size 2^12. +* +*/ + + +static __INLINE q31_t arm_linear_interp_q31( + q31_t* pYData, + q31_t x, + uint32_t nValues) +{ + q31_t y; /* output */ + q31_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + int32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + index = ((x & 0xFFF00000) >> 20); + + if(index >= (int32_t)(nValues - 1)) { + return (pYData[nValues - 1]); + } + else if(index < 0) { + return (pYData[0]); + } + else { + + /* 20 bits for the fractional part */ + /* shift left by 11 to keep fract in 1.31 format */ + fract = (x & 0x000FFFFF) << 11; + + /* Read two nearest output values from the index in 1.31(q31) format */ + y0 = pYData[index]; + y1 = pYData[index + 1u]; + + /* Calculation of y0 * (1-fract) and y is in 2.30 format */ + y = ((q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32)); + + /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */ + y += ((q31_t) (((q63_t) y1 * fract) >> 32)); + + /* Convert y to 1.31 format */ + return (y << 1u); + + } + +} + +/** + * + * @brief Process function for the Q15 Linear Interpolation Function. + * @param[in] *pYData pointer to Q15 Linear Interpolation table + * @param[in] x input sample to process + * @param[in] nValues number of table values + * @return y processed output sample. + * + * \par + * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. + * This function can support maximum of table size 2^12. + * + */ + + +static __INLINE q15_t arm_linear_interp_q15( + q15_t* pYData, + q31_t x, + uint32_t nValues) +{ + q63_t y; /* output */ + q15_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + int32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + index = ((x & 0xFFF00000) >> 20u); + + if(index >= (int32_t)(nValues - 1)) { + return (pYData[nValues - 1]); + } + else if(index < 0) { + return (pYData[0]); + } + else { + /* 20 bits for the fractional part */ + /* fract is in 12.20 format */ + fract = (x & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y0 = pYData[index]; + y1 = pYData[index + 1u]; + + /* Calculation of y0 * (1-fract) and y is in 13.35 format */ + y = ((q63_t) y0 * (0xFFFFF - fract)); + + /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */ + y += ((q63_t) y1 * (fract)); + + /* convert y to 1.15 format */ + return (y >> 20); + } + + +} + +/** + * + * @brief Process function for the Q7 Linear Interpolation Function. + * @param[in] *pYData pointer to Q7 Linear Interpolation table + * @param[in] x input sample to process + * @param[in] nValues number of table values + * @return y processed output sample. + * + * \par + * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. + * This function can support maximum of table size 2^12. + */ + + +static __INLINE q7_t arm_linear_interp_q7( + q7_t* pYData, + q31_t x, + uint32_t nValues) +{ + q31_t y; /* output */ + q7_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + uint32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + if (x < 0) { + return (pYData[0]); + } + index = (x >> 20) & 0xfff; + + + if(index >= (nValues - 1)) { + return (pYData[nValues - 1]); + } + else { + + /* 20 bits for the fractional part */ + /* fract is in 12.20 format */ + fract = (x & 0x000FFFFF); + + /* Read two nearest output values from the index and are in 1.7(q7) format */ + y0 = pYData[index]; + y1 = pYData[index + 1u]; + + /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */ + y = ((y0 * (0xFFFFF - fract))); + + /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */ + y += (y1 * fract); + + /* convert y to 1.7(q7) format */ + return (y >> 20u); + + } + +} +/** + * @} end of LinearInterpolate group + */ + +/** + * @brief Fast approximation to the trigonometric sine function for floating-point data. + * @param[in] x input value in radians. + * @return sin(x). + */ + +float32_t arm_sin_f32( + float32_t x); + +/** + * @brief Fast approximation to the trigonometric sine function for Q31 data. + * @param[in] x Scaled input value in radians. + * @return sin(x). + */ + +q31_t arm_sin_q31( + q31_t x); + +/** + * @brief Fast approximation to the trigonometric sine function for Q15 data. + * @param[in] x Scaled input value in radians. + * @return sin(x). + */ + +q15_t arm_sin_q15( + q15_t x); + +/** + * @brief Fast approximation to the trigonometric cosine function for floating-point data. + * @param[in] x input value in radians. + * @return cos(x). + */ + +float32_t arm_cos_f32( + float32_t x); + +/** + * @brief Fast approximation to the trigonometric cosine function for Q31 data. + * @param[in] x Scaled input value in radians. + * @return cos(x). + */ + +q31_t arm_cos_q31( + q31_t x); + +/** + * @brief Fast approximation to the trigonometric cosine function for Q15 data. + * @param[in] x Scaled input value in radians. + * @return cos(x). + */ + +q15_t arm_cos_q15( + q15_t x); + + +/** + * @ingroup groupFastMath + */ + + +/** + * @defgroup SQRT Square Root + * + * Computes the square root of a number. + * There are separate functions for Q15, Q31, and floating-point data types. + * The square root function is computed using the Newton-Raphson algorithm. + * This is an iterative algorithm of the form: + *
+ *      x1 = x0 - f(x0)/f'(x0)
+ * 
+ * where x1 is the current estimate, + * x0 is the previous estimate, and + * f'(x0) is the derivative of f() evaluated at x0. + * For the square root function, the algorithm reduces to: + *
+ *     x0 = in/2                         [initial guess]
+ *     x1 = 1/2 * ( x0 + in / x0)        [each iteration]
+ * 
+ */ + + +/** + * @addtogroup SQRT + * @{ + */ + +/** + * @brief Floating-point square root function. + * @param[in] in input value. + * @param[out] *pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ + +static __INLINE arm_status arm_sqrt_f32( + float32_t in, + float32_t* pOut) +{ + if(in > 0) { + +// #if __FPU_USED +#if (__FPU_USED == 1) && defined ( __CC_ARM ) + *pOut = __sqrtf(in); +#else + *pOut = sqrtf(in); +#endif + + return (ARM_MATH_SUCCESS); + } + else { + *pOut = 0.0f; + return (ARM_MATH_ARGUMENT_ERROR); + } + +} + + +/** + * @brief Q31 square root function. + * @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF. + * @param[out] *pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ +arm_status arm_sqrt_q31( + q31_t in, + q31_t* pOut); + +/** + * @brief Q15 square root function. + * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF. + * @param[out] *pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ +arm_status arm_sqrt_q15( + q15_t in, + q15_t* pOut); + +/** + * @} end of SQRT group + */ + + + + + + +/** + * @brief floating-point Circular write function. + */ + +static __INLINE void arm_circularWrite_f32( + int32_t* circBuffer, + int32_t L, + uint16_t* writeOffset, + int32_t bufferInc, + const int32_t* src, + int32_t srcInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if(wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = wOffset; +} + + + +/** + * @brief floating-point Circular Read function. + */ +static __INLINE void arm_circularRead_f32( + int32_t* circBuffer, + int32_t L, + int32_t* readOffset, + int32_t bufferInc, + int32_t* dst, + int32_t* dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if(dst == (int32_t*) dst_end) { + dst = dst_base; + } + + /* Circularly update rOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if(rOffset >= L) { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; +} + +/** + * @brief Q15 Circular write function. + */ + +static __INLINE void arm_circularWrite_q15( + q15_t* circBuffer, + int32_t L, + uint16_t* writeOffset, + int32_t bufferInc, + const q15_t* src, + int32_t srcInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if(wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = wOffset; +} + + + +/** + * @brief Q15 Circular Read function. + */ +static __INLINE void arm_circularRead_q15( + q15_t* circBuffer, + int32_t L, + int32_t* readOffset, + int32_t bufferInc, + q15_t* dst, + q15_t* dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) +{ + uint32_t i = 0; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if(dst == (q15_t*) dst_end) { + dst = dst_base; + } + + /* Circularly update wOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if(rOffset >= L) { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; +} + + +/** + * @brief Q7 Circular write function. + */ + +static __INLINE void arm_circularWrite_q7( + q7_t* circBuffer, + int32_t L, + uint16_t* writeOffset, + int32_t bufferInc, + const q7_t* src, + int32_t srcInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if(wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = wOffset; +} + + + +/** + * @brief Q7 Circular Read function. + */ +static __INLINE void arm_circularRead_q7( + q7_t* circBuffer, + int32_t L, + int32_t* readOffset, + int32_t bufferInc, + q7_t* dst, + q7_t* dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) +{ + uint32_t i = 0; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if(dst == (q7_t*) dst_end) { + dst = dst_base; + } + + /* Circularly update rOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if(rOffset >= L) { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; +} + + +/** + * @brief Sum of the squares of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_q31( + q31_t* pSrc, + uint32_t blockSize, + q63_t* pResult); + +/** + * @brief Sum of the squares of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Sum of the squares of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_q15( + q15_t* pSrc, + uint32_t blockSize, + q63_t* pResult); + +/** + * @brief Sum of the squares of the elements of a Q7 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_q7( + q7_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Mean value of a Q7 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_mean_q7( + q7_t* pSrc, + uint32_t blockSize, + q7_t* pResult); + +/** + * @brief Mean value of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ +void arm_mean_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult); + +/** + * @brief Mean value of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ +void arm_mean_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Mean value of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ +void arm_mean_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Variance of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_var_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Variance of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_var_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Variance of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_var_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult); + +/** + * @brief Root Mean Square of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_rms_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Root Mean Square of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_rms_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Root Mean Square of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_rms_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult); + +/** + * @brief Standard deviation of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_std_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Standard deviation of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_std_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Standard deviation of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_std_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult); + +/** + * @brief Floating-point complex magnitude + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex magnitude + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex magnitude + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex dot product + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] *realResult real part of the result returned here + * @param[out] *imagResult imaginary part of the result returned here + * @return none. + */ + +void arm_cmplx_dot_prod_q15( + q15_t* pSrcA, + q15_t* pSrcB, + uint32_t numSamples, + q31_t* realResult, + q31_t* imagResult); + +/** + * @brief Q31 complex dot product + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] *realResult real part of the result returned here + * @param[out] *imagResult imaginary part of the result returned here + * @return none. + */ + +void arm_cmplx_dot_prod_q31( + q31_t* pSrcA, + q31_t* pSrcB, + uint32_t numSamples, + q63_t* realResult, + q63_t* imagResult); + +/** + * @brief Floating-point complex dot product + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] *realResult real part of the result returned here + * @param[out] *imagResult imaginary part of the result returned here + * @return none. + */ + +void arm_cmplx_dot_prod_f32( + float32_t* pSrcA, + float32_t* pSrcB, + uint32_t numSamples, + float32_t* realResult, + float32_t* imagResult); + +/** + * @brief Q15 complex-by-real multiplication + * @param[in] *pSrcCmplx points to the complex input vector + * @param[in] *pSrcReal points to the real input vector + * @param[out] *pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + * @return none. + */ + +void arm_cmplx_mult_real_q15( + q15_t* pSrcCmplx, + q15_t* pSrcReal, + q15_t* pCmplxDst, + uint32_t numSamples); + +/** + * @brief Q31 complex-by-real multiplication + * @param[in] *pSrcCmplx points to the complex input vector + * @param[in] *pSrcReal points to the real input vector + * @param[out] *pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + * @return none. + */ + +void arm_cmplx_mult_real_q31( + q31_t* pSrcCmplx, + q31_t* pSrcReal, + q31_t* pCmplxDst, + uint32_t numSamples); + +/** + * @brief Floating-point complex-by-real multiplication + * @param[in] *pSrcCmplx points to the complex input vector + * @param[in] *pSrcReal points to the real input vector + * @param[out] *pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + * @return none. + */ + +void arm_cmplx_mult_real_f32( + float32_t* pSrcCmplx, + float32_t* pSrcReal, + float32_t* pCmplxDst, + uint32_t numSamples); + +/** + * @brief Minimum value of a Q7 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *result is output pointer + * @param[in] index is the array index of the minimum value in the input buffer. + * @return none. + */ + +void arm_min_q7( + q7_t* pSrc, + uint32_t blockSize, + q7_t* result, + uint32_t* index); + +/** + * @brief Minimum value of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output pointer + * @param[in] *pIndex is the array index of the minimum value in the input buffer. + * @return none. + */ + +void arm_min_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult, + uint32_t* pIndex); + +/** + * @brief Minimum value of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output pointer + * @param[out] *pIndex is the array index of the minimum value in the input buffer. + * @return none. + */ +void arm_min_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult, + uint32_t* pIndex); + +/** + * @brief Minimum value of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output pointer + * @param[out] *pIndex is the array index of the minimum value in the input buffer. + * @return none. + */ + +void arm_min_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a Q7 vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_q7( + q7_t* pSrc, + uint32_t blockSize, + q7_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a Q15 vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a Q31 vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a floating-point vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult, + uint32_t* pIndex); + +/** + * @brief Q15 complex-by-complex multiplication + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_mult_cmplx_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex-by-complex multiplication + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_mult_cmplx_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Floating-point complex-by-complex multiplication + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_mult_cmplx_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Converts the elements of the floating-point vector to Q31 vector. + * @param[in] *pSrc points to the floating-point input vector + * @param[out] *pDst points to the Q31 output vector + * @param[in] blockSize length of the input vector + * @return none. + */ +void arm_float_to_q31( + float32_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the floating-point vector to Q15 vector. + * @param[in] *pSrc points to the floating-point input vector + * @param[out] *pDst points to the Q15 output vector + * @param[in] blockSize length of the input vector + * @return none + */ +void arm_float_to_q15( + float32_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the floating-point vector to Q7 vector. + * @param[in] *pSrc points to the floating-point input vector + * @param[out] *pDst points to the Q7 output vector + * @param[in] blockSize length of the input vector + * @return none + */ +void arm_float_to_q7( + float32_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + + +/** + * @brief Converts the elements of the Q31 vector to Q15 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q31_to_q15( + q31_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the Q31 vector to Q7 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q31_to_q7( + q31_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the Q15 vector to floating-point vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q15_to_float( + q15_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @brief Converts the elements of the Q15 vector to Q31 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q15_to_q31( + q15_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @brief Converts the elements of the Q15 vector to Q7 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q15_to_q7( + q15_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + + +/** + * @ingroup groupInterpolation + */ + +/** + * @defgroup BilinearInterpolate Bilinear Interpolation + * + * Bilinear interpolation is an extension of linear interpolation applied to a two dimensional grid. + * The underlying function f(x, y) is sampled on a regular grid and the interpolation process + * determines values between the grid points. + * Bilinear interpolation is equivalent to two step linear interpolation, first in the x-dimension and then in the y-dimension. + * Bilinear interpolation is often used in image processing to rescale images. + * The CMSIS DSP library provides bilinear interpolation functions for Q7, Q15, Q31, and floating-point data types. + * + * Algorithm + * \par + * The instance structure used by the bilinear interpolation functions describes a two dimensional data table. + * For floating-point, the instance structure is defined as: + *
+ *   typedef struct
+ *   {
+ *     uint16_t numRows;
+ *     uint16_t numCols;
+ *     float32_t *pData;
+ * } arm_bilinear_interp_instance_f32;
+ * 
+ * + * \par + * where numRows specifies the number of rows in the table; + * numCols specifies the number of columns in the table; + * and pData points to an array of size numRows*numCols values. + * The data table pTable is organized in row order and the supplied data values fall on integer indexes. + * That is, table element (x,y) is located at pTable[x + y*numCols] where x and y are integers. + * + * \par + * Let (x, y) specify the desired interpolation point. Then define: + *
+ *     XF = floor(x)
+ *     YF = floor(y)
+ * 
+ * \par + * The interpolated output point is computed as: + *
+ *  f(x, y) = f(XF, YF) * (1-(x-XF)) * (1-(y-YF))
+ *           + f(XF+1, YF) * (x-XF)*(1-(y-YF))
+ *           + f(XF, YF+1) * (1-(x-XF))*(y-YF)
+ *           + f(XF+1, YF+1) * (x-XF)*(y-YF)
+ * 
+ * Note that the coordinates (x, y) contain integer and fractional components. + * The integer components specify which portion of the table to use while the + * fractional components control the interpolation processor. + * + * \par + * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output. + */ + +/** + * @addtogroup BilinearInterpolate + * @{ + */ + +/** +* +* @brief Floating-point bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate. +* @param[in] Y interpolation coordinate. +* @return out interpolated value. +*/ + + +static __INLINE float32_t arm_bilinear_interp_f32( + const arm_bilinear_interp_instance_f32* S, + float32_t X, + float32_t Y) +{ + float32_t out; + float32_t f00, f01, f10, f11; + float32_t* pData = S->pData; + int32_t xIndex, yIndex, index; + float32_t xdiff, ydiff; + float32_t b1, b2, b3, b4; + + xIndex = (int32_t) X; + yIndex = (int32_t) Y; + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(xIndex < 0 || xIndex > (S->numRows - 1) || yIndex < 0 + || yIndex > (S->numCols - 1)) { + return (0); + } + + /* Calculation of index for two nearest points in X-direction */ + index = (xIndex - 1) + (yIndex - 1) * S->numCols; + + + /* Read two nearest points in X-direction */ + f00 = pData[index]; + f01 = pData[index + 1]; + + /* Calculation of index for two nearest points in Y-direction */ + index = (xIndex - 1) + (yIndex) * S->numCols; + + + /* Read two nearest points in Y-direction */ + f10 = pData[index]; + f11 = pData[index + 1]; + + /* Calculation of intermediate values */ + b1 = f00; + b2 = f01 - f00; + b3 = f10 - f00; + b4 = f00 - f01 - f10 + f11; + + /* Calculation of fractional part in X */ + xdiff = X - xIndex; + + /* Calculation of fractional part in Y */ + ydiff = Y - yIndex; + + /* Calculation of bi-linear interpolated output */ + out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff; + + /* return to application */ + return (out); + +} + +/** +* +* @brief Q31 bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate in 12.20 format. +* @param[in] Y interpolation coordinate in 12.20 format. +* @return out interpolated value. +*/ + +static __INLINE q31_t arm_bilinear_interp_q31( + arm_bilinear_interp_instance_q31* S, + q31_t X, + q31_t Y) +{ + q31_t out; /* Temporary output */ + q31_t acc = 0; /* output */ + q31_t xfract, yfract; /* X, Y fractional parts */ + q31_t x1, x2, y1, y2; /* Nearest output values */ + int32_t rI, cI; /* Row and column indices */ + q31_t* pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & 0xFFF00000) >> 20u); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & 0xFFF00000) >> 20u); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) { + return (0); + } + + /* 20 bits for the fractional part */ + /* shift left xfract by 11 to keep 1.31 format */ + xfract = (X & 0x000FFFFF) << 11u; + + /* Read two nearest output values from the index */ + x1 = pYData[(rI) + nCols * (cI)]; + x2 = pYData[(rI) + nCols * (cI) + 1u]; + + /* 20 bits for the fractional part */ + /* shift left yfract by 11 to keep 1.31 format */ + yfract = (Y & 0x000FFFFF) << 11u; + + /* Read two nearest output values from the index */ + y1 = pYData[(rI) + nCols * (cI + 1)]; + y2 = pYData[(rI) + nCols * (cI + 1) + 1u]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 3.29(q29) format */ + out = ((q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32)); + acc = ((q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32)); + + /* x2 * (xfract) * (1-yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (xfract) >> 32)); + + /* y1 * (1 - xfract) * (yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (yfract) >> 32)); + + /* y2 * (xfract) * (yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) y2 * (xfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (yfract) >> 32)); + + /* Convert acc to 1.31(q31) format */ + return (acc << 2u); + +} + +/** +* @brief Q15 bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate in 12.20 format. +* @param[in] Y interpolation coordinate in 12.20 format. +* @return out interpolated value. +*/ + +static __INLINE q15_t arm_bilinear_interp_q15( + arm_bilinear_interp_instance_q15* S, + q31_t X, + q31_t Y) +{ + q63_t acc = 0; /* output */ + q31_t out; /* Temporary output */ + q15_t x1, x2, y1, y2; /* Nearest output values */ + q31_t xfract, yfract; /* X, Y fractional parts */ + int32_t rI, cI; /* Row and column indices */ + q15_t* pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & 0xFFF00000) >> 20); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & 0xFFF00000) >> 20); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) { + return (0); + } + + /* 20 bits for the fractional part */ + /* xfract should be in 12.20 format */ + xfract = (X & 0x000FFFFF); + + /* Read two nearest output values from the index */ + x1 = pYData[(rI) + nCols * (cI)]; + x2 = pYData[(rI) + nCols * (cI) + 1u]; + + + /* 20 bits for the fractional part */ + /* yfract should be in 12.20 format */ + yfract = (Y & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y1 = pYData[(rI) + nCols * (cI + 1)]; + y2 = pYData[(rI) + nCols * (cI + 1) + 1u]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 13.51 format */ + + /* x1 is in 1.15(q15), xfract in 12.20 format and out is in 13.35 format */ + /* convert 13.35 to 13.31 by right shifting and out is in 1.31 */ + out = (q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4u); + acc = ((q63_t) out * (0xFFFFF - yfract)); + + /* x2 * (xfract) * (1-yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4u); + acc += ((q63_t) out * (xfract)); + + /* y1 * (1 - xfract) * (yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4u); + acc += ((q63_t) out * (yfract)); + + /* y2 * (xfract) * (yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) y2 * (xfract)) >> 4u); + acc += ((q63_t) out * (yfract)); + + /* acc is in 13.51 format and down shift acc by 36 times */ + /* Convert out to 1.15 format */ + return (acc >> 36); + +} + +/** +* @brief Q7 bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate in 12.20 format. +* @param[in] Y interpolation coordinate in 12.20 format. +* @return out interpolated value. +*/ + +static __INLINE q7_t arm_bilinear_interp_q7( + arm_bilinear_interp_instance_q7* S, + q31_t X, + q31_t Y) +{ + q63_t acc = 0; /* output */ + q31_t out; /* Temporary output */ + q31_t xfract, yfract; /* X, Y fractional parts */ + q7_t x1, x2, y1, y2; /* Nearest output values */ + int32_t rI, cI; /* Row and column indices */ + q7_t* pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & 0xFFF00000) >> 20); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & 0xFFF00000) >> 20); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) { + return (0); + } + + /* 20 bits for the fractional part */ + /* xfract should be in 12.20 format */ + xfract = (X & 0x000FFFFF); + + /* Read two nearest output values from the index */ + x1 = pYData[(rI) + nCols * (cI)]; + x2 = pYData[(rI) + nCols * (cI) + 1u]; + + + /* 20 bits for the fractional part */ + /* yfract should be in 12.20 format */ + yfract = (Y & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y1 = pYData[(rI) + nCols * (cI + 1)]; + y2 = pYData[(rI) + nCols * (cI + 1) + 1u]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 16.47 format */ + out = ((x1 * (0xFFFFF - xfract))); + acc = (((q63_t) out * (0xFFFFF - yfract))); + + /* x2 * (xfract) * (1-yfract) in 2.22 and adding to acc */ + out = ((x2 * (0xFFFFF - yfract))); + acc += (((q63_t) out * (xfract))); + + /* y1 * (1 - xfract) * (yfract) in 2.22 and adding to acc */ + out = ((y1 * (0xFFFFF - xfract))); + acc += (((q63_t) out * (yfract))); + + /* y2 * (xfract) * (yfract) in 2.22 and adding to acc */ + out = ((y2 * (yfract))); + acc += (((q63_t) out * (xfract))); + + /* acc in 16.47 format and down shift by 40 to convert to 1.7 format */ + return (acc >> 40); + +} + +/** + * @} end of BilinearInterpolate group + */ + + +//SMMLAR +#define multAcc_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32) + +//SMMLSR +#define multSub_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32) + +//SMMULR +#define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32) + +//SMMLA +#define multAcc_32x32_keep32(a, x, y) \ + a += (q31_t) (((q63_t) x * y) >> 32) + +//SMMLS +#define multSub_32x32_keep32(a, x, y) \ + a -= (q31_t) (((q63_t) x * y) >> 32) + +//SMMUL +#define mult_32x32_keep32(a, x, y) \ + a = (q31_t) (((q63_t) x * y ) >> 32) + + +#if defined ( __CC_ARM ) //Keil + +//Enter low optimization region - place directly above function definition +#ifdef ARM_MATH_CM4 +#define LOW_OPTIMIZATION_ENTER \ + _Pragma ("push") \ + _Pragma ("O1") +#else +#define LOW_OPTIMIZATION_ENTER +#endif + +//Exit low optimization region - place directly after end of function definition +#ifdef ARM_MATH_CM4 +#define LOW_OPTIMIZATION_EXIT \ + _Pragma ("pop") +#else +#define LOW_OPTIMIZATION_EXIT +#endif + +//Enter low optimization region - place directly above function definition +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER + +//Exit low optimization region - place directly after end of function definition +#define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined(__ICCARM__) //IAR + +//Enter low optimization region - place directly above function definition +#ifdef ARM_MATH_CM4 +#define LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") +#else +#define LOW_OPTIMIZATION_ENTER +#endif + +//Exit low optimization region - place directly after end of function definition +#define LOW_OPTIMIZATION_EXIT + +//Enter low optimization region - place directly above function definition +#ifdef ARM_MATH_CM4 +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") +#else +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER +#endif + +//Exit low optimization region - place directly after end of function definition +#define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined(__GNUC__) + +#define LOW_OPTIMIZATION_ENTER __attribute__(( optimize("-O1") )) + +#define LOW_OPTIMIZATION_EXIT + +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER + +#define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined(__CSMC__) // Cosmic + +#define LOW_OPTIMIZATION_ENTER +#define LOW_OPTIMIZATION_EXIT +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER +#define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif /* _ARM_MATH_H */ + +/** + * + * End of file. + */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0.h new file mode 100644 index 000000000..e326d90b1 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0.h @@ -0,0 +1,704 @@ +/**************************************************************************//** + * @file core_cm0.h + * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File + * @version V4.00 + * @date 22. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_CM0_H_GENERIC +#define __CORE_CM0_H_GENERIC + +#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 + @{ + */ + +/* CMSIS CM0 definitions */ +#define __CM0_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */ +#define __CM0_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ +#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16) | \ + __CM0_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x00) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) +#define __packed +#define __ASM _asm /*!< asm keyword for COSMIC Compiler */ +#define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI__VFP_SUPPORT____ +#warning "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__ ) /* Cosmic */ +#if ( __CSMC__ & 0x400) // FPU present for parser +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#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 0x0000 +#warning "__CM0_REV not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 2 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[1]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31]; + __IO uint32_t ICER[1]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31]; + __IO uint32_t ISPR[1]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31]; + __IO uint32_t ICPR[1]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31]; + uint32_t RESERVED4[64]; + __IO uint32_t IP[8]; /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IO uint32_t SHP[2]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< 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 15 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M0 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. + @{ + */ + +/* Interrupt Priorities are WORD accessible only under ARMv6M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( (((uint32_t)(IRQn) ) & 0x03) * 8 ) +#define _SHP_IDX(IRQn) ( ((((uint32_t)(IRQn) & 0x0F)-8) >> 2) ) +#define _IP_IDX(IRQn) ( ((uint32_t)(IRQn) >> 2) ) + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } + else { + NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M0 system interrupts */ + else { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0plus.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0plus.h new file mode 100644 index 000000000..160e7ed3a --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm0plus.h @@ -0,0 +1,814 @@ +/**************************************************************************//** + * @file core_cm0plus.h + * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File + * @version V4.00 + * @date 22. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_CM0PLUS_H_GENERIC +#define __CORE_CM0PLUS_H_GENERIC + +#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+ + @{ + */ + +/* CMSIS CM0P definitions */ +#define __CM0PLUS_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */ +#define __CM0PLUS_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ +#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16) | \ + __CM0PLUS_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x00) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) +#define __packed +#define __ASM _asm /*!< asm keyword for COSMIC Compiler */ +#define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI__VFP_SUPPORT____ +#warning "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__ ) /* Cosmic */ +#if ( __CSMC__ & 0x400) // FPU present for parser +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#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 0x0000 +#warning "__CM0PLUS_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __VTOR_PRESENT +#define __VTOR_PRESENT 0 +#warning "__VTOR_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 2 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[1]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31]; + __IO uint32_t ICER[1]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31]; + __IO uint32_t ISPR[1]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31]; + __IO uint32_t ICPR[1]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31]; + uint32_t RESERVED4[64]; + __IO uint32_t IP[8]; /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if (__VTOR_PRESENT == 1) + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IO uint32_t SHP[2]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if (__VTOR_PRESENT == 1) +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 8 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< 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 15 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_CALIB_TENMS_Pos) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 8 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M0+ 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/* Interrupt Priorities are WORD accessible only under ARMv6M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( (((uint32_t)(IRQn) ) & 0x03) * 8 ) +#define _SHP_IDX(IRQn) ( ((((uint32_t)(IRQn) & 0x0F)-8) >> 2) ) +#define _IP_IDX(IRQn) ( ((uint32_t)(IRQn) >> 2) ) + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } + else { + NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M0 system interrupts */ + else { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM0PLUS_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm3.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm3.h new file mode 100644 index 000000000..a4bffa490 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm3.h @@ -0,0 +1,1638 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V4.00 + * @date 22. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +#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 + @{ + */ + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x03) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) +#define __packed +#define __ASM _asm /*!< asm keyword for COSMIC Compiler */ +#define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI__VFP_SUPPORT____ +#warning "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__ ) /* Cosmic */ +#if ( __CSMC__ & 0x400) // FPU present for parser +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#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 0x0200 +#warning "__CM3_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 4 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5]; + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 (__CM3_REV < 0x0201) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< 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 4 /*!< 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 3 /*!< 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 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< 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 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< 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 8 /*!< 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 0 /*!< 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 */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< 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 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< 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[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if ((defined __CM3_REV) && (__CM3_REV >= 0x200)) + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< 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 2 /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1 /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< 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 { + __O union { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< 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 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< 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 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< 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 { + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< 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 0 /*!< 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 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< 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 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< 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 0 /*!< 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 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< 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 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 { + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< 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 25 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 5 /*!< 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 3 /*!< 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 2 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< 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_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 10 /*!< 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 9 /*!< 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 8 /*!< 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 7 /*!< 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 6 /*!< 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 5 /*!< 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 4 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M3 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/** \brief Set Priority Grouping + + The function 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)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function 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 ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function 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 & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function 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* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* 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 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function 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) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) { /* ITM Port #0 enabled */ + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function 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 + + The function 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/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm4.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm4.h new file mode 100644 index 000000000..bcc47d507 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm4.h @@ -0,0 +1,1789 @@ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V4.00 + * @date 22. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +#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 + @{ + */ + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x04) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) +#define __packed +#define __ASM _asm /*!< asm keyword for COSMIC Compiler */ +#define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __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 (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI_VFP_SUPPORT__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __TASKING__ ) +#if defined __FPU_VFP__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __CSMC__ ) /* Cosmic */ +#if ( __CSMC__ & 0x400) // FPU present for parser +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ +#include /* Compiler specific SIMD Intrinsics */ + +#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 0x0000 +#warning "__CM4_REV not defined in device header file; using default!" +#endif + +#ifndef __FPU_PRESENT +#define __FPU_PRESENT 0 +#warning "__FPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 4 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5]; + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< 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 4 /*!< 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 3 /*!< 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 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< 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 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< 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 8 /*!< 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 0 /*!< 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 */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< 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 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< 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[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< 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 9 /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8 /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2 /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1 /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< 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 { + __O union { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< 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 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< 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 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< 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 { + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< 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 0 /*!< 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 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< 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 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< 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 0 /*!< 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 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< 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 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 + + +#if (__FPU_PRESENT == 1) +/** \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[1]; + __IO uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IO uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IO uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __I uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __I uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register */ +#define FPU_FPCCR_ASPEN_Pos 31 /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30 /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8 /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6 /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5 /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4 /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define FPU_FPCAR_ADDRESS_Pos 3 /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register */ +#define FPU_FPDSCR_AHP_Pos 26 /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25 /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24 /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22 /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28 /*!< 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 24 /*!< 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 20 /*!< 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 16 /*!< 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 12 /*!< 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 8 /*!< 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 4 /*!< 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 0 /*!< 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 */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28 /*!< 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 24 /*!< 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 4 /*!< 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 0 /*!< 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 */ +#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 { + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< 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 25 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 5 /*!< 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 3 /*!< 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 2 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< 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_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 10 /*!< 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 9 /*!< 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 8 /*!< 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 7 /*!< 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 6 /*!< 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 5 /*!< 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 4 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M4 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 (__MPU_PRESENT == 1) +#define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ +#define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#if (__FPU_PRESENT == 1) +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point 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. + @{ + */ + +/** \brief Set Priority Grouping + + The function 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)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function 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 ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + /* NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); enable interrupt */ + NVIC->ISER[(uint32_t)((int32_t)IRQn) >> 5] = (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function 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 & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function 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* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* 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 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function 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) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) { /* ITM Port #0 enabled */ + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function 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 + + The function 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/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm7.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm7.h new file mode 100644 index 000000000..5a8a76559 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cm7.h @@ -0,0 +1,2208 @@ +/**************************************************************************//** + * @file core_cm7.h + * @brief CMSIS Cortex-M7 Core Peripheral Access Layer Header File + * @version V4.00 + * @date 01. September 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_CM7_H_GENERIC +#define __CORE_CM7_H_GENERIC + +#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 + @{ + */ + +/* CMSIS CM7 definitions */ +#define __CM7_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */ +#define __CM7_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ +#define __CM7_CMSIS_VERSION ((__CM7_CMSIS_VERSION_MAIN << 16) | \ + __CM7_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x07) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) +#define __packed +#define __ASM _asm /*!< asm keyword for COSMIC Compiler */ +#define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __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 (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI_VFP_SUPPORT__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __TASKING__ ) +#if defined __FPU_VFP__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __CSMC__ ) /* Cosmic */ +#if ( __CSMC__ & 0x400) // FPU present for parser +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ +#include /* Compiler specific SIMD Intrinsics */ + +#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 0x0000 +#warning "__CM7_REV not defined in device header file; using default!" +#endif + +#ifndef __FPU_PRESENT +#define __FPU_PRESENT 0 +#warning "__FPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __ICACHE_PRESENT +#define __ICACHE_PRESENT 0 +#warning "__ICACHE_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __DCACHE_PRESENT +#define __DCACHE_PRESENT 0 +#warning "__DCACHE_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __DTCM_PRESENT +#define __DTCM_PRESENT 0 +#warning "__DTCM_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 3 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x07) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x07) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHPR[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t ID_PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t ID_DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ID_AFR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t ID_MFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ID_ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[1]; + __I uint32_t CLIDR; /*!< Offset: 0x078 (R/ ) Cache Level ID register */ + __I uint32_t CTR; /*!< Offset: 0x07C (R/ ) Cache Type register */ + __I uint32_t CCSIDR; /*!< Offset: 0x080 (R/ ) Cache Size ID Register */ + __IO uint32_t CSSELR; /*!< Offset: 0x084 (R/W) Cache Size Selection Register */ + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ + uint32_t RESERVED3[93]; + __O uint32_t STIR; /*!< Offset: 0x200 ( /W) Software Triggered Interrupt Register */ + uint32_t RESERVED4[15]; + __I uint32_t MVFR0; /*!< Offset: 0x240 (R/ ) Media and VFP Feature Register 0 */ + __I uint32_t MVFR1; /*!< Offset: 0x244 (R/ ) Media and VFP Feature Register 1 */ + __I uint32_t MVFR2; /*!< Offset: 0x248 (R/ ) Media and VFP Feature Register 1 */ + uint32_t RESERVED5[1]; + __O uint32_t ICIALLU; /*!< Offset: 0x250 ( /W) I-Cache Invalidate All to PoU */ + uint32_t RESERVED6[1]; + __O uint32_t ICIMVAU; /*!< Offset: 0x258 ( /W) I-Cache Invalidate by MVA to PoU */ + __O uint32_t DCIMVAU; /*!< Offset: 0x25C ( /W) D-Cache Invalidate by MVA to PoC */ + __O uint32_t DCISW; /*!< Offset: 0x260 ( /W) D-Cache Invalidate by Set-way */ + __O uint32_t DCCMVAU; /*!< Offset: 0x264 ( /W) D-Cache Clean by MVA to PoU */ + __O uint32_t DCCMVAC; /*!< Offset: 0x268 ( /W) D-Cache Clean by MVA to PoC */ + __O uint32_t DCCSW; /*!< Offset: 0x26C ( /W) D-Cache Clean by Set-way */ + __O uint32_t DCCIMVAC; /*!< Offset: 0x270 ( /W) D-Cache Clean and Invalidate by MVA to PoC */ + __O uint32_t DCCISW; /*!< Offset: 0x274 ( /W) D-Cache Clean and Invalidate by Set-way */ + uint32_t RESERVED7[6]; + __IO uint32_t ITCMCR; /*!< Offset: 0x290 (R/W) Instruction Tightly-Coupled Memory Control Register */ + __IO uint32_t DTCMCR; /*!< Offset: 0x294 (R/W) Data Tightly-Coupled Memory Control Registers */ + __IO uint32_t AHBPCR; /*!< Offset: 0x298 (R/W) AHBP Control Register */ + __IO uint32_t CACR; /*!< Offset: 0x29C (R/W) L1 Cache Control Register */ + __IO uint32_t AHBSCR; /*!< Offset: 0x2A0 (R/W) AHB Slave Control Register */ + uint32_t RESERVED8[1]; + __IO uint32_t ABFSR; /*!< Offset: 0x2A8 (R/W) Auxiliary Bus Fault Status Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< 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 4 /*!< 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 3 /*!< 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 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< 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 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< 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 8 /*!< 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 0 /*!< 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 */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< 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 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */ + +/* Cache Level ID register */ +#define SCB_CLIDR_LOUU_Pos 27 /*!< SCB CLIDR: LoUU Position */ +#define SCB_CLIDR_LOUU_Msk (7UL << SCB_CLIDR_LOUU_Pos) /*!< SCB CLIDR: LoUU Mask */ + +#define SCB_CLIDR_LOC_Pos 24 /*!< SCB CLIDR: LoC Position */ +#define SCB_CLIDR_LOC_Msk (7UL << SCB_CLIDR_FORMAT_Pos) /*!< SCB CLIDR: LoC Mask */ + +/* Cache Type register */ +#define SCB_CTR_FORMAT_Pos 29 /*!< SCB CTR: Format Position */ +#define SCB_CTR_FORMAT_Msk (7UL << SCB_CTR_FORMAT_Pos) /*!< SCB CTR: Format Mask */ + +#define SCB_CTR_CWG_Pos 24 /*!< SCB CTR: CWG Position */ +#define SCB_CTR_CWG_Msk (0xFUL << SCB_CTR_CWG_Pos) /*!< SCB CTR: CWG Mask */ + +#define SCB_CTR_ERG_Pos 20 /*!< SCB CTR: ERG Position */ +#define SCB_CTR_ERG_Msk (0xFUL << SCB_CTR_ERG_Pos) /*!< SCB CTR: ERG Mask */ + +#define SCB_CTR_DMINLINE_Pos 16 /*!< SCB CTR: DminLine Position */ +#define SCB_CTR_DMINLINE_Msk (0xFUL << SCB_CTR_DMINLINE_Pos) /*!< SCB CTR: DminLine Mask */ + +#define SCB_CTR_IMINLINE_Pos 0 /*!< SCB CTR: ImInLine Position */ +#define SCB_CTR_IMINLINE_Msk (0xFUL << SCB_CTR_IMINLINE_Pos) /*!< SCB CTR: ImInLine Mask */ + +/* Cache Size ID Register */ +#define SCB_CCSIDR_WT_Pos 31 /*!< SCB CCSIDR: WT Position */ +#define SCB_CCSIDR_WT_Msk (7UL << SCB_CCSIDR_WT_Pos) /*!< SCB CCSIDR: WT Mask */ + +#define SCB_CCSIDR_WB_Pos 30 /*!< SCB CCSIDR: WB Position */ +#define SCB_CCSIDR_WB_Msk (7UL << SCB_CCSIDR_WB_Pos) /*!< SCB CCSIDR: WB Mask */ + +#define SCB_CCSIDR_RA_Pos 29 /*!< SCB CCSIDR: RA Position */ +#define SCB_CCSIDR_RA_Msk (7UL << SCB_CCSIDR_RA_Pos) /*!< SCB CCSIDR: RA Mask */ + +#define SCB_CCSIDR_WA_Pos 28 /*!< SCB CCSIDR: WA Position */ +#define SCB_CCSIDR_WA_Msk (7UL << SCB_CCSIDR_WA_Pos) /*!< SCB CCSIDR: WA Mask */ + +#define SCB_CCSIDR_NUMSETS_Pos 13 /*!< SCB CCSIDR: NumSets Position */ +#define SCB_CCSIDR_NUMSETS_Msk (0x7FFFUL << SCB_CCSIDR_NUMSETS_Pos) /*!< SCB CCSIDR: NumSets Mask */ + +#define SCB_CCSIDR_ASSOCIATIVITY_Pos 3 /*!< SCB CCSIDR: Associativity Position */ +#define SCB_CCSIDR_ASSOCIATIVITY_Msk (0x3FFUL << SCB_CCSIDR_ASSOCIATIVITY_Pos) /*!< SCB CCSIDR: Associativity Mask */ + +#define SCB_CCSIDR_LINESIZE_Pos 0 /*!< SCB CCSIDR: LineSize Position */ +#define SCB_CCSIDR_LINESIZE_Msk (7UL << SCB_CCSIDR_LINESIZE_Pos) /*!< SCB CCSIDR: LineSize Mask */ + +/* Cache Size Selection Register */ +#define SCB_CSSELR_LEVEL_Pos 0 /*!< SCB CSSELR: Level Position */ +#define SCB_CSSELR_LEVEL_Msk (1UL << SCB_CSSELR_LEVEL_Pos) /*!< SCB CSSELR: Level Mask */ + +#define SCB_CSSELR_IND_Pos 0 /*!< SCB CSSELR: InD Position */ +#define SCB_CSSELR_IND_Msk (1UL << SCB_CSSELR_IND_Pos) /*!< SCB CSSELR: InD Mask */ + +/* SCB Software Triggered Interrupt Register */ +#define SCB_STIR_INTID_Pos 0 /*!< SCB STIR: INTID Position */ +#define SCB_STIR_INTID_Msk (0x1FFUL << SCB_STIR_INTID_Pos) /*!< SCB STIR: INTID Mask */ + +/* Instruction Tightly-Coupled Memory Control Register*/ +#define SCB_ITCMCR_SZ_Pos 3 /*!< SCB ITCMCR: SZ Position */ +#define SCB_ITCMCR_SZ_Msk (0xFUL << SCB_ITCMCR_SZ_Pos) /*!< SCB ITCMCR: SZ Mask */ + +#define SCB_ITCMCR_RETEN_Pos 2 /*!< SCB ITCMCR: RETEN Position */ +#define SCB_ITCMCR_RETEN_Msk (1FFUL << SCB_ITCMCR_RETEN_Pos) /*!< SCB ITCMCR: RETEN Mask */ + +#define SCB_ITCMCR_RMW_Pos 1 /*!< SCB ITCMCR: RMW Position */ +#define SCB_ITCMCR_RMW_Msk (1FFUL << SCB_ITCMCR_RMW_Pos) /*!< SCB ITCMCR: RMW Mask */ + +#define SCB_ITCMCR_EN_Pos 0 /*!< SCB ITCMCR: EN Position */ +#define SCB_ITCMCR_EN_Msk (1FFUL << SCB_ITCMCR_EN_Pos) /*!< SCB ITCMCR: EN Mask */ + +/* Data Tightly-Coupled Memory Control Registers */ +#define SCB_DTCMCR_SZ_Pos 3 /*!< SCB DTCMCR: SZ Position */ +#define SCB_DTCMCR_SZ_Msk (0xFUL << SCB_DTCMCR_SZ_Pos) /*!< SCB DTCMCR: SZ Mask */ + +#define SCB_DTCMCR_RETEN_Pos 2 /*!< SCB DTCMCR: RETEN Position */ +#define SCB_DTCMCR_RETEN_Msk (1UL << SCB_DTCMCR_RETEN_Pos) /*!< SCB DTCMCR: RETEN Mask */ + +#define SCB_DTCMCR_RMW_Pos 1 /*!< SCB DTCMCR: RMW Position */ +#define SCB_DTCMCR_RMW_Msk (1UL << SCB_DTCMCR_RMW_Pos) /*!< SCB DTCMCR: RMW Mask */ + +#define SCB_DTCMCR_EN_Pos 0 /*!< SCB DTCMCR: EN Position */ +#define SCB_DTCMCR_EN_Msk (1UL << SCB_DTCMCR_EN_Pos) /*!< SCB DTCMCR: EN Mask */ + +/* AHBP Control Register */ +#define SCB_AHBPCR_SZ_Pos 1 /*!< SCB AHBPCR: SZ Position */ +#define SCB_AHBPCR_SZ_Msk (7UL << SCB_AHBPCR_SZ_Pos) /*!< SCB AHBPCR: SZ Mask */ + +#define SCB_AHBPCR_EN_Pos 0 /*!< SCB AHBPCR: EN Position */ +#define SCB_AHBPCR_EN_Msk (1UL << SCB_AHBPCR_EN_Pos) /*!< SCB AHBPCR: EN Mask */ + +/* L1 Cache Control Register */ +#define SCB_CACR_FORCEWT_Pos 2 /*!< SCB CACR: FORCEWT Position */ +#define SCB_CACR_FORCEWT_Msk (1UL << SCB_CACR_FORCEWT_Pos) /*!< SCB CACR: FORCEWT Mask */ + +#define SCB_CACR_ECCEN_Pos 1 /*!< SCB CACR: ECCEN Position */ +#define SCB_CACR_ECCEN_Msk (1UL << SCB_CACR_ECCEN_Pos) /*!< SCB CACR: ECCEN Mask */ + +#define SCB_CACR_SIWT_Pos 0 /*!< SCB CACR: SIWT Position */ +#define SCB_CACR_SIWT_Msk (1UL << SCB_CACR_SIWT_Pos) /*!< SCB CACR: SIWT Mask */ + +/* AHBS control register */ +#define SCB_AHBSCR_INITCOUNT_Pos 11 /*!< SCB AHBSCR: INITCOUNT Position */ +#define SCB_AHBSCR_INITCOUNT_Msk (0x1FUL << SCB_AHBPCR_INITCOUNT_Pos) /*!< SCB AHBSCR: INITCOUNT Mask */ + +#define SCB_AHBSCR_TPRI_Pos 2 /*!< SCB AHBSCR: TPRI Position */ +#define SCB_AHBSCR_TPRI_Msk (0x1FFUL << SCB_AHBPCR_TPRI_Pos) /*!< SCB AHBSCR: TPRI Mask */ + +#define SCB_AHBSCR_CTL_Pos 0 /*!< SCB AHBSCR: CTL Position*/ +#define SCB_AHBSCR_CTL_Msk (3UL << SCB_AHBPCR_CTL_Pos) /*!< SCB AHBSCR: CTL Mask */ + +/* Auxiliary Bus Fault Status Register */ +#define SCB_ABFSR_AXIMTYPE_Pos 8 /*!< SCB ABFSR: AXIMTYPE Position*/ +#define SCB_ABFSR_AXIMTYPE_Msk (3UL << SCB_ABFSR_AXIMTYPE_Pos) /*!< SCB ABFSR: AXIMTYPE Mask */ + +#define SCB_ABFSR_EPPB_Pos 4 /*!< SCB ABFSR: EPPB Position*/ +#define SCB_ABFSR_EPPB_Msk (1UL << SCB_ABFSR_EPPB_Pos) /*!< SCB ABFSR: EPPB Mask */ + +#define SCB_ABFSR_AXIM_Pos 3 /*!< SCB ABFSR: AXIM Position*/ +#define SCB_ABFSR_AXIM_Msk (1UL << SCB_ABFSR_AXIM_Pos) /*!< SCB ABFSR: AXIM Mask */ + +#define SCB_ABFSR_AHBP_Pos 2 /*!< SCB ABFSR: AHBP Position*/ +#define SCB_ABFSR_AHBP_Msk (1UL << SCB_ABFSR_AHBP_Pos) /*!< SCB ABFSR: AHBP Mask */ + +#define SCB_ABFSR_DTCM_Pos 1 /*!< SCB ABFSR: DTCM Position*/ +#define SCB_ABFSR_DTCM_Msk (1UL << SCB_ABFSR_DTCM_Pos) /*!< SCB ABFSR: DTCM Mask */ + +#define SCB_ABFSR_ITCM_Pos 0 /*!< 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[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< 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 12 /*!< ACTLR: DISITMATBFLUSH Position */ +#define SCnSCB_ACTLR_DISITMATBFLUSH_Msk (1UL << SCnSCB_ACTLR_DISITMATBFLUSH_Pos) /*!< ACTLR: DISITMATBFLUSH Mask */ + +#define SCnSCB_ACTLR_DISRAMODE_Pos 11 /*!< ACTLR: DISRAMODE Position */ +#define SCnSCB_ACTLR_DISRAMODE_Msk (1UL << SCnSCB_ACTLR_DISRAMODE_Pos) /*!< ACTLR: DISRAMODE Mask */ + +#define SCnSCB_ACTLR_FPEXCODIS_Pos 10 /*!< ACTLR: FPEXCODIS Position */ +#define SCnSCB_ACTLR_FPEXCODIS_Msk (1UL << SCnSCB_ACTLR_FPEXCODIS_Pos) /*!< ACTLR: FPEXCODIS Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2 /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< 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 { + __O union { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< 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 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< 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 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ + uint32_t RESERVED3[981]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( W) Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R ) Lock Status Register */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< 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 { + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< 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 0 /*!< 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 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< 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 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< 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 0 /*!< 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 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< 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 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 + + +#if (__FPU_PRESENT == 1) +/** \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[1]; + __IO uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IO uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IO uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __I uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __I uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ + __I uint32_t MVFR2; /*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */ +} FPU_Type; + +/* Floating-Point Context Control Register */ +#define FPU_FPCCR_ASPEN_Pos 31 /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30 /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8 /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6 /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5 /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4 /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define FPU_FPCAR_ADDRESS_Pos 3 /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register */ +#define FPU_FPDSCR_AHP_Pos 26 /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25 /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24 /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22 /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28 /*!< 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 24 /*!< 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 20 /*!< 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 16 /*!< 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 12 /*!< 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 8 /*!< 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 4 /*!< 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 0 /*!< 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 */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28 /*!< 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 24 /*!< 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 4 /*!< 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 0 /*!< 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 */ + +/*@} end of group CMSIS_FPU */ +#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 { + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< 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 25 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 5 /*!< 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 3 /*!< 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 2 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< 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_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 10 /*!< 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 9 /*!< 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 8 /*!< 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 7 /*!< 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 6 /*!< 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 5 /*!< 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 4 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M4 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 (__MPU_PRESENT == 1) +#define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ +#define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#if (__FPU_PRESENT == 1) +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point 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. + @{ + */ + +/** \brief Set Priority Grouping + + The function 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)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function 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 ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + /* NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); enable interrupt */ + NVIC->ISER[(uint32_t)((int32_t)IRQn) >> 5] = (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHPR[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(SCB->SHPR[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function 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 & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function 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* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + +/* ########################## Cache functions #################################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_CacheFunctions Cache Functions + \brief Functions that configure Instruction and Data cache. + @{ + */ + +/* Cache Size ID Register Macros */ +#define CCSIDR_WAYS(x) (((x) & SCB_CCSIDR_ASSOCIATIVITY_Msk) >> SCB_CCSIDR_ASSOCIATIVITY_Pos) +#define CCSIDR_SETS(x) (((x) & SCB_CCSIDR_NUMSETS_Msk ) >> SCB_CCSIDR_NUMSETS_Pos ) +#define CCSIDR_LSSHIFT(x) (((x) & SCB_CCSIDR_LINESIZE_Msk ) >> SCB_CCSIDR_LINESIZE_Pos ) + + +/** \brief Enable I-Cache + + The function turns on I-Cache + */ +__STATIC_INLINE void SCB_EnableICache(void) +{ +#if (__ICACHE_PRESENT == 1) + __DSB(); + __ISB(); + SCB->ICIALLU = 0; // invalidate I-Cache + SCB->CCR |= SCB_CCR_IC_Msk; // enable I-Cache + __DSB(); + __ISB(); +#endif +} + + +/** \brief Disable I-Cache + + The function turns off I-Cache + */ +__STATIC_INLINE void SCB_DisableICache(void) +{ +#if (__ICACHE_PRESENT == 1) + __DSB(); + __ISB(); + SCB->CCR &= ~SCB_CCR_IC_Msk; // disable I-Cache + SCB->ICIALLU = 0; // invalidate I-Cache + __DSB(); + __ISB(); +#endif +} + + +/** \brief Invalidate I-Cache + + The function invalidates I-Cache + */ +__STATIC_INLINE void SCB_InvalidateICache(void) +{ +#if (__ICACHE_PRESENT == 1) + __DSB(); + __ISB(); + SCB->ICIALLU = 0; + __DSB(); + __ISB(); +#endif +} + + +/** \brief Enable D-Cache + + The function turns on D-Cache + */ +__STATIC_INLINE void SCB_EnableDCache(void) +{ +#if (__DCACHE_PRESENT == 1) + uint32_t ccsidr, sshift, wshift, sw; + uint32_t sets, ways; + + ccsidr = SCB->CCSIDR; + sets = CCSIDR_SETS(ccsidr); + sshift = CCSIDR_LSSHIFT(ccsidr) + 4; + ways = CCSIDR_WAYS(ccsidr); + wshift = __CLZ(ways) & 0x1f; + + __DSB(); + + do { // invalidate D-Cache + int32_t tmpways = ways; + do { + sw = ((tmpways << wshift) | (sets << sshift)); + SCB->DCISW = sw; + } while(tmpways--); + } while(sets--); + __DSB(); + + SCB->CCR |= SCB_CCR_DC_Msk; // enable D-Cache + + __DSB(); + __ISB(); +#endif +} + + +/** \brief Disable D-Cache + + The function turns off D-Cache + */ +__STATIC_INLINE void SCB_DisableDCache(void) +{ +#if (__DCACHE_PRESENT == 1) + uint32_t ccsidr, sshift, wshift, sw; + uint32_t sets, ways; + + ccsidr = SCB->CCSIDR; + sets = CCSIDR_SETS(ccsidr); + sshift = CCSIDR_LSSHIFT(ccsidr) + 4; + ways = CCSIDR_WAYS(ccsidr); + wshift = __CLZ(ways) & 0x1f; + + __DSB(); + + SCB->CCR &= ~SCB_CCR_DC_Msk; // disable D-Cache + + do { // clean & invalidate D-Cache + int32_t tmpways = ways; + do { + sw = ((tmpways << wshift) | (sets << sshift)); + SCB->DCCISW = sw; + } while(tmpways--); + } while(sets--); + + + __DSB(); + __ISB(); +#endif +} + + +/** \brief Invalidate D-Cache + + The function invalidates D-Cache + */ +__STATIC_INLINE void SCB_InvalidateDCache(void) +{ +#if (__DCACHE_PRESENT == 1) + uint32_t ccsidr, sshift, wshift, sw; + uint32_t sets, ways; + + ccsidr = SCB->CCSIDR; + sets = CCSIDR_SETS(ccsidr); + sshift = CCSIDR_LSSHIFT(ccsidr) + 4; + ways = CCSIDR_WAYS(ccsidr); + wshift = __CLZ(ways) & 0x1f; + + __DSB(); + + do { // invalidate D-Cache + int32_t tmpways = ways; + do { + sw = ((tmpways << wshift) | (sets << sshift)); + SCB->DCISW = sw; + } while(tmpways--); + } while(sets--); + + __DSB(); + __ISB(); +#endif +} + + +/** \brief Clean D-Cache + + The function cleans D-Cache + */ +__STATIC_INLINE void SCB_CleanDCache(void) +{ +#if (__DCACHE_PRESENT == 1) + uint32_t ccsidr, sshift, wshift, sw; + uint32_t sets, ways; + + ccsidr = SCB->CCSIDR; + sets = CCSIDR_SETS(ccsidr); + sshift = CCSIDR_LSSHIFT(ccsidr) + 4; + ways = CCSIDR_WAYS(ccsidr); + wshift = __CLZ(ways) & 0x1f; + + __DSB(); + + do { // clean D-Cache + int32_t tmpways = ways; + do { + sw = ((tmpways << wshift) | (sets << sshift)); + SCB->DCCSW = sw; + } while(tmpways--); + } while(sets--); + + __DSB(); + __ISB(); +#endif +} + + +/** \brief Clean & Invalidate D-Cache + + The function cleans and Invalidates D-Cache + */ +__STATIC_INLINE void SCB_CleanInvalidateDCache(void) +{ +#if (__DCACHE_PRESENT == 1) + uint32_t ccsidr, sshift, wshift, sw; + uint32_t sets, ways; + + ccsidr = SCB->CCSIDR; + sets = CCSIDR_SETS(ccsidr); + sshift = CCSIDR_LSSHIFT(ccsidr) + 4; + ways = CCSIDR_WAYS(ccsidr); + wshift = __CLZ(ways) & 0x1f; + + __DSB(); + + do { // clean & invalidate D-Cache + int32_t tmpways = ways; + do { + sw = ((tmpways << wshift) | (sets << sshift)); + SCB->DCCISW = sw; + } while(tmpways--); + } while(sets--); + + __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 (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* 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 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function 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) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) { /* ITM Port #0 enabled */ + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function 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 + + The function 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/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmFunc.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmFunc.h new file mode 100644 index 000000000..a74961ebf --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmFunc.h @@ -0,0 +1,637 @@ +/**************************************************************************//** + * @file core_cmFunc.h + * @brief CMSIS Cortex-M Core Function Access Header File + * @version V4.00 + * @date 28. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifndef __CORE_CMFUNC_H +#define __CORE_CMFUNC_H + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#if (__ARMCC_VERSION < 400677) +#error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + +/* intrinsic void __enable_irq(); */ +/* intrinsic void __disable_irq(); */ + +/** \brief Get Control Register + + This function returns the content of the Control Register. + + \return Control Register value + */ +__STATIC_INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + + +/** \brief Set Control Register + + This function writes the given value to the Control Register. + + \param [in] control Control Register value to set + */ +__STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + + +/** \brief Get IPSR Register + + This function returns the content of the IPSR Register. + + \return IPSR Register value + */ +__STATIC_INLINE uint32_t __get_IPSR(void) +{ + register uint32_t __regIPSR __ASM("ipsr"); + return(__regIPSR); +} + + +/** \brief Get APSR Register + + This function returns the content of the APSR Register. + + \return APSR Register value + */ +__STATIC_INLINE uint32_t __get_APSR(void) +{ + register uint32_t __regAPSR __ASM("apsr"); + return(__regAPSR); +} + + +/** \brief Get xPSR Register + + This function returns the content of the xPSR Register. + + \return xPSR Register value + */ +__STATIC_INLINE uint32_t __get_xPSR(void) +{ + register uint32_t __regXPSR __ASM("xpsr"); + return(__regXPSR); +} + + +/** \brief Get Process Stack Pointer + + This function returns the current value of the Process Stack Pointer (PSP). + + \return PSP Register value + */ +__STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + return(__regProcessStackPointer); +} + + +/** \brief Set Process Stack Pointer + + This function assigns the given value to the Process Stack Pointer (PSP). + + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + __regProcessStackPointer = topOfProcStack; +} + + +/** \brief Get Main Stack Pointer + + This function returns the current value of the Main Stack Pointer (MSP). + + \return MSP Register value + */ +__STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + return(__regMainStackPointer); +} + + +/** \brief Set Main Stack Pointer + + This function assigns the given value to the Main Stack Pointer (MSP). + + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + __regMainStackPointer = topOfMainStack; +} + + +/** \brief Get Priority Mask + + This function returns the current state of the priority mask bit from the Priority Mask Register. + + \return Priority Mask value + */ +__STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + + +/** \brief Set Priority Mask + + This function assigns the given value to the Priority Mask Register. + + \param [in] priMask Priority Mask + */ +__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + + +#if (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) + +/** \brief Enable FIQ + + This function enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq + + +/** \brief Disable FIQ + + This function disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq + + +/** \brief Get Base Priority + + This function returns the current value of the Base Priority register. + + \return Base Priority register value + */ +__STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + + +/** \brief Set Base Priority + + This function assigns the given value to the Base Priority register. + + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xff); +} + + +/** \brief Get Fault Mask + + This function returns the current value of the Fault Mask register. + + \return Fault Mask register value + */ +__STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + + +/** \brief Set Fault Mask + + This function assigns the given value to the Fault Mask register. + + \param [in] faultMask Fault Mask value to set + */ +__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & (uint32_t)1); +} + +#endif /* (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) */ + + +#if (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) + +/** \brief Get FPSCR + + This function returns the current value of the Floating Point Status/Control register. + + \return Floating Point Status/Control register value + */ +__STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + register uint32_t __regfpscr __ASM("fpscr"); + return(__regfpscr); +#else + return(0); +#endif +} + + +/** \brief Set FPSCR + + This function assigns the given value to the Floating Point Status/Control register. + + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + register uint32_t __regfpscr __ASM("fpscr"); + __regfpscr = (fpscr); +#endif +} + +#endif /* (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) */ + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/** \brief Enable IRQ Interrupts + + This function enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** \brief Disable IRQ Interrupts + + This function disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** \brief Get Control Register + + This function returns the content of the Control Register. + + \return Control Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +/** \brief Set Control Register + + This function writes the given value to the Control Register. + + \param [in] control Control Register value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +/** \brief Get IPSR Register + + This function returns the content of the IPSR Register. + + \return IPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get APSR Register + + This function returns the content of the APSR Register. + + \return APSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get xPSR Register + + This function returns the content of the xPSR Register. + + \return xPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get Process Stack Pointer + + This function returns the current value of the Process Stack Pointer (PSP). + + \return PSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp\n" : "=r" (result) ); + return(result); +} + + +/** \brief Set Process Stack Pointer + + This function assigns the given value to the Process Stack Pointer (PSP). + + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) : "sp"); +} + + +/** \brief Get Main Stack Pointer + + This function returns the current value of the Main Stack Pointer (MSP). + + \return MSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp\n" : "=r" (result) ); + return(result); +} + + +/** \brief Set Main Stack Pointer + + This function assigns the given value to the Main Stack Pointer (MSP). + + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) : "sp"); +} + + +/** \brief Get Priority Mask + + This function returns the current state of the priority mask bit from the Priority Mask Register. + + \return Priority Mask value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +/** \brief Set Priority Mask + + This function assigns the given value to the Priority Mask Register. + + \param [in] priMask Priority Mask + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (__CORTEX_M >= 0x03) + +/** \brief Enable FIQ + + This function enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** \brief Disable FIQ + + This function disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** \brief Get Base Priority + + This function returns the current value of the Base Priority register. + + \return Base Priority register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_max" : "=r" (result) ); + return(result); +} + + +/** \brief Set Base Priority + + This function assigns the given value to the Base Priority register. + + \param [in] basePri Base Priority value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_BASEPRI(uint32_t value) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (value) : "memory"); +} + + +/** \brief Get Fault Mask + + This function returns the current value of the Fault Mask register. + + \return Fault Mask register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +/** \brief Set Fault Mask + + This function assigns the given value to the Fault Mask register. + + \param [in] faultMask Fault Mask value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + +#endif /* (__CORTEX_M >= 0x03) */ + + +#if (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) + +/** \brief Get FPSCR + + This function returns the current value of the Floating Point Status/Control register. + + \return Floating Point Status/Control register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + uint32_t result; + + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + __ASM volatile (""); + return(result); +#else + return(0); +#endif +} + + +/** \brief Set FPSCR + + This function assigns the given value to the Floating Point Status/Control register. + + \param [in] fpscr Floating Point Status/Control value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc"); + __ASM volatile (""); +#endif +} + +#endif /* (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) */ + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#include + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ +#include + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ +/* + * 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. + */ + + +#elif defined ( __CSMC__ ) /*------------------ COSMIC Compiler -------------------*/ +/* Cosmic specific functions */ +#include + +#endif + +/*@} end of CMSIS_Core_RegAccFunctions */ + +#endif /* __CORE_CMFUNC_H */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmInstr.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmInstr.h new file mode 100644 index 000000000..070512493 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmInstr.h @@ -0,0 +1,880 @@ +/**************************************************************************//** + * @file core_cmInstr.h + * @brief CMSIS Cortex-M Core Instruction Access Header File + * @version V4.00 + * @date 28. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifndef __CORE_CMINSTR_H +#define __CORE_CMINSTR_H + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#if (__ARMCC_VERSION < 400677) +#error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + + +/** \brief No Operation + + No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __nop + + +/** \brief Wait For Interrupt + + Wait For Interrupt is a hint instruction that suspends execution + until one of a number of events occurs. + */ +#define __WFI __wfi + + +/** \brief Wait For Event + + Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __wfe + + +/** \brief Send Event + + Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __sev + + +/** \brief Instruction Synchronization Barrier + + 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() __isb(0xF) + + +/** \brief Data Synchronization Barrier + + This function acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __dsb(0xF) + + +/** \brief Data Memory Barrier + + This function ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __dmb(0xF) + + +/** \brief Reverse byte order (32 bit) + + This function reverses the byte order in integer value. + + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV __rev + + +/** \brief Reverse byte order (16 bit) + + This function reverses the byte order in two unsigned short values. + + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) +{ + rev16 r0, r0 + bx lr +} +#endif + +/** \brief Reverse byte order in signed short value + + This function reverses the byte order in a signed short value with sign extension to integer. + + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int32_t __REVSH(int32_t value) +{ + revsh r0, r0 + bx lr +} +#endif + + +/** \brief Rotate Right in unsigned value (32 bit) + + This function Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + + \param [in] value Value to rotate + \param [in] value Number of Bits to rotate + \return Rotated value + */ +#define __ROR __ror + + +/** \brief Breakpoint + + This function causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __breakpoint(value) + + +#if (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) + +/** \brief Reverse bit order of value + + This function reverses the bit order of the given value. + + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __rbit + + +/** \brief LDR Exclusive (8 bit) + + This function 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(ptr) ((uint8_t ) __ldrex(ptr)) + + +/** \brief LDR Exclusive (16 bit) + + This function 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(ptr) ((uint16_t) __ldrex(ptr)) + + +/** \brief LDR Exclusive (32 bit) + + This function 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(ptr) ((uint32_t ) __ldrex(ptr)) + + +/** \brief STR Exclusive (8 bit) + + This function 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(value, ptr) __strex(value, ptr) + + +/** \brief STR Exclusive (16 bit) + + This function 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(value, ptr) __strex(value, ptr) + + +/** \brief STR Exclusive (32 bit) + + This function 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(value, ptr) __strex(value, ptr) + + +/** \brief Remove the exclusive lock + + This function removes the exclusive lock which is created by LDREX. + + */ +#define __CLREX __clrex + + +/** \brief Signed Saturate + + This function 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 + + This function 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 Count leading zeros + + This function 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 + + +/** \brief Rotate Right with Extend (32 bit) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + +#endif /* (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) */ + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constrant "l" + * Otherwise, use general registers, specified by constrant "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 + + No Operation does nothing. This instruction can be used for code alignment purposes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __NOP(void) +{ + __ASM volatile ("nop"); +} + + +/** \brief Wait For Interrupt + + Wait For Interrupt is a hint instruction that suspends execution + until one of a number of events occurs. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __WFI(void) +{ + __ASM volatile ("wfi"); +} + + +/** \brief Wait For Event + + 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. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __WFE(void) +{ + __ASM volatile ("wfe"); +} + + +/** \brief Send Event + + Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __SEV(void) +{ + __ASM volatile ("sev"); +} + + +/** \brief Instruction Synchronization Barrier + + 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. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __ISB(void) +{ + __ASM volatile ("isb"); +} + + +/** \brief Data Synchronization Barrier + + This function acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __DSB(void) +{ + __ASM volatile ("dsb"); +} + + +/** \brief Data Memory Barrier + + This function ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __DMB(void) +{ + __ASM volatile ("dmb"); +} + + +/** \brief Reverse byte order (32 bit) + + This function reverses the byte order in integer value. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function reverses the byte order in two unsigned short values. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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 in signed short value + + This function reverses the byte order in a signed short value with sign extension to integer. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE int32_t __REVSH(int32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (short)__builtin_bswap16(value); +#else + uint32_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) + + This function Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + + \param [in] value Value to rotate + \param [in] value Number of Bits to rotate + \return Rotated value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + return (op1 >> op2) | (op1 << (32 - op2)); +} + + +/** \brief Breakpoint + + This function 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) + + +#if (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) + +/** \brief Reverse bit order of value + + This function reverses the bit order of the given value. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + return(result); +} + + +/** \brief LDR Exclusive (8 bit) + + This function executes a exclusive LDR instruction for 8 bit value. + + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function executes a exclusive LDR instruction for 16 bit values. + + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function executes a exclusive LDR instruction for 32 bit values. + + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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 + + This function removes the exclusive lock which is created by LDREX. + + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + + +/** \brief Signed Saturate + + This function 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(ARG1,ARG2) \ + ({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** \brief Unsigned Saturate + + This function 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(ARG1,ARG2) \ + ({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** \brief Count leading zeros + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __CLZ(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("clz %0, %1" : "=r" (result) : "r" (value) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** \brief Rotate Right with Extend (32 bit) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function executes a Unprivileged LDRT instruction for 8 bit value. + + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __LDRBT(volatile uint8_t* addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %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 ("ldrbt %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** \brief LDRT Unprivileged (16 bit) + + This function executes a Unprivileged LDRT instruction for 16 bit values. + + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint16_t __LDRHT(volatile uint16_t* addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %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 ("ldrht %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** \brief LDRT Unprivileged (32 bit) + + This function executes a Unprivileged LDRT instruction for 32 bit values. + + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __LDRT(volatile uint32_t* addr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** \brief STRT Unprivileged (8 bit) + + This function executes a Unprivileged STRT instruction for 8 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __STRBT(uint8_t value, volatile uint8_t* addr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*addr) : "r" ((uint32_t)value) ); +} + + +/** \brief STRT Unprivileged (16 bit) + + This function executes a Unprivileged STRT instruction for 16 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __STRHT(uint16_t value, volatile uint16_t* addr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*addr) : "r" ((uint32_t)value) ); +} + + +/** \brief STRT Unprivileged (32 bit) + + This function executes a Unprivileged STRT instruction for 32 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __STRT(uint32_t value, volatile uint32_t* addr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*addr) : "r" (value) ); +} + +#endif /* (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) */ + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#include + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ +#include + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ +/* + * 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. + */ + + +#elif defined ( __CSMC__ ) /*------------------ COSMIC Compiler -------------------*/ +/* Cosmic specific functions */ +#include + +#endif + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + +#endif /* __CORE_CMINSTR_H */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmSimd.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmSimd.h new file mode 100644 index 000000000..7d5ca568f --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_cmSimd.h @@ -0,0 +1,697 @@ +/**************************************************************************//** + * @file core_cmSimd.h + * @brief CMSIS Cortex-M SIMD Header File + * @version V4.00 + * @date 22. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_CMSIMD_H +#define __CORE_CMSIMD_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/******************************************************************************* + * Hardware Abstraction Layer + ******************************************************************************/ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ +#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) << 32) ) >> 32)) + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) \ + ({ \ + uint32_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; \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QADD(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QSUB(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#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; \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_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); +} + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#include + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ +#include + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ +/* not yet supported */ + + +#elif defined ( __CSMC__ ) /*------------------ COSMIC Compiler -------------------*/ +/* Cosmic specific functions */ +#include + +#endif + +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CMSIMD_H */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc000.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc000.h new file mode 100644 index 000000000..0aeb79dd0 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc000.h @@ -0,0 +1,833 @@ +/**************************************************************************//** + * @file core_sc000.h + * @brief CMSIS SC000 Core Peripheral Access Layer Header File + * @version V4.00 + * @date 22. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_SC000_H_GENERIC +#define __CORE_SC000_H_GENERIC + +#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 + @{ + */ + +/* CMSIS SC000 definitions */ +#define __SC000_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */ +#define __SC000_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ +#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16) | \ + __SC000_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_SC (000) /*!< Cortex secure core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) +#define __packed +#define __ASM _asm /*!< asm keyword for COSMIC Compiler */ +#define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI__VFP_SUPPORT____ +#warning "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__ ) /* Cosmic */ +#if ( __CSMC__ & 0x400) // FPU present for parser +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#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 0x0000 +#warning "__SC000_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 2 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[1]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31]; + __IO uint32_t ICER[1]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31]; + __IO uint32_t ISPR[1]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31]; + __IO uint32_t ICPR[1]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31]; + uint32_t RESERVED4[64]; + __IO uint32_t IP[8]; /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED0[1]; + __IO uint32_t SHP[2]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + uint32_t RESERVED1[154]; + __IO uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< 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 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/* SCB Security Features Register Definitions */ +#define SCB_SFCR_UNIBRTIMING_Pos 0 /*!< SCB SFCR: UNIBRTIMING Position */ +#define SCB_SFCR_UNIBRTIMING_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SFCR: UNIBRTIMING Mask */ + +#define SCB_SFCR_SECKEY_Pos 16 /*!< SCB SFCR: SECKEY Position */ +#define SCB_SFCR_SECKEY_Msk (0xFFFFUL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SFCR: SECKEY 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[2]; + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_CALIB_TENMS_Pos) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 8 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 Cortex-M0 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of SC000 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/* Interrupt Priorities are WORD accessible only under ARMv6M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( (((uint32_t)(IRQn) ) & 0x03) * 8 ) +#define _SHP_IDX(IRQn) ( ((((uint32_t)(IRQn) & 0x0F)-8) >> 2) ) +#define _IP_IDX(IRQn) ( ((uint32_t)(IRQn) >> 2) ) + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } + else { + NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M0 system interrupts */ + else { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_SC000_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc300.h b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc300.h new file mode 100644 index 000000000..01e9bda96 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/IAR_CORE/core_sc300.h @@ -0,0 +1,1618 @@ +/**************************************************************************//** + * @file core_sc300.h + * @brief CMSIS SC300 Core Peripheral Access Layer Header File + * @version V4.00 + * @date 22. August 2014 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2014 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_SC300_H_GENERIC +#define __CORE_SC300_H_GENERIC + +#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 + @{ + */ + +/* CMSIS SC300 definitions */ +#define __SC300_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */ +#define __SC300_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ +#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16) | \ + __SC300_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_SC (300) /*!< Cortex secure core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) +#define __packed +#define __ASM _asm /*!< asm keyword for COSMIC Compiler */ +#define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI__VFP_SUPPORT____ +#warning "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__ ) /* Cosmic */ +#if ( __CSMC__ & 0x400) // FPU present for parser +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#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 0x0000 +#warning "__SC300_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 4 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5]; + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 29 /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< 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 4 /*!< 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 3 /*!< 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 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< 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 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< 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 8 /*!< 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 0 /*!< 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 */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< 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 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< 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[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + uint32_t RESERVED1[1]; +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< 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 { + __O union { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< 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 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< 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 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< 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 { + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< 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 0 /*!< 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 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< 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 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< 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 0 /*!< 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 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< 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 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 { + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< 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 25 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 5 /*!< 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 3 /*!< 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 2 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< 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_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 10 /*!< 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 9 /*!< 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 8 /*!< 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 7 /*!< 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 6 /*!< 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 5 /*!< 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 4 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M3 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/** \brief Set Priority Grouping + + The function 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)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function 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 ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function 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 & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function 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* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* 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 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function 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) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) { /* ITM Port #0 enabled */ + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function 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 + + The function 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/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_common_tables.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_common_tables.h new file mode 100644 index 000000000..7a59b5923 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_common_tables.h @@ -0,0 +1,93 @@ +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2013 ARM Limited. All rights reserved. +* +* $Date: 17. January 2013 +* $Revision: V1.4.1 +* +* Project: CMSIS DSP Library +* Title: arm_common_tables.h +* +* Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions +* +* Target Processor: Cortex-M4/Cortex-M3 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* -------------------------------------------------------------------- */ + +#ifndef _ARM_COMMON_TABLES_H +#define _ARM_COMMON_TABLES_H + +#include "arm_math.h" + +extern const uint16_t armBitRevTable[1024]; +extern const q15_t armRecipTableQ15[64]; +extern const q31_t armRecipTableQ31[64]; +extern const q31_t realCoefAQ31[1024]; +extern const q31_t realCoefBQ31[1024]; +extern const float32_t twiddleCoef_16[32]; +extern const float32_t twiddleCoef_32[64]; +extern const float32_t twiddleCoef_64[128]; +extern const float32_t twiddleCoef_128[256]; +extern const float32_t twiddleCoef_256[512]; +extern const float32_t twiddleCoef_512[1024]; +extern const float32_t twiddleCoef_1024[2048]; +extern const float32_t twiddleCoef_2048[4096]; +extern const float32_t twiddleCoef_4096[8192]; +#define twiddleCoef twiddleCoef_4096 +extern const q31_t twiddleCoefQ31[6144]; +extern const q15_t twiddleCoefQ15[6144]; +extern const float32_t twiddleCoef_rfft_32[32]; +extern const float32_t twiddleCoef_rfft_64[64]; +extern const float32_t twiddleCoef_rfft_128[128]; +extern const float32_t twiddleCoef_rfft_256[256]; +extern const float32_t twiddleCoef_rfft_512[512]; +extern const float32_t twiddleCoef_rfft_1024[1024]; +extern const float32_t twiddleCoef_rfft_2048[2048]; +extern const float32_t twiddleCoef_rfft_4096[4096]; + + +#define ARMBITREVINDEXTABLE__16_TABLE_LENGTH ((uint16_t)20 ) +#define ARMBITREVINDEXTABLE__32_TABLE_LENGTH ((uint16_t)48 ) +#define ARMBITREVINDEXTABLE__64_TABLE_LENGTH ((uint16_t)56 ) +#define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208 ) +#define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440 ) +#define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448 ) +#define ARMBITREVINDEXTABLE1024_TABLE_LENGTH ((uint16_t)1800) +#define ARMBITREVINDEXTABLE2048_TABLE_LENGTH ((uint16_t)3808) +#define ARMBITREVINDEXTABLE4096_TABLE_LENGTH ((uint16_t)4032) + +extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE__16_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE__32_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE__64_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE1024_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE2048_TABLE_LENGTH]; +extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE4096_TABLE_LENGTH]; + +#endif /* ARM_COMMON_TABLES_H */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_const_structs.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_const_structs.h new file mode 100644 index 000000000..cbd1795c2 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_const_structs.h @@ -0,0 +1,85 @@ +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2013 ARM Limited. All rights reserved. +* +* $Date: 17. January 2013 +* $Revision: V1.4.1 +* +* Project: CMSIS DSP Library +* Title: arm_const_structs.h +* +* Description: This file has constant structs that are initialized for +* user convenience. For example, some can be given as +* arguments to the arm_cfft_f32() function. +* +* Target Processor: Cortex-M4/Cortex-M3 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* -------------------------------------------------------------------- */ + +#ifndef _ARM_CONST_STRUCTS_H +#define _ARM_CONST_STRUCTS_H + +#include "arm_math.h" +#include "arm_common_tables.h" + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len16 = { + 16, twiddleCoef_16, armBitRevIndexTable16, ARMBITREVINDEXTABLE__16_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len32 = { + 32, twiddleCoef_32, armBitRevIndexTable32, ARMBITREVINDEXTABLE__32_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len64 = { + 64, twiddleCoef_64, armBitRevIndexTable64, ARMBITREVINDEXTABLE__64_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len128 = { + 128, twiddleCoef_128, armBitRevIndexTable128, ARMBITREVINDEXTABLE_128_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len256 = { + 256, twiddleCoef_256, armBitRevIndexTable256, ARMBITREVINDEXTABLE_256_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len512 = { + 512, twiddleCoef_512, armBitRevIndexTable512, ARMBITREVINDEXTABLE_512_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024 = { + 1024, twiddleCoef_1024, armBitRevIndexTable1024, ARMBITREVINDEXTABLE1024_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048 = { + 2048, twiddleCoef_2048, armBitRevIndexTable2048, ARMBITREVINDEXTABLE2048_TABLE_LENGTH +}; + +const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096 = { + 4096, twiddleCoef_4096, armBitRevIndexTable4096, ARMBITREVINDEXTABLE4096_TABLE_LENGTH +}; + +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_math.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_math.h new file mode 100644 index 000000000..25ec5e010 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/arm_math.h @@ -0,0 +1,7207 @@ +/* ---------------------------------------------------------------------- +* Copyright (C) 2010-2013 ARM Limited. All rights reserved. +* +* $Date: 17. January 2013 +* $Revision: V1.4.1 +* +* Project: CMSIS DSP Library +* Title: arm_math.h +* +* Description: Public header file for CMSIS DSP Library +* +* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. + * -------------------------------------------------------------------- */ + +/** + \mainpage CMSIS DSP Software Library + * + * Introduction + * + * This user manual describes the CMSIS DSP software library, + * a suite of common signal processing functions for use on Cortex-M processor based devices. + * + * The library is divided into a number of functions each covering a specific category: + * - Basic math functions + * - Fast math functions + * - Complex math functions + * - Filters + * - Matrix functions + * - Transforms + * - Motor control functions + * - Statistical functions + * - Support functions + * - Interpolation functions + * + * The library has separate functions for operating on 8-bit integers, 16-bit integers, + * 32-bit integer and 32-bit floating-point values. + * + * Using the Library + * + * The library installer contains prebuilt versions of the libraries in the Lib folder. + * - arm_cortexM4lf_math.lib (Little endian and Floating Point Unit on Cortex-M4) + * - arm_cortexM4bf_math.lib (Big endian and Floating Point Unit on Cortex-M4) + * - arm_cortexM4l_math.lib (Little endian on Cortex-M4) + * - arm_cortexM4b_math.lib (Big endian on Cortex-M4) + * - arm_cortexM3l_math.lib (Little endian on Cortex-M3) + * - arm_cortexM3b_math.lib (Big endian on Cortex-M3) + * - arm_cortexM0l_math.lib (Little endian on Cortex-M0) + * - arm_cortexM0b_math.lib (Big endian on Cortex-M3) + * + * The library functions are declared in the public file arm_math.h which is placed in the Include folder. + * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single + * public header file arm_math.h for Cortex-M4/M3/M0 with little endian and big endian. Same header file will be used for floating point unit(FPU) variants. + * Define the appropriate pre processor MACRO ARM_MATH_CM4 or ARM_MATH_CM3 or + * ARM_MATH_CM0 or ARM_MATH_CM0PLUS depending on the target processor in the application. + * + * Examples + * + * The library ships with a number of examples which demonstrate how to use the library functions. + * + * Toolchain Support + * + * The library has been developed and tested with MDK-ARM version 4.60. + * The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly. + * + * Building the Library + * + * The library installer contains project files to re build libraries on MDK Tool chain in the CMSIS\\DSP_Lib\\Source\\ARM folder. + * - arm_cortexM0b_math.uvproj + * - arm_cortexM0l_math.uvproj + * - arm_cortexM3b_math.uvproj + * - arm_cortexM3l_math.uvproj + * - arm_cortexM4b_math.uvproj + * - arm_cortexM4l_math.uvproj + * - arm_cortexM4bf_math.uvproj + * - arm_cortexM4lf_math.uvproj + * + * + * The project can be built by opening the appropriate project in MDK-ARM 4.60 chain and defining the optional pre processor MACROs detailed above. + * + * Pre-processor Macros + * + * Each library project have differant pre-processor macros. + * + * - UNALIGNED_SUPPORT_DISABLE: + * + * Define macro UNALIGNED_SUPPORT_DISABLE, If the silicon does not support unaligned memory access + * + * - ARM_MATH_BIG_ENDIAN: + * + * Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets. + * + * - ARM_MATH_MATRIX_CHECK: + * + * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices + * + * - ARM_MATH_ROUNDING: + * + * Define macro ARM_MATH_ROUNDING for rounding on support functions + * + * - ARM_MATH_CMx: + * + * Define macro ARM_MATH_CM4 for building the library on Cortex-M4 target, ARM_MATH_CM3 for building library on Cortex-M3 target + * and ARM_MATH_CM0 for building library on cortex-M0 target, ARM_MATH_CM0PLUS for building library on cortex-M0+ target. + * + * - __FPU_PRESENT: + * + * Initialize macro __FPU_PRESENT = 1 when building on FPU supported Targets. Enable this macro for M4bf and M4lf libraries + * + * Copyright Notice + * + * Copyright (C) 2010-2013 ARM Limited. All rights reserved. + */ + + +/** + * @defgroup groupMath Basic Math Functions + */ + +/** + * @defgroup groupFastMath Fast Math Functions + * This set of functions provides a fast approximation to sine, cosine, and square root. + * As compared to most of the other functions in the CMSIS math library, the fast math functions + * operate on individual values and not arrays. + * There are separate functions for Q15, Q31, and floating-point data. + * + */ + +/** + * @defgroup groupCmplxMath Complex Math Functions + * This set of functions operates on complex data vectors. + * The data in the complex arrays is stored in an interleaved fashion + * (real, imag, real, imag, ...). + * In the API functions, the number of samples in a complex array refers + * to the number of complex values; the array contains twice this number of + * real values. + */ + +/** + * @defgroup groupFilters Filtering Functions + */ + +/** + * @defgroup groupMatrix Matrix Functions + * + * This set of functions provides basic matrix math operations. + * The functions operate on matrix data structures. For example, + * the type + * definition for the floating-point matrix structure is shown + * below: + *
+ *     typedef struct
+ *     {
+ *       uint16_t numRows;     // number of rows of the matrix.
+ *       uint16_t numCols;     // number of columns of the matrix.
+ *       float32_t *pData;     // points to the data of the matrix.
+ *     } arm_matrix_instance_f32;
+ * 
+ * There are similar definitions for Q15 and Q31 data types. + * + * The structure specifies the size of the matrix and then points to + * an array of data. The array is of size numRows X numCols + * and the values are arranged in row order. That is, the + * matrix element (i, j) is stored at: + *
+ *     pData[i*numCols + j]
+ * 
+ * + * \par Init Functions + * There is an associated initialization function for each type of matrix + * data structure. + * The initialization function sets the values of the internal structure fields. + * Refer to the function arm_mat_init_f32(), arm_mat_init_q31() + * and arm_mat_init_q15() for floating-point, Q31 and Q15 types, respectively. + * + * \par + * Use of the initialization function is optional. However, if initialization function is used + * then the instance structure cannot be placed into a const data section. + * To place the instance structure in a const data + * section, manually initialize the data structure. For example: + *
+ * arm_matrix_instance_f32 S = {nRows, nColumns, pData};
+ * arm_matrix_instance_q31 S = {nRows, nColumns, pData};
+ * arm_matrix_instance_q15 S = {nRows, nColumns, pData};
+ * 
+ * where nRows specifies the number of rows, nColumns + * specifies the number of columns, and pData points to the + * data array. + * + * \par Size Checking + * By default all of the matrix functions perform size checking on the input and + * output matrices. For example, the matrix addition function verifies that the + * two input matrices and the output matrix all have the same number of rows and + * columns. If the size check fails the functions return: + *
+ *     ARM_MATH_SIZE_MISMATCH
+ * 
+ * Otherwise the functions return + *
+ *     ARM_MATH_SUCCESS
+ * 
+ * There is some overhead associated with this matrix size checking. + * The matrix size checking is enabled via the \#define + *
+ *     ARM_MATH_MATRIX_CHECK
+ * 
+ * within the library project settings. By default this macro is defined + * and size checking is enabled. By changing the project settings and + * undefining this macro size checking is eliminated and the functions + * run a bit faster. With size checking disabled the functions always + * return ARM_MATH_SUCCESS. + */ + +/** + * @defgroup groupTransforms Transform Functions + */ + +/** + * @defgroup groupController Controller Functions + */ + +/** + * @defgroup groupStats Statistics Functions + */ +/** + * @defgroup groupSupport Support Functions + */ + +/** + * @defgroup groupInterpolation Interpolation Functions + * These functions perform 1- and 2-dimensional interpolation of data. + * Linear interpolation is used for 1-dimensional data and + * bilinear interpolation is used for 2-dimensional data. + */ + +/** + * @defgroup groupExamples Examples + */ +#ifndef _ARM_MATH_H +#define _ARM_MATH_H + +#define __CMSIS_GENERIC /* disable NVIC and Systick functions */ + +#if defined (ARM_MATH_CM4) +#include "core_cm4.h" +#elif defined (ARM_MATH_CM3) +#include "core_cm3.h" +#elif defined (ARM_MATH_CM0) +#include "core_cm0.h" +#define ARM_MATH_CM0_FAMILY +#elif defined (ARM_MATH_CM0PLUS) +#include "core_cm0plus.h" +#define ARM_MATH_CM0_FAMILY +#else +#include "ARMCM4.h" +#warning "Define either ARM_MATH_CM4 OR ARM_MATH_CM3...By Default building on ARM_MATH_CM4....." +#endif + +#undef __CMSIS_GENERIC /* enable NVIC and Systick functions */ +#include "string.h" +#include "math.h" +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** + * @brief Macros required for reciprocal calculation in Normalized LMS + */ + +#define DELTA_Q31 (0x100) +#define DELTA_Q15 0x5 +#define INDEX_MASK 0x0000003F +#ifndef PI +#define PI 3.14159265358979f +#endif + +/** + * @brief Macros required for SINE and COSINE Fast math approximations + */ + +#define TABLE_SIZE 256 +#define TABLE_SPACING_Q31 0x800000 +#define TABLE_SPACING_Q15 0x80 + +/** + * @brief Macros required for SINE and COSINE Controller functions + */ +/* 1.31(q31) Fixed value of 2/360 */ +/* -1 to +1 is divided into 360 values so total spacing is (2/360) */ +#define INPUT_SPACING 0xB60B61 + +/** + * @brief Macro for Unaligned Support + */ +#ifndef UNALIGNED_SUPPORT_DISABLE +#define ALIGN4 +#else +#if defined (__GNUC__) +#define ALIGN4 __attribute__((aligned(4))) +#else +#define ALIGN4 __align(4) +#endif +#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */ + +/** + * @brief Error status returned by some functions in the library. + */ + +typedef enum { + ARM_MATH_SUCCESS = 0, /**< No error */ + ARM_MATH_ARGUMENT_ERROR = -1, /**< One or more arguments are incorrect */ + ARM_MATH_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */ + ARM_MATH_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation. */ + ARM_MATH_NANINF = -4, /**< Not-a-number (NaN) or infinity is generated */ + ARM_MATH_SINGULAR = -5, /**< Generated by matrix inversion if the input matrix is singular and cannot be inverted. */ + ARM_MATH_TEST_FAILURE = -6 /**< Test Failed */ +} arm_status; + +/** + * @brief 8-bit fractional data type in 1.7 format. + */ +typedef int8_t q7_t; + +/** + * @brief 16-bit fractional data type in 1.15 format. + */ +typedef int16_t q15_t; + +/** + * @brief 32-bit fractional data type in 1.31 format. + */ +typedef int32_t q31_t; + +/** + * @brief 64-bit fractional data type in 1.63 format. + */ +typedef int64_t q63_t; + +/** + * @brief 32-bit floating-point type definition. + */ +typedef float float32_t; + +/** + * @brief 64-bit floating-point type definition. + */ +typedef double float64_t; + +/** + * @brief definition to read/write two 16 bit values. + */ +#if defined __CC_ARM +#define __SIMD32_TYPE int32_t __packed +#define CMSIS_UNUSED __attribute__((unused)) +#elif defined __ICCARM__ +#define CMSIS_UNUSED +#define __SIMD32_TYPE int32_t __packed +#elif defined __GNUC__ +#define __SIMD32_TYPE int32_t +#define CMSIS_UNUSED __attribute__((unused)) +#else +#error Unknown compiler +#endif + +#define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr)) +#define __SIMD32_CONST(addr) ((__SIMD32_TYPE *)(addr)) + +#define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE *) (addr)) + +#define __SIMD64(addr) (*(int64_t **) & (addr)) + +#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) +/** + * @brief definition to pack two 16 bit values. + */ +#define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \ + (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) ) +#define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \ + (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) ) + +#endif + + +/** +* @brief definition to pack four 8 bit values. +*/ +#ifndef ARM_MATH_BIG_ENDIAN + +#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \ + (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \ + (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \ + (((int32_t)(v3) << 24) & (int32_t)0xFF000000) ) +#else + +#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \ + (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \ + (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \ + (((int32_t)(v0) << 24) & (int32_t)0xFF000000) ) + +#endif + + +/** + * @brief Clips Q63 to Q31 values. + */ +static __INLINE q31_t clip_q63_to_q31( + q63_t x) +{ + return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? + ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x; +} + +/** + * @brief Clips Q63 to Q15 values. + */ +static __INLINE q15_t clip_q63_to_q15( + q63_t x) +{ + return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? + ((0x7FFF ^ ((q15_t) (x >> 63)))) : (q15_t) (x >> 15); +} + +/** + * @brief Clips Q31 to Q7 values. + */ +static __INLINE q7_t clip_q31_to_q7( + q31_t x) +{ + return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ? + ((0x7F ^ ((q7_t) (x >> 31)))) : (q7_t) x; +} + +/** + * @brief Clips Q31 to Q15 values. + */ +static __INLINE q15_t clip_q31_to_q15( + q31_t x) +{ + return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ? + ((0x7FFF ^ ((q15_t) (x >> 31)))) : (q15_t) x; +} + +/** + * @brief Multiplies 32 X 64 and returns 32 bit result in 2.30 format. + */ + +static __INLINE q63_t mult32x64( + q63_t x, + q31_t y) +{ + return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) + + (((q63_t) (x >> 32) * y))); +} + + +#if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM ) +#define __CLZ __clz +#endif + +#if defined (ARM_MATH_CM0_FAMILY) && ((defined (__ICCARM__)) ||(defined (__GNUC__)) || defined (__TASKING__) ) + +static __INLINE uint32_t __CLZ( + q31_t data); + + +static __INLINE uint32_t __CLZ( + q31_t data) +{ + uint32_t count = 0; + uint32_t mask = 0x80000000; + + while((data & mask) == 0) { + count += 1u; + mask = mask >> 1u; + } + + return (count); + +} + +#endif + +/** + * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type. + */ + +static __INLINE uint32_t arm_recip_q31( + q31_t in, + q31_t* dst, + q31_t* pRecipTable) +{ + + uint32_t out, tempVal; + uint32_t index, i; + uint32_t signBits; + + if(in > 0) { + signBits = __CLZ(in) - 1; + } + else { + signBits = __CLZ(-in) - 1; + } + + /* Convert input sample to 1.31 format */ + in = in << signBits; + + /* calculation of index for initial approximated Val */ + index = (uint32_t) (in >> 24u); + index = (index & INDEX_MASK); + + /* 1.31 with exp 1 */ + out = pRecipTable[index]; + + /* calculation of reciprocal value */ + /* running approximation for two iterations */ + for (i = 0u; i < 2u; i++) { + tempVal = (q31_t) (((q63_t) in * out) >> 31u); + tempVal = 0x7FFFFFFF - tempVal; + /* 1.31 with exp 1 */ + //out = (q31_t) (((q63_t) out * tempVal) >> 30u); + out = (q31_t) clip_q63_to_q31(((q63_t) out * tempVal) >> 30u); + } + + /* write output */ + *dst = out; + + /* return num of signbits of out = 1/in value */ + return (signBits + 1u); + +} + +/** + * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type. + */ +static __INLINE uint32_t arm_recip_q15( + q15_t in, + q15_t* dst, + q15_t* pRecipTable) +{ + + uint32_t out = 0, tempVal = 0; + uint32_t index = 0, i = 0; + uint32_t signBits = 0; + + if(in > 0) { + signBits = __CLZ(in) - 17; + } + else { + signBits = __CLZ(-in) - 17; + } + + /* Convert input sample to 1.15 format */ + in = in << signBits; + + /* calculation of index for initial approximated Val */ + index = in >> 8; + index = (index & INDEX_MASK); + + /* 1.15 with exp 1 */ + out = pRecipTable[index]; + + /* calculation of reciprocal value */ + /* running approximation for two iterations */ + for (i = 0; i < 2; i++) { + tempVal = (q15_t) (((q31_t) in * out) >> 15); + tempVal = 0x7FFF - tempVal; + /* 1.15 with exp 1 */ + out = (q15_t) (((q31_t) out * tempVal) >> 14); + } + + /* write output */ + *dst = out; + + /* return num of signbits of out = 1/in value */ + return (signBits + 1); + +} + + +/* + * @brief C custom defined intrinisic function for only M0 processors + */ +#if defined(ARM_MATH_CM0_FAMILY) + +static __INLINE q31_t __SSAT( + q31_t x, + uint32_t y) +{ + int32_t posMax, negMin; + uint32_t i; + + posMax = 1; + for (i = 0; i < (y - 1); i++) { + posMax = posMax * 2; + } + + if(x > 0) { + posMax = (posMax - 1); + + if(x > posMax) { + x = posMax; + } + } + else { + negMin = -posMax; + + if(x < negMin) { + x = negMin; + } + } + return (x); + + +} + +#endif /* end of ARM_MATH_CM0_FAMILY */ + + + +/* + * @brief C custom defined intrinsic function for M3 and M0 processors + */ +#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) + +/* + * @brief C custom defined QADD8 for M3 and M0 processors + */ +static __INLINE q31_t __QADD8( + q31_t x, + q31_t y) +{ + + q31_t sum; + q7_t r, s, t, u; + + r = (q7_t) x; + s = (q7_t) y; + + r = __SSAT((q31_t) (r + s), 8); + s = __SSAT(((q31_t) (((x << 16) >> 24) + ((y << 16) >> 24))), 8); + t = __SSAT(((q31_t) (((x << 8) >> 24) + ((y << 8) >> 24))), 8); + u = __SSAT(((q31_t) ((x >> 24) + (y >> 24))), 8); + + sum = + (((q31_t) u << 24) & 0xFF000000) | (((q31_t) t << 16) & 0x00FF0000) | + (((q31_t) s << 8) & 0x0000FF00) | (r & 0x000000FF); + + return sum; + +} + +/* + * @brief C custom defined QSUB8 for M3 and M0 processors + */ +static __INLINE q31_t __QSUB8( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s, t, u; + + r = (q7_t) x; + s = (q7_t) y; + + r = __SSAT((r - s), 8); + s = __SSAT(((q31_t) (((x << 16) >> 24) - ((y << 16) >> 24))), 8) << 8; + t = __SSAT(((q31_t) (((x << 8) >> 24) - ((y << 8) >> 24))), 8) << 16; + u = __SSAT(((q31_t) ((x >> 24) - (y >> 24))), 8) << 24; + + sum = + (u & 0xFF000000) | (t & 0x00FF0000) | (s & 0x0000FF00) | (r & + 0x000000FF); + + return sum; +} + +/* + * @brief C custom defined QADD16 for M3 and M0 processors + */ + +/* + * @brief C custom defined QADD16 for M3 and M0 processors + */ +static __INLINE q31_t __QADD16( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (short) x; + s = (short) y; + + r = __SSAT(r + s, 16); + s = __SSAT(((q31_t) ((x >> 16) + (y >> 16))), 16) << 16; + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; + +} + +/* + * @brief C custom defined SHADD16 for M3 and M0 processors + */ +static __INLINE q31_t __SHADD16( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (short) x; + s = (short) y; + + r = ((r >> 1) + (s >> 1)); + s = ((q31_t) ((x >> 17) + (y >> 17))) << 16; + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; + +} + +/* + * @brief C custom defined QSUB16 for M3 and M0 processors + */ +static __INLINE q31_t __QSUB16( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (short) x; + s = (short) y; + + r = __SSAT(r - s, 16); + s = __SSAT(((q31_t) ((x >> 16) - (y >> 16))), 16) << 16; + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; +} + +/* + * @brief C custom defined SHSUB16 for M3 and M0 processors + */ +static __INLINE q31_t __SHSUB16( + q31_t x, + q31_t y) +{ + + q31_t diff; + q31_t r, s; + + r = (short) x; + s = (short) y; + + r = ((r >> 1) - (s >> 1)); + s = (((x >> 17) - (y >> 17)) << 16); + + diff = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return diff; +} + +/* + * @brief C custom defined QASX for M3 and M0 processors + */ +static __INLINE q31_t __QASX( + q31_t x, + q31_t y) +{ + + q31_t sum = 0; + + sum = + ((sum + + clip_q31_to_q15((q31_t) ((short) (x >> 16) + (short) y))) << 16) + + clip_q31_to_q15((q31_t) ((short) x - (short) (y >> 16))); + + return sum; +} + +/* + * @brief C custom defined SHASX for M3 and M0 processors + */ +static __INLINE q31_t __SHASX( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (short) x; + s = (short) y; + + r = ((r >> 1) - (y >> 17)); + s = (((x >> 17) + (s >> 1)) << 16); + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; +} + + +/* + * @brief C custom defined QSAX for M3 and M0 processors + */ +static __INLINE q31_t __QSAX( + q31_t x, + q31_t y) +{ + + q31_t sum = 0; + + sum = + ((sum + + clip_q31_to_q15((q31_t) ((short) (x >> 16) - (short) y))) << 16) + + clip_q31_to_q15((q31_t) ((short) x + (short) (y >> 16))); + + return sum; +} + +/* + * @brief C custom defined SHSAX for M3 and M0 processors + */ +static __INLINE q31_t __SHSAX( + q31_t x, + q31_t y) +{ + + q31_t sum; + q31_t r, s; + + r = (short) x; + s = (short) y; + + r = ((r >> 1) + (y >> 17)); + s = (((x >> 17) - (s >> 1)) << 16); + + sum = (s & 0xFFFF0000) | (r & 0x0000FFFF); + + return sum; +} + +/* + * @brief C custom defined SMUSDX for M3 and M0 processors + */ +static __INLINE q31_t __SMUSDX( + q31_t x, + q31_t y) +{ + + return ((q31_t) (((short) x * (short) (y >> 16)) - + ((short) (x >> 16) * (short) y))); +} + +/* + * @brief C custom defined SMUADX for M3 and M0 processors + */ +static __INLINE q31_t __SMUADX( + q31_t x, + q31_t y) +{ + + return ((q31_t) (((short) x * (short) (y >> 16)) + + ((short) (x >> 16) * (short) y))); +} + +/* + * @brief C custom defined QADD for M3 and M0 processors + */ +static __INLINE q31_t __QADD( + q31_t x, + q31_t y) +{ + return clip_q63_to_q31((q63_t) x + y); +} + +/* + * @brief C custom defined QSUB for M3 and M0 processors + */ +static __INLINE q31_t __QSUB( + q31_t x, + q31_t y) +{ + return clip_q63_to_q31((q63_t) x - y); +} + +/* + * @brief C custom defined SMLAD for M3 and M0 processors + */ +static __INLINE q31_t __SMLAD( + q31_t x, + q31_t y, + q31_t sum) +{ + + return (sum + ((short) (x >> 16) * (short) (y >> 16)) + + ((short) x * (short) y)); +} + +/* + * @brief C custom defined SMLADX for M3 and M0 processors + */ +static __INLINE q31_t __SMLADX( + q31_t x, + q31_t y, + q31_t sum) +{ + + return (sum + ((short) (x >> 16) * (short) (y)) + + ((short) x * (short) (y >> 16))); +} + +/* + * @brief C custom defined SMLSDX for M3 and M0 processors + */ +static __INLINE q31_t __SMLSDX( + q31_t x, + q31_t y, + q31_t sum) +{ + + return (sum - ((short) (x >> 16) * (short) (y)) + + ((short) x * (short) (y >> 16))); +} + +/* + * @brief C custom defined SMLALD for M3 and M0 processors + */ +static __INLINE q63_t __SMLALD( + q31_t x, + q31_t y, + q63_t sum) +{ + + return (sum + ((short) (x >> 16) * (short) (y >> 16)) + + ((short) x * (short) y)); +} + +/* + * @brief C custom defined SMLALDX for M3 and M0 processors + */ +static __INLINE q63_t __SMLALDX( + q31_t x, + q31_t y, + q63_t sum) +{ + + return (sum + ((short) (x >> 16) * (short) y)) + + ((short) x * (short) (y >> 16)); +} + +/* + * @brief C custom defined SMUAD for M3 and M0 processors + */ +static __INLINE q31_t __SMUAD( + q31_t x, + q31_t y) +{ + + return (((x >> 16) * (y >> 16)) + + (((x << 16) >> 16) * ((y << 16) >> 16))); +} + +/* + * @brief C custom defined SMUSD for M3 and M0 processors + */ +static __INLINE q31_t __SMUSD( + q31_t x, + q31_t y) +{ + + return (-((x >> 16) * (y >> 16)) + + (((x << 16) >> 16) * ((y << 16) >> 16))); +} + + +/* + * @brief C custom defined SXTB16 for M3 and M0 processors + */ +static __INLINE q31_t __SXTB16( + q31_t x) +{ + + return ((((x << 24) >> 24) & 0x0000FFFF) | + (((x << 8) >> 8) & 0xFFFF0000)); +} + + +#endif /* defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */ + + +/** + * @brief Instance structure for the Q7 FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q7_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q7_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ +} arm_fir_instance_q7; + +/** + * @brief Instance structure for the Q15 FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ +} arm_fir_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ +} arm_fir_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of filter coefficients in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ +} arm_fir_instance_f32; + + +/** + * @brief Processing function for the Q7 FIR filter. + * @param[in] *S points to an instance of the Q7 FIR filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_q7( + const arm_fir_instance_q7* S, + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q7 FIR filter. + * @param[in,out] *S points to an instance of the Q7 FIR structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed. + * @return none + */ +void arm_fir_init_q7( + arm_fir_instance_q7* S, + uint16_t numTaps, + q7_t* pCoeffs, + q7_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q15 FIR filter. + * @param[in] *S points to an instance of the Q15 FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_q15( + const arm_fir_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the fast Q15 FIR filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q15 FIR filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_fast_q15( + const arm_fir_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q15 FIR filter. + * @param[in,out] *S points to an instance of the Q15 FIR filter structure. + * @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than or equal to 4. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_ARGUMENT_ERROR if + * numTaps is not a supported value. + */ + +arm_status arm_fir_init_q15( + arm_fir_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR filter. + * @param[in] *S points to an instance of the Q31 FIR filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_q31( + const arm_fir_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the fast Q31 FIR filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q31 FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_fast_q31( + const arm_fir_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 FIR filter. + * @param[in,out] *S points to an instance of the Q31 FIR structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + * @return none. + */ +void arm_fir_init_q31( + arm_fir_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the floating-point FIR filter. + * @param[in] *S points to an instance of the floating-point FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_f32( + const arm_fir_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point FIR filter. + * @param[in,out] *S points to an instance of the floating-point FIR filter structure. + * @param[in] numTaps Number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of samples that are processed at a time. + * @return none. + */ +void arm_fir_init_f32( + arm_fir_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + uint32_t blockSize); + + +/** + * @brief Instance structure for the Q15 Biquad cascade filter. + */ +typedef struct { + int8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q15_t* pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + q15_t* pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + int8_t postShift; /**< Additional shift, in bits, applied to each output sample. */ + +} arm_biquad_casd_df1_inst_q15; + + +/** + * @brief Instance structure for the Q31 Biquad cascade filter. + */ +typedef struct { + uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q31_t* pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + q31_t* pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + uint8_t postShift; /**< Additional shift, in bits, applied to each output sample. */ + +} arm_biquad_casd_df1_inst_q31; + +/** + * @brief Instance structure for the floating-point Biquad cascade filter. + */ +typedef struct { + uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t* pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */ + float32_t* pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */ + + +} arm_biquad_casd_df1_inst_f32; + + + +/** + * @brief Processing function for the Q15 Biquad cascade filter. + * @param[in] *S points to an instance of the Q15 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_q15( + const arm_biquad_casd_df1_inst_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q15 Biquad cascade filter. + * @param[in,out] *S points to an instance of the Q15 Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format + * @return none + */ + +void arm_biquad_cascade_df1_init_q15( + arm_biquad_casd_df1_inst_q15* S, + uint8_t numStages, + q15_t* pCoeffs, + q15_t* pState, + int8_t postShift); + + +/** + * @brief Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q15 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_fast_q15( + const arm_biquad_casd_df1_inst_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q31 Biquad cascade filter + * @param[in] *S points to an instance of the Q31 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_q31( + const arm_biquad_casd_df1_inst_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q31 Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_fast_q31( + const arm_biquad_casd_df1_inst_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 Biquad cascade filter. + * @param[in,out] *S points to an instance of the Q31 Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format + * @return none + */ + +void arm_biquad_cascade_df1_init_q31( + arm_biquad_casd_df1_inst_q31* S, + uint8_t numStages, + q31_t* pCoeffs, + q31_t* pState, + int8_t postShift); + +/** + * @brief Processing function for the floating-point Biquad cascade filter. + * @param[in] *S points to an instance of the floating-point Biquad cascade structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df1_f32( + const arm_biquad_casd_df1_inst_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point Biquad cascade filter. + * @param[in,out] *S points to an instance of the floating-point Biquad cascade structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @return none + */ + +void arm_biquad_cascade_df1_init_f32( + arm_biquad_casd_df1_inst_f32* S, + uint8_t numStages, + float32_t* pCoeffs, + float32_t* pState); + + +/** + * @brief Instance structure for the floating-point matrix structure. + */ + +typedef struct { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + float32_t* pData; /**< points to the data of the matrix. */ +} arm_matrix_instance_f32; + +/** + * @brief Instance structure for the Q15 matrix structure. + */ + +typedef struct { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + q15_t* pData; /**< points to the data of the matrix. */ + +} arm_matrix_instance_q15; + +/** + * @brief Instance structure for the Q31 matrix structure. + */ + +typedef struct { + uint16_t numRows; /**< number of rows of the matrix. */ + uint16_t numCols; /**< number of columns of the matrix. */ + q31_t* pData; /**< points to the data of the matrix. */ + +} arm_matrix_instance_q31; + + + +/** + * @brief Floating-point matrix addition. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_add_f32( + const arm_matrix_instance_f32* pSrcA, + const arm_matrix_instance_f32* pSrcB, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix addition. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_add_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix addition. + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_add_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Floating-point matrix transpose. + * @param[in] *pSrc points to the input matrix + * @param[out] *pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_trans_f32( + const arm_matrix_instance_f32* pSrc, + arm_matrix_instance_f32* pDst); + + +/** + * @brief Q15 matrix transpose. + * @param[in] *pSrc points to the input matrix + * @param[out] *pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_trans_q15( + const arm_matrix_instance_q15* pSrc, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix transpose. + * @param[in] *pSrc points to the input matrix + * @param[out] *pDst points to the output matrix + * @return The function returns either ARM_MATH_SIZE_MISMATCH + * or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_trans_q31( + const arm_matrix_instance_q31* pSrc, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Floating-point matrix multiplication + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_f32( + const arm_matrix_instance_f32* pSrcA, + const arm_matrix_instance_f32* pSrcB, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix multiplication + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @param[in] *pState points to the array for storing intermediate results + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst, + q15_t* pState); + +/** + * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @param[in] *pState points to the array for storing intermediate results + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_fast_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst, + q15_t* pState); + +/** + * @brief Q31 matrix multiplication + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + +/** + * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_mult_fast_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Floating-point matrix subtraction + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_sub_f32( + const arm_matrix_instance_f32* pSrcA, + const arm_matrix_instance_f32* pSrcB, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix subtraction + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_sub_q15( + const arm_matrix_instance_q15* pSrcA, + const arm_matrix_instance_q15* pSrcB, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix subtraction + * @param[in] *pSrcA points to the first input matrix structure + * @param[in] *pSrcB points to the second input matrix structure + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_sub_q31( + const arm_matrix_instance_q31* pSrcA, + const arm_matrix_instance_q31* pSrcB, + arm_matrix_instance_q31* pDst); + +/** + * @brief Floating-point matrix scaling. + * @param[in] *pSrc points to the input matrix + * @param[in] scale scale factor + * @param[out] *pDst points to the output matrix + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_scale_f32( + const arm_matrix_instance_f32* pSrc, + float32_t scale, + arm_matrix_instance_f32* pDst); + +/** + * @brief Q15 matrix scaling. + * @param[in] *pSrc points to input matrix + * @param[in] scaleFract fractional portion of the scale factor + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to output matrix + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_scale_q15( + const arm_matrix_instance_q15* pSrc, + q15_t scaleFract, + int32_t shift, + arm_matrix_instance_q15* pDst); + +/** + * @brief Q31 matrix scaling. + * @param[in] *pSrc points to input matrix + * @param[in] scaleFract fractional portion of the scale factor + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to output matrix structure + * @return The function returns either + * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking. + */ + +arm_status arm_mat_scale_q31( + const arm_matrix_instance_q31* pSrc, + q31_t scaleFract, + int32_t shift, + arm_matrix_instance_q31* pDst); + + +/** + * @brief Q31 matrix initialization. + * @param[in,out] *S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] *pData points to the matrix data array. + * @return none + */ + +void arm_mat_init_q31( + arm_matrix_instance_q31* S, + uint16_t nRows, + uint16_t nColumns, + q31_t* pData); + +/** + * @brief Q15 matrix initialization. + * @param[in,out] *S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] *pData points to the matrix data array. + * @return none + */ + +void arm_mat_init_q15( + arm_matrix_instance_q15* S, + uint16_t nRows, + uint16_t nColumns, + q15_t* pData); + +/** + * @brief Floating-point matrix initialization. + * @param[in,out] *S points to an instance of the floating-point matrix structure. + * @param[in] nRows number of rows in the matrix. + * @param[in] nColumns number of columns in the matrix. + * @param[in] *pData points to the matrix data array. + * @return none + */ + +void arm_mat_init_f32( + arm_matrix_instance_f32* S, + uint16_t nRows, + uint16_t nColumns, + float32_t* pData); + + + +/** + * @brief Instance structure for the Q15 PID Control. + */ +typedef struct { + q15_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ +#ifdef ARM_MATH_CM0_FAMILY + q15_t A1; + q15_t A2; +#else + q31_t A1; /**< The derived gain A1 = -Kp - 2Kd | Kd.*/ +#endif + q15_t state[3]; /**< The state array of length 3. */ + q15_t Kp; /**< The proportional gain. */ + q15_t Ki; /**< The integral gain. */ + q15_t Kd; /**< The derivative gain. */ +} arm_pid_instance_q15; + +/** + * @brief Instance structure for the Q31 PID Control. + */ +typedef struct { + q31_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ + q31_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ + q31_t A2; /**< The derived gain, A2 = Kd . */ + q31_t state[3]; /**< The state array of length 3. */ + q31_t Kp; /**< The proportional gain. */ + q31_t Ki; /**< The integral gain. */ + q31_t Kd; /**< The derivative gain. */ + +} arm_pid_instance_q31; + +/** + * @brief Instance structure for the floating-point PID Control. + */ +typedef struct { + float32_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ + float32_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ + float32_t A2; /**< The derived gain, A2 = Kd . */ + float32_t state[3]; /**< The state array of length 3. */ + float32_t Kp; /**< The proportional gain. */ + float32_t Ki; /**< The integral gain. */ + float32_t Kd; /**< The derivative gain. */ +} arm_pid_instance_f32; + + + +/** + * @brief Initialization function for the floating-point PID Control. + * @param[in,out] *S points to an instance of the PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + * @return none. + */ +void arm_pid_init_f32( + arm_pid_instance_f32* S, + int32_t resetStateFlag); + +/** + * @brief Reset function for the floating-point PID Control. + * @param[in,out] *S is an instance of the floating-point PID Control structure + * @return none + */ +void arm_pid_reset_f32( + arm_pid_instance_f32* S); + + +/** + * @brief Initialization function for the Q31 PID Control. + * @param[in,out] *S points to an instance of the Q15 PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + * @return none. + */ +void arm_pid_init_q31( + arm_pid_instance_q31* S, + int32_t resetStateFlag); + + +/** + * @brief Reset function for the Q31 PID Control. + * @param[in,out] *S points to an instance of the Q31 PID Control structure + * @return none + */ + +void arm_pid_reset_q31( + arm_pid_instance_q31* S); + +/** + * @brief Initialization function for the Q15 PID Control. + * @param[in,out] *S points to an instance of the Q15 PID structure. + * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state. + * @return none. + */ +void arm_pid_init_q15( + arm_pid_instance_q15* S, + int32_t resetStateFlag); + +/** + * @brief Reset function for the Q15 PID Control. + * @param[in,out] *S points to an instance of the q15 PID Control structure + * @return none + */ +void arm_pid_reset_q15( + arm_pid_instance_q15* S); + + +/** + * @brief Instance structure for the floating-point Linear Interpolate function. + */ +typedef struct { + uint32_t nValues; /**< nValues */ + float32_t x1; /**< x1 */ + float32_t xSpacing; /**< xSpacing */ + float32_t* pYData; /**< pointer to the table of Y values */ +} arm_linear_interp_instance_f32; + +/** + * @brief Instance structure for the floating-point bilinear interpolation function. + */ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + float32_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_f32; + +/** +* @brief Instance structure for the Q31 bilinear interpolation function. +*/ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q31_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_q31; + +/** +* @brief Instance structure for the Q15 bilinear interpolation function. +*/ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q15_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_q15; + +/** +* @brief Instance structure for the Q15 bilinear interpolation function. +*/ + +typedef struct { + uint16_t numRows; /**< number of rows in the data table. */ + uint16_t numCols; /**< number of columns in the data table. */ + q7_t* pData; /**< points to the data table. */ +} arm_bilinear_interp_instance_q7; + + +/** + * @brief Q7 vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_q7( + q7_t* pSrcA, + q7_t* pSrcB, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Floating-point vector multiplication. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_mult_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t blockSize); + + + + + + +/** + * @brief Instance structure for the Q15 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q15_t* pTwiddle; /**< points to the Sin twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix2_instance_q15; + +arm_status arm_cfft_radix2_init_q15( + arm_cfft_radix2_instance_q15* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +void arm_cfft_radix2_q15( + const arm_cfft_radix2_instance_q15* S, + q15_t* pSrc); + + + +/** + * @brief Instance structure for the Q15 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q15_t* pTwiddle; /**< points to the twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix4_instance_q15; + +arm_status arm_cfft_radix4_init_q15( + arm_cfft_radix4_instance_q15* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +void arm_cfft_radix4_q15( + const arm_cfft_radix4_instance_q15* S, + q15_t* pSrc); + +/** + * @brief Instance structure for the Radix-2 Q31 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q31_t* pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix2_instance_q31; + +arm_status arm_cfft_radix2_init_q31( + arm_cfft_radix2_instance_q31* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +void arm_cfft_radix2_q31( + const arm_cfft_radix2_instance_q31* S, + q31_t* pSrc); + +/** + * @brief Instance structure for the Q31 CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + q31_t* pTwiddle; /**< points to the twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ +} arm_cfft_radix4_instance_q31; + + +void arm_cfft_radix4_q31( + const arm_cfft_radix4_instance_q31* S, + q31_t* pSrc); + +arm_status arm_cfft_radix4_init_q31( + arm_cfft_radix4_instance_q31* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + float32_t* pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + float32_t onebyfftLen; /**< value of 1/fftLen. */ +} arm_cfft_radix2_instance_f32; + +/* Deprecated */ +arm_status arm_cfft_radix2_init_f32( + arm_cfft_radix2_instance_f32* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ +void arm_cfft_radix2_f32( + const arm_cfft_radix2_instance_f32* S, + float32_t* pSrc); + +/** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */ + uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */ + float32_t* pTwiddle; /**< points to the Twiddle factor table. */ + uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */ + float32_t onebyfftLen; /**< value of 1/fftLen. */ +} arm_cfft_radix4_instance_f32; + +/* Deprecated */ +arm_status arm_cfft_radix4_init_f32( + arm_cfft_radix4_instance_f32* S, + uint16_t fftLen, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/* Deprecated */ +void arm_cfft_radix4_f32( + const arm_cfft_radix4_instance_f32* S, + float32_t* pSrc); + +/** + * @brief Instance structure for the floating-point CFFT/CIFFT function. + */ + +typedef struct { + uint16_t fftLen; /**< length of the FFT. */ + const float32_t* pTwiddle; /**< points to the Twiddle factor table. */ + const uint16_t* pBitRevTable; /**< points to the bit reversal table. */ + uint16_t bitRevLength; /**< bit reversal table length. */ +} arm_cfft_instance_f32; + +void arm_cfft_f32( + const arm_cfft_instance_f32* S, + float32_t* p1, + uint8_t ifftFlag, + uint8_t bitReverseFlag); + +/** + * @brief Instance structure for the Q15 RFFT/RIFFT function. + */ + +typedef struct { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint32_t fftLenBy2; /**< length of the complex FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + q15_t* pTwiddleAReal; /**< points to the real twiddle factor table. */ + q15_t* pTwiddleBReal; /**< points to the imag twiddle factor table. */ + arm_cfft_radix4_instance_q15* pCfft; /**< points to the complex FFT instance. */ +} arm_rfft_instance_q15; + +arm_status arm_rfft_init_q15( + arm_rfft_instance_q15* S, + arm_cfft_radix4_instance_q15* S_CFFT, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + +void arm_rfft_q15( + const arm_rfft_instance_q15* S, + q15_t* pSrc, + q15_t* pDst); + +/** + * @brief Instance structure for the Q31 RFFT/RIFFT function. + */ + +typedef struct { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint32_t fftLenBy2; /**< length of the complex FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + q31_t* pTwiddleAReal; /**< points to the real twiddle factor table. */ + q31_t* pTwiddleBReal; /**< points to the imag twiddle factor table. */ + arm_cfft_radix4_instance_q31* pCfft; /**< points to the complex FFT instance. */ +} arm_rfft_instance_q31; + +arm_status arm_rfft_init_q31( + arm_rfft_instance_q31* S, + arm_cfft_radix4_instance_q31* S_CFFT, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + +void arm_rfft_q31( + const arm_rfft_instance_q31* S, + q31_t* pSrc, + q31_t* pDst); + +/** + * @brief Instance structure for the floating-point RFFT/RIFFT function. + */ + +typedef struct { + uint32_t fftLenReal; /**< length of the real FFT. */ + uint16_t fftLenBy2; /**< length of the complex FFT. */ + uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */ + uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */ + uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */ + float32_t* pTwiddleAReal; /**< points to the real twiddle factor table. */ + float32_t* pTwiddleBReal; /**< points to the imag twiddle factor table. */ + arm_cfft_radix4_instance_f32* pCfft; /**< points to the complex FFT instance. */ +} arm_rfft_instance_f32; + +arm_status arm_rfft_init_f32( + arm_rfft_instance_f32* S, + arm_cfft_radix4_instance_f32* S_CFFT, + uint32_t fftLenReal, + uint32_t ifftFlagR, + uint32_t bitReverseFlag); + +void arm_rfft_f32( + const arm_rfft_instance_f32* S, + float32_t* pSrc, + float32_t* pDst); + +/** + * @brief Instance structure for the floating-point RFFT/RIFFT function. + */ + +typedef struct { + arm_cfft_instance_f32 Sint; /**< Internal CFFT structure. */ + uint16_t fftLenRFFT; /**< length of the real sequence */ + float32_t* pTwiddleRFFT; /**< Twiddle factors real stage */ +} arm_rfft_fast_instance_f32 ; + +arm_status arm_rfft_fast_init_f32 ( + arm_rfft_fast_instance_f32* S, + uint16_t fftLen); + +void arm_rfft_fast_f32( + arm_rfft_fast_instance_f32* S, + float32_t* p, float32_t* pOut, + uint8_t ifftFlag); + +/** + * @brief Instance structure for the floating-point DCT4/IDCT4 function. + */ + +typedef struct { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + float32_t normalize; /**< normalizing factor. */ + float32_t* pTwiddle; /**< points to the twiddle factor table. */ + float32_t* pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_f32* pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_f32* pCfft; /**< points to the complex FFT instance. */ +} arm_dct4_instance_f32; + +/** + * @brief Initialization function for the floating-point DCT4/IDCT4. + * @param[in,out] *S points to an instance of floating-point DCT4/IDCT4 structure. + * @param[in] *S_RFFT points to an instance of floating-point RFFT/RIFFT structure. + * @param[in] *S_CFFT points to an instance of floating-point CFFT/CIFFT structure. + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported transform length. + */ + +arm_status arm_dct4_init_f32( + arm_dct4_instance_f32* S, + arm_rfft_instance_f32* S_RFFT, + arm_cfft_radix4_instance_f32* S_CFFT, + uint16_t N, + uint16_t Nby2, + float32_t normalize); + +/** + * @brief Processing function for the floating-point DCT4/IDCT4. + * @param[in] *S points to an instance of the floating-point DCT4/IDCT4 structure. + * @param[in] *pState points to state buffer. + * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. + * @return none. + */ + +void arm_dct4_f32( + const arm_dct4_instance_f32* S, + float32_t* pState, + float32_t* pInlineBuffer); + +/** + * @brief Instance structure for the Q31 DCT4/IDCT4 function. + */ + +typedef struct { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + q31_t normalize; /**< normalizing factor. */ + q31_t* pTwiddle; /**< points to the twiddle factor table. */ + q31_t* pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_q31* pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_q31* pCfft; /**< points to the complex FFT instance. */ +} arm_dct4_instance_q31; + +/** + * @brief Initialization function for the Q31 DCT4/IDCT4. + * @param[in,out] *S points to an instance of Q31 DCT4/IDCT4 structure. + * @param[in] *S_RFFT points to an instance of Q31 RFFT/RIFFT structure + * @param[in] *S_CFFT points to an instance of Q31 CFFT/CIFFT structure + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. + */ + +arm_status arm_dct4_init_q31( + arm_dct4_instance_q31* S, + arm_rfft_instance_q31* S_RFFT, + arm_cfft_radix4_instance_q31* S_CFFT, + uint16_t N, + uint16_t Nby2, + q31_t normalize); + +/** + * @brief Processing function for the Q31 DCT4/IDCT4. + * @param[in] *S points to an instance of the Q31 DCT4 structure. + * @param[in] *pState points to state buffer. + * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. + * @return none. + */ + +void arm_dct4_q31( + const arm_dct4_instance_q31* S, + q31_t* pState, + q31_t* pInlineBuffer); + +/** + * @brief Instance structure for the Q15 DCT4/IDCT4 function. + */ + +typedef struct { + uint16_t N; /**< length of the DCT4. */ + uint16_t Nby2; /**< half of the length of the DCT4. */ + q15_t normalize; /**< normalizing factor. */ + q15_t* pTwiddle; /**< points to the twiddle factor table. */ + q15_t* pCosFactor; /**< points to the cosFactor table. */ + arm_rfft_instance_q15* pRfft; /**< points to the real FFT instance. */ + arm_cfft_radix4_instance_q15* pCfft; /**< points to the complex FFT instance. */ +} arm_dct4_instance_q15; + +/** + * @brief Initialization function for the Q15 DCT4/IDCT4. + * @param[in,out] *S points to an instance of Q15 DCT4/IDCT4 structure. + * @param[in] *S_RFFT points to an instance of Q15 RFFT/RIFFT structure. + * @param[in] *S_CFFT points to an instance of Q15 CFFT/CIFFT structure. + * @param[in] N length of the DCT4. + * @param[in] Nby2 half of the length of the DCT4. + * @param[in] normalize normalizing factor. + * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length. + */ + +arm_status arm_dct4_init_q15( + arm_dct4_instance_q15* S, + arm_rfft_instance_q15* S_RFFT, + arm_cfft_radix4_instance_q15* S_CFFT, + uint16_t N, + uint16_t Nby2, + q15_t normalize); + +/** + * @brief Processing function for the Q15 DCT4/IDCT4. + * @param[in] *S points to an instance of the Q15 DCT4 structure. + * @param[in] *pState points to state buffer. + * @param[in,out] *pInlineBuffer points to the in-place input and output buffer. + * @return none. + */ + +void arm_dct4_q15( + const arm_dct4_instance_q15* S, + q15_t* pState, + q15_t* pInlineBuffer); + +/** + * @brief Floating-point vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Q7 vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_q7( + q7_t* pSrcA, + q7_t* pSrcB, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector addition. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_add_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Floating-point vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Q7 vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_q7( + q7_t* pSrcA, + q7_t* pSrcB, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector subtraction. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_sub_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a floating-point vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scale scale factor to be applied + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_f32( + float32_t* pSrc, + float32_t scale, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a Q7 vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_q7( + q7_t* pSrc, + q7_t scaleFract, + int8_t shift, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a Q15 vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_q15( + q15_t* pSrc, + q15_t scaleFract, + int8_t shift, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Multiplies a Q31 vector by a scalar. + * @param[in] *pSrc points to the input vector + * @param[in] scaleFract fractional portion of the scale value + * @param[in] shift number of bits to shift the result by + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_scale_q31( + q31_t* pSrc, + q31_t scaleFract, + int8_t shift, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Q7 vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_q7( + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Floating-point vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Q15 vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Q31 vector absolute value. + * @param[in] *pSrc points to the input buffer + * @param[out] *pDst points to the output buffer + * @param[in] blockSize number of samples in each vector + * @return none. + */ + +void arm_abs_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Dot product of floating-point vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_f32( + float32_t* pSrcA, + float32_t* pSrcB, + uint32_t blockSize, + float32_t* result); + +/** + * @brief Dot product of Q7 vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_q7( + q7_t* pSrcA, + q7_t* pSrcB, + uint32_t blockSize, + q31_t* result); + +/** + * @brief Dot product of Q15 vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_q15( + q15_t* pSrcA, + q15_t* pSrcB, + uint32_t blockSize, + q63_t* result); + +/** + * @brief Dot product of Q31 vectors. + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[out] *result output result returned here + * @return none. + */ + +void arm_dot_prod_q31( + q31_t* pSrcA, + q31_t* pSrcB, + uint32_t blockSize, + q63_t* result); + +/** + * @brief Shifts the elements of a Q7 vector a specified number of bits. + * @param[in] *pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_shift_q7( + q7_t* pSrc, + int8_t shiftBits, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Shifts the elements of a Q15 vector a specified number of bits. + * @param[in] *pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_shift_q15( + q15_t* pSrc, + int8_t shiftBits, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Shifts the elements of a Q31 vector a specified number of bits. + * @param[in] *pSrc points to the input vector + * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right. + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_shift_q31( + q31_t* pSrc, + int8_t shiftBits, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a floating-point vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_f32( + float32_t* pSrc, + float32_t offset, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a Q7 vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_q7( + q7_t* pSrc, + q7_t offset, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a Q15 vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_q15( + q15_t* pSrc, + q15_t offset, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Adds a constant offset to a Q31 vector. + * @param[in] *pSrc points to the input vector + * @param[in] offset is the offset to be added + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_offset_q31( + q31_t* pSrc, + q31_t offset, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a floating-point vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a Q7 vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_q7( + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a Q15 vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Negates the elements of a Q31 vector. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] blockSize number of samples in the vector + * @return none. + */ + +void arm_negate_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); +/** + * @brief Copies the elements of a floating-point vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Copies the elements of a Q7 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_q7( + q7_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Copies the elements of a Q15 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Copies the elements of a Q31 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_copy_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); +/** + * @brief Fills a constant value into a floating-point vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_f32( + float32_t value, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Fills a constant value into a Q7 vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_q7( + q7_t value, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Fills a constant value into a Q15 vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_q15( + q15_t value, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Fills a constant value into a Q31 vector. + * @param[in] value input value to be filled + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_fill_q31( + q31_t value, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Convolution of floating-point sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_f32( + float32_t* pSrcA, + uint32_t srcALen, + float32_t* pSrcB, + uint32_t srcBLen, + float32_t* pDst); + + +/** + * @brief Convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return none. + */ + + +void arm_conv_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the location where the output result is written. Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + +/** + * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_fast_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + +/** + * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return none. + */ + +void arm_conv_fast_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + + +/** + * @brief Convolution of Q31 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + +/** + * @brief Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_fast_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + + +/** +* @brief Convolution of Q7 sequences. +* @param[in] *pSrcA points to the first input sequence. +* @param[in] srcALen length of the first input sequence. +* @param[in] *pSrcB points to the second input sequence. +* @param[in] srcBLen length of the second input sequence. +* @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. +* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. +* @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). +* @return none. +*/ + +void arm_conv_opt_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + + +/** + * @brief Convolution of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length srcALen+srcBLen-1. + * @return none. + */ + +void arm_conv_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst); + + +/** + * @brief Partial convolution of floating-point sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_f32( + float32_t* pSrcA, + uint32_t srcALen, + float32_t* pSrcB, + uint32_t srcBLen, + float32_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + +/** +* @brief Partial convolution of Q15 sequences. +* @param[in] *pSrcA points to the first input sequence. +* @param[in] srcALen length of the first input sequence. +* @param[in] *pSrcB points to the second input sequence. +* @param[in] srcBLen length of the second input sequence. +* @param[out] *pDst points to the block of output data +* @param[in] firstIndex is the first output sample to start with. +* @param[in] numPoints is the number of output points to be computed. +* @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. +* @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). +* @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. +*/ + +arm_status arm_conv_partial_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Partial convolution of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + +/** + * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_fast_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + +/** + * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_fast_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Partial convolution of Q31 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + +/** + * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_fast_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + +/** + * @brief Partial convolution of Q7 sequences + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_opt_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + uint32_t firstIndex, + uint32_t numPoints, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Partial convolution of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data + * @param[in] firstIndex is the first output sample to start with. + * @param[in] numPoints is the number of output points to be computed. + * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2]. + */ + +arm_status arm_conv_partial_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + uint32_t firstIndex, + uint32_t numPoints); + + + +/** + * @brief Instance structure for the Q15 FIR decimator. + */ + +typedef struct { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ +} arm_fir_decimate_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR decimator. + */ + +typedef struct { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + +} arm_fir_decimate_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR decimator. + */ + +typedef struct { + uint8_t M; /**< decimation factor. */ + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + +} arm_fir_decimate_instance_f32; + + + +/** + * @brief Processing function for the floating-point FIR decimator. + * @param[in] *S points to an instance of the floating-point FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_f32( + const arm_fir_decimate_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the floating-point FIR decimator. + * @param[in,out] *S points to an instance of the floating-point FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + +arm_status arm_fir_decimate_init_f32( + arm_fir_decimate_instance_f32* S, + uint16_t numTaps, + uint8_t M, + float32_t* pCoeffs, + float32_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q15 FIR decimator. + * @param[in] *S points to an instance of the Q15 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_q15( + const arm_fir_decimate_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q15 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_fast_q15( + const arm_fir_decimate_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + + +/** + * @brief Initialization function for the Q15 FIR decimator. + * @param[in,out] *S points to an instance of the Q15 FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + +arm_status arm_fir_decimate_init_q15( + arm_fir_decimate_instance_q15* S, + uint16_t numTaps, + uint8_t M, + q15_t* pCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR decimator. + * @param[in] *S points to an instance of the Q31 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_q31( + const arm_fir_decimate_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4. + * @param[in] *S points to an instance of the Q31 FIR decimator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of input samples to process per call. + * @return none + */ + +void arm_fir_decimate_fast_q31( + arm_fir_decimate_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q31 FIR decimator. + * @param[in,out] *S points to an instance of the Q31 FIR decimator structure. + * @param[in] numTaps number of coefficients in the filter. + * @param[in] M decimation factor. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * blockSize is not a multiple of M. + */ + +arm_status arm_fir_decimate_init_q31( + arm_fir_decimate_instance_q31* S, + uint16_t numTaps, + uint8_t M, + q31_t* pCoeffs, + q31_t* pState, + uint32_t blockSize); + + + +/** + * @brief Instance structure for the Q15 FIR interpolator. + */ + +typedef struct { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + q15_t* pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */ +} arm_fir_interpolate_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR interpolator. + */ + +typedef struct { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + q31_t* pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */ +} arm_fir_interpolate_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR interpolator. + */ + +typedef struct { + uint8_t L; /**< upsample factor. */ + uint16_t phaseLength; /**< length of each polyphase filter component. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */ + float32_t* pState; /**< points to the state variable array. The array is of length phaseLength+numTaps-1. */ +} arm_fir_interpolate_instance_f32; + + +/** + * @brief Processing function for the Q15 FIR interpolator. + * @param[in] *S points to an instance of the Q15 FIR interpolator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_interpolate_q15( + const arm_fir_interpolate_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q15 FIR interpolator. + * @param[in,out] *S points to an instance of the Q15 FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + +arm_status arm_fir_interpolate_init_q15( + arm_fir_interpolate_instance_q15* S, + uint8_t L, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 FIR interpolator. + * @param[in] *S points to an instance of the Q15 FIR interpolator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_interpolate_q31( + const arm_fir_interpolate_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 FIR interpolator. + * @param[in,out] *S points to an instance of the Q31 FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + +arm_status arm_fir_interpolate_init_q31( + arm_fir_interpolate_instance_q31* S, + uint8_t L, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the floating-point FIR interpolator. + * @param[in] *S points to an instance of the floating-point FIR interpolator structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_interpolate_f32( + const arm_fir_interpolate_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point FIR interpolator. + * @param[in,out] *S points to an instance of the floating-point FIR interpolator structure. + * @param[in] L upsample factor. + * @param[in] numTaps number of filter coefficients in the filter. + * @param[in] *pCoeffs points to the filter coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] blockSize number of input samples to process per call. + * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if + * the filter length numTaps is not a multiple of the interpolation factor L. + */ + +arm_status arm_fir_interpolate_init_f32( + arm_fir_interpolate_instance_f32* S, + uint8_t L, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + uint32_t blockSize); + +/** + * @brief Instance structure for the high precision Q31 Biquad cascade filter. + */ + +typedef struct { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + q63_t* pState; /**< points to the array of state coefficients. The array is of length 4*numStages. */ + q31_t* pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ + uint8_t postShift; /**< additional shift, in bits, applied to each output sample. */ + +} arm_biquad_cas_df1_32x64_ins_q31; + + +/** + * @param[in] *S points to an instance of the high precision Q31 Biquad cascade filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cas_df1_32x64_q31( + const arm_biquad_cas_df1_32x64_ins_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @param[in,out] *S points to an instance of the high precision Q31 Biquad cascade filter structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] postShift shift to be applied to the output. Varies according to the coefficients format + * @return none + */ + +void arm_biquad_cas_df1_32x64_init_q31( + arm_biquad_cas_df1_32x64_ins_q31* S, + uint8_t numStages, + q31_t* pCoeffs, + q63_t* pState, + uint8_t postShift); + + + +/** + * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter. + */ + +typedef struct { + uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */ + float32_t* pState; /**< points to the array of state coefficients. The array is of length 2*numStages. */ + float32_t* pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */ +} arm_biquad_cascade_df2T_instance_f32; + + +/** + * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in] *S points to an instance of the filter data structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_biquad_cascade_df2T_f32( + const arm_biquad_cascade_df2T_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. + * @param[in,out] *S points to an instance of the filter data structure. + * @param[in] numStages number of 2nd order stages in the filter. + * @param[in] *pCoeffs points to the filter coefficients. + * @param[in] *pState points to the state buffer. + * @return none + */ + +void arm_biquad_cascade_df2T_init_f32( + arm_biquad_cascade_df2T_instance_f32* S, + uint8_t numStages, + float32_t* pCoeffs, + float32_t* pState); + + + +/** + * @brief Instance structure for the Q15 FIR lattice filter. + */ + +typedef struct { + uint16_t numStages; /**< number of filter stages. */ + q15_t* pState; /**< points to the state variable array. The array is of length numStages. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ +} arm_fir_lattice_instance_q15; + +/** + * @brief Instance structure for the Q31 FIR lattice filter. + */ + +typedef struct { + uint16_t numStages; /**< number of filter stages. */ + q31_t* pState; /**< points to the state variable array. The array is of length numStages. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ +} arm_fir_lattice_instance_q31; + +/** + * @brief Instance structure for the floating-point FIR lattice filter. + */ + +typedef struct { + uint16_t numStages; /**< number of filter stages. */ + float32_t* pState; /**< points to the state variable array. The array is of length numStages. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numStages. */ +} arm_fir_lattice_instance_f32; + +/** + * @brief Initialization function for the Q15 FIR lattice filter. + * @param[in] *S points to an instance of the Q15 FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] *pState points to the state buffer. The array is of length numStages. + * @return none. + */ + +void arm_fir_lattice_init_q15( + arm_fir_lattice_instance_q15* S, + uint16_t numStages, + q15_t* pCoeffs, + q15_t* pState); + + +/** + * @brief Processing function for the Q15 FIR lattice filter. + * @param[in] *S points to an instance of the Q15 FIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ +void arm_fir_lattice_q15( + const arm_fir_lattice_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 FIR lattice filter. + * @param[in] *S points to an instance of the Q31 FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] *pState points to the state buffer. The array is of length numStages. + * @return none. + */ + +void arm_fir_lattice_init_q31( + arm_fir_lattice_instance_q31* S, + uint16_t numStages, + q31_t* pCoeffs, + q31_t* pState); + + +/** + * @brief Processing function for the Q31 FIR lattice filter. + * @param[in] *S points to an instance of the Q31 FIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_fir_lattice_q31( + const arm_fir_lattice_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point FIR lattice filter. + * @param[in] *S points to an instance of the floating-point FIR lattice structure. + * @param[in] numStages number of filter stages. + * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages. + * @param[in] *pState points to the state buffer. The array is of length numStages. + * @return none. + */ + +void arm_fir_lattice_init_f32( + arm_fir_lattice_instance_f32* S, + uint16_t numStages, + float32_t* pCoeffs, + float32_t* pState); + +/** + * @brief Processing function for the floating-point FIR lattice filter. + * @param[in] *S points to an instance of the floating-point FIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_fir_lattice_f32( + const arm_fir_lattice_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Instance structure for the Q15 IIR lattice filter. + */ +typedef struct { + uint16_t numStages; /**< number of stages in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + q15_t* pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + q15_t* pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ +} arm_iir_lattice_instance_q15; + +/** + * @brief Instance structure for the Q31 IIR lattice filter. + */ +typedef struct { + uint16_t numStages; /**< number of stages in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + q31_t* pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + q31_t* pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ +} arm_iir_lattice_instance_q31; + +/** + * @brief Instance structure for the floating-point IIR lattice filter. + */ +typedef struct { + uint16_t numStages; /**< number of stages in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numStages+blockSize. */ + float32_t* pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */ + float32_t* pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */ +} arm_iir_lattice_instance_f32; + +/** + * @brief Processing function for the floating-point IIR lattice filter. + * @param[in] *S points to an instance of the floating-point IIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_f32( + const arm_iir_lattice_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point IIR lattice filter. + * @param[in] *S points to an instance of the floating-point IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. + * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. + * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize-1. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_init_f32( + arm_iir_lattice_instance_f32* S, + uint16_t numStages, + float32_t* pkCoeffs, + float32_t* pvCoeffs, + float32_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q31 IIR lattice filter. + * @param[in] *S points to an instance of the Q31 IIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_q31( + const arm_iir_lattice_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q31 IIR lattice filter. + * @param[in] *S points to an instance of the Q31 IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages. + * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1. + * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_init_q31( + arm_iir_lattice_instance_q31* S, + uint16_t numStages, + q31_t* pkCoeffs, + q31_t* pvCoeffs, + q31_t* pState, + uint32_t blockSize); + + +/** + * @brief Processing function for the Q15 IIR lattice filter. + * @param[in] *S points to an instance of the Q15 IIR lattice structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_iir_lattice_q15( + const arm_iir_lattice_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q15 IIR lattice filter. + * @param[in] *S points to an instance of the fixed-point Q15 IIR lattice structure. + * @param[in] numStages number of stages in the filter. + * @param[in] *pkCoeffs points to reflection coefficient buffer. The array is of length numStages. + * @param[in] *pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1. + * @param[in] *pState points to state buffer. The array is of length numStages+blockSize. + * @param[in] blockSize number of samples to process per call. + * @return none. + */ + +void arm_iir_lattice_init_q15( + arm_iir_lattice_instance_q15* S, + uint16_t numStages, + q15_t* pkCoeffs, + q15_t* pvCoeffs, + q15_t* pState, + uint32_t blockSize); + +/** + * @brief Instance structure for the floating-point LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + float32_t mu; /**< step size that controls filter coefficient updates. */ +} arm_lms_instance_f32; + +/** + * @brief Processing function for floating-point LMS filter. + * @param[in] *S points to an instance of the floating-point LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_f32( + const arm_lms_instance_f32* S, + float32_t* pSrc, + float32_t* pRef, + float32_t* pOut, + float32_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for floating-point LMS filter. + * @param[in] *S points to an instance of the floating-point LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to the coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_init_f32( + arm_lms_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + float32_t mu, + uint32_t blockSize); + +/** + * @brief Instance structure for the Q15 LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q15_t mu; /**< step size that controls filter coefficient updates. */ + uint32_t postShift; /**< bit shift applied to coefficients. */ +} arm_lms_instance_q15; + + +/** + * @brief Initialization function for the Q15 LMS filter. + * @param[in] *S points to an instance of the Q15 LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to the coefficient buffer. + * @param[in] *pState points to the state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_init_q15( + arm_lms_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + q15_t mu, + uint32_t blockSize, + uint32_t postShift); + +/** + * @brief Processing function for Q15 LMS filter. + * @param[in] *S points to an instance of the Q15 LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_q15( + const arm_lms_instance_q15* S, + q15_t* pSrc, + q15_t* pRef, + q15_t* pOut, + q15_t* pErr, + uint32_t blockSize); + + +/** + * @brief Instance structure for the Q31 LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q31_t mu; /**< step size that controls filter coefficient updates. */ + uint32_t postShift; /**< bit shift applied to coefficients. */ + +} arm_lms_instance_q31; + +/** + * @brief Processing function for Q31 LMS filter. + * @param[in] *S points to an instance of the Q15 LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_q31( + const arm_lms_instance_q31* S, + q31_t* pSrc, + q31_t* pRef, + q31_t* pOut, + q31_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for Q31 LMS filter. + * @param[in] *S points to an instance of the Q31 LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_init_q31( + arm_lms_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + q31_t mu, + uint32_t blockSize, + uint32_t postShift); + +/** + * @brief Instance structure for the floating-point normalized LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + float32_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + float32_t mu; /**< step size that control filter coefficient updates. */ + float32_t energy; /**< saves previous frame energy. */ + float32_t x0; /**< saves previous input sample. */ +} arm_lms_norm_instance_f32; + +/** + * @brief Processing function for floating-point normalized LMS filter. + * @param[in] *S points to an instance of the floating-point normalized LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_f32( + arm_lms_norm_instance_f32* S, + float32_t* pSrc, + float32_t* pRef, + float32_t* pOut, + float32_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for floating-point normalized LMS filter. + * @param[in] *S points to an instance of the floating-point LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_init_f32( + arm_lms_norm_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + float32_t mu, + uint32_t blockSize); + + +/** + * @brief Instance structure for the Q31 normalized LMS filter. + */ +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + q31_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q31_t mu; /**< step size that controls filter coefficient updates. */ + uint8_t postShift; /**< bit shift applied to coefficients. */ + q31_t* recipTable; /**< points to the reciprocal initial value table. */ + q31_t energy; /**< saves previous frame energy. */ + q31_t x0; /**< saves previous input sample. */ +} arm_lms_norm_instance_q31; + +/** + * @brief Processing function for Q31 normalized LMS filter. + * @param[in] *S points to an instance of the Q31 normalized LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_q31( + arm_lms_norm_instance_q31* S, + q31_t* pSrc, + q31_t* pRef, + q31_t* pOut, + q31_t* pErr, + uint32_t blockSize); + +/** + * @brief Initialization function for Q31 normalized LMS filter. + * @param[in] *S points to an instance of the Q31 normalized LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_norm_init_q31( + arm_lms_norm_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + q31_t mu, + uint32_t blockSize, + uint8_t postShift); + +/** + * @brief Instance structure for the Q15 normalized LMS filter. + */ + +typedef struct { + uint16_t numTaps; /**< Number of coefficients in the filter. */ + q15_t* pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */ + q15_t mu; /**< step size that controls filter coefficient updates. */ + uint8_t postShift; /**< bit shift applied to coefficients. */ + q15_t* recipTable; /**< Points to the reciprocal initial value table. */ + q15_t energy; /**< saves previous frame energy. */ + q15_t x0; /**< saves previous input sample. */ +} arm_lms_norm_instance_q15; + +/** + * @brief Processing function for Q15 normalized LMS filter. + * @param[in] *S points to an instance of the Q15 normalized LMS filter structure. + * @param[in] *pSrc points to the block of input data. + * @param[in] *pRef points to the block of reference data. + * @param[out] *pOut points to the block of output data. + * @param[out] *pErr points to the block of error data. + * @param[in] blockSize number of samples to process. + * @return none. + */ + +void arm_lms_norm_q15( + arm_lms_norm_instance_q15* S, + q15_t* pSrc, + q15_t* pRef, + q15_t* pOut, + q15_t* pErr, + uint32_t blockSize); + + +/** + * @brief Initialization function for Q15 normalized LMS filter. + * @param[in] *S points to an instance of the Q15 normalized LMS filter structure. + * @param[in] numTaps number of filter coefficients. + * @param[in] *pCoeffs points to coefficient buffer. + * @param[in] *pState points to state buffer. + * @param[in] mu step size that controls filter coefficient updates. + * @param[in] blockSize number of samples to process. + * @param[in] postShift bit shift applied to coefficients. + * @return none. + */ + +void arm_lms_norm_init_q15( + arm_lms_norm_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + q15_t mu, + uint32_t blockSize, + uint8_t postShift); + +/** + * @brief Correlation of floating-point sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_f32( + float32_t* pSrcA, + uint32_t srcALen, + float32_t* pSrcB, + uint32_t srcBLen, + float32_t* pDst); + + +/** +* @brief Correlation of Q15 sequences +* @param[in] *pSrcA points to the first input sequence. +* @param[in] srcALen length of the first input sequence. +* @param[in] *pSrcB points to the second input sequence. +* @param[in] srcBLen length of the second input sequence. +* @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. +* @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. +* @return none. +*/ +void arm_correlate_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch); + + +/** + * @brief Correlation of Q15 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + +/** + * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_fast_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst); + + + +/** + * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @return none. + */ + +void arm_correlate_fast_opt_q15( + q15_t* pSrcA, + uint32_t srcALen, + q15_t* pSrcB, + uint32_t srcBLen, + q15_t* pDst, + q15_t* pScratch); + +/** + * @brief Correlation of Q31 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + +/** + * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_fast_q31( + q31_t* pSrcA, + uint32_t srcALen, + q31_t* pSrcB, + uint32_t srcBLen, + q31_t* pDst); + + + +/** + * @brief Correlation of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2. + * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). + * @return none. + */ + +void arm_correlate_opt_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst, + q15_t* pScratch1, + q15_t* pScratch2); + + +/** + * @brief Correlation of Q7 sequences. + * @param[in] *pSrcA points to the first input sequence. + * @param[in] srcALen length of the first input sequence. + * @param[in] *pSrcB points to the second input sequence. + * @param[in] srcBLen length of the second input sequence. + * @param[out] *pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1. + * @return none. + */ + +void arm_correlate_q7( + q7_t* pSrcA, + uint32_t srcALen, + q7_t* pSrcB, + uint32_t srcBLen, + q7_t* pDst); + + +/** + * @brief Instance structure for the floating-point sparse FIR filter. + */ +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + float32_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + float32_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_f32; + +/** + * @brief Instance structure for the Q31 sparse FIR filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q31_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q31_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_q31; + +/** + * @brief Instance structure for the Q15 sparse FIR filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q15_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q15_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_q15; + +/** + * @brief Instance structure for the Q7 sparse FIR filter. + */ + +typedef struct { + uint16_t numTaps; /**< number of coefficients in the filter. */ + uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */ + q7_t* pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */ + q7_t* pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/ + uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */ + int32_t* pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */ +} arm_fir_sparse_instance_q7; + +/** + * @brief Processing function for the floating-point sparse FIR filter. + * @param[in] *S points to an instance of the floating-point sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_f32( + arm_fir_sparse_instance_f32* S, + float32_t* pSrc, + float32_t* pDst, + float32_t* pScratchIn, + uint32_t blockSize); + +/** + * @brief Initialization function for the floating-point sparse FIR filter. + * @param[in,out] *S points to an instance of the floating-point sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_f32( + arm_fir_sparse_instance_f32* S, + uint16_t numTaps, + float32_t* pCoeffs, + float32_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + +/** + * @brief Processing function for the Q31 sparse FIR filter. + * @param[in] *S points to an instance of the Q31 sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_q31( + arm_fir_sparse_instance_q31* S, + q31_t* pSrc, + q31_t* pDst, + q31_t* pScratchIn, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q31 sparse FIR filter. + * @param[in,out] *S points to an instance of the Q31 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_q31( + arm_fir_sparse_instance_q31* S, + uint16_t numTaps, + q31_t* pCoeffs, + q31_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + +/** + * @brief Processing function for the Q15 sparse FIR filter. + * @param[in] *S points to an instance of the Q15 sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] *pScratchOut points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_q15( + arm_fir_sparse_instance_q15* S, + q15_t* pSrc, + q15_t* pDst, + q15_t* pScratchIn, + q31_t* pScratchOut, + uint32_t blockSize); + + +/** + * @brief Initialization function for the Q15 sparse FIR filter. + * @param[in,out] *S points to an instance of the Q15 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_q15( + arm_fir_sparse_instance_q15* S, + uint16_t numTaps, + q15_t* pCoeffs, + q15_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + +/** + * @brief Processing function for the Q7 sparse FIR filter. + * @param[in] *S points to an instance of the Q7 sparse FIR structure. + * @param[in] *pSrc points to the block of input data. + * @param[out] *pDst points to the block of output data + * @param[in] *pScratchIn points to a temporary buffer of size blockSize. + * @param[in] *pScratchOut points to a temporary buffer of size blockSize. + * @param[in] blockSize number of input samples to process per call. + * @return none. + */ + +void arm_fir_sparse_q7( + arm_fir_sparse_instance_q7* S, + q7_t* pSrc, + q7_t* pDst, + q7_t* pScratchIn, + q31_t* pScratchOut, + uint32_t blockSize); + +/** + * @brief Initialization function for the Q7 sparse FIR filter. + * @param[in,out] *S points to an instance of the Q7 sparse FIR structure. + * @param[in] numTaps number of nonzero coefficients in the filter. + * @param[in] *pCoeffs points to the array of filter coefficients. + * @param[in] *pState points to the state buffer. + * @param[in] *pTapDelay points to the array of offset times. + * @param[in] maxDelay maximum offset time supported. + * @param[in] blockSize number of samples that will be processed per block. + * @return none + */ + +void arm_fir_sparse_init_q7( + arm_fir_sparse_instance_q7* S, + uint16_t numTaps, + q7_t* pCoeffs, + q7_t* pState, + int32_t* pTapDelay, + uint16_t maxDelay, + uint32_t blockSize); + + +/* + * @brief Floating-point sin_cos function. + * @param[in] theta input value in degrees + * @param[out] *pSinVal points to the processed sine output. + * @param[out] *pCosVal points to the processed cos output. + * @return none. + */ + +void arm_sin_cos_f32( + float32_t theta, + float32_t* pSinVal, + float32_t* pCcosVal); + +/* + * @brief Q31 sin_cos function. + * @param[in] theta scaled input value in degrees + * @param[out] *pSinVal points to the processed sine output. + * @param[out] *pCosVal points to the processed cosine output. + * @return none. + */ + +void arm_sin_cos_q31( + q31_t theta, + q31_t* pSinVal, + q31_t* pCosVal); + + +/** + * @brief Floating-point complex conjugate. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_conj_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex conjugate. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_conj_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex conjugate. + * @param[in] *pSrc points to the input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_conj_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t numSamples); + + + +/** + * @brief Floating-point complex magnitude squared + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_squared_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex magnitude squared + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_squared_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex magnitude squared + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_squared_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t numSamples); + + +/** + * @ingroup groupController + */ + +/** + * @defgroup PID PID Motor Control + * + * A Proportional Integral Derivative (PID) controller is a generic feedback control + * loop mechanism widely used in industrial control systems. + * A PID controller is the most commonly used type of feedback controller. + * + * This set of functions implements (PID) controllers + * for Q15, Q31, and floating-point data types. The functions operate on a single sample + * of data and each call to the function returns a single processed value. + * S points to an instance of the PID control data structure. in + * is the input sample value. The functions return the output value. + * + * \par Algorithm: + *
+ *    y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2]
+ *    A0 = Kp + Ki + Kd
+ *    A1 = (-Kp ) - (2 * Kd )
+ *    A2 = Kd  
+ * + * \par + * where \c Kp is proportional constant, \c Ki is Integral constant and \c Kd is Derivative constant + * + * \par + * \image html PID.gif "Proportional Integral Derivative Controller" + * + * \par + * The PID controller calculates an "error" value as the difference between + * the measured output and the reference input. + * The controller attempts to minimize the error by adjusting the process control inputs. + * The proportional value determines the reaction to the current error, + * the integral value determines the reaction based on the sum of recent errors, + * and the derivative value determines the reaction based on the rate at which the error has been changing. + * + * \par Instance Structure + * The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instance data structure. + * A separate instance structure must be defined for each PID Controller. + * There are separate instance structure declarations for each of the 3 supported data types. + * + * \par Reset Functions + * There is also an associated reset function for each data type which clears the state array. + * + * \par Initialization Functions + * There is also an associated initialization function for each data type. + * The initialization function performs the following operations: + * - Initializes the Gains A0, A1, A2 from Kp,Ki, Kd gains. + * - Zeros out the values in the state buffer. + * + * \par + * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function. + * + * \par Fixed-Point Behavior + * Care must be taken when using the fixed-point versions of the PID Controller functions. + * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup PID + * @{ + */ + +/** + * @brief Process function for the floating-point PID Control. + * @param[in,out] *S is an instance of the floating-point PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + */ + + +static __INLINE float32_t arm_pid_f32( + arm_pid_instance_f32* S, + float32_t in) +{ + float32_t out; + + /* y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] */ + out = (S->A0 * in) + + (S->A1 * S->state[0]) + (S->A2 * S->state[1]) + (S->state[2]); + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + +} + +/** + * @brief Process function for the Q31 PID Control. + * @param[in,out] *S points to an instance of the Q31 PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 64-bit accumulator. + * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit. + * Thus, if the accumulator result overflows it wraps around rather than clip. + * In order to avoid overflows completely the input signal must be scaled down by 2 bits as there are four additions. + * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format. + */ + +static __INLINE q31_t arm_pid_q31( + arm_pid_instance_q31* S, + q31_t in) +{ + q63_t acc; + q31_t out; + + /* acc = A0 * x[n] */ + acc = (q63_t) S->A0 * in; + + /* acc += A1 * x[n-1] */ + acc += (q63_t) S->A1 * S->state[0]; + + /* acc += A2 * x[n-2] */ + acc += (q63_t) S->A2 * S->state[1]; + + /* convert output to 1.31 format to add y[n-1] */ + out = (q31_t) (acc >> 31u); + + /* out += y[n-1] */ + out += S->state[2]; + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + +} + +/** + * @brief Process function for the Q15 PID Control. + * @param[in,out] *S points to an instance of the Q15 PID Control structure + * @param[in] in input sample to process + * @return out processed output sample. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using a 64-bit internal accumulator. + * Both Gains and state variables are represented in 1.15 format and multiplications yield a 2.30 result. + * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. + * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved. + * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits. + * Lastly, the accumulator is saturated to yield a result in 1.15 format. + */ + +static __INLINE q15_t arm_pid_q15( + arm_pid_instance_q15* S, + q15_t in) +{ + q63_t acc; + q15_t out; + +#ifndef ARM_MATH_CM0_FAMILY + __SIMD32_TYPE* vstate; + + /* Implementation of PID controller */ + + /* acc = A0 * x[n] */ + acc = (q31_t) __SMUAD(S->A0, in); + + /* acc += A1 * x[n-1] + A2 * x[n-2] */ + vstate = __SIMD32_CONST(S->state); + acc = __SMLALD(S->A1, (q31_t) * vstate, acc); + +#else + /* acc = A0 * x[n] */ + acc = ((q31_t) S->A0) * in; + + /* acc += A1 * x[n-1] + A2 * x[n-2] */ + acc += (q31_t) S->A1 * S->state[0]; + acc += (q31_t) S->A2 * S->state[1]; + +#endif + + /* acc += y[n-1] */ + acc += (q31_t) S->state[2] << 15; + + /* saturate the output */ + out = (q15_t) (__SSAT((acc >> 15), 16)); + + /* Update state */ + S->state[1] = S->state[0]; + S->state[0] = in; + S->state[2] = out; + + /* return to application */ + return (out); + +} + +/** + * @} end of PID group + */ + + +/** + * @brief Floating-point matrix inverse. + * @param[in] *src points to the instance of the input floating-point matrix structure. + * @param[out] *dst points to the instance of the output floating-point matrix structure. + * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match. + * If the input matrix is singular (does not have an inverse), then the algorithm terminates and returns error status ARM_MATH_SINGULAR. + */ + +arm_status arm_mat_inverse_f32( + const arm_matrix_instance_f32* src, + arm_matrix_instance_f32* dst); + + + +/** + * @ingroup groupController + */ + + +/** + * @defgroup clarke Vector Clarke Transform + * Forward Clarke transform converts the instantaneous stator phases into a two-coordinate time invariant vector. + * Generally the Clarke transform uses three-phase currents Ia, Ib and Ic to calculate currents + * in the two-phase orthogonal stator axis Ialpha and Ibeta. + * When Ialpha is superposed with Ia as shown in the figure below + * \image html clarke.gif Stator current space vector and its components in (a,b). + * and Ia + Ib + Ic = 0, in this condition Ialpha and Ibeta + * can be calculated using only Ia and Ib. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html clarkeFormula.gif + * where Ia and Ib are the instantaneous stator phases and + * pIalpha and pIbeta are the two coordinates of time invariant vector. + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Clarke transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup clarke + * @{ + */ + +/** + * + * @brief Floating-point Clarke transform + * @param[in] Ia input three-phase coordinate a + * @param[in] Ib input three-phase coordinate b + * @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] *pIbeta points to output two-phase orthogonal vector axis beta + * @return none. + */ + +static __INLINE void arm_clarke_f32( + float32_t Ia, + float32_t Ib, + float32_t* pIalpha, + float32_t* pIbeta) +{ + /* Calculate pIalpha using the equation, pIalpha = Ia */ + *pIalpha = Ia; + + /* Calculate pIbeta using the equation, pIbeta = (1/sqrt(3)) * Ia + (2/sqrt(3)) * Ib */ + *pIbeta = + ((float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib); + +} + +/** + * @brief Clarke transform for Q31 version + * @param[in] Ia input three-phase coordinate a + * @param[in] Ib input three-phase coordinate b + * @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] *pIbeta points to output two-phase orthogonal vector axis beta + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition, hence there is no risk of overflow. + */ + +static __INLINE void arm_clarke_q31( + q31_t Ia, + q31_t Ib, + q31_t* pIalpha, + q31_t* pIbeta) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + + /* Calculating pIalpha from Ia by equation pIalpha = Ia */ + *pIalpha = Ia; + + /* Intermediate product is calculated by (1/(sqrt(3)) * Ia) */ + product1 = (q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30); + + /* Intermediate product is calculated by (2/sqrt(3) * Ib) */ + product2 = (q31_t) (((q63_t) Ib * 0x49E69D16) >> 30); + + /* pIbeta is calculated by adding the intermediate products */ + *pIbeta = __QADD(product1, product2); +} + +/** + * @} end of clarke group + */ + +/** + * @brief Converts the elements of the Q7 vector to Q31 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_q7_to_q31( + q7_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + + + +/** + * @ingroup groupController + */ + +/** + * @defgroup inv_clarke Vector Inverse Clarke Transform + * Inverse Clarke transform converts the two-coordinate time invariant vector into instantaneous stator phases. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html clarkeInvFormula.gif + * where pIa and pIb are the instantaneous stator phases and + * Ialpha and Ibeta are the two coordinates of time invariant vector. + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Clarke transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup inv_clarke + * @{ + */ + +/** +* @brief Floating-point Inverse Clarke transform +* @param[in] Ialpha input two-phase orthogonal vector axis alpha +* @param[in] Ibeta input two-phase orthogonal vector axis beta +* @param[out] *pIa points to output three-phase coordinate a +* @param[out] *pIb points to output three-phase coordinate b +* @return none. +*/ + + +static __INLINE void arm_inv_clarke_f32( + float32_t Ialpha, + float32_t Ibeta, + float32_t* pIa, + float32_t* pIb) +{ + /* Calculating pIa from Ialpha by equation pIa = Ialpha */ + *pIa = Ialpha; + + /* Calculating pIb from Ialpha and Ibeta by equation pIb = -(1/2) * Ialpha + (sqrt(3)/2) * Ibeta */ + *pIb = -0.5 * Ialpha + (float32_t) 0.8660254039 * Ibeta; + +} + +/** + * @brief Inverse Clarke transform for Q31 version + * @param[in] Ialpha input two-phase orthogonal vector axis alpha + * @param[in] Ibeta input two-phase orthogonal vector axis beta + * @param[out] *pIa points to output three-phase coordinate a + * @param[out] *pIb points to output three-phase coordinate b + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the subtraction, hence there is no risk of overflow. + */ + +static __INLINE void arm_inv_clarke_q31( + q31_t Ialpha, + q31_t Ibeta, + q31_t* pIa, + q31_t* pIb) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + + /* Calculating pIa from Ialpha by equation pIa = Ialpha */ + *pIa = Ialpha; + + /* Intermediate product is calculated by (1/(2*sqrt(3)) * Ia) */ + product1 = (q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31); + + /* Intermediate product is calculated by (1/sqrt(3) * pIb) */ + product2 = (q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31); + + /* pIb is calculated by subtracting the products */ + *pIb = __QSUB(product2, product1); + +} + +/** + * @} end of inv_clarke group + */ + +/** + * @brief Converts the elements of the Q7 vector to Q15 vector. + * @param[in] *pSrc input pointer + * @param[out] *pDst output pointer + * @param[in] blockSize number of samples to process + * @return none. + */ +void arm_q7_to_q15( + q7_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + + + +/** + * @ingroup groupController + */ + +/** + * @defgroup park Vector Park Transform + * + * Forward Park transform converts the input two-coordinate vector to flux and torque components. + * The Park transform can be used to realize the transformation of the Ialpha and the Ibeta currents + * from the stationary to the moving reference frame and control the spatial relationship between + * the stator vector current and rotor flux vector. + * If we consider the d axis aligned with the rotor flux, the diagram below shows the + * current vector and the relationship from the two reference frames: + * \image html park.gif "Stator current space vector and its component in (a,b) and in the d,q rotating reference frame" + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html parkFormula.gif + * where Ialpha and Ibeta are the stator vector components, + * pId and pIq are rotor vector components and cosVal and sinVal are the + * cosine and sine values of theta (rotor flux position). + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Park transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup park + * @{ + */ + +/** + * @brief Floating-point Park transform + * @param[in] Ialpha input two-phase vector coordinate alpha + * @param[in] Ibeta input two-phase vector coordinate beta + * @param[out] *pId points to output rotor reference frame d + * @param[out] *pIq points to output rotor reference frame q + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * @return none. + * + * The function implements the forward Park transform. + * + */ + +static __INLINE void arm_park_f32( + float32_t Ialpha, + float32_t Ibeta, + float32_t* pId, + float32_t* pIq, + float32_t sinVal, + float32_t cosVal) +{ + /* Calculate pId using the equation, pId = Ialpha * cosVal + Ibeta * sinVal */ + *pId = Ialpha * cosVal + Ibeta * sinVal; + + /* Calculate pIq using the equation, pIq = - Ialpha * sinVal + Ibeta * cosVal */ + *pIq = -Ialpha * sinVal + Ibeta * cosVal; + +} + +/** + * @brief Park transform for Q31 version + * @param[in] Ialpha input two-phase vector coordinate alpha + * @param[in] Ibeta input two-phase vector coordinate beta + * @param[out] *pId points to output rotor reference frame d + * @param[out] *pIq points to output rotor reference frame q + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition and subtraction, hence there is no risk of overflow. + */ + + +static __INLINE void arm_park_q31( + q31_t Ialpha, + q31_t Ibeta, + q31_t* pId, + q31_t* pIq, + q31_t sinVal, + q31_t cosVal) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + q31_t product3, product4; /* Temporary variables used to store intermediate results */ + + /* Intermediate product is calculated by (Ialpha * cosVal) */ + product1 = (q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31); + + /* Intermediate product is calculated by (Ibeta * sinVal) */ + product2 = (q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31); + + + /* Intermediate product is calculated by (Ialpha * sinVal) */ + product3 = (q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31); + + /* Intermediate product is calculated by (Ibeta * cosVal) */ + product4 = (q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31); + + /* Calculate pId by adding the two intermediate products 1 and 2 */ + *pId = __QADD(product1, product2); + + /* Calculate pIq by subtracting the two intermediate products 3 from 4 */ + *pIq = __QSUB(product4, product3); +} + +/** + * @} end of park group + */ + +/** + * @brief Converts the elements of the Q7 vector to floating-point vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q7_to_float( + q7_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @ingroup groupController + */ + +/** + * @defgroup inv_park Vector Inverse Park transform + * Inverse Park transform converts the input flux and torque components to two-coordinate vector. + * + * The function operates on a single sample of data and each call to the function returns the processed output. + * The library provides separate functions for Q31 and floating-point data types. + * \par Algorithm + * \image html parkInvFormula.gif + * where pIalpha and pIbeta are the stator vector components, + * Id and Iq are rotor vector components and cosVal and sinVal are the + * cosine and sine values of theta (rotor flux position). + * \par Fixed-Point Behavior + * Care must be taken when using the Q31 version of the Park transform. + * In particular, the overflow and saturation behavior of the accumulator used must be considered. + * Refer to the function specific documentation below for usage guidelines. + */ + +/** + * @addtogroup inv_park + * @{ + */ + +/** +* @brief Floating-point Inverse Park transform +* @param[in] Id input coordinate of rotor reference frame d +* @param[in] Iq input coordinate of rotor reference frame q +* @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha +* @param[out] *pIbeta points to output two-phase orthogonal vector axis beta +* @param[in] sinVal sine value of rotation angle theta +* @param[in] cosVal cosine value of rotation angle theta +* @return none. +*/ + +static __INLINE void arm_inv_park_f32( + float32_t Id, + float32_t Iq, + float32_t* pIalpha, + float32_t* pIbeta, + float32_t sinVal, + float32_t cosVal) +{ + /* Calculate pIalpha using the equation, pIalpha = Id * cosVal - Iq * sinVal */ + *pIalpha = Id * cosVal - Iq * sinVal; + + /* Calculate pIbeta using the equation, pIbeta = Id * sinVal + Iq * cosVal */ + *pIbeta = Id * sinVal + Iq * cosVal; + +} + + +/** + * @brief Inverse Park transform for Q31 version + * @param[in] Id input coordinate of rotor reference frame d + * @param[in] Iq input coordinate of rotor reference frame q + * @param[out] *pIalpha points to output two-phase orthogonal vector axis alpha + * @param[out] *pIbeta points to output two-phase orthogonal vector axis beta + * @param[in] sinVal sine value of rotation angle theta + * @param[in] cosVal cosine value of rotation angle theta + * @return none. + * + * Scaling and Overflow Behavior: + * \par + * The function is implemented using an internal 32-bit accumulator. + * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. + * There is saturation on the addition, hence there is no risk of overflow. + */ + + +static __INLINE void arm_inv_park_q31( + q31_t Id, + q31_t Iq, + q31_t* pIalpha, + q31_t* pIbeta, + q31_t sinVal, + q31_t cosVal) +{ + q31_t product1, product2; /* Temporary variables used to store intermediate results */ + q31_t product3, product4; /* Temporary variables used to store intermediate results */ + + /* Intermediate product is calculated by (Id * cosVal) */ + product1 = (q31_t) (((q63_t) (Id) * (cosVal)) >> 31); + + /* Intermediate product is calculated by (Iq * sinVal) */ + product2 = (q31_t) (((q63_t) (Iq) * (sinVal)) >> 31); + + + /* Intermediate product is calculated by (Id * sinVal) */ + product3 = (q31_t) (((q63_t) (Id) * (sinVal)) >> 31); + + /* Intermediate product is calculated by (Iq * cosVal) */ + product4 = (q31_t) (((q63_t) (Iq) * (cosVal)) >> 31); + + /* Calculate pIalpha by using the two intermediate products 1 and 2 */ + *pIalpha = __QSUB(product1, product2); + + /* Calculate pIbeta by using the two intermediate products 3 and 4 */ + *pIbeta = __QADD(product4, product3); + +} + +/** + * @} end of Inverse park group + */ + + +/** + * @brief Converts the elements of the Q31 vector to floating-point vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q31_to_float( + q31_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + +/** + * @ingroup groupInterpolation + */ + +/** + * @defgroup LinearInterpolate Linear Interpolation + * + * Linear interpolation is a method of curve fitting using linear polynomials. + * Linear interpolation works by effectively drawing a straight line between two neighboring samples and returning the appropriate point along that line + * + * \par + * \image html LinearInterp.gif "Linear interpolation" + * + * \par + * A Linear Interpolate function calculates an output value(y), for the input(x) + * using linear interpolation of the input values x0, x1( nearest input values) and the output values y0 and y1(nearest output values) + * + * \par Algorithm: + *
+ *       y = y0 + (x - x0) * ((y1 - y0)/(x1-x0))
+ *       where x0, x1 are nearest values of input x
+ *             y0, y1 are nearest values to output y
+ * 
+ * + * \par + * This set of functions implements Linear interpolation process + * for Q7, Q15, Q31, and floating-point data types. The functions operate on a single + * sample of data and each call to the function returns a single processed value. + * S points to an instance of the Linear Interpolate function data structure. + * x is the input sample value. The functions returns the output value. + * + * \par + * if x is outside of the table boundary, Linear interpolation returns first value of the table + * if x is below input range and returns last value of table if x is above range. + */ + +/** + * @addtogroup LinearInterpolate + * @{ + */ + +/** + * @brief Process function for the floating-point Linear Interpolation Function. + * @param[in,out] *S is an instance of the floating-point Linear Interpolation structure + * @param[in] x input sample to process + * @return y processed output sample. + * + */ + +static __INLINE float32_t arm_linear_interp_f32( + arm_linear_interp_instance_f32* S, + float32_t x) +{ + + float32_t y; + float32_t x0, x1; /* Nearest input values */ + float32_t y0, y1; /* Nearest output values */ + float32_t xSpacing = S->xSpacing; /* spacing between input values */ + int32_t i; /* Index variable */ + float32_t* pYData = S->pYData; /* pointer to output table */ + + /* Calculation of index */ + i = (int32_t) ((x - S->x1) / xSpacing); + + if(i < 0) { + /* Iniatilize output for below specified range as least output value of table */ + y = pYData[0]; + } + else if((uint32_t)i >= S->nValues) { + /* Iniatilize output for above specified range as last output value of table */ + y = pYData[S->nValues - 1]; + } + else { + /* Calculation of nearest input values */ + x0 = S->x1 + i * xSpacing; + x1 = S->x1 + (i + 1) * xSpacing; + + /* Read of nearest output values */ + y0 = pYData[i]; + y1 = pYData[i + 1]; + + /* Calculation of output */ + y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0)); + + } + + /* returns output value */ + return (y); +} + +/** +* +* @brief Process function for the Q31 Linear Interpolation Function. +* @param[in] *pYData pointer to Q31 Linear Interpolation table +* @param[in] x input sample to process +* @param[in] nValues number of table values +* @return y processed output sample. +* +* \par +* Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. +* This function can support maximum of table size 2^12. +* +*/ + + +static __INLINE q31_t arm_linear_interp_q31( + q31_t* pYData, + q31_t x, + uint32_t nValues) +{ + q31_t y; /* output */ + q31_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + int32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + index = ((x & 0xFFF00000) >> 20); + + if(index >= (int32_t)(nValues - 1)) { + return (pYData[nValues - 1]); + } + else if(index < 0) { + return (pYData[0]); + } + else { + + /* 20 bits for the fractional part */ + /* shift left by 11 to keep fract in 1.31 format */ + fract = (x & 0x000FFFFF) << 11; + + /* Read two nearest output values from the index in 1.31(q31) format */ + y0 = pYData[index]; + y1 = pYData[index + 1u]; + + /* Calculation of y0 * (1-fract) and y is in 2.30 format */ + y = ((q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32)); + + /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */ + y += ((q31_t) (((q63_t) y1 * fract) >> 32)); + + /* Convert y to 1.31 format */ + return (y << 1u); + + } + +} + +/** + * + * @brief Process function for the Q15 Linear Interpolation Function. + * @param[in] *pYData pointer to Q15 Linear Interpolation table + * @param[in] x input sample to process + * @param[in] nValues number of table values + * @return y processed output sample. + * + * \par + * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. + * This function can support maximum of table size 2^12. + * + */ + + +static __INLINE q15_t arm_linear_interp_q15( + q15_t* pYData, + q31_t x, + uint32_t nValues) +{ + q63_t y; /* output */ + q15_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + int32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + index = ((x & 0xFFF00000) >> 20u); + + if(index >= (int32_t)(nValues - 1)) { + return (pYData[nValues - 1]); + } + else if(index < 0) { + return (pYData[0]); + } + else { + /* 20 bits for the fractional part */ + /* fract is in 12.20 format */ + fract = (x & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y0 = pYData[index]; + y1 = pYData[index + 1u]; + + /* Calculation of y0 * (1-fract) and y is in 13.35 format */ + y = ((q63_t) y0 * (0xFFFFF - fract)); + + /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */ + y += ((q63_t) y1 * (fract)); + + /* convert y to 1.15 format */ + return (y >> 20); + } + + +} + +/** + * + * @brief Process function for the Q7 Linear Interpolation Function. + * @param[in] *pYData pointer to Q7 Linear Interpolation table + * @param[in] x input sample to process + * @param[in] nValues number of table values + * @return y processed output sample. + * + * \par + * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. + * This function can support maximum of table size 2^12. + */ + + +static __INLINE q7_t arm_linear_interp_q7( + q7_t* pYData, + q31_t x, + uint32_t nValues) +{ + q31_t y; /* output */ + q7_t y0, y1; /* Nearest output values */ + q31_t fract; /* fractional part */ + uint32_t index; /* Index to read nearest output values */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + if (x < 0) { + return (pYData[0]); + } + index = (x >> 20) & 0xfff; + + + if(index >= (nValues - 1)) { + return (pYData[nValues - 1]); + } + else { + + /* 20 bits for the fractional part */ + /* fract is in 12.20 format */ + fract = (x & 0x000FFFFF); + + /* Read two nearest output values from the index and are in 1.7(q7) format */ + y0 = pYData[index]; + y1 = pYData[index + 1u]; + + /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */ + y = ((y0 * (0xFFFFF - fract))); + + /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */ + y += (y1 * fract); + + /* convert y to 1.7(q7) format */ + return (y >> 20u); + + } + +} +/** + * @} end of LinearInterpolate group + */ + +/** + * @brief Fast approximation to the trigonometric sine function for floating-point data. + * @param[in] x input value in radians. + * @return sin(x). + */ + +float32_t arm_sin_f32( + float32_t x); + +/** + * @brief Fast approximation to the trigonometric sine function for Q31 data. + * @param[in] x Scaled input value in radians. + * @return sin(x). + */ + +q31_t arm_sin_q31( + q31_t x); + +/** + * @brief Fast approximation to the trigonometric sine function for Q15 data. + * @param[in] x Scaled input value in radians. + * @return sin(x). + */ + +q15_t arm_sin_q15( + q15_t x); + +/** + * @brief Fast approximation to the trigonometric cosine function for floating-point data. + * @param[in] x input value in radians. + * @return cos(x). + */ + +float32_t arm_cos_f32( + float32_t x); + +/** + * @brief Fast approximation to the trigonometric cosine function for Q31 data. + * @param[in] x Scaled input value in radians. + * @return cos(x). + */ + +q31_t arm_cos_q31( + q31_t x); + +/** + * @brief Fast approximation to the trigonometric cosine function for Q15 data. + * @param[in] x Scaled input value in radians. + * @return cos(x). + */ + +q15_t arm_cos_q15( + q15_t x); + + +/** + * @ingroup groupFastMath + */ + + +/** + * @defgroup SQRT Square Root + * + * Computes the square root of a number. + * There are separate functions for Q15, Q31, and floating-point data types. + * The square root function is computed using the Newton-Raphson algorithm. + * This is an iterative algorithm of the form: + *
+ *      x1 = x0 - f(x0)/f'(x0)
+ * 
+ * where x1 is the current estimate, + * x0 is the previous estimate, and + * f'(x0) is the derivative of f() evaluated at x0. + * For the square root function, the algorithm reduces to: + *
+ *     x0 = in/2                         [initial guess]
+ *     x1 = 1/2 * ( x0 + in / x0)        [each iteration]
+ * 
+ */ + + +/** + * @addtogroup SQRT + * @{ + */ + +/** + * @brief Floating-point square root function. + * @param[in] in input value. + * @param[out] *pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ + +static __INLINE arm_status arm_sqrt_f32( + float32_t in, + float32_t* pOut) +{ + if(in > 0) { + +// #if __FPU_USED +#if (__FPU_USED == 1) && defined ( __CC_ARM ) + *pOut = __sqrtf(in); +#else + *pOut = sqrtf(in); +#endif + + return (ARM_MATH_SUCCESS); + } + else { + *pOut = 0.0f; + return (ARM_MATH_ARGUMENT_ERROR); + } + +} + + +/** + * @brief Q31 square root function. + * @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF. + * @param[out] *pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ +arm_status arm_sqrt_q31( + q31_t in, + q31_t* pOut); + +/** + * @brief Q15 square root function. + * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF. + * @param[out] *pOut square root of input value. + * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if + * in is negative value and returns zero output for negative values. + */ +arm_status arm_sqrt_q15( + q15_t in, + q15_t* pOut); + +/** + * @} end of SQRT group + */ + + + + + + +/** + * @brief floating-point Circular write function. + */ + +static __INLINE void arm_circularWrite_f32( + int32_t* circBuffer, + int32_t L, + uint16_t* writeOffset, + int32_t bufferInc, + const int32_t* src, + int32_t srcInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if(wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = wOffset; +} + + + +/** + * @brief floating-point Circular Read function. + */ +static __INLINE void arm_circularRead_f32( + int32_t* circBuffer, + int32_t L, + int32_t* readOffset, + int32_t bufferInc, + int32_t* dst, + int32_t* dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if(dst == (int32_t*) dst_end) { + dst = dst_base; + } + + /* Circularly update rOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if(rOffset >= L) { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; +} + +/** + * @brief Q15 Circular write function. + */ + +static __INLINE void arm_circularWrite_q15( + q15_t* circBuffer, + int32_t L, + uint16_t* writeOffset, + int32_t bufferInc, + const q15_t* src, + int32_t srcInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if(wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = wOffset; +} + + + +/** + * @brief Q15 Circular Read function. + */ +static __INLINE void arm_circularRead_q15( + q15_t* circBuffer, + int32_t L, + int32_t* readOffset, + int32_t bufferInc, + q15_t* dst, + q15_t* dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) +{ + uint32_t i = 0; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if(dst == (q15_t*) dst_end) { + dst = dst_base; + } + + /* Circularly update wOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if(rOffset >= L) { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; +} + + +/** + * @brief Q7 Circular write function. + */ + +static __INLINE void arm_circularWrite_q7( + q7_t* circBuffer, + int32_t L, + uint16_t* writeOffset, + int32_t bufferInc, + const q7_t* src, + int32_t srcInc, + uint32_t blockSize) +{ + uint32_t i = 0u; + int32_t wOffset; + + /* Copy the value of Index pointer that points + * to the current location where the input samples to be copied */ + wOffset = *writeOffset; + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the input sample to the circular buffer */ + circBuffer[wOffset] = *src; + + /* Update the input pointer */ + src += srcInc; + + /* Circularly update wOffset. Watch out for positive and negative value */ + wOffset += bufferInc; + if(wOffset >= L) + wOffset -= L; + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *writeOffset = wOffset; +} + + + +/** + * @brief Q7 Circular Read function. + */ +static __INLINE void arm_circularRead_q7( + q7_t* circBuffer, + int32_t L, + int32_t* readOffset, + int32_t bufferInc, + q7_t* dst, + q7_t* dst_base, + int32_t dst_length, + int32_t dstInc, + uint32_t blockSize) +{ + uint32_t i = 0; + int32_t rOffset, dst_end; + + /* Copy the value of Index pointer that points + * to the current location from where the input samples to be read */ + rOffset = *readOffset; + + dst_end = (int32_t) (dst_base + dst_length); + + /* Loop over the blockSize */ + i = blockSize; + + while(i > 0u) { + /* copy the sample from the circular buffer to the destination buffer */ + *dst = circBuffer[rOffset]; + + /* Update the input pointer */ + dst += dstInc; + + if(dst == (q7_t*) dst_end) { + dst = dst_base; + } + + /* Circularly update rOffset. Watch out for positive and negative value */ + rOffset += bufferInc; + + if(rOffset >= L) { + rOffset -= L; + } + + /* Decrement the loop counter */ + i--; + } + + /* Update the index pointer */ + *readOffset = rOffset; +} + + +/** + * @brief Sum of the squares of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_q31( + q31_t* pSrc, + uint32_t blockSize, + q63_t* pResult); + +/** + * @brief Sum of the squares of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Sum of the squares of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_q15( + q15_t* pSrc, + uint32_t blockSize, + q63_t* pResult); + +/** + * @brief Sum of the squares of the elements of a Q7 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_power_q7( + q7_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Mean value of a Q7 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_mean_q7( + q7_t* pSrc, + uint32_t blockSize, + q7_t* pResult); + +/** + * @brief Mean value of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ +void arm_mean_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult); + +/** + * @brief Mean value of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ +void arm_mean_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Mean value of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ +void arm_mean_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Variance of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_var_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Variance of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_var_q31( + q31_t* pSrc, + uint32_t blockSize, + q63_t* pResult); + +/** + * @brief Variance of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_var_q15( + q15_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Root Mean Square of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_rms_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Root Mean Square of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_rms_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Root Mean Square of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_rms_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult); + +/** + * @brief Standard deviation of the elements of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_std_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult); + +/** + * @brief Standard deviation of the elements of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_std_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult); + +/** + * @brief Standard deviation of the elements of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output value. + * @return none. + */ + +void arm_std_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult); + +/** + * @brief Floating-point complex magnitude + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_f32( + float32_t* pSrc, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex magnitude + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_q31( + q31_t* pSrc, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex magnitude + * @param[in] *pSrc points to the complex input vector + * @param[out] *pDst points to the real output vector + * @param[in] numSamples number of complex samples in the input vector + * @return none. + */ + +void arm_cmplx_mag_q15( + q15_t* pSrc, + q15_t* pDst, + uint32_t numSamples); + +/** + * @brief Q15 complex dot product + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] *realResult real part of the result returned here + * @param[out] *imagResult imaginary part of the result returned here + * @return none. + */ + +void arm_cmplx_dot_prod_q15( + q15_t* pSrcA, + q15_t* pSrcB, + uint32_t numSamples, + q31_t* realResult, + q31_t* imagResult); + +/** + * @brief Q31 complex dot product + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] *realResult real part of the result returned here + * @param[out] *imagResult imaginary part of the result returned here + * @return none. + */ + +void arm_cmplx_dot_prod_q31( + q31_t* pSrcA, + q31_t* pSrcB, + uint32_t numSamples, + q63_t* realResult, + q63_t* imagResult); + +/** + * @brief Floating-point complex dot product + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] numSamples number of complex samples in each vector + * @param[out] *realResult real part of the result returned here + * @param[out] *imagResult imaginary part of the result returned here + * @return none. + */ + +void arm_cmplx_dot_prod_f32( + float32_t* pSrcA, + float32_t* pSrcB, + uint32_t numSamples, + float32_t* realResult, + float32_t* imagResult); + +/** + * @brief Q15 complex-by-real multiplication + * @param[in] *pSrcCmplx points to the complex input vector + * @param[in] *pSrcReal points to the real input vector + * @param[out] *pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + * @return none. + */ + +void arm_cmplx_mult_real_q15( + q15_t* pSrcCmplx, + q15_t* pSrcReal, + q15_t* pCmplxDst, + uint32_t numSamples); + +/** + * @brief Q31 complex-by-real multiplication + * @param[in] *pSrcCmplx points to the complex input vector + * @param[in] *pSrcReal points to the real input vector + * @param[out] *pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + * @return none. + */ + +void arm_cmplx_mult_real_q31( + q31_t* pSrcCmplx, + q31_t* pSrcReal, + q31_t* pCmplxDst, + uint32_t numSamples); + +/** + * @brief Floating-point complex-by-real multiplication + * @param[in] *pSrcCmplx points to the complex input vector + * @param[in] *pSrcReal points to the real input vector + * @param[out] *pCmplxDst points to the complex output vector + * @param[in] numSamples number of samples in each vector + * @return none. + */ + +void arm_cmplx_mult_real_f32( + float32_t* pSrcCmplx, + float32_t* pSrcReal, + float32_t* pCmplxDst, + uint32_t numSamples); + +/** + * @brief Minimum value of a Q7 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *result is output pointer + * @param[in] index is the array index of the minimum value in the input buffer. + * @return none. + */ + +void arm_min_q7( + q7_t* pSrc, + uint32_t blockSize, + q7_t* result, + uint32_t* index); + +/** + * @brief Minimum value of a Q15 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output pointer + * @param[in] *pIndex is the array index of the minimum value in the input buffer. + * @return none. + */ + +void arm_min_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult, + uint32_t* pIndex); + +/** + * @brief Minimum value of a Q31 vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output pointer + * @param[out] *pIndex is the array index of the minimum value in the input buffer. + * @return none. + */ +void arm_min_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult, + uint32_t* pIndex); + +/** + * @brief Minimum value of a floating-point vector. + * @param[in] *pSrc is input pointer + * @param[in] blockSize is the number of samples to process + * @param[out] *pResult is output pointer + * @param[out] *pIndex is the array index of the minimum value in the input buffer. + * @return none. + */ + +void arm_min_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a Q7 vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_q7( + q7_t* pSrc, + uint32_t blockSize, + q7_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a Q15 vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_q15( + q15_t* pSrc, + uint32_t blockSize, + q15_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a Q31 vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_q31( + q31_t* pSrc, + uint32_t blockSize, + q31_t* pResult, + uint32_t* pIndex); + +/** + * @brief Maximum value of a floating-point vector. + * @param[in] *pSrc points to the input buffer + * @param[in] blockSize length of the input vector + * @param[out] *pResult maximum value returned here + * @param[out] *pIndex index of maximum value returned here + * @return none. + */ + +void arm_max_f32( + float32_t* pSrc, + uint32_t blockSize, + float32_t* pResult, + uint32_t* pIndex); + +/** + * @brief Q15 complex-by-complex multiplication + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_mult_cmplx_q15( + q15_t* pSrcA, + q15_t* pSrcB, + q15_t* pDst, + uint32_t numSamples); + +/** + * @brief Q31 complex-by-complex multiplication + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_mult_cmplx_q31( + q31_t* pSrcA, + q31_t* pSrcB, + q31_t* pDst, + uint32_t numSamples); + +/** + * @brief Floating-point complex-by-complex multiplication + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[out] *pDst points to the output vector + * @param[in] numSamples number of complex samples in each vector + * @return none. + */ + +void arm_cmplx_mult_cmplx_f32( + float32_t* pSrcA, + float32_t* pSrcB, + float32_t* pDst, + uint32_t numSamples); + +/** + * @brief Converts the elements of the floating-point vector to Q31 vector. + * @param[in] *pSrc points to the floating-point input vector + * @param[out] *pDst points to the Q31 output vector + * @param[in] blockSize length of the input vector + * @return none. + */ +void arm_float_to_q31( + float32_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the floating-point vector to Q15 vector. + * @param[in] *pSrc points to the floating-point input vector + * @param[out] *pDst points to the Q15 output vector + * @param[in] blockSize length of the input vector + * @return none + */ +void arm_float_to_q15( + float32_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the floating-point vector to Q7 vector. + * @param[in] *pSrc points to the floating-point input vector + * @param[out] *pDst points to the Q7 output vector + * @param[in] blockSize length of the input vector + * @return none + */ +void arm_float_to_q7( + float32_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + + +/** + * @brief Converts the elements of the Q31 vector to Q15 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q31_to_q15( + q31_t* pSrc, + q15_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the Q31 vector to Q7 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q31_to_q7( + q31_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + +/** + * @brief Converts the elements of the Q15 vector to floating-point vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q15_to_float( + q15_t* pSrc, + float32_t* pDst, + uint32_t blockSize); + + +/** + * @brief Converts the elements of the Q15 vector to Q31 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q15_to_q31( + q15_t* pSrc, + q31_t* pDst, + uint32_t blockSize); + + +/** + * @brief Converts the elements of the Q15 vector to Q7 vector. + * @param[in] *pSrc is input pointer + * @param[out] *pDst is output pointer + * @param[in] blockSize is the number of samples to process + * @return none. + */ +void arm_q15_to_q7( + q15_t* pSrc, + q7_t* pDst, + uint32_t blockSize); + + +/** + * @ingroup groupInterpolation + */ + +/** + * @defgroup BilinearInterpolate Bilinear Interpolation + * + * Bilinear interpolation is an extension of linear interpolation applied to a two dimensional grid. + * The underlying function f(x, y) is sampled on a regular grid and the interpolation process + * determines values between the grid points. + * Bilinear interpolation is equivalent to two step linear interpolation, first in the x-dimension and then in the y-dimension. + * Bilinear interpolation is often used in image processing to rescale images. + * The CMSIS DSP library provides bilinear interpolation functions for Q7, Q15, Q31, and floating-point data types. + * + * Algorithm + * \par + * The instance structure used by the bilinear interpolation functions describes a two dimensional data table. + * For floating-point, the instance structure is defined as: + *
+ *   typedef struct
+ *   {
+ *     uint16_t numRows;
+ *     uint16_t numCols;
+ *     float32_t *pData;
+ * } arm_bilinear_interp_instance_f32;
+ * 
+ * + * \par + * where numRows specifies the number of rows in the table; + * numCols specifies the number of columns in the table; + * and pData points to an array of size numRows*numCols values. + * The data table pTable is organized in row order and the supplied data values fall on integer indexes. + * That is, table element (x,y) is located at pTable[x + y*numCols] where x and y are integers. + * + * \par + * Let (x, y) specify the desired interpolation point. Then define: + *
+ *     XF = floor(x)
+ *     YF = floor(y)
+ * 
+ * \par + * The interpolated output point is computed as: + *
+ *  f(x, y) = f(XF, YF) * (1-(x-XF)) * (1-(y-YF))
+ *           + f(XF+1, YF) * (x-XF)*(1-(y-YF))
+ *           + f(XF, YF+1) * (1-(x-XF))*(y-YF)
+ *           + f(XF+1, YF+1) * (x-XF)*(y-YF)
+ * 
+ * Note that the coordinates (x, y) contain integer and fractional components. + * The integer components specify which portion of the table to use while the + * fractional components control the interpolation processor. + * + * \par + * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output. + */ + +/** + * @addtogroup BilinearInterpolate + * @{ + */ + +/** +* +* @brief Floating-point bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate. +* @param[in] Y interpolation coordinate. +* @return out interpolated value. +*/ + + +static __INLINE float32_t arm_bilinear_interp_f32( + const arm_bilinear_interp_instance_f32* S, + float32_t X, + float32_t Y) +{ + float32_t out; + float32_t f00, f01, f10, f11; + float32_t* pData = S->pData; + int32_t xIndex, yIndex, index; + float32_t xdiff, ydiff; + float32_t b1, b2, b3, b4; + + xIndex = (int32_t) X; + yIndex = (int32_t) Y; + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(xIndex < 0 || xIndex > (S->numRows - 1) || yIndex < 0 + || yIndex > (S->numCols - 1)) { + return (0); + } + + /* Calculation of index for two nearest points in X-direction */ + index = (xIndex - 1) + (yIndex - 1) * S->numCols; + + + /* Read two nearest points in X-direction */ + f00 = pData[index]; + f01 = pData[index + 1]; + + /* Calculation of index for two nearest points in Y-direction */ + index = (xIndex - 1) + (yIndex) * S->numCols; + + + /* Read two nearest points in Y-direction */ + f10 = pData[index]; + f11 = pData[index + 1]; + + /* Calculation of intermediate values */ + b1 = f00; + b2 = f01 - f00; + b3 = f10 - f00; + b4 = f00 - f01 - f10 + f11; + + /* Calculation of fractional part in X */ + xdiff = X - xIndex; + + /* Calculation of fractional part in Y */ + ydiff = Y - yIndex; + + /* Calculation of bi-linear interpolated output */ + out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff; + + /* return to application */ + return (out); + +} + +/** +* +* @brief Q31 bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate in 12.20 format. +* @param[in] Y interpolation coordinate in 12.20 format. +* @return out interpolated value. +*/ + +static __INLINE q31_t arm_bilinear_interp_q31( + arm_bilinear_interp_instance_q31* S, + q31_t X, + q31_t Y) +{ + q31_t out; /* Temporary output */ + q31_t acc = 0; /* output */ + q31_t xfract, yfract; /* X, Y fractional parts */ + q31_t x1, x2, y1, y2; /* Nearest output values */ + int32_t rI, cI; /* Row and column indices */ + q31_t* pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & 0xFFF00000) >> 20u); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & 0xFFF00000) >> 20u); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) { + return (0); + } + + /* 20 bits for the fractional part */ + /* shift left xfract by 11 to keep 1.31 format */ + xfract = (X & 0x000FFFFF) << 11u; + + /* Read two nearest output values from the index */ + x1 = pYData[(rI) + nCols * (cI)]; + x2 = pYData[(rI) + nCols * (cI) + 1u]; + + /* 20 bits for the fractional part */ + /* shift left yfract by 11 to keep 1.31 format */ + yfract = (Y & 0x000FFFFF) << 11u; + + /* Read two nearest output values from the index */ + y1 = pYData[(rI) + nCols * (cI + 1)]; + y2 = pYData[(rI) + nCols * (cI + 1) + 1u]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 3.29(q29) format */ + out = ((q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32)); + acc = ((q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32)); + + /* x2 * (xfract) * (1-yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (xfract) >> 32)); + + /* y1 * (1 - xfract) * (yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (yfract) >> 32)); + + /* y2 * (xfract) * (yfract) in 3.29(q29) and adding to acc */ + out = ((q31_t) ((q63_t) y2 * (xfract) >> 32)); + acc += ((q31_t) ((q63_t) out * (yfract) >> 32)); + + /* Convert acc to 1.31(q31) format */ + return (acc << 2u); + +} + +/** +* @brief Q15 bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate in 12.20 format. +* @param[in] Y interpolation coordinate in 12.20 format. +* @return out interpolated value. +*/ + +static __INLINE q15_t arm_bilinear_interp_q15( + arm_bilinear_interp_instance_q15* S, + q31_t X, + q31_t Y) +{ + q63_t acc = 0; /* output */ + q31_t out; /* Temporary output */ + q15_t x1, x2, y1, y2; /* Nearest output values */ + q31_t xfract, yfract; /* X, Y fractional parts */ + int32_t rI, cI; /* Row and column indices */ + q15_t* pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & 0xFFF00000) >> 20); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & 0xFFF00000) >> 20); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) { + return (0); + } + + /* 20 bits for the fractional part */ + /* xfract should be in 12.20 format */ + xfract = (X & 0x000FFFFF); + + /* Read two nearest output values from the index */ + x1 = pYData[(rI) + nCols * (cI)]; + x2 = pYData[(rI) + nCols * (cI) + 1u]; + + + /* 20 bits for the fractional part */ + /* yfract should be in 12.20 format */ + yfract = (Y & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y1 = pYData[(rI) + nCols * (cI + 1)]; + y2 = pYData[(rI) + nCols * (cI + 1) + 1u]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 13.51 format */ + + /* x1 is in 1.15(q15), xfract in 12.20 format and out is in 13.35 format */ + /* convert 13.35 to 13.31 by right shifting and out is in 1.31 */ + out = (q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4u); + acc = ((q63_t) out * (0xFFFFF - yfract)); + + /* x2 * (xfract) * (1-yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4u); + acc += ((q63_t) out * (xfract)); + + /* y1 * (1 - xfract) * (yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4u); + acc += ((q63_t) out * (yfract)); + + /* y2 * (xfract) * (yfract) in 1.51 and adding to acc */ + out = (q31_t) (((q63_t) y2 * (xfract)) >> 4u); + acc += ((q63_t) out * (yfract)); + + /* acc is in 13.51 format and down shift acc by 36 times */ + /* Convert out to 1.15 format */ + return (acc >> 36); + +} + +/** +* @brief Q7 bilinear interpolation. +* @param[in,out] *S points to an instance of the interpolation structure. +* @param[in] X interpolation coordinate in 12.20 format. +* @param[in] Y interpolation coordinate in 12.20 format. +* @return out interpolated value. +*/ + +static __INLINE q7_t arm_bilinear_interp_q7( + arm_bilinear_interp_instance_q7* S, + q31_t X, + q31_t Y) +{ + q63_t acc = 0; /* output */ + q31_t out; /* Temporary output */ + q31_t xfract, yfract; /* X, Y fractional parts */ + q7_t x1, x2, y1, y2; /* Nearest output values */ + int32_t rI, cI; /* Row and column indices */ + q7_t* pYData = S->pData; /* pointer to output table values */ + uint32_t nCols = S->numCols; /* num of rows */ + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + rI = ((X & 0xFFF00000) >> 20); + + /* Input is in 12.20 format */ + /* 12 bits for the table index */ + /* Index value calculation */ + cI = ((Y & 0xFFF00000) >> 20); + + /* Care taken for table outside boundary */ + /* Returns zero output when values are outside table boundary */ + if(rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1)) { + return (0); + } + + /* 20 bits for the fractional part */ + /* xfract should be in 12.20 format */ + xfract = (X & 0x000FFFFF); + + /* Read two nearest output values from the index */ + x1 = pYData[(rI) + nCols * (cI)]; + x2 = pYData[(rI) + nCols * (cI) + 1u]; + + + /* 20 bits for the fractional part */ + /* yfract should be in 12.20 format */ + yfract = (Y & 0x000FFFFF); + + /* Read two nearest output values from the index */ + y1 = pYData[(rI) + nCols * (cI + 1)]; + y2 = pYData[(rI) + nCols * (cI + 1) + 1u]; + + /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 16.47 format */ + out = ((x1 * (0xFFFFF - xfract))); + acc = (((q63_t) out * (0xFFFFF - yfract))); + + /* x2 * (xfract) * (1-yfract) in 2.22 and adding to acc */ + out = ((x2 * (0xFFFFF - yfract))); + acc += (((q63_t) out * (xfract))); + + /* y1 * (1 - xfract) * (yfract) in 2.22 and adding to acc */ + out = ((y1 * (0xFFFFF - xfract))); + acc += (((q63_t) out * (yfract))); + + /* y2 * (xfract) * (yfract) in 2.22 and adding to acc */ + out = ((y2 * (yfract))); + acc += (((q63_t) out * (xfract))); + + /* acc in 16.47 format and down shift by 40 to convert to 1.7 format */ + return (acc >> 40); + +} + +/** + * @} end of BilinearInterpolate group + */ + + +#if defined ( __CC_ARM ) //Keil +//SMMLAR +#define multAcc_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32) + +//SMMLSR +#define multSub_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32) + +//SMMULR +#define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32) + +//Enter low optimization region - place directly above function definition +#define LOW_OPTIMIZATION_ENTER \ + _Pragma ("push") \ + _Pragma ("O1") + +//Exit low optimization region - place directly after end of function definition +#define LOW_OPTIMIZATION_EXIT \ + _Pragma ("pop") + +//Enter low optimization region - place directly above function definition +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER + +//Exit low optimization region - place directly after end of function definition +#define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined(__ICCARM__) //IAR +//SMMLA +#define multAcc_32x32_keep32_R(a, x, y) \ + a += (q31_t) (((q63_t) x * y) >> 32) + +//SMMLS +#define multSub_32x32_keep32_R(a, x, y) \ + a -= (q31_t) (((q63_t) x * y) >> 32) + +//SMMUL +#define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y ) >> 32) + +//Enter low optimization region - place directly above function definition +#define LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") + +//Exit low optimization region - place directly after end of function definition +#define LOW_OPTIMIZATION_EXIT + +//Enter low optimization region - place directly above function definition +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER \ + _Pragma ("optimize=low") + +//Exit low optimization region - place directly after end of function definition +#define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#elif defined(__GNUC__) +//SMMLA +#define multAcc_32x32_keep32_R(a, x, y) \ + a += (q31_t) (((q63_t) x * y) >> 32) + +//SMMLS +#define multSub_32x32_keep32_R(a, x, y) \ + a -= (q31_t) (((q63_t) x * y) >> 32) + +//SMMUL +#define mult_32x32_keep32_R(a, x, y) \ + a = (q31_t) (((q63_t) x * y ) >> 32) + +#define LOW_OPTIMIZATION_ENTER __attribute__(( optimize("-O1") )) + +#define LOW_OPTIMIZATION_EXIT + +#define IAR_ONLY_LOW_OPTIMIZATION_ENTER + +#define IAR_ONLY_LOW_OPTIMIZATION_EXIT + +#endif + + + + + +#ifdef __cplusplus +} +#endif + + +#endif /* _ARM_MATH_H */ + + +/** + * + * End of file. + */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0.h new file mode 100644 index 000000000..42f2e5859 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0.h @@ -0,0 +1,660 @@ +/**************************************************************************//** + * @file core_cm0.h + * @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File + * @version V3.02 + * @date 16. July 2012 + * + * @note + * Copyright (C) 2009-2012 ARM Limited. All rights reserved. + * + * @par + * ARM Limited (ARM) is supplying this software for use with Cortex-M + * processor based microcontrollers. This file can be freely distributed + * within development tools that are supporting such ARM based processors. + * + * @par + * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR + * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + * + ******************************************************************************/ +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __CORE_CM0_H_GENERIC +#define __CORE_CM0_H_GENERIC + +/** \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 + @{ + */ +#define __NVIC_PRIO_BITS 2 +/* CMSIS CM0 definitions */ +#define __CM0_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ +#define __CM0_CMSIS_VERSION_SUB (0x01) /*!< [15:0] CMSIS HAL sub version */ +#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16) | \ + __CM0_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x00) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "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 +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#endif /* __CORE_CM0_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0_H_DEPENDANT +#define __CORE_CM0_H_DEPENDANT + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES +#ifndef __CM0_REV +#define __CM0_REV 0x0000 +#warning "__CM0_REV not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 2 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[1]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31]; + __IO uint32_t ICER[1]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31]; + __IO uint32_t ISPR[1]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31]; + __IO uint32_t ICPR[1]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31]; + uint32_t RESERVED4[64]; + __IO uint32_t IP[8]; /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + uint32_t RESERVED0; + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IO uint32_t SHP[2]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< 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 15 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M0 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. + @{ + */ + +/* Interrupt Priorities are WORD accessible only under ARMv6M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( (((uint32_t)(IRQn) ) & 0x03) * 8 ) +#define _SHP_IDX(IRQn) ( ((((uint32_t)(IRQn) & 0x0F)-8) >> 2) ) +#define _IP_IDX(IRQn) ( ((uint32_t)(IRQn) >> 2) ) + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } + else { + NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M0 system interrupts */ + else { + return((uint32_t)((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#endif /* __CORE_CM0_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ + +#ifdef __cplusplus +} +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0plus.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0plus.h new file mode 100644 index 000000000..563845ea0 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm0plus.h @@ -0,0 +1,785 @@ +/**************************************************************************//** + * @file core_cm0plus.h + * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File + * @version V3.20 + * @date 25. February 2013 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __CORE_CM0PLUS_H_GENERIC +#define __CORE_CM0PLUS_H_GENERIC + +/** \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+ + @{ + */ + +/* CMSIS CM0P definitions */ +#define __CM0PLUS_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ +#define __CM0PLUS_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ +#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16) | \ + __CM0PLUS_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x00) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "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 +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#endif /* __CORE_CM0PLUS_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM0PLUS_H_DEPENDANT +#define __CORE_CM0PLUS_H_DEPENDANT + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES +#ifndef __CM0PLUS_REV +#define __CM0PLUS_REV 0x0000 +#warning "__CM0PLUS_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __VTOR_PRESENT +#define __VTOR_PRESENT 0 +#warning "__VTOR_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 2 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[1]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31]; + __IO uint32_t ICER[1]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31]; + __IO uint32_t ISPR[1]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31]; + __IO uint32_t ICPR[1]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31]; + uint32_t RESERVED4[64]; + __IO uint32_t IP[8]; /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ +#if (__VTOR_PRESENT == 1) + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ +#else + uint32_t RESERVED0; +#endif + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED1; + __IO uint32_t SHP[2]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */ + +#if (__VTOR_PRESENT == 1) +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 8 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< 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 15 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 8 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M0+ 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/* Interrupt Priorities are WORD accessible only under ARMv6M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( (((uint32_t)(IRQn) ) & 0x03) * 8 ) +#define _SHP_IDX(IRQn) ( ((((uint32_t)(IRQn) & 0x0F)-8) >> 2) ) +#define _IP_IDX(IRQn) ( ((uint32_t)(IRQn) >> 2) ) + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } + else { + NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M0 system interrupts */ + else { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#endif /* __CORE_CM0PLUS_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ + +#ifdef __cplusplus +} +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm3.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm3.h new file mode 100644 index 000000000..be7d945b2 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm3.h @@ -0,0 +1,1615 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V3.20 + * @date 25. February 2013 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +/** \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 + @{ + */ + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x03) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI__VFP_SUPPORT____ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "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 +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#endif /* __CORE_CM3_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM3_H_DEPENDANT +#define __CORE_CM3_H_DEPENDANT + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES +#ifndef __CM3_REV +#define __CM3_REV 0x0200 +#warning "__CM3_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 4 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5]; + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 (__CM3_REV < 0x0201) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< 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 4 /*!< 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 3 /*!< 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 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< 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 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< 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 8 /*!< 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 0 /*!< 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 */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< 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 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< 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[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if ((defined __CM3_REV) && (__CM3_REV >= 0x200)) + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< 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 2 /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1 /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_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 { + __O union { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< 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 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< 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 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< 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 { + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< 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 0 /*!< 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 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< 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 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< 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 0 /*!< 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 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< 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 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 { + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< 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 25 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 5 /*!< 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 3 /*!< 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 2 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< 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_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 10 /*!< 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 9 /*!< 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 8 /*!< 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 7 /*!< 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 6 /*!< 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 5 /*!< 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 4 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M3 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/** \brief Set Priority Grouping + + The function 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)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function 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 ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function 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 samllest 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 & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function 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 samllest 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* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* 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 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function 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) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) { /* ITM Port #0 enabled */ + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function 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 + + The function 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 */ + +#endif /* __CORE_CM3_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ + +#ifdef __cplusplus +} +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4.h new file mode 100644 index 000000000..d3fb1d313 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4.h @@ -0,0 +1,1759 @@ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V3.20 + * @date 25. February 2013 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +/** \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 + @{ + */ + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x04) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) +#define __ASM __asm /*!< asm keyword for TI CCS Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __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 (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __TMS470__ ) +#if defined __TI_VFP_SUPPORT__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif + +#elif defined ( __TASKING__ ) +#if defined __FPU_VFP__ +#if (__FPU_PRESENT == 1) +#define __FPU_USED 1 +#else +#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#define __FPU_USED 0 +#endif +#else +#define __FPU_USED 0 +#endif +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ +#include /* Compiler specific SIMD Intrinsics */ + +#endif /* __CORE_CM4_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM4_H_DEPENDANT +#define __CORE_CM4_H_DEPENDANT + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES +#ifndef __CM4_REV +#define __CM4_REV 0x0000 +#warning "__CM4_REV not defined in device header file; using default!" +#endif + +#ifndef __FPU_PRESENT +#define __FPU_PRESENT 0 +#warning "__FPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 4 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5]; + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< 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 4 /*!< 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 3 /*!< 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 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< 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 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< 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 8 /*!< 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 0 /*!< 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 */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< 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 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< 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[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< 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 9 /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8 /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2 /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1 /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_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 { + __O union { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< 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 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< 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 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< 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 { + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< 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 0 /*!< 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 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< 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 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< 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 0 /*!< 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 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< 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 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 + + +#if (__FPU_PRESENT == 1) +/** \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[1]; + __IO uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IO uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IO uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __I uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __I uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register */ +#define FPU_FPCCR_ASPEN_Pos 31 /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30 /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8 /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6 /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5 /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4 /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define FPU_FPCAR_ADDRESS_Pos 3 /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register */ +#define FPU_FPDSCR_AHP_Pos 26 /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25 /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24 /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22 /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28 /*!< 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 24 /*!< 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 20 /*!< 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 16 /*!< 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 12 /*!< 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 8 /*!< 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 4 /*!< 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 0 /*!< 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 */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28 /*!< 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 24 /*!< 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 4 /*!< 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 0 /*!< 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 */ +#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 { + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< 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 25 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 5 /*!< 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 3 /*!< 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 2 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< 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_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 10 /*!< 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 9 /*!< 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 8 /*!< 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 7 /*!< 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 6 /*!< 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 5 /*!< 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 4 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M4 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 (__MPU_PRESENT == 1) +#define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ +#define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#if (__FPU_PRESENT == 1) +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point 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. + @{ + */ + +/** \brief Set Priority Grouping + + The function 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)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function 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 ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + /* NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); enable interrupt */ + NVIC->ISER[(uint32_t)((int32_t)IRQn) >> 5] = (uint32_t)(1 << ((uint32_t)((int32_t)IRQn) & (uint32_t)0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function 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 samllest 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 & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function 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 samllest 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* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* 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 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function 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) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) { /* ITM Port #0 enabled */ + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function 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 + + The function 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 */ + +#endif /* __CORE_CM4_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ + +#ifdef __cplusplus +} +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4_simd.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4_simd.h new file mode 100644 index 000000000..1831d75ab --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cm4_simd.h @@ -0,0 +1,673 @@ +/**************************************************************************//** + * @file core_cm4_simd.h + * @brief CMSIS Cortex-M4 SIMD Header File + * @version V3.20 + * @date 25. February 2013 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __CORE_CM4_SIMD_H +#define __CORE_CM4_SIMD_H + + +/******************************************************************************* + * Hardware Abstraction Layer + ******************************************************************************/ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +/*------ CM4 SIMD Intrinsics -----------------------------------------------------*/ +#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) << 32) ) >> 32)) + +/*-- End CM4 SIMD Intrinsics -----------------------------------------------------*/ + + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ + +/*------ CM4 SIMD Intrinsics -----------------------------------------------------*/ +#include + +/*-- End CM4 SIMD Intrinsics -----------------------------------------------------*/ + + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ + +/*------ CM4 SIMD Intrinsics -----------------------------------------------------*/ +#include + +/*-- End CM4 SIMD Intrinsics -----------------------------------------------------*/ + + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/*------ CM4 SIMD Intrinsics -----------------------------------------------------*/ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) \ + ({ \ + uint32_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; \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +#define __SMLALD(ARG1,ARG2,ARG3) \ + ({ \ + uint32_t __ARG1 = (ARG1), __ARG2 = (ARG2), __ARG3_H = (uint32_t)((uint64_t)(ARG3) >> 32), __ARG3_L = (uint32_t)((uint64_t)(ARG3) & 0xFFFFFFFFUL); \ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (__ARG3_L), "=r" (__ARG3_H) : "r" (__ARG1), "r" (__ARG2), "0" (__ARG3_L), "1" (__ARG3_H) ); \ + (uint64_t)(((uint64_t)__ARG3_H << 32) | __ARG3_L); \ + }) + +#define __SMLALDX(ARG1,ARG2,ARG3) \ + ({ \ + uint32_t __ARG1 = (ARG1), __ARG2 = (ARG2), __ARG3_H = (uint32_t)((uint64_t)(ARG3) >> 32), __ARG3_L = (uint32_t)((uint64_t)(ARG3) & 0xFFFFFFFFUL); \ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (__ARG3_L), "=r" (__ARG3_H) : "r" (__ARG1), "r" (__ARG2), "0" (__ARG3_L), "1" (__ARG3_H) ); \ + (uint64_t)(((uint64_t)__ARG3_H << 32) | __ARG3_L); \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +#define __SMLSLD(ARG1,ARG2,ARG3) \ + ({ \ + uint32_t __ARG1 = (ARG1), __ARG2 = (ARG2), __ARG3_H = (uint32_t)((ARG3) >> 32), __ARG3_L = (uint32_t)((ARG3) & 0xFFFFFFFFUL); \ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (__ARG3_L), "=r" (__ARG3_H) : "r" (__ARG1), "r" (__ARG2), "0" (__ARG3_L), "1" (__ARG3_H) ); \ + (uint64_t)(((uint64_t)__ARG3_H << 32) | __ARG3_L); \ + }) + +#define __SMLSLDX(ARG1,ARG2,ARG3) \ + ({ \ + uint32_t __ARG1 = (ARG1), __ARG2 = (ARG2), __ARG3_H = (uint32_t)((ARG3) >> 32), __ARG3_L = (uint32_t)((ARG3) & 0xFFFFFFFFUL); \ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (__ARG3_L), "=r" (__ARG3_H) : "r" (__ARG1), "r" (__ARG2), "0" (__ARG3_L), "1" (__ARG3_H) ); \ + (uint64_t)(((uint64_t)__ARG3_H << 32) | __ARG3_L); \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE 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); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QADD(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QSUB(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#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; \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_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); +} + +/*-- End CM4 SIMD Intrinsics -----------------------------------------------------*/ + + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ + + +/*------ CM4 SIMD Intrinsics -----------------------------------------------------*/ +/* not yet supported */ +/*-- End CM4 SIMD Intrinsics -----------------------------------------------------*/ + + +#endif + +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CORE_CM4_SIMD_H */ + +#ifdef __cplusplus +} +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmFunc.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmFunc.h new file mode 100644 index 000000000..763407aa2 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmFunc.h @@ -0,0 +1,637 @@ +/**************************************************************************//** + * @file core_cmFunc.h + * @brief CMSIS Cortex-M Core Function Access Header File + * @version V4.00 + * @date 28. August 2016 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2016 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifndef __CORE_CMFUNC_H +#define __CORE_CMFUNC_H + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#if (__ARMCC_VERSION < 400677) +#error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + +/* intrinsic void __enable_irq(); */ +/* intrinsic void __disable_irq(); */ + +/** \brief Get Control Register + + This function returns the content of the Control Register. + + \return Control Register value + */ +__STATIC_INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + + +/** \brief Set Control Register + + This function writes the given value to the Control Register. + + \param [in] control Control Register value to set + */ +__STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + + +/** \brief Get IPSR Register + + This function returns the content of the IPSR Register. + + \return IPSR Register value + */ +__STATIC_INLINE uint32_t __get_IPSR(void) +{ + register uint32_t __regIPSR __ASM("ipsr"); + return(__regIPSR); +} + + +/** \brief Get APSR Register + + This function returns the content of the APSR Register. + + \return APSR Register value + */ +__STATIC_INLINE uint32_t __get_APSR(void) +{ + register uint32_t __regAPSR __ASM("apsr"); + return(__regAPSR); +} + + +/** \brief Get xPSR Register + + This function returns the content of the xPSR Register. + + \return xPSR Register value + */ +__STATIC_INLINE uint32_t __get_xPSR(void) +{ + register uint32_t __regXPSR __ASM("xpsr"); + return(__regXPSR); +} + + +/** \brief Get Process Stack Pointer + + This function returns the current value of the Process Stack Pointer (PSP). + + \return PSP Register value + */ +__STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + return(__regProcessStackPointer); +} + + +/** \brief Set Process Stack Pointer + + This function assigns the given value to the Process Stack Pointer (PSP). + + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + __regProcessStackPointer = topOfProcStack; +} + + +/** \brief Get Main Stack Pointer + + This function returns the current value of the Main Stack Pointer (MSP). + + \return MSP Register value + */ +__STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + return(__regMainStackPointer); +} + + +/** \brief Set Main Stack Pointer + + This function assigns the given value to the Main Stack Pointer (MSP). + + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + __regMainStackPointer = topOfMainStack; +} + + +/** \brief Get Priority Mask + + This function returns the current state of the priority mask bit from the Priority Mask Register. + + \return Priority Mask value + */ +__STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + + +/** \brief Set Priority Mask + + This function assigns the given value to the Priority Mask Register. + + \param [in] priMask Priority Mask + */ +__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + + +#if (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) + +/** \brief Enable FIQ + + This function enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq + + +/** \brief Disable FIQ + + This function disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq + + +/** \brief Get Base Priority + + This function returns the current value of the Base Priority register. + + \return Base Priority register value + */ +__STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + + +/** \brief Set Base Priority + + This function assigns the given value to the Base Priority register. + + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xff); +} + + +/** \brief Get Fault Mask + + This function returns the current value of the Fault Mask register. + + \return Fault Mask register value + */ +__STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + + +/** \brief Set Fault Mask + + This function assigns the given value to the Fault Mask register. + + \param [in] faultMask Fault Mask value to set + */ +__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & (uint32_t)1); +} + +#endif /* (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) */ + + +#if (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) + +/** \brief Get FPSCR + + This function returns the current value of the Floating Point Status/Control register. + + \return Floating Point Status/Control register value + */ +__STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + register uint32_t __regfpscr __ASM("fpscr"); + return(__regfpscr); +#else + return(0); +#endif +} + + +/** \brief Set FPSCR + + This function assigns the given value to the Floating Point Status/Control register. + + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + register uint32_t __regfpscr __ASM("fpscr"); + __regfpscr = (fpscr); +#endif +} + +#endif /* (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) */ + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/** \brief Enable IRQ Interrupts + + This function enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** \brief Disable IRQ Interrupts + + This function disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** \brief Get Control Register + + This function returns the content of the Control Register. + + \return Control Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +/** \brief Set Control Register + + This function writes the given value to the Control Register. + + \param [in] control Control Register value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +/** \brief Get IPSR Register + + This function returns the content of the IPSR Register. + + \return IPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get APSR Register + + This function returns the content of the APSR Register. + + \return APSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get xPSR Register + + This function returns the content of the xPSR Register. + + \return xPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** \brief Get Process Stack Pointer + + This function returns the current value of the Process Stack Pointer (PSP). + + \return PSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp\n" : "=r" (result) ); + return(result); +} + + +/** \brief Set Process Stack Pointer + + This function assigns the given value to the Process Stack Pointer (PSP). + + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) : "sp"); +} + + +/** \brief Get Main Stack Pointer + + This function returns the current value of the Main Stack Pointer (MSP). + + \return MSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp\n" : "=r" (result) ); + return(result); +} + + +/** \brief Set Main Stack Pointer + + This function assigns the given value to the Main Stack Pointer (MSP). + + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) : "sp"); +} + + +/** \brief Get Priority Mask + + This function returns the current state of the priority mask bit from the Priority Mask Register. + + \return Priority Mask value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +/** \brief Set Priority Mask + + This function assigns the given value to the Priority Mask Register. + + \param [in] priMask Priority Mask + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (__CORTEX_M >= 0x03) + +/** \brief Enable FIQ + + This function enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** \brief Disable FIQ + + This function disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** \brief Get Base Priority + + This function returns the current value of the Base Priority register. + + \return Base Priority register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_max" : "=r" (result) ); + return(result); +} + + +/** \brief Set Base Priority + + This function assigns the given value to the Base Priority register. + + \param [in] basePri Base Priority value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_BASEPRI(uint32_t value) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (value) : "memory"); +} + + +/** \brief Get Fault Mask + + This function returns the current value of the Fault Mask register. + + \return Fault Mask register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +/** \brief Set Fault Mask + + This function assigns the given value to the Fault Mask register. + + \param [in] faultMask Fault Mask value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + +#endif /* (__CORTEX_M >= 0x03) */ + + +#if (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) + +/** \brief Get FPSCR + + This function returns the current value of the Floating Point Status/Control register. + + \return Floating Point Status/Control register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + uint32_t result; + + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + __ASM volatile (""); + return(result); +#else + return(0); +#endif +} + + +/** \brief Set FPSCR + + This function assigns the given value to the Floating Point Status/Control register. + + \param [in] fpscr Floating Point Status/Control value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc"); + __ASM volatile (""); +#endif +} + +#endif /* (__CORTEX_M == 0x04) || (__CORTEX_M == 0x07) */ + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#include + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ +#include + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ +/* + * 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. + */ + + +#elif defined ( __CSMC__ ) /*------------------ COSMIC Compiler -------------------*/ +/* Cosmic specific functions */ +#include + +#endif + +/*@} end of CMSIS_Core_RegAccFunctions */ + +#endif /* __CORE_CMFUNC_H */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmInstr.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmInstr.h new file mode 100644 index 000000000..ae4d62a80 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_cmInstr.h @@ -0,0 +1,880 @@ +/**************************************************************************//** + * @file core_cmInstr.h + * @brief CMSIS Cortex-M Core Instruction Access Header File + * @version V4.00 + * @date 28. August 2016 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2016 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifndef __CORE_CMINSTR_H +#define __CORE_CMINSTR_H + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#if (__ARMCC_VERSION < 400677) +#error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + + +/** \brief No Operation + + No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __nop + + +/** \brief Wait For Interrupt + + Wait For Interrupt is a hint instruction that suspends execution + until one of a number of events occurs. + */ +#define __WFI __wfi + + +/** \brief Wait For Event + + Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __wfe + + +/** \brief Send Event + + Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __sev + + +/** \brief Instruction Synchronization Barrier + + 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() __isb(0xF) + + +/** \brief Data Synchronization Barrier + + This function acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __dsb(0xF) + + +/** \brief Data Memory Barrier + + This function ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __dmb(0xF) + + +/** \brief Reverse byte order (32 bit) + + This function reverses the byte order in integer value. + + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV __rev + + +/** \brief Reverse byte order (16 bit) + + This function reverses the byte order in two unsigned short values. + + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) +{ + rev16 r0, r0 + bx lr +} +#endif + +/** \brief Reverse byte order in signed short value + + This function reverses the byte order in a signed short value with sign extension to integer. + + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int32_t __REVSH(int32_t value) +{ + revsh r0, r0 + bx lr +} +#endif + + +/** \brief Rotate Right in unsigned value (32 bit) + + This function Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + + \param [in] value Value to rotate + \param [in] value Number of Bits to rotate + \return Rotated value + */ +#define __ROR __ror + + +/** \brief Breakpoint + + This function causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __breakpoint(value) + + +#if (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) + +/** \brief Reverse bit order of value + + This function reverses the bit order of the given value. + + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __rbit + + +/** \brief LDR Exclusive (8 bit) + + This function 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(ptr) ((uint8_t ) __ldrex(ptr)) + + +/** \brief LDR Exclusive (16 bit) + + This function 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(ptr) ((uint16_t) __ldrex(ptr)) + + +/** \brief LDR Exclusive (32 bit) + + This function 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(ptr) ((uint32_t ) __ldrex(ptr)) + + +/** \brief STR Exclusive (8 bit) + + This function 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(value, ptr) __strex(value, ptr) + + +/** \brief STR Exclusive (16 bit) + + This function 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(value, ptr) __strex(value, ptr) + + +/** \brief STR Exclusive (32 bit) + + This function 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(value, ptr) __strex(value, ptr) + + +/** \brief Remove the exclusive lock + + This function removes the exclusive lock which is created by LDREX. + + */ +#define __CLREX __clrex + + +/** \brief Signed Saturate + + This function 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 + + This function 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 Count leading zeros + + This function 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 + + +/** \brief Rotate Right with Extend (32 bit) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + + This function 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) + +#endif /* (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) */ + + +#elif defined ( __GNUC__ ) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constrant "l" + * Otherwise, use general registers, specified by constrant "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 + + No Operation does nothing. This instruction can be used for code alignment purposes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __NOP(void) +{ + __ASM volatile ("nop"); +} + + +/** \brief Wait For Interrupt + + Wait For Interrupt is a hint instruction that suspends execution + until one of a number of events occurs. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __WFI(void) +{ + __ASM volatile ("wfi"); +} + + +/** \brief Wait For Event + + 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. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __WFE(void) +{ + __ASM volatile ("wfe"); +} + + +/** \brief Send Event + + Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __SEV(void) +{ + __ASM volatile ("sev"); +} + + +/** \brief Instruction Synchronization Barrier + + 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. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __ISB(void) +{ + __ASM volatile ("isb"); +} + + +/** \brief Data Synchronization Barrier + + This function acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __DSB(void) +{ + __ASM volatile ("dsb"); +} + + +/** \brief Data Memory Barrier + + This function ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __DMB(void) +{ + __ASM volatile ("dmb"); +} + + +/** \brief Reverse byte order (32 bit) + + This function reverses the byte order in integer value. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function reverses the byte order in two unsigned short values. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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 in signed short value + + This function reverses the byte order in a signed short value with sign extension to integer. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE int32_t __REVSH(int32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (short)__builtin_bswap16(value); +#else + uint32_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) + + This function Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + + \param [in] value Value to rotate + \param [in] value Number of Bits to rotate + \return Rotated value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + return (op1 >> op2) | (op1 << (32 - op2)); +} + + +/** \brief Breakpoint + + This function 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) + + +#if (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) + +/** \brief Reverse bit order of value + + This function reverses the bit order of the given value. + + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + return(result); +} + + +/** \brief LDR Exclusive (8 bit) + + This function executes a exclusive LDR instruction for 8 bit value. + + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function executes a exclusive LDR instruction for 16 bit values. + + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function executes a exclusive LDR instruction for 32 bit values. + + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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 + + This function removes the exclusive lock which is created by LDREX. + + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + + +/** \brief Signed Saturate + + This function 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(ARG1,ARG2) \ + ({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** \brief Unsigned Saturate + + This function 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(ARG1,ARG2) \ + ({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** \brief Count leading zeros + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __CLZ(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("clz %0, %1" : "=r" (result) : "r" (value) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** \brief Rotate Right with Extend (32 bit) + + This function 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 + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE 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) + + This function executes a Unprivileged LDRT instruction for 8 bit value. + + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint8_t __LDRBT(volatile uint8_t* addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %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 ("ldrbt %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** \brief LDRT Unprivileged (16 bit) + + This function executes a Unprivileged LDRT instruction for 16 bit values. + + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint16_t __LDRHT(volatile uint16_t* addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %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 ("ldrht %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** \brief LDRT Unprivileged (32 bit) + + This function executes a Unprivileged LDRT instruction for 32 bit values. + + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __LDRT(volatile uint32_t* addr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** \brief STRT Unprivileged (8 bit) + + This function executes a Unprivileged STRT instruction for 8 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __STRBT(uint8_t value, volatile uint8_t* addr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*addr) : "r" ((uint32_t)value) ); +} + + +/** \brief STRT Unprivileged (16 bit) + + This function executes a Unprivileged STRT instruction for 16 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __STRHT(uint16_t value, volatile uint16_t* addr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*addr) : "r" ((uint32_t)value) ); +} + + +/** \brief STRT Unprivileged (32 bit) + + This function executes a Unprivileged STRT instruction for 32 bit values. + + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __STRT(uint32_t value, volatile uint32_t* addr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*addr) : "r" (value) ); +} + +#endif /* (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300) */ + + +#elif defined ( __ICCARM__ ) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#include + + +#elif defined ( __TMS470__ ) /*---------------- TI CCS Compiler ------------------*/ +/* TI CCS specific functions */ +#include + + +#elif defined ( __TASKING__ ) /*------------------ TASKING Compiler --------------*/ +/* TASKING carm specific functions */ +/* + * 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. + */ + + +#elif defined ( __CSMC__ ) /*------------------ COSMIC Compiler -------------------*/ +/* Cosmic specific functions */ +#include + +#endif + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + +#endif /* __CORE_CMINSTR_H */ diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc000.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc000.h new file mode 100644 index 000000000..40c121cc6 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc000.h @@ -0,0 +1,804 @@ +/**************************************************************************//** + * @file core_sc000.h + * @brief CMSIS SC000 Core Peripheral Access Layer Header File + * @version V3.20 + * @date 25. February 2013 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __CORE_SC000_H_GENERIC +#define __CORE_SC000_H_GENERIC + +/** \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 + @{ + */ + +/* CMSIS SC000 definitions */ +#define __SC000_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ +#define __SC000_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ +#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16) | \ + __SC000_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_SC (0) /*!< Cortex secure core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "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 +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#endif /* __CORE_SC000_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC000_H_DEPENDANT +#define __CORE_SC000_H_DEPENDANT + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES +#ifndef __SC000_REV +#define __SC000_REV 0x0000 +#warning "__SC000_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 2 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[1]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[31]; + __IO uint32_t ICER[1]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[31]; + __IO uint32_t ISPR[1]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[31]; + __IO uint32_t ICPR[1]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[31]; + uint32_t RESERVED4[64]; + __IO uint32_t IP[8]; /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + uint32_t RESERVED0[1]; + __IO uint32_t SHP[2]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + uint32_t RESERVED1[154]; + __IO uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< 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 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +/* SCB Security Features Register Definitions */ +#define SCB_SFCR_UNIBRTIMING_Pos 0 /*!< SCB SFCR: UNIBRTIMING Position */ +#define SCB_SFCR_UNIBRTIMING_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SFCR: UNIBRTIMING Mask */ + +#define SCB_SFCR_SECKEY_Pos 16 /*!< SCB SFCR: SECKEY Position */ +#define SCB_SFCR_SECKEY_Msk (0xFFFFUL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SFCR: SECKEY 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[2]; + __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 8 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 Cortex-M0 header file. + @{ + */ +/*@} end of group CMSIS_CoreDebug */ + + +/** \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of SC000 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/* Interrupt Priorities are WORD accessible only under ARMv6M */ +/* The following MACROS handle generation of the register offset and byte masks */ +#define _BIT_SHIFT(IRQn) ( (((uint32_t)(IRQn) ) & 0x03) * 8 ) +#define _SHP_IDX(IRQn) ( ((((uint32_t)(IRQn) & 0x0F)-8) >> 2) ) +#define _IP_IDX(IRQn) ( ((uint32_t)(IRQn) >> 2) ) + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } + else { + NVIC->IP[_IP_IDX(IRQn)] = (NVIC->IP[_IP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | + (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); + } +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M0 system interrupts */ + else { + return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & 0xFF) >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + SCB_AIRCR_SYSRESETREQ_Msk); + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + + +#endif /* __CORE_SC000_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ + +#ifdef __cplusplus +} +#endif diff --git a/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc300.h b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc300.h new file mode 100644 index 000000000..0ddecfd47 --- /dev/null +++ b/bsp/mm32f103x/Libraries/CMSIS/KEIL_CORE/core_sc300.h @@ -0,0 +1,1586 @@ +/**************************************************************************//** + * @file core_sc300.h + * @brief CMSIS SC300 Core Peripheral Access Layer Header File + * @version V3.20 + * @date 25. February 2013 + * + * @note + * + ******************************************************************************/ +/* Copyright (c) 2009 - 2013 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) +#pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __CORE_SC300_H_GENERIC +#define __CORE_SC300_H_GENERIC + +/** \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 + @{ + */ + +/* CMSIS SC300 definitions */ +#define __SC300_CMSIS_VERSION_MAIN (0x03) /*!< [31:16] CMSIS HAL main version */ +#define __SC300_CMSIS_VERSION_SUB (0x20) /*!< [15:0] CMSIS HAL sub version */ +#define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16) | \ + __SC300_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_SC (300) /*!< Cortex secure core */ + + +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ +#define __STATIC_INLINE static __inline + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ +#define __STATIC_INLINE static inline + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ +#define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ +#define __STATIC_INLINE static inline + +#endif + +/** __FPU_USED indicates whether an FPU is used or not. This core does not support an FPU at all +*/ +#define __FPU_USED 0 + +#if defined ( __CC_ARM ) +#if defined __TARGET_FPU_VFP +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __ICCARM__ ) +#if defined __ARMVFP__ +#warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" +#endif + +#elif defined ( __GNUC__ ) +#if defined (__VFP_FP__) && !defined(__SOFTFP__) +#warning "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 +#endif + +#include /* standard types definitions */ +#include /* Core Instruction Access */ +#include /* Core Function Access */ + +#endif /* __CORE_SC300_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_SC300_H_DEPENDANT +#define __CORE_SC300_H_DEPENDANT + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES +#ifndef __SC300_REV +#define __SC300_REV 0x0000 +#warning "__SC300_REV not defined in device header file; using default!" +#endif + +#ifndef __MPU_PRESENT +#define __MPU_PRESENT 0 +#warning "__MPU_PRESENT not defined in device header file; using default!" +#endif + +#ifndef __NVIC_PRIO_BITS +#define __NVIC_PRIO_BITS 4 +#warning "__NVIC_PRIO_BITS not defined in device header file; using default!" +#endif + +#ifndef __Vendor_SysTickConfig +#define __Vendor_SysTickConfig 0 +#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 */ + +/*@} 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 { +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 27; /*!< bit: 0..26 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + + +/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union { + struct { + uint32_t ISR: 9; /*!< bit: 0.. 8 Exception number */ +#if (__CORTEX_M != 0x04) + uint32_t _reserved0: 15; /*!< bit: 9..23 Reserved */ +#else + 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 */ +#endif + 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; + + +/** \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; + +/*@} 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 { + __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0 /*!< 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 { + __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5]; + __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< 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 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< 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 29 /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7 /*!< 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 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< 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 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< 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 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< 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 4 /*!< 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 3 /*!< 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 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< 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 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< 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 8 /*!< 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 0 /*!< 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 */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< 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 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< 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[1]; + __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + uint32_t RESERVED1[1]; +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_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 { + __O union { + __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< 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 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10 /*!< 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 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< 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 { + __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1]; + __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1]; + __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1]; + __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 0 /*!< 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 24 /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0 /*!< 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 { + __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2]; + __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55]; + __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131]; + __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759]; + __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1]; + __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39]; + __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8]; + __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0 /*!< 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 0 /*!< 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 3 /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0 /*!< 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 8 /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1 /*!< 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 0 /*!< 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 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL << TPI_FIFO0_ETM0_Pos) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL << TPI_ITATBCTR2_ATREADY_Pos) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< 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 27 /*!< 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 26 /*!< 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 24 /*!< 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 16 /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL << TPI_FIFO1_ITM0_Pos) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL << TPI_ITATBCTR0_ATREADY_Pos) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL << TPI_ITCTRL_Mode_Pos) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0 /*!< 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 0 /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL << TPI_DEVTYPE_SubType_Pos) /*!< TPI DEVTYPE: SubType Mask */ + +#define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1) +/** \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 { + __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_ATTRS_Pos 16 /*!< 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 28 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 8 /*!< 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 1 /*!< 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 0 /*!< 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 { + __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< 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 25 /*!< 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 24 /*!< 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 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 5 /*!< 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 3 /*!< 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 2 /*!< 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 1 /*!< 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 0 /*!< 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 */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< 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_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< 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 18 /*!< 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 17 /*!< 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 16 /*!< 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 10 /*!< 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 9 /*!< 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 8 /*!< 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 7 /*!< 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 6 /*!< 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 5 /*!< 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 4 /*!< 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 0 /*!< 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_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M3 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 (__MPU_PRESENT == 1) +#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. + @{ + */ + +/** \brief Set Priority Grouping + + The function 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)0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** \brief Get Priority Grouping + + The function 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 ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + + +/** \brief Enable External Interrupt + + The function enables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ +} + + +/** \brief Disable External Interrupt + + The function disables a device-specific interrupt in the NVIC interrupt controller. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + + +/** \brief Get Pending Interrupt + + The function reads the pending register in the NVIC and returns the pending bit + for the specified interrupt. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if pending else 0 */ +} + + +/** \brief Set Pending Interrupt + + The function sets the pending bit of an external interrupt. + + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + + +/** \brief Clear Pending Interrupt + + The function clears the pending bit of an external interrupt. + + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + + +/** \brief Get Active Interrupt + + The function reads the active register in NVIC and returns the active bit. + + \param [in] IRQn Interrupt number. + + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); /* Return 1 if active else 0 */ +} + + +/** \brief Set Interrupt Priority + + The function sets the priority of an interrupt. + + \note The priority cannot be set for every core interrupt. + + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for Cortex-M System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); + } /* set Priority for device specific Interrupts */ +} + + +/** \brief Get Interrupt Priority + + The function reads the priority of an interrupt. The interrupt + number can be positive to specify an external (device specific) + interrupt, or negative to specify an internal (core) interrupt. + + + \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(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for Cortex-M system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); + } /* get priority for device specific interrupts */ +} + + +/** \brief Encode Priority + + The function 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 samllest 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 & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** \brief Decode Priority + + The function 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 samllest 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* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + +/** \brief System Reset + + The function initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0) + +/** \brief System Tick Configuration + + The function 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 - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = ticks - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1 << __NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0; /* 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 (0); /* 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 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** \brief ITM Send Character + + The function 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) && /* ITM enabled */ + (ITM->TER & (1UL << 0) ) ) { /* ITM Port #0 enabled */ + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** \brief ITM Receive Character + + The function 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 + + The function 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 */ + +#endif /* __CORE_SC300_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ + +#ifdef __cplusplus +} +#endif diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_adc.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_adc.h new file mode 100644 index 000000000..1fae4e798 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_adc.h @@ -0,0 +1,412 @@ +/** +****************************************************************************** +* @file HAL_adc.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the ADC firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_ADC_H +#define __HAL_ADC_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup ADC +* @{ +*/ + +/** @defgroup ADC_Exported_Types +* @{ +*/ + +/** +* @brief ADC Init structure definition +*/ + +/* +typedef struct +{ +uint32_t ADC_Mode; +FunctionalState ADC_ScanConvMode; +FunctionalState ADC_ContinuousConvMode; +uint32_t ADC_ExternalTrigConv; +uint32_t ADC_DataAlign; +uint8_t ADC_NbrOfChannel; +}ADC_InitTypeDef; +*/ +typedef struct +{ + uint32_t ADC_Resolution; + uint32_t ADC_PRESCARE; + uint32_t ADC_Mode; + FunctionalState ADC_ContinuousConvMode; + uint32_t ADC_ExternalTrigConv; + uint32_t ADC_DataAlign; +} ADC_InitTypeDef; +/** +* @} +*/ + +/** @defgroup ADC_Exported_Constants +* @{ +*/ + +#define IS_ADC_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == ADC1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == ADC2_BASE)) + +#define IS_ADC_DMA_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == ADC1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == ADC2_BASE)) + +/** @defgroup ADC_Resolution +* @{ +*/ +#define ADC_Resolution_12b ((uint32_t)0x00000000) +#define ADC_Resolution_11b ((uint32_t)0x00000080) +#define ADC_Resolution_10b ((uint32_t)0x00000100) +#define ADC_Resolution_9b ((uint32_t)0x00000180) +#define ADC_Resolution_8b ((uint32_t)0x00000200) +/** +* @brief for ADC1, ADC2 +*/ + +#define ADC_PCLK2_PRESCARE_2 ((uint32_t)0x00000000) +#define ADC_PCLK2_PRESCARE_4 ((uint32_t)0x00000010) +#define ADC_PCLK2_PRESCARE_6 ((uint32_t)0x00000020) +#define ADC_PCLK2_PRESCARE_8 ((uint32_t)0x00000030) +#define ADC_PCLK2_PRESCARE_10 ((uint32_t)0x00000040) +#define ADC_PCLK2_PRESCARE_12 ((uint32_t)0x00000050) +#define ADC_PCLK2_PRESCARE_14 ((uint32_t)0x00000060) +#define ADC_PCLK2_PRESCARE_16 ((uint32_t)0x00000070) + + +/** @defgroup ADC_dual_mode +* @{ +*/ + +#define ADC_Mode_Single ((uint32_t)0x00000000) +#define ADC_Mode_Single_Period ((uint32_t)0x00000200) +#define ADC_Mode_Continuous_Scan ((uint32_t)0x00000400) + + +#define IS_ADC_MODE(MODE) (((MODE) == ADC_Mode_Single) || \ + ((MODE) == ADC_Mode_Single_Period) || \ + ((MODE) == ADC_Mode_Continuous_Scan)) +/** +* @} +*/ + + + +/** @defgroup ADC_extrenal_trigger_sources_for_regular_channels_conversion +* @{ +*/ + +/** +* @brief for ADC1 +*/ + +#define ADC_ExternalTrigConv_T1_CC1 ((uint32_t)0x00000000) +#define ADC_ExternalTrigConv_T1_CC2 ((uint32_t)0x00000010) +#define ADC_ExternalTrigConv_T1_CC3 ((uint32_t)0x00000020) +#define ADC_ExternalTrigConv_T2_CC2 ((uint32_t)0x00000030) +#define ADC_ExternalTrigConv_T3_TRGO ((uint32_t)0x00000040) +#define ADC_ExternalTrigConv_T4_CC4 ((uint32_t)0x00000050) +#define ADC_ExternalTrigConv_T3_CC1 ((uint32_t)0x00000060) +#define ADC_ExternalTrigConv_EXTI_11 ((uint32_t)0x00000070) + +/** +* @brief for ADC2 +*/ + +#define ADC_ExternalTrigConv_T1_TRGO ((uint32_t)0x00000000) +#define ADC_ExternalTrigConv_T1_CC4 ((uint32_t)0x00000010) +#define ADC_ExternalTrigConv_T2_TRGO ((uint32_t)0x00000020) +#define ADC_ExternalTrigConv_T2_CC1 ((uint32_t)0x00000030) +#define ADC_ExternalTrigConv_T3_CC4 ((uint32_t)0x00000040) +#define ADC_ExternalTrigConv_T4_TRGO ((uint32_t)0x00000050) +#define ADC_ExternalTrigConv_T3_CC1 ((uint32_t)0x00000060) +#define ADC_ExternalTrigConv_EXTI_15 ((uint32_t)0x00000070) + + + +#define IS_ADC_EXT_TRIG(REGTRIG) (((REGTRIG) == ADC_ExternalTrigConv_T1_CC1) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T1_CC2) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T1_CC3) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T2_CC2) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T3_TRGO) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T4_CC4) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T3_CC1) || \ + ((REGTRIG) == ADC_ExternalTrigConv_EXTI_11) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T1_TRGO) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T1_CC4) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T2_TRGO) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T2_CC1) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T3_CC4) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T4_TRGO) || \ + ((REGTRIG) == ADC_ExternalTrigConv_T3_CC1) || \ + ((REGTRIG) == ADC_ExternalTrigConv_EXTI_15)) +/** +* @} +*/ + +/** @defgroup ADC_data_align +* @{ +*/ + +#define ADC_DataAlign_Right ((uint32_t)0x00000000) +#define ADC_DataAlign_Left ((uint32_t)0x00000800) +#define IS_ADC_DATA_ALIGN(ALIGN) (((ALIGN) == ADC_DataAlign_Right) || \ + ((ALIGN) == ADC_DataAlign_Left)) +/** +* @} +*/ + +/** @defgroup ADC_channels +* @{ +*/ + +#define ADC_Channel_0 ((uint8_t)0x00) +#define ADC_Channel_1 ((uint8_t)0x01) +#define ADC_Channel_2 ((uint8_t)0x02) +#define ADC_Channel_3 ((uint8_t)0x03) +#define ADC_Channel_4 ((uint8_t)0x04) +#define ADC_Channel_5 ((uint8_t)0x05) +#define ADC_Channel_6 ((uint8_t)0x06) +#define ADC_Channel_7 ((uint8_t)0x07) +#define ADC_Channel_8 ((uint8_t)0x08) +#define ADC_Channel_All ((uint8_t)0x0f) + + +#define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_Channel_0) || ((CHANNEL) == ADC_Channel_1) || \ + ((CHANNEL) == ADC_Channel_2) || ((CHANNEL) == ADC_Channel_3) || \ + ((CHANNEL) == ADC_Channel_4) || ((CHANNEL) == ADC_Channel_5) || \ + ((CHANNEL) == ADC_Channel_6) || ((CHANNEL) == ADC_Channel_7) || \ + ((CHANNEL) == ADC_Channel_8) || ((CHANNEL) == ADC_Channel_All)) +/** +* @} +*/ + +#define ADC_SMPR_SMP ((uint32_t)0x00000007) /*!< SMP[2:0] bits (Sampling time selection) */ +#define ADC_SMPR_SMP_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SMPR_SMP_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SMPR_SMP_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +/** @defgroup ADC_sampling_times +* @{ +*/ + +#define ADC_SampleTime_1_5Cycles ((uint32_t)0x00000000) +#define ADC_SampleTime_7_5Cycles ((uint32_t)0x00000001) +#define ADC_SampleTime_13_5Cycles ((uint32_t)0x00000002) +#define ADC_SampleTime_28_5Cycles ((uint32_t)0x00000003) +#define ADC_SampleTime_41_5Cycles ((uint32_t)0x00000004) +#define ADC_SampleTime_55_5Cycles ((uint32_t)0x00000005) +#define ADC_SampleTime_71_5Cycles ((uint32_t)0x00000006) +#define ADC_SampleTime_239_5Cycles ((uint32_t)0x00000007) + +/** @defgroup ADC_injected_channel_selection +* @{ +*/ + +#define ADC_InjectedChannel_0 ((uint8_t)0x18) +#define ADC_InjectedChannel_1 ((uint8_t)0x1C) +#define ADC_InjectedChannel_2 ((uint8_t)0x20) +#define ADC_InjectedChannel_3 ((uint8_t)0x24) +#define ADC_InjectedChannel_4 ((uint8_t)0x28) +#define ADC_InjectedChannel_5 ((uint8_t)0x2C) +#define ADC_InjectedChannel_6 ((uint8_t)0x30) +#define ADC_InjectedChannel_7 ((uint8_t)0x34) +#define ADC_InjectedChannel_8 ((uint8_t)0x38) +#define IS_ADC_INJECTED_CHANNEL(CHANNEL) (((CHANNEL) == ADC_InjectedChannel_1) || \ + ((CHANNEL) == ADC_InjectedChannel_2) || \ + ((CHANNEL) == ADC_InjectedChannel_3) || \ + ((CHANNEL) == ADC_InjectedChannel_4) || \ + ((CHANNEL) == ADC_InjectedChannel_5) || \ + ((CHANNEL) == ADC_InjectedChannel_6) || \ + ((CHANNEL) == ADC_InjectedChannel_7) || \ + ((CHANNEL) == ADC_InjectedChannel_8)) +/** +* @} +*/ + +/** @defgroup ADC_analog_watchdog_selection +* @{ +*/ + +#define ADC_AnalogWatchdog_SingleRegEnable ((uint32_t)0x00000002) +#define ADC_AnalogWatchdog_None ((uint32_t)0x00000000) + +#define IS_ADC_ANALOG_WATCHDOG(WATCHDOG) (((WATCHDOG) == ADC_AnalogWatchdog_SingleRegEnable) || \ + ((WATCHDOG) == ADC_AnalogWatchdog_None)) +/** +* @} +*/ + +/** @defgroup ADC_interrupts_definition +* @{ +*/ + +#define ADC_IT_EOC ((uint16_t)0x0001) +#define ADC_IT_AWD ((uint16_t)0x0002) + +#define IS_ADC_IT(IT) ((((IT) & (uint16_t)0xFFFC) == 0x00) && ((IT) != 0x00)) + +#define IS_ADC_GET_IT(IT) (((IT) == ADC_IT_EOC) || ((IT) == ADC_IT_AWD)) + +/** +* @} +*/ + +/** @defgroup ADC_flags_definition +* @{ +*/ + +#define ADC_FLAG_AWD ((uint8_t)0x02) +#define ADC_FLAG_EOC ((uint8_t)0x01) +#define IS_ADC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint8_t)0xF0) == 0x00) && ((FLAG) != 0x00)) +#define IS_ADC_GET_FLAG(FLAG) (((FLAG) == ADC_FLAG_AWD) || ((FLAG) == ADC_FLAG_EOC)) + +/** +* @} +*/ + +/** @defgroup ADC_thresholds +* @{ +*/ + +#define IS_ADC_THRESHOLD(THRESHOLD) ((THRESHOLD) <= 0xFFF) + +/** +* @} +*/ + +/** @defgroup ADC_injected_offset +* @{ +*/ + +#define IS_ADC_OFFSET(OFFSET) ((OFFSET) <= 0xFFF) + +/** +* @} +*/ + +/** @defgroup ADC_injected_length +* @{ +*/ + +#define IS_ADC_INJECTED_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x4)) + +/** +* @} +*/ + +/** @defgroup ADC_injected_rank +* @{ +*/ + +#define IS_ADC_INJECTED_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x4)) + +/** +* @} +*/ + + +/** @defgroup ADC_regular_length +* @{ +*/ + +#define IS_ADC_REGULAR_LENGTH(LENGTH) (((LENGTH) >= 0x1) && ((LENGTH) <= 0x10)) +/** +* @} +*/ + +/** @defgroup ADC_regular_rank +* @{ +*/ + +#define IS_ADC_REGULAR_RANK(RANK) (((RANK) >= 0x1) && ((RANK) <= 0x10)) + +/** +* @} +*/ + +/** @defgroup ADC_regular_discontinuous_mode_number +* @{ +*/ + +#define IS_ADC_REGULAR_DISC_NUMBER(NUMBER) (((NUMBER) >= 0x1) && ((NUMBER) <= 0x8)) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup ADC_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup ADC_Exported_Functions +* @{ +*/ + +void ADC_DeInit(ADC_TypeDef* ADCx); +void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); +void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct); +void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState); +void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState); +void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState); +void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); +FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx); +void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); +void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); +uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx); + +void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog); +void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, uint16_t LowThreshold); +void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel); +void ADC_TempSensorVrefintCmd(FunctionalState NewState); +FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG); +void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG); +ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT); +void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT); + +#endif /*__HAL_ADC_H */ + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_bkp.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_bkp.h new file mode 100644 index 000000000..c9f23993d --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_bkp.h @@ -0,0 +1,186 @@ +/** +****************************************************************************** +* @file HAL_bkp.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the BKP firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_BKP_H +#define __HAL_BKP_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup BKP +* @{ +*/ + +/** @defgroup BKP_Exported_Types +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup BKP_Exported_Constants +* @{ +*/ + +/** @defgroup Tamper_Pin_active_level +* @{ +*/ + +#define BKP_TamperPinLevel_High ((uint16_t)0x0000) +#define BKP_TamperPinLevel_Low ((uint16_t)0x0001) +#define IS_BKP_TAMPER_PIN_LEVEL(LEVEL) (((LEVEL) == BKP_TamperPinLevel_High) || \ + ((LEVEL) == BKP_TamperPinLevel_Low)) +/** +* @} +*/ + +/** @defgroup RTC_output_source_to_output_on_the_Tamper_pin +* @{ +*/ + +#define BKP_RTCOutputSource_None ((uint16_t)0x0000) +#define BKP_RTCOutputSource_CalibClock ((uint16_t)0x0080) +#define BKP_RTCOutputSource_Alarm ((uint16_t)0x0100) +#define BKP_RTCOutputSource_Second ((uint16_t)0x0300) +#define IS_BKP_RTC_OUTPUT_SOURCE(SOURCE) (((SOURCE) == BKP_RTCOutputSource_None) || \ + ((SOURCE) == BKP_RTCOutputSource_CalibClock) || \ + ((SOURCE) == BKP_RTCOutputSource_Alarm) || \ + ((SOURCE) == BKP_RTCOutputSource_Second)) +/** +* @} +*/ + +/** @defgroup Data_Backup_Register +* @{ +*/ + +#define BKP_DR1 ((uint16_t)0x0004) +#define BKP_DR2 ((uint16_t)0x0008) +#define BKP_DR3 ((uint16_t)0x000C) +#define BKP_DR4 ((uint16_t)0x0010) +#define BKP_DR5 ((uint16_t)0x0014) +#define BKP_DR6 ((uint16_t)0x0018) +#define BKP_DR7 ((uint16_t)0x001C) +#define BKP_DR8 ((uint16_t)0x0020) +#define BKP_DR9 ((uint16_t)0x0024) +#define BKP_DR10 ((uint16_t)0x0028) +#define BKP_DR11 ((uint16_t)0x0040) +#define BKP_DR12 ((uint16_t)0x0044) +#define BKP_DR13 ((uint16_t)0x0048) +#define BKP_DR14 ((uint16_t)0x004C) +#define BKP_DR15 ((uint16_t)0x0050) +#define BKP_DR16 ((uint16_t)0x0054) +#define BKP_DR17 ((uint16_t)0x0058) +#define BKP_DR18 ((uint16_t)0x005C) +#define BKP_DR19 ((uint16_t)0x0060) +#define BKP_DR20 ((uint16_t)0x0064) +#define BKP_DR21 ((uint16_t)0x0068) +#define BKP_DR22 ((uint16_t)0x006C) +#define BKP_DR23 ((uint16_t)0x0070) +#define BKP_DR24 ((uint16_t)0x0074) +#define BKP_DR25 ((uint16_t)0x0078) +#define BKP_DR26 ((uint16_t)0x007C) +#define BKP_DR27 ((uint16_t)0x0080) +#define BKP_DR28 ((uint16_t)0x0084) +#define BKP_DR29 ((uint16_t)0x0088) +#define BKP_DR30 ((uint16_t)0x008C) +#define BKP_DR31 ((uint16_t)0x0090) +#define BKP_DR32 ((uint16_t)0x0094) +#define BKP_DR33 ((uint16_t)0x0098) +#define BKP_DR34 ((uint16_t)0x009C) +#define BKP_DR35 ((uint16_t)0x00A0) +#define BKP_DR36 ((uint16_t)0x00A4) +#define BKP_DR37 ((uint16_t)0x00A8) +#define BKP_DR38 ((uint16_t)0x00AC) +#define BKP_DR39 ((uint16_t)0x00B0) +#define BKP_DR40 ((uint16_t)0x00B4) +#define BKP_DR41 ((uint16_t)0x00B8) +#define BKP_DR42 ((uint16_t)0x00BC) + +#define IS_BKP_DR(DR) (((DR) == BKP_DR1) || ((DR) == BKP_DR2) || ((DR) == BKP_DR3) || \ + ((DR) == BKP_DR4) || ((DR) == BKP_DR5) || ((DR) == BKP_DR6) || \ + ((DR) == BKP_DR7) || ((DR) == BKP_DR8) || ((DR) == BKP_DR9) || \ + ((DR) == BKP_DR10) || ((DR) == BKP_DR11) || ((DR) == BKP_DR12) || \ + ((DR) == BKP_DR13) || ((DR) == BKP_DR14) || ((DR) == BKP_DR15) || \ + ((DR) == BKP_DR16) || ((DR) == BKP_DR17) || ((DR) == BKP_DR18) || \ + ((DR) == BKP_DR19) || ((DR) == BKP_DR20) || ((DR) == BKP_DR21) || \ + ((DR) == BKP_DR22) || ((DR) == BKP_DR23) || ((DR) == BKP_DR24) || \ + ((DR) == BKP_DR25) || ((DR) == BKP_DR26) || ((DR) == BKP_DR27) || \ + ((DR) == BKP_DR28) || ((DR) == BKP_DR29) || ((DR) == BKP_DR30) || \ + ((DR) == BKP_DR31) || ((DR) == BKP_DR32) || ((DR) == BKP_DR33) || \ + ((DR) == BKP_DR34) || ((DR) == BKP_DR35) || ((DR) == BKP_DR36) || \ + ((DR) == BKP_DR37) || ((DR) == BKP_DR38) || ((DR) == BKP_DR39) || \ + ((DR) == BKP_DR40) || ((DR) == BKP_DR41) || ((DR) == BKP_DR42)) + +#define IS_BKP_CALIBRATION_VALUE(VALUE) ((VALUE) <= 0x7F) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup BKP_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup BKP_Exported_Functions +* @{ +*/ + +void BKP_DeInit(void); +void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel); +void BKP_TamperPinCmd(FunctionalState NewState); +void BKP_ITConfig(FunctionalState NewState); +void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource); +void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue); +void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data); +uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR); +FlagStatus BKP_GetFlagStatus(void); +void BKP_ClearFlag(void); +ITStatus BKP_GetITStatus(void); +void BKP_ClearITPendingBit(void); + +#endif /* __HAL_BKP_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_can.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_can.h new file mode 100644 index 000000000..f9e9af634 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_can.h @@ -0,0 +1,392 @@ +/** +****************************************************************************** +* @file HAL_can.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the BKP firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_CAN_H +#define __HAL_CAN_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + + +/** @defgroup CAN_sleep_constants +* @{ +*/ + +#define CANINITFAILED ((uint8_t)0x00) /* CAN initialization failed */ +#define CANINITOK ((uint8_t)0x01) /* CAN initialization ok */ + +/** +* @} +*/ + + + +/** @defgroup CAN_sleep_constants +* @{ +*/ + +#define CANSLEEPFAILED ((uint8_t)0x00) /* CAN did not enter the sleep mode */ +#define CANSLEEPOK ((uint8_t)0x01) /* CAN entered the sleep mode */ + +/** +* @} +*/ + + +/** @defgroup CAN_wake_up_constants +* @{ +*/ + +#define CANWAKEUPFAILED ((uint8_t)0x00) /* CAN did not leave the sleep mode */ +#define CANWAKEUPOK ((uint8_t)0x01) /* CAN leaved the sleep mode */ + +/** +* @} +*/ + +/** +* @brief parasmeter of CAN Mode +*/ +#define CAN_BASICMode ((uint32_t)0x0) +#define CAN_PELIMode ((uint32_t)0x80) +#define CAN_WorkMode ((uint32_t)0x80) +#define CAN_ResetMode ((uint32_t)0x1) +#define CAN_ListenOnlyMode ((uint32_t)0x2) +#define CAN_SeftTestMode ((uint32_t)0x4) +#define CAN_FilterMode_Singal ((uint32_t)0x8) +#define CAN_FilterMode_Double ((uint32_t)0xf7) +#define CAN_SleepMode ((uint32_t)0x10) + +/** +* @} +*/ + +/** +* @brief parasmeter of BASIC CAN interrupt +*/ +#define CAN_IT_RIE ((uint32_t)0x2) +#define CAN_IT_TIE ((uint32_t)0x4) +#define CAN_IT_EIE ((uint32_t)0x8) +#define CAN_IT_OIE ((uint32_t)0x10) + +/** +* @} +*/ + +/** +* @brief parasmeter of PELI CAN interrupt +*/ +#define CAN_IT_RI ((uint32_t)0x1) +#define CAN_IT_TI ((uint32_t)0x2) +#define CAN_IT_EI ((uint32_t)0x4) +#define CAN_IT_DOI ((uint32_t)0x8) +#define CAN_IT_WUI ((uint32_t)0x10) +#define CAN_IT_EPI ((uint32_t)0x20) +#define CAN_IT_ALI ((uint32_t)0x40) +#define CAN_IT_BEI ((uint32_t)0x80) +#define CAN_IT_ALL ((uint32_t)0xff) + +/** +* @} +*/ + +/** +* @brief parasmeter of CAN Status +*/ +#define CAN_STATUS_RBS ((uint32_t)0x1) +#define CAN_STATUS_DOS ((uint32_t)0x2) +#define CAN_STATUS_TBS ((uint32_t)0x4) +#define CAN_STATUS_TCS ((uint32_t)0x8) +#define CAN_STATUS_RS ((uint32_t)0x10) +#define CAN_STATUS_TS ((uint32_t)0x20) +#define CAN_STATUS_ES ((uint32_t)0x40) +#define CAN_STATUS_BS ((uint32_t)0x80) + +/** +* @} +*/ + +/** +* @brief parasmeter of CAN Command register +*/ +#define CAN_TR 0x1 +#define CAN_AT 0x2 +#define CAN_RRB 0x4 +#define CAN_CDO 0x8 + +/** +* @} +*/ + +/** +* @brief CAN_Basic init structure definition +*/ +typedef struct +{ + uint8_t SJW; + uint8_t BRP; + FlagStatus SAM; + uint8_t TESG2; + uint8_t TESG1; + FunctionalState GTS; + uint8_t CDCLK; + uint8_t CLOSE_OPEN_CLK; + uint8_t RXINTEN; + uint8_t CBP; +} CAN_Basic_InitTypeDef; + +/** +* @} +*/ + +/** +* @brief CAN_Peli init structure definition +*/ +typedef struct +{ + uint8_t SJW; + uint8_t BRP; + FlagStatus SAM; + uint8_t TESG2; + uint8_t TESG1; + FunctionalState LOM; + FunctionalState STM; + FunctionalState SM; + FunctionalState SRR; + uint32_t EWLR; +} CAN_Peli_InitTypeDef; + +/** +* @} +*/ + +/** +* @brief CAN_Basic filter init structure definition +*/ +typedef struct +{ + uint8_t CAN_FilterId; /*!< Specifies the filter identification number . + This parameter can be a value between 0x00 and 0xFF */ + + uint8_t CAN_FilterMaskId; /*!< Specifies the filter mask number or identification number, + This parameter can be a value between 0x00 and 0xFF */ +} CAN_Basic_FilterInitTypeDef; + +/** +* @} +*/ + +/** +* @brief CAN_Peli filter init structure definition +*/ +typedef struct +{ + uint8_t AFM; + uint8_t CAN_FilterId0; /*!< Specifies the filter identification number + This parameter can be a value between 0x00 and 0xFF */ + uint8_t CAN_FilterId1; + uint8_t CAN_FilterId2; + uint8_t CAN_FilterId3; + + uint8_t CAN_FilterMaskId0; /*!< Specifies the filter mask number or identification number, + This parameter can be a value between 0x00 and 0xFF */ + uint8_t CAN_FilterMaskId1; + uint8_t CAN_FilterMaskId2; + uint8_t CAN_FilterMaskId3; +} CAN_Peli_FilterInitTypeDef; + +/** +* @} +*/ + +/** +* @brief CAN_Peli transmit frame definition +*/ +typedef enum {DataFrame = 0, RemoteFrame = !DataFrame} TransFrame; + +/** +* @} +*/ + +/** +* @brief CAN_Basic Tx message structure definition +*/ +typedef struct +{ + uint8_t IDH; /*!< Specifies the standard high identifier. + This parameter can be a value between 0 to 0xFF. */ + uint8_t IDL; /*!< Specifies the standard low identifier. + This parameter can be a value between 0 to 0x7. */ + uint8_t RTR; /*!< Specifies the type of frame for the message that will + be transmitted. This parameter can be @TransFrame */ + + uint8_t DLC; /*!< Specifies the length of the frame that will be + transmitted. This parameter can be a value between + 0 to 8 */ + + uint8_t Data[8]; /*!< Contains the data to be transmitted. It ranges from 0 + to 0xFF. */ +} CanBasicTxMsg; + +/** +* @} +*/ + +/** +* @brief CAN_Basic Rx message structure definition +*/ +typedef struct +{ + uint16_t ID; /*!< Specifies the standard identifier. + This parameter can be a value between 0 to 0x7FF. */ + uint8_t RTR; /*!< Specifies the type of frame for the received message. + This parameter can be a value of + @ref TransFrame */ + + uint8_t DLC; /*!< Specifies the length of the frame that will be received. + This parameter can be a value between 0 to 8 */ + + uint8_t Data[8]; /*!< Contains the data to be received. It ranges from 0 to + 0xFF. */ + +} CanBasicRxMsg; + +/** +* @} +*/ + +/** +* @brief CAN_Peli_Tx message structure definition +*/ +typedef struct +{ + uint8_t IDLL; /*!< Specifies the extended identifier. + This parameter can be a value between 0 to 0xFF. */ + uint8_t IDLH; + uint8_t IDHL; + uint8_t IDHH; + uint8_t FF; /*!< Specifies the type of identifier for the message that + will be transmitted. This parameter can be a value + of @ref CAN_identifier_type */ + + uint8_t RTR; /*!< Specifies the type of frame for the message that will + be transmitted. This parameter can be a value of + @ref TransFrame */ + + uint8_t DLC; /*!< Specifies the length of the frame that will be + transmitted. This parameter can be a value between + 0 to 8 */ + + uint8_t Data[8]; /*!< Contains the data to be transmitted. It ranges from 0 + to 0xFF. */ +} CanPeliTxMsg; + +/** +* @} +*/ + +/** +* @brief CAN Rx message structure definition +*/ +typedef struct +{ + uint32_t ID; /*!< Specifies the extended identifier. + This parameter can be a value between 0 to 0x1FFFFFFF. */ + uint8_t FF; /*!< Specifies the type of identifier for the message that + will be received. This parameter can be a value of + @ref CAN_identifier_type */ + + uint8_t RTR; /*!< Specifies the type of frame for the received message. + This parameter can be a value of + @ref TransFrame */ + + uint8_t DLC; /*!< Specifies the length of the frame that will be received. + This parameter can be a value between 0 to 8 */ + + uint8_t Data[8]; /*!< Contains the data to be received. It ranges from 0 to + 0xFF. */ + +} CanPeliRxMsg; + + + + +#define CANTXFAILED ((uint8_t)0x00) /* CAN transmission failed */ +#define CANTXOK ((uint8_t)0x01) /* CAN transmission succeeded */ +#define CANTXPENDING ((uint8_t)0x02) /* CAN transmission pending */ +#define CAN_NO_MB ((uint8_t)0x04) /* CAN cell did not provide an empty mailbox */ + + +/************************ Basic and Peli Work all need function ********************/ + +void CAN_Mode_Cmd(CAN_TypeDef* CANx, uint32_t CAN_MODE); +void CAN_ResetMode_Cmd(CAN_TypeDef* CANx, FunctionalState NewState); +void CAN_ClearDataOverflow(CAN_TypeDef* CANx); +void CAN_ClearITPendingBit(CAN_TypeDef* CANx); + + +/************************ Basic Work function ********************/ +void CAN_DeInit(CAN_TypeDef* CANx); +uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_Basic_InitTypeDef* CAN_Basic_InitStruct); +void CAN_FilterInit(CAN_Basic_FilterInitTypeDef* CAN_Basic_FilterInitStruct); +void CAN_StructInit(CAN_Basic_InitTypeDef* CAN_Basic_InitStruct); +void CAN_ITConfig(CAN_TypeDef* CANx, uint32_t CAN_IT, FunctionalState Newstate); +uint8_t CAN_Transmit(CAN_TypeDef* CANx, CanBasicTxMsg* BasicTxMessage); +void CAN_CancelTransmit(CAN_TypeDef* CANx); +void CAN_FIFORelease(CAN_TypeDef* CANx); +void CAN_Receive(CAN_TypeDef* CANx, CanBasicRxMsg* BasicRxMessage); +uint8_t CAN_Sleep(CAN_TypeDef* CANx); +uint8_t CAN_WakeUp(CAN_TypeDef* CANx); +FlagStatus CAN_GetFlagStatus(CAN_TypeDef* CANx, uint32_t CAN_FLAG); +ITStatus CAN_GetITStatus(CAN_TypeDef* CANx, uint32_t CAN_IT); + + +/************************ Peli Work function *********************/ +void CAN_Peli_SleepMode_Cmd(FunctionalState NewState); +void CAN_Peli_Init(CAN_Peli_InitTypeDef* CAN_InitStruct); +void CAN_Peli_StructInit(CAN_Peli_InitTypeDef* CAN_Peli_InitStruct); +void CAN_Peli_FilterInit(CAN_Peli_FilterInitTypeDef* CAN_Peli_FilterInitStruct); +void CAN_Peli_FilterStructInit(CAN_Peli_FilterInitTypeDef* CAN_Peli_FilterInitStruct); +void CAN_Peli_Transmit(CanPeliTxMsg* PeliTxMessage); +void CAN_Peli_TransmitRepeat(CanPeliTxMsg* PeliTxMessage); +void CAN_Peli_Receive(CanPeliRxMsg* PeliRxMessage); +uint32_t CAN_Peli_GetRxFIFOInfo(void); +uint8_t CAN_Peli_GetLastErrorCode(void); +uint8_t CAN_Peli_GetReceiveErrorCounter(void); +uint8_t CAN_Peli_GetLSBTransmitErrorCounter(void); +void CAN_Peli_ITConfig(uint32_t CAN_IT, FunctionalState NewState); +ITStatus CAN_Peli_GetITStatus(uint32_t CAN_IT); +void CAN_AutoCfg_BaudParam(CAN_Peli_InitTypeDef *CAN_Peli_InitStruct, unsigned int SrcClk, unsigned int baud ); +#endif /* __HAL_CAN_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ + diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_conf.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_conf.h new file mode 100644 index 000000000..c3dad2ab0 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_conf.h @@ -0,0 +1,48 @@ +/** +****************************************************************************** +* @file HAL_conf.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains Header file for generic microcontroller. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ +#ifndef __HAL_CONF_H__ +#define __HAL_CONF_H__ + +/*´Ë´¦¿ÉÌí¼Ó»òɾ³ýÃâÉè*/ +#include "HAL_device.h" + + +#include "HAL_adc.h" +#include "HAL_bkp.h" +#include "HAL_can.h" +#include "HAL_crc.h" +#include "HAL_dma.h" +#include "HAL_exti.h" +#include "HAL_flash.h" +#include "HAL_gpio.h" +#include "HAL_i2c.h" +#include "HAL_iwdg.h" +#include "HAL_pwr.h" +#include "HAL_rcc.h" +#include "HAL_rtc.h" +#include "HAL_spi.h" +#include "HAL_tim.h" +#include "HAL_uart.h" +#include "HAL_wwdg.h" +#include "HAL_misc.h" + +#endif /* __HAL_CONF_H__ */ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_crc.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_crc.h new file mode 100644 index 000000000..cf4c3f1de --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_crc.h @@ -0,0 +1,85 @@ +/** +****************************************************************************** +* @file HAL_crc.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the CRC firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_CRC_H +#define __HAL_CRC_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup CRC +* @{ +*/ + +/** @defgroup CRC_Exported_Types +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup CRC_Exported_Constants +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup CRC_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup CRC_Exported_Functions +* @{ +*/ + +void CRC_ResetDR(void); +uint32_t CRC_CalcCRC(uint32_t Data); +uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength); +uint32_t CRC_GetCRC(void); +void CRC_SetIDRegister(uint8_t IDValue); +uint8_t CRC_GetIDRegister(void); + +#endif /* __HAL_CRC_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_dma.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_dma.h new file mode 100644 index 000000000..1ade62a3a --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_dma.h @@ -0,0 +1,354 @@ +/** +****************************************************************************** +* @file HAL_dma.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the DMA firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_DMA_H +#define __HAL_DMA_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup DMA +* @{ +*/ + +/** @defgroup DMA_Exported_Types +* @{ +*/ + +/** +* @brief DMA Init structure definition +*/ + +typedef struct +{ + uint32_t DMA_PeripheralBaseAddr; + uint32_t DMA_MemoryBaseAddr; + uint32_t DMA_DIR; + uint32_t DMA_BufferSize; + uint32_t DMA_PeripheralInc; + uint32_t DMA_MemoryInc; + uint32_t DMA_PeripheralDataSize; + uint32_t DMA_MemoryDataSize; + uint32_t DMA_Mode; + uint32_t DMA_Priority; + uint32_t DMA_M2M; +} DMA_InitTypeDef; + +/** +* @} +*/ + +/** @defgroup DMA_Exported_Constants +* @{ +*/ + +#define IS_DMA_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == DMA1_Channel1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == DMA1_Channel2_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == DMA1_Channel3_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == DMA1_Channel4_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == DMA1_Channel5_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == DMA1_Channel6_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == DMA1_Channel7_BASE)) + + +/** @defgroup DMA_data_transfer_direction +* @{ +*/ + +#define DMA_DIR_PeripheralDST ((uint32_t)0x00000010) //mtop +#define DMA_DIR_PeripheralSRC ((uint32_t)0x00000000) //ptom +#define IS_DMA_DIR(DIR) (((DIR) == DMA_DIR_PeripheralDST) || \ + ((DIR) == DMA_DIR_PeripheralSRC)) +/** +* @} +*/ + +/** @defgroup DMA_peripheral_incremented_mode +* @{ +*/ + +#define DMA_PeripheralInc_Enable ((uint32_t)0x00000040) +#define DMA_PeripheralInc_Disable ((uint32_t)0x00000000) +#define IS_DMA_PERIPHERAL_INC_STATE(STATE) (((STATE) == DMA_PeripheralInc_Enable) || \ + ((STATE) == DMA_PeripheralInc_Disable)) +/** +* @} +*/ + +/** @defgroup DMA_memory_incremented_mode +* @{ +*/ + +#define DMA_MemoryInc_Enable ((uint32_t)0x00000080) +#define DMA_MemoryInc_Disable ((uint32_t)0x00000000) +#define IS_DMA_MEMORY_INC_STATE(STATE) (((STATE) == DMA_MemoryInc_Enable) || \ + ((STATE) == DMA_MemoryInc_Disable)) +/** +* @} +*/ + +/** @defgroup DMA_peripheral_data_size +* @{ +*/ + +#define DMA_PeripheralDataSize_Byte ((uint32_t)0x00000000) +#define DMA_PeripheralDataSize_HalfWord ((uint32_t)0x00000100) +#define DMA_PeripheralDataSize_Word ((uint32_t)0x00000200) +#define IS_DMA_PERIPHERAL_DATA_SIZE(SIZE) (((SIZE) == DMA_PeripheralDataSize_Byte) || \ + ((SIZE) == DMA_PeripheralDataSize_HalfWord) || \ + ((SIZE) == DMA_PeripheralDataSize_Word)) +/** +* @} +*/ + +/** @defgroup DMA_memory_data_size +* @{ +*/ + +#define DMA_MemoryDataSize_Byte ((uint32_t)0x00000000) +#define DMA_MemoryDataSize_HalfWord ((uint32_t)0x00000400) +#define DMA_MemoryDataSize_Word ((uint32_t)0x00000800) +#define IS_DMA_MEMORY_DATA_SIZE(SIZE) (((SIZE) == DMA_MemoryDataSize_Byte) || \ + ((SIZE) == DMA_MemoryDataSize_HalfWord) || \ + ((SIZE) == DMA_MemoryDataSize_Word)) +/** +* @} +*/ + +/** @defgroup DMA_circular_normal_mode +* @{ +*/ + +#define DMA_Mode_Circular ((uint32_t)0x00000020) +#define DMA_Mode_Normal ((uint32_t)0x00000000) +#define IS_DMA_MODE(MODE) (((MODE) == DMA_Mode_Circular) || ((MODE) == DMA_Mode_Normal)) +/** +* @} +*/ + +/** @defgroup DMA_priority_level +* @{ +*/ + +#define DMA_Priority_VeryHigh ((uint32_t)0x00003000) +#define DMA_Priority_High ((uint32_t)0x00002000) +#define DMA_Priority_Medium ((uint32_t)0x00001000) +#define DMA_Priority_Low ((uint32_t)0x00000000) +#define IS_DMA_PRIORITY(PRIORITY) (((PRIORITY) == DMA_Priority_VeryHigh) || \ + ((PRIORITY) == DMA_Priority_High) || \ + ((PRIORITY) == DMA_Priority_Medium) || \ + ((PRIORITY) == DMA_Priority_Low)) +/** +* @} +*/ + +/** @defgroup DMA_memory_to_memory +* @{ +*/ + +#define DMA_M2M_Enable ((uint32_t)0x00004000) +#define DMA_M2M_Disable ((uint32_t)0x00000000) +#define IS_DMA_M2M_STATE(STATE) (((STATE) == DMA_M2M_Enable) || ((STATE) == DMA_M2M_Disable)) + +/** +* @} +*/ + +/** @defgroup DMA_interrupts_definition +* @{ +*/ + +#define DMA_IT_TC ((uint32_t)0x00000002) +#define DMA_IT_HT ((uint32_t)0x00000004) +#define DMA_IT_TE ((uint32_t)0x00000008) +#define IS_DMA_CONFIG_IT(IT) ((((IT) & 0xFFFFFFF1) == 0x00) && ((IT) != 0x00)) + +/** +* @brief For DMA1 +*/ + +#define DMA1_IT_GL1 ((uint32_t)0x00000001) +#define DMA1_IT_TC1 ((uint32_t)0x00000002) +#define DMA1_IT_HT1 ((uint32_t)0x00000004) +#define DMA1_IT_TE1 ((uint32_t)0x00000008) +#define DMA1_IT_GL2 ((uint32_t)0x00000010) +#define DMA1_IT_TC2 ((uint32_t)0x00000020) +#define DMA1_IT_HT2 ((uint32_t)0x00000040) +#define DMA1_IT_TE2 ((uint32_t)0x00000080) +#define DMA1_IT_GL3 ((uint32_t)0x00000100) +#define DMA1_IT_TC3 ((uint32_t)0x00000200) +#define DMA1_IT_HT3 ((uint32_t)0x00000400) +#define DMA1_IT_TE3 ((uint32_t)0x00000800) +#define DMA1_IT_GL4 ((uint32_t)0x00001000) +#define DMA1_IT_TC4 ((uint32_t)0x00002000) +#define DMA1_IT_HT4 ((uint32_t)0x00004000) +#define DMA1_IT_TE4 ((uint32_t)0x00008000) +#define DMA1_IT_GL5 ((uint32_t)0x00010000) +#define DMA1_IT_TC5 ((uint32_t)0x00020000) +#define DMA1_IT_HT5 ((uint32_t)0x00040000) +#define DMA1_IT_TE5 ((uint32_t)0x00080000) +#define DMA1_IT_GL6 ((uint32_t)0x00100000) +#define DMA1_IT_TC6 ((uint32_t)0x00200000) +#define DMA1_IT_HT6 ((uint32_t)0x00400000) +#define DMA1_IT_TE6 ((uint32_t)0x00800000) +#define DMA1_IT_GL7 ((uint32_t)0x01000000) +#define DMA1_IT_TC7 ((uint32_t)0x02000000) +#define DMA1_IT_HT7 ((uint32_t)0x04000000) +#define DMA1_IT_TE7 ((uint32_t)0x08000000) + + +#define IS_DMA_CLEAR_IT(IT) (((((IT) & 0xF0000000) == 0x00) || (((IT) & 0xEFF00000) == 0x00)) && ((IT) != 0x00)) + +#define IS_DMA_GET_IT(IT) (((IT) == DMA1_IT_GL1) || ((IT) == DMA1_IT_TC1) || \ + ((IT) == DMA1_IT_HT1) || ((IT) == DMA1_IT_TE1) || \ + ((IT) == DMA1_IT_GL2) || ((IT) == DMA1_IT_TC2) || \ + ((IT) == DMA1_IT_HT2) || ((IT) == DMA1_IT_TE2) || \ + ((IT) == DMA1_IT_GL3) || ((IT) == DMA1_IT_TC3) || \ + ((IT) == DMA1_IT_HT3) || ((IT) == DMA1_IT_TE3) || \ + ((IT) == DMA1_IT_GL4) || ((IT) == DMA1_IT_TC4) || \ + ((IT) == DMA1_IT_HT4) || ((IT) == DMA1_IT_TE4) || \ + ((IT) == DMA1_IT_GL5) || ((IT) == DMA1_IT_TC5) || \ + ((IT) == DMA1_IT_HT5) || ((IT) == DMA1_IT_TE5) || \ + ((IT) == DMA1_IT_GL6) || ((IT) == DMA1_IT_TC6) || \ + ((IT) == DMA1_IT_HT6) || ((IT) == DMA1_IT_TE6) || \ + ((IT) == DMA1_IT_GL7) || ((IT) == DMA1_IT_TC7) || \ + ((IT) == DMA1_IT_HT7) || ((IT) == DMA1_IT_TE7) || \ + +/** +* @} +*/ + +/** @defgroup DMA_flags_definition +* @{ +*/ + +/** +* @brief For DMA1 +*/ + +#define DMA1_FLAG_GL1 ((uint32_t)0x00000001) +#define DMA1_FLAG_TC1 ((uint32_t)0x00000002) +#define DMA1_FLAG_HT1 ((uint32_t)0x00000004) +#define DMA1_FLAG_TE1 ((uint32_t)0x00000008) +#define DMA1_FLAG_GL2 ((uint32_t)0x00000010) +#define DMA1_FLAG_TC2 ((uint32_t)0x00000020) +#define DMA1_FLAG_HT2 ((uint32_t)0x00000040) +#define DMA1_FLAG_TE2 ((uint32_t)0x00000080) +#define DMA1_FLAG_GL3 ((uint32_t)0x00000100) +#define DMA1_FLAG_TC3 ((uint32_t)0x00000200) +#define DMA1_FLAG_HT3 ((uint32_t)0x00000400) +#define DMA1_FLAG_TE3 ((uint32_t)0x00000800) +#define DMA1_FLAG_GL4 ((uint32_t)0x00001000) +#define DMA1_FLAG_TC4 ((uint32_t)0x00002000) +#define DMA1_FLAG_HT4 ((uint32_t)0x00004000) +#define DMA1_FLAG_TE4 ((uint32_t)0x00008000) +#define DMA1_FLAG_GL5 ((uint32_t)0x00010000) +#define DMA1_FLAG_TC5 ((uint32_t)0x00020000) +#define DMA1_FLAG_HT5 ((uint32_t)0x00040000) +#define DMA1_FLAG_TE5 ((uint32_t)0x00080000) +#define DMA1_FLAG_GL6 ((uint32_t)0x00100000) +#define DMA1_FLAG_TC6 ((uint32_t)0x00200000) +#define DMA1_FLAG_HT6 ((uint32_t)0x00400000) +#define DMA1_FLAG_TE6 ((uint32_t)0x00800000) +#define DMA1_FLAG_GL7 ((uint32_t)0x01000000) +#define DMA1_FLAG_TC7 ((uint32_t)0x02000000) +#define DMA1_FLAG_HT7 ((uint32_t)0x04000000) +#define DMA1_FLAG_TE7 ((uint32_t)0x08000000) + + + +#define IS_DMA_CLEAR_FLAG(FLAG) (((((FLAG) & 0xF0000000) == 0x00) || (((FLAG) & 0xEFF00000) == 0x00)) && ((FLAG) != 0x00)) + +#define IS_DMA_GET_FLAG(FLAG) (((FLAG) == DMA1_FLAG_GL1) || ((FLAG) == DMA1_FLAG_TC1) || \ + ((FLAG) == DMA1_FLAG_HT1) || ((FLAG) == DMA1_FLAG_TE1) || \ + ((FLAG) == DMA1_FLAG_GL2) || ((FLAG) == DMA1_FLAG_TC2) || \ + ((FLAG) == DMA1_FLAG_HT2) || ((FLAG) == DMA1_FLAG_TE2) || \ + ((FLAG) == DMA1_FLAG_GL3) || ((FLAG) == DMA1_FLAG_TC3) || \ + ((FLAG) == DMA1_FLAG_HT3) || ((FLAG) == DMA1_FLAG_TE3) || \ + ((FLAG) == DMA1_FLAG_GL4) || ((FLAG) == DMA1_FLAG_TC4) || \ + ((FLAG) == DMA1_FLAG_HT4) || ((FLAG) == DMA1_FLAG_TE4) || \ + ((FLAG) == DMA1_FLAG_GL5) || ((FLAG) == DMA1_FLAG_TC5) || \ + ((FLAG) == DMA1_FLAG_HT5) || ((FLAG) == DMA1_FLAG_TE5) || \ + ((FLAG) == DMA1_FLAG_GL6) || ((FLAG) == DMA1_FLAG_TC6) || \ + ((FLAG) == DMA1_FLAG_HT6) || ((FLAG) == DMA1_FLAG_TE6) || \ + ((FLAG) == DMA1_FLAG_GL7) || ((FLAG) == DMA1_FLAG_TC7) || \ + ((FLAG) == DMA1_FLAG_HT7) || ((FLAG) == DMA1_FLAG_TE7)) + +/** +* @} +*/ + +/** @defgroup DMA_Buffer_Size +* @{ +*/ + +#define IS_DMA_BUFFER_SIZE(SIZE) (((SIZE) >= 0x1) && ((SIZE) < 0x10000)) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup DMA_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup DMA_Exported_Functions +* @{ +*/ + +void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx); +void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct); +void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct); +void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState); +void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState); +uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx); +FlagStatus DMA_GetFlagStatus(uint32_t DMA_FLAG); +void DMA_ClearFlag(uint32_t DMA_FLAG); +ITStatus DMA_GetITStatus(uint32_t DMA_IT); +void DMA_ClearITPendingBit(uint32_t DMA_IT); + +#endif /*__HAL_DMA_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*------------------ (C) COPYRIGHT 2019 MindMotion ------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_exti.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_exti.h new file mode 100644 index 000000000..a41f0c7eb --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_exti.h @@ -0,0 +1,170 @@ +/** +****************************************************************************** +* @file HAL_exti.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the EXTI +* firmware library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_EXTI_H +#define __HAL_EXTI_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup EXTI +* @{ +*/ + +/** @defgroup EXTI_Exported_Types +* @{ +*/ + +/** +* @brief EXTI mode enumeration +*/ + +typedef enum +{ + EXTI_Mode_Interrupt = 0x00, + EXTI_Mode_Event = 0x04 +} EXTIMode_TypeDef; + +#define IS_EXTI_MODE(MODE) (((MODE) == EXTI_Mode_Interrupt) || ((MODE) == EXTI_Mode_Event)) + +/** +* @brief EXTI Trigger enumeration +*/ + +typedef enum +{ + EXTI_Trigger_Rising = 0x08, + EXTI_Trigger_Falling = 0x0C, + EXTI_Trigger_Rising_Falling = 0x10 +} EXTITrigger_TypeDef; + +#define IS_EXTI_TRIGGER(TRIGGER) (((TRIGGER) == EXTI_Trigger_Rising) || \ + ((TRIGGER) == EXTI_Trigger_Falling) || \ + ((TRIGGER) == EXTI_Trigger_Rising_Falling)) +/** +* @brief EXTI Init Structure definition +*/ + +typedef struct +{ + uint32_t EXTI_Line; + EXTIMode_TypeDef EXTI_Mode; + EXTITrigger_TypeDef EXTI_Trigger; + FunctionalState EXTI_LineCmd; +} EXTI_InitTypeDef; + +/** +* @} +*/ + +/** @defgroup EXTI_Exported_Constants +* @{ +*/ + +/** @defgroup EXTI_Lines +* @{ +*/ + +#define EXTI_Line0 ((uint32_t)0x00001) /* External interrupt line 0 */ +#define EXTI_Line1 ((uint32_t)0x00002) /* External interrupt line 1 */ +#define EXTI_Line2 ((uint32_t)0x00004) /* External interrupt line 2 */ +#define EXTI_Line3 ((uint32_t)0x00008) /* External interrupt line 3 */ +#define EXTI_Line4 ((uint32_t)0x00010) /* External interrupt line 4 */ +#define EXTI_Line5 ((uint32_t)0x00020) /* External interrupt line 5 */ +#define EXTI_Line6 ((uint32_t)0x00040) /* External interrupt line 6 */ +#define EXTI_Line7 ((uint32_t)0x00080) /* External interrupt line 7 */ +#define EXTI_Line8 ((uint32_t)0x00100) /* External interrupt line 8 */ +#define EXTI_Line9 ((uint32_t)0x00200) /* External interrupt line 9 */ +#define EXTI_Line10 ((uint32_t)0x00400) /* External interrupt line 10 */ +#define EXTI_Line11 ((uint32_t)0x00800) /* External interrupt line 11 */ +#define EXTI_Line12 ((uint32_t)0x01000) /* External interrupt line 12 */ +#define EXTI_Line13 ((uint32_t)0x02000) /* External interrupt line 13 */ +#define EXTI_Line14 ((uint32_t)0x04000) /* External interrupt line 14 */ +#define EXTI_Line15 ((uint32_t)0x08000) /* External interrupt line 15 */ +#define EXTI_Line16 ((uint32_t)0x10000) /* External interrupt line 16 +Connected to the PVD Output */ +#define EXTI_Line17 ((uint32_t)0x20000) /* External interrupt line 17 +Connected to the RTC Alarm event */ +#define EXTI_Line18 ((uint32_t)0x40000) /* External interrupt line 18 +Connected to the USB Wakeup from +suspend event */ + +#define IS_EXTI_LINE(LINE) ((((LINE) & (uint32_t)0xFFF80000) == 0x00) && ((LINE) != (uint16_t)0x00)) + +#define IS_GET_EXTI_LINE(LINE) (((LINE) == EXTI_Line0) || ((LINE) == EXTI_Line1) || \ + ((LINE) == EXTI_Line2) || ((LINE) == EXTI_Line3) || \ + ((LINE) == EXTI_Line4) || ((LINE) == EXTI_Line5) || \ + ((LINE) == EXTI_Line6) || ((LINE) == EXTI_Line7) || \ + ((LINE) == EXTI_Line8) || ((LINE) == EXTI_Line9) || \ + ((LINE) == EXTI_Line10) || ((LINE) == EXTI_Line11) || \ + ((LINE) == EXTI_Line12) || ((LINE) == EXTI_Line13) || \ + ((LINE) == EXTI_Line14) || ((LINE) == EXTI_Line15) || \ + ((LINE) == EXTI_Line16) || ((LINE) == EXTI_Line17) || \ + ((LINE) == EXTI_Line18)) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup EXTI_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup EXTI_Exported_Functions +* @{ +*/ + +void EXTI_DeInit(void); +void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); +void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct); +void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line); +FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line); +void EXTI_ClearFlag(uint32_t EXTI_Line); +ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); +void EXTI_ClearITPendingBit(uint32_t EXTI_Line); + +#endif /* __HAL_EXTI_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_flash.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_flash.h new file mode 100644 index 000000000..41beb6e83 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_flash.h @@ -0,0 +1,307 @@ +/** +****************************************************************************** +* @file HAL_flash.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the FLASH +* firmware library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_FLASH_H +#define __HAL_FLASH_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup FLASH +* @{ +*/ + +/** @defgroup FLASH_Exported_Types +* @{ +*/ + +/** +* @brief FLASH Status +*/ + +typedef enum +{ + FLASH_BUSY = 1, + FLASH_ERROR_PG, + FLASH_ERROR_WRP, + FLASH_COMPLETE, + FLASH_TIMEOUT +} FLASH_Status; + +/** +* @} +*/ + +/** @defgroup FLASH_Exported_Constants +* @{ +*/ + +/** @defgroup Flash_Latency +* @{ +*/ + +#define FLASH_Latency_0 ((uint32_t)0x00000000) /* FLASH Zero Latency cycle */ +#define FLASH_Latency_1 ((uint32_t)0x00000001) /* FLASH One Latency cycle */ +#define FLASH_Latency_2 ((uint32_t)0x00000002) /* FLASH Two Latency cycles */ +#define FLASH_Latency_3 ((uint32_t)0x00000003) /* FLASH Three Latency cycles */ +#define IS_FLASH_LATENCY(LATENCY) (((LATENCY) == FLASH_Latency_0) || \ + ((LATENCY) == FLASH_Latency_1) || \ + ((LATENCY) == FLASH_Latency_2) || \ + ((LATENCY) == FLASH_Latency_3)) +/** +* @} +*/ + +/** @defgroup Half_Cycle_Enable_Disable +* @{ +*/ + +#define FLASH_HalfCycleAccess_Enable ((uint32_t)0x00000008) /* FLASH Half Cycle Enable */ +#define FLASH_HalfCycleAccess_Disable ((uint32_t)0x00000000) /* FLASH Half Cycle Disable */ +#define IS_FLASH_HALFCYCLEACCESS_STATE(STATE) (((STATE) == FLASH_HalfCycleAccess_Enable) || \ + ((STATE) == FLASH_HalfCycleAccess_Disable)) +/** +* @} +*/ + +/** @defgroup Prefetch_Buffer_Enable_Disable +* @{ +*/ + +#define FLASH_PrefetchBuffer_Enable ((uint32_t)0x00000010) /* FLASH Prefetch Buffer Enable */ +#define FLASH_PrefetchBuffer_Disable ((uint32_t)0x00000000) /* FLASH Prefetch Buffer Disable */ +#define IS_FLASH_PREFETCHBUFFER_STATE(STATE) (((STATE) == FLASH_PrefetchBuffer_Enable) || \ + ((STATE) == FLASH_PrefetchBuffer_Disable)) +/** +* @} +*/ + +/** @defgroup Option_Bytes_Write_Protection +* @{ +*/ + +/* Values to be used with microcontroller Medium-density devices: FLASH memory density +ranges between 32 and 128 Kbytes with page size equal to 1 Kbytes */ +#define FLASH_WRProt_Pages0to3 ((uint32_t)0x00000001) /* Write protection of page 0 to 3 */ +#define FLASH_WRProt_Pages4to7 ((uint32_t)0x00000002) /* Write protection of page 4 to 7 */ +#define FLASH_WRProt_Pages8to11 ((uint32_t)0x00000004) /* Write protection of page 8 to 11 */ +#define FLASH_WRProt_Pages12to15 ((uint32_t)0x00000008) /* Write protection of page 12 to 15 */ +#define FLASH_WRProt_Pages16to19 ((uint32_t)0x00000010) /* Write protection of page 16 to 19 */ +#define FLASH_WRProt_Pages20to23 ((uint32_t)0x00000020) /* Write protection of page 20 to 23 */ +#define FLASH_WRProt_Pages24to27 ((uint32_t)0x00000040) /* Write protection of page 24 to 27 */ +#define FLASH_WRProt_Pages28to31 ((uint32_t)0x00000080) /* Write protection of page 28 to 31 */ +#define FLASH_WRProt_Pages32to35 ((uint32_t)0x00000100) /* Write protection of page 32 to 35 */ +#define FLASH_WRProt_Pages36to39 ((uint32_t)0x00000200) /* Write protection of page 36 to 39 */ +#define FLASH_WRProt_Pages40to43 ((uint32_t)0x00000400) /* Write protection of page 40 to 43 */ +#define FLASH_WRProt_Pages44to47 ((uint32_t)0x00000800) /* Write protection of page 44 to 47 */ +#define FLASH_WRProt_Pages48to51 ((uint32_t)0x00001000) /* Write protection of page 48 to 51 */ +#define FLASH_WRProt_Pages52to55 ((uint32_t)0x00002000) /* Write protection of page 52 to 55 */ +#define FLASH_WRProt_Pages56to59 ((uint32_t)0x00004000) /* Write protection of page 56 to 59 */ +#define FLASH_WRProt_Pages60to63 ((uint32_t)0x00008000) /* Write protection of page 60 to 63 */ +#define FLASH_WRProt_Pages64to67 ((uint32_t)0x00010000) /* Write protection of page 64 to 67 */ +#define FLASH_WRProt_Pages68to71 ((uint32_t)0x00020000) /* Write protection of page 68 to 71 */ +#define FLASH_WRProt_Pages72to75 ((uint32_t)0x00040000) /* Write protection of page 72 to 75 */ +#define FLASH_WRProt_Pages76to79 ((uint32_t)0x00080000) /* Write protection of page 76 to 79 */ +#define FLASH_WRProt_Pages80to83 ((uint32_t)0x00100000) /* Write protection of page 80 to 83 */ +#define FLASH_WRProt_Pages84to87 ((uint32_t)0x00200000) /* Write protection of page 84 to 87 */ +#define FLASH_WRProt_Pages88to91 ((uint32_t)0x00400000) /* Write protection of page 88 to 91 */ +#define FLASH_WRProt_Pages92to95 ((uint32_t)0x00800000) /* Write protection of page 92 to 95 */ +#define FLASH_WRProt_Pages96to99 ((uint32_t)0x01000000) /* Write protection of page 96 to 99 */ +#define FLASH_WRProt_Pages100to103 ((uint32_t)0x02000000) /* Write protection of page 100 to 103 */ +#define FLASH_WRProt_Pages104to107 ((uint32_t)0x04000000) /* Write protection of page 104 to 107 */ +#define FLASH_WRProt_Pages108to111 ((uint32_t)0x08000000) /* Write protection of page 108 to 111 */ +#define FLASH_WRProt_Pages112to115 ((uint32_t)0x10000000) /* Write protection of page 112 to 115 */ +#define FLASH_WRProt_Pages116to119 ((uint32_t)0x20000000) /* Write protection of page 115 to 119 */ +#define FLASH_WRProt_Pages120to123 ((uint32_t)0x40000000) /* Write protection of page 120 to 123 */ +#define FLASH_WRProt_Pages124to127 ((uint32_t)0x80000000) /* Write protection of page 124 to 127 */ + +/* Values to be used with microcontroller High-density devices: FLASH memory density +ranges between 256 and 512 Kbytes with page size equal to 2 Kbytes */ +#define FLASH_WRProt_Pages0to1 ((uint32_t)0x00000001) /* Write protection of page 0 to 1 */ +#define FLASH_WRProt_Pages2to3 ((uint32_t)0x00000002) /* Write protection of page 2 to 3 */ +#define FLASH_WRProt_Pages4to5 ((uint32_t)0x00000004) /* Write protection of page 4 to 5 */ +#define FLASH_WRProt_Pages6to7 ((uint32_t)0x00000008) /* Write protection of page 6 to 7 */ +#define FLASH_WRProt_Pages8to9 ((uint32_t)0x00000010) /* Write protection of page 8 to 9 */ +#define FLASH_WRProt_Pages10to11 ((uint32_t)0x00000020) /* Write protection of page 10 to 11 */ +#define FLASH_WRProt_Pages12to13 ((uint32_t)0x00000040) /* Write protection of page 12 to 13 */ +#define FLASH_WRProt_Pages14to15 ((uint32_t)0x00000080) /* Write protection of page 14 to 15 */ +#define FLASH_WRProt_Pages16to17 ((uint32_t)0x00000100) /* Write protection of page 16 to 17 */ +#define FLASH_WRProt_Pages18to19 ((uint32_t)0x00000200) /* Write protection of page 18 to 19 */ +#define FLASH_WRProt_Pages20to21 ((uint32_t)0x00000400) /* Write protection of page 20 to 21 */ +#define FLASH_WRProt_Pages22to23 ((uint32_t)0x00000800) /* Write protection of page 22 to 23 */ +#define FLASH_WRProt_Pages24to25 ((uint32_t)0x00001000) /* Write protection of page 24 to 25 */ +#define FLASH_WRProt_Pages26to27 ((uint32_t)0x00002000) /* Write protection of page 26 to 27 */ +#define FLASH_WRProt_Pages28to29 ((uint32_t)0x00004000) /* Write protection of page 28 to 29 */ +#define FLASH_WRProt_Pages30to31 ((uint32_t)0x00008000) /* Write protection of page 30 to 31 */ +#define FLASH_WRProt_Pages32to33 ((uint32_t)0x00010000) /* Write protection of page 32 to 33 */ +#define FLASH_WRProt_Pages34to35 ((uint32_t)0x00020000) /* Write protection of page 34 to 35 */ +#define FLASH_WRProt_Pages36to37 ((uint32_t)0x00040000) /* Write protection of page 36 to 37 */ +#define FLASH_WRProt_Pages38to39 ((uint32_t)0x00080000) /* Write protection of page 38 to 39 */ +#define FLASH_WRProt_Pages40to41 ((uint32_t)0x00100000) /* Write protection of page 40 to 41 */ +#define FLASH_WRProt_Pages42to43 ((uint32_t)0x00200000) /* Write protection of page 42 to 43 */ +#define FLASH_WRProt_Pages44to45 ((uint32_t)0x00400000) /* Write protection of page 44 to 45 */ +#define FLASH_WRProt_Pages46to47 ((uint32_t)0x00800000) /* Write protection of page 46 to 47 */ +#define FLASH_WRProt_Pages48to49 ((uint32_t)0x01000000) /* Write protection of page 48 to 49 */ +#define FLASH_WRProt_Pages50to51 ((uint32_t)0x02000000) /* Write protection of page 50 to 51 */ +#define FLASH_WRProt_Pages52to53 ((uint32_t)0x04000000) /* Write protection of page 52 to 53 */ +#define FLASH_WRProt_Pages54to55 ((uint32_t)0x08000000) /* Write protection of page 54 to 55 */ +#define FLASH_WRProt_Pages56to57 ((uint32_t)0x10000000) /* Write protection of page 56 to 57 */ +#define FLASH_WRProt_Pages58to59 ((uint32_t)0x20000000) /* Write protection of page 58 to 59 */ +#define FLASH_WRProt_Pages60to61 ((uint32_t)0x40000000) /* Write protection of page 60 to 61 */ +#define FLASH_WRProt_Pages62to255 ((uint32_t)0x80000000) /* Write protection of page 62 to 255 */ +#define FLASH_WRProt_AllPages ((uint32_t)0xFFFFFFFF) /* Write protection of all Pages */ + +#define IS_FLASH_WRPROT_PAGE(PAGE) (((PAGE) != 0x00000000)) + +#define IS_FLASH_ADDRESS(ADDRESS) (((ADDRESS) >= 0x08000000) && ((ADDRESS) < 0x0807FFFF)) + +#define IS_OB_DATA_ADDRESS(ADDRESS) (((ADDRESS) == 0x1FFFF804) || ((ADDRESS) == 0x1FFFF806)) + +/** +* @} +*/ + +/** @defgroup Option_Bytes_IWatchdog +* @{ +*/ + +#define OB_IWDG_SW ((uint16_t)0x0001) /* Software IWDG selected */ +#define OB_IWDG_HW ((uint16_t)0x0000) /* Hardware IWDG selected */ +#define IS_OB_IWDG_SOURCE(SOURCE) (((SOURCE) == OB_IWDG_SW) || ((SOURCE) == OB_IWDG_HW)) + +/** +* @} +*/ + +/** @defgroup Option_Bytes_nRST_STOP +* @{ +*/ + +#define OB_STOP_NoRST ((uint16_t)0x0002) /* No reset generated when entering in STOP */ +#define OB_STOP_RST ((uint16_t)0x0000) /* Reset generated when entering in STOP */ +#define IS_OB_STOP_SOURCE(SOURCE) (((SOURCE) == OB_STOP_NoRST) || ((SOURCE) == OB_STOP_RST)) + +/** +* @} +*/ + +/** @defgroup Option_Bytes_nRST_STDBY +* @{ +*/ + +#define OB_STDBY_NoRST ((uint16_t)0x0004) /* No reset generated when entering in STANDBY */ +#define OB_STDBY_RST ((uint16_t)0x0000) /* Reset generated when entering in STANDBY */ +#define IS_OB_STDBY_SOURCE(SOURCE) (((SOURCE) == OB_STDBY_NoRST) || ((SOURCE) == OB_STDBY_RST)) + +/** +* @} +*/ + +/** @defgroup FLASH_Interrupts +* @{ +*/ + +#define FLASH_IT_ERROR ((uint32_t)0x00000400) /* FPEC error interrupt source */ +#define FLASH_IT_EOP ((uint32_t)0x00001000) /* End of FLASH Operation Interrupt source */ +#define IS_FLASH_IT(IT) ((((IT) & (uint32_t)0xFFFFEBFF) == 0x00000000) && (((IT) != 0x00000000))) + +/** +* @} +*/ + +/** @defgroup FLASH_Flags +* @{ +*/ + +#define FLASH_FLAG_BSY ((uint32_t)0x00000001) /* FLASH Busy flag */ +#define FLASH_FLAG_EOP ((uint32_t)0x00000020) /* FLASH End of Operation flag */ +#define FLASH_FLAG_PGERR ((uint32_t)0x00000004) /* FLASH Program error flag */ +#define FLASH_FLAG_WRPRTERR ((uint32_t)0x00000010) /* FLASH Write protected error flag */ +#define FLASH_FLAG_OPTERR ((uint32_t)0x00000001) /* FLASH Option Byte error flag */ + +#define IS_FLASH_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFFCA) == 0x00000000) && ((FLAG) != 0x00000000)) +#define IS_FLASH_GET_FLAG(FLAG) (((FLAG) == FLASH_FLAG_BSY) || ((FLAG) == FLASH_FLAG_EOP) || \ + ((FLAG) == FLASH_FLAG_PGERR) || ((FLAG) == FLASH_FLAG_WRPRTERR) || \ + ((FLAG) == FLASH_FLAG_OPTERR)) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup FLASH_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup FLASH_Exported_Functions +* @{ +*/ + +void FLASH_SetLatency(uint32_t FLASH_Latency); +void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess); +void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer); +void FLASH_Unlock(void); +void FLASH_Lock(void); +FLASH_Status FLASH_ErasePage(uint32_t Page_Address); +FLASH_Status FLASH_EraseAllPages(void); +FLASH_Status FLASH_EraseOptionBytes(void); +FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data); +FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data); +FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data); +FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages); +FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState); +FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_STOP, uint16_t OB_STDBY); +uint32_t FLASH_GetUserOptionByte(void); +uint32_t FLASH_GetWriteProtectionOptionByte(void); +FlagStatus FLASH_GetReadOutProtectionStatus(void); +FlagStatus FLASH_GetPrefetchBufferStatus(void); +void FLASH_ITConfig(uint16_t FLASH_IT, FunctionalState NewState); +FlagStatus FLASH_GetFlagStatus(uint16_t FLASH_FLAG); +void FLASH_ClearFlag(uint16_t FLASH_FLAG); +FLASH_Status FLASH_GetStatus(void); +FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout); + +#endif /* __HAL_FLASH_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_gpio.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_gpio.h new file mode 100644 index 000000000..9fb49c48c --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_gpio.h @@ -0,0 +1,325 @@ +/** +****************************************************************************** +* @file HAL_gpio.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the GPIO +* firmware library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_GPIO_H +#define __HAL_GPIO_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup GPIO +* @{ +*/ + +/** @defgroup GPIO_Exported_Types +* @{ +*/ + +#define IS_GPIO_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == GPIOA_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == GPIOB_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == GPIOC_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == GPIOD_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == GPIOE_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == GPIOF_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == GPIOG_BASE)) + +/** +* @brief Output Maximum frequency selection +*/ + +typedef enum +{ + GPIO_Speed_10MHz = 1, + GPIO_Speed_2MHz, + GPIO_Speed_50MHz +} GPIOSpeed_TypeDef; +#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_Speed_10MHz) || ((SPEED) == GPIO_Speed_2MHz) || \ + ((SPEED) == GPIO_Speed_50MHz)) + +/** +* @brief Configuration Mode enumeration +*/ + +typedef enum +{ + GPIO_Mode_AIN = 0x0, //Ä£ÄâÊäÈë + GPIO_Mode_IN_FLOATING = 0x04, //¸¡¿ÕÊäÈë + GPIO_Mode_IPD = 0x28, //ÏÂÀ­ÊäÈë + GPIO_Mode_IPU = 0x48, //ÉÏÀ­ÊäÈë + GPIO_Mode_Out_OD = 0x14,//ͨÓÿªÂ©Êä³ö + GPIO_Mode_Out_PP = 0x10,//ͨÓÃÍÆÃâÊä³ö + GPIO_Mode_AF_OD = 0x1C, // ¸´ÓÿªÂ©Êä³ö + GPIO_Mode_AF_PP = 0x18 //¸´ÓÃÍÆÃâÊä³ö +} GPIOMode_TypeDef; + +#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_Mode_AIN) || ((MODE) == GPIO_Mode_IN_FLOATING) || \ + ((MODE) == GPIO_Mode_IPD) || ((MODE) == GPIO_Mode_IPU) || \ + ((MODE) == GPIO_Mode_Out_OD) || ((MODE) == GPIO_Mode_Out_PP) || \ + ((MODE) == GPIO_Mode_AF_OD) || ((MODE) == GPIO_Mode_AF_PP)) + +/** +* @brief GPIO Init structure definition +*/ + +typedef struct +{ + uint16_t GPIO_Pin; + GPIOSpeed_TypeDef GPIO_Speed; + GPIOMode_TypeDef GPIO_Mode; +} GPIO_InitTypeDef; + +/** +* @brief Bit_SET and Bit_RESET enumeration +*/ + +typedef enum +{ + Bit_RESET = 0, + Bit_SET +} BitAction; + +#define IS_GPIO_BIT_ACTION(ACTION) (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET)) + +/** +* @} +*/ + +/** @defgroup GPIO_Exported_Constants +* @{ +*/ + +/** @defgroup GPIO_pins_define +* @{ +*/ + +#define GPIO_Pin_0 ((uint16_t)0x0001) /* Pin 0 selected */ +#define GPIO_Pin_1 ((uint16_t)0x0002) /* Pin 1 selected */ +#define GPIO_Pin_2 ((uint16_t)0x0004) /* Pin 2 selected */ +#define GPIO_Pin_3 ((uint16_t)0x0008) /* Pin 3 selected */ +#define GPIO_Pin_4 ((uint16_t)0x0010) /* Pin 4 selected */ +#define GPIO_Pin_5 ((uint16_t)0x0020) /* Pin 5 selected */ +#define GPIO_Pin_6 ((uint16_t)0x0040) /* Pin 6 selected */ +#define GPIO_Pin_7 ((uint16_t)0x0080) /* Pin 7 selected */ +#define GPIO_Pin_8 ((uint16_t)0x0100) /* Pin 8 selected */ +#define GPIO_Pin_9 ((uint16_t)0x0200) /* Pin 9 selected */ +#define GPIO_Pin_10 ((uint16_t)0x0400) /* Pin 10 selected */ +#define GPIO_Pin_11 ((uint16_t)0x0800) /* Pin 11 selected */ +#define GPIO_Pin_12 ((uint16_t)0x1000) /* Pin 12 selected */ +#define GPIO_Pin_13 ((uint16_t)0x2000) /* Pin 13 selected */ +#define GPIO_Pin_14 ((uint16_t)0x4000) /* Pin 14 selected */ +#define GPIO_Pin_15 ((uint16_t)0x8000) /* Pin 15 selected */ +#define GPIO_Pin_All ((uint16_t)0xFFFF) /* All pins selected */ + +#define IS_GPIO_PIN(PIN) ((((PIN) & (uint16_t)0x00) == 0x00) && ((PIN) != (uint16_t)0x00)) + +#define IS_GET_GPIO_PIN(PIN) (((PIN) == GPIO_Pin_0) || \ + ((PIN) == GPIO_Pin_1) || \ + ((PIN) == GPIO_Pin_2) || \ + ((PIN) == GPIO_Pin_3) || \ + ((PIN) == GPIO_Pin_4) || \ + ((PIN) == GPIO_Pin_5) || \ + ((PIN) == GPIO_Pin_6) || \ + ((PIN) == GPIO_Pin_7) || \ + ((PIN) == GPIO_Pin_8) || \ + ((PIN) == GPIO_Pin_9) || \ + ((PIN) == GPIO_Pin_10) || \ + ((PIN) == GPIO_Pin_11) || \ + ((PIN) == GPIO_Pin_12) || \ + ((PIN) == GPIO_Pin_13) || \ + ((PIN) == GPIO_Pin_14) || \ + ((PIN) == GPIO_Pin_15)) + +/** +* @} +*/ + +/** @defgroup GPIO_Remap_define +* @{ +*/ + +#define GPIO_Remap_SPI1 ((uint32_t)0x00000001) /* SPI1 Alternate Function mapping */ +#define GPIO_Remap_I2C1 ((uint32_t)0x00000002) /* I2C1 Alternate Function mapping */ +#define GPIO_Remap_UART1 ((uint32_t)0x00000004) /* UART1 Alternate Function mapping */ +#define GPIO_Remap_UART2 ((uint32_t)0x00000008) /* UART2 Alternate Function mapping */ +#define GPIO_PartialRemap_UART3 ((uint32_t)0x00140010) /* UART3 Partial Alternate Function mapping */ +#define GPIO_FullRemap_UART3 ((uint32_t)0x00140030) /* UART3 Full Alternate Function mapping */ +#define GPIO_PartialRemap_TIM1 ((uint32_t)0x00160040) /* TIM1 Partial Alternate Function mapping */ +#define GPIO_FullRemap_TIM1 ((uint32_t)0x001600C0) /* TIM1 Full Alternate Function mapping */ +#define GPIO_PartialRemap1_TIM2 ((uint32_t)0x00180100) /* TIM2 Partial1 Alternate Function mapping */ +#define GPIO_PartialRemap2_TIM2 ((uint32_t)0x00180200) /* TIM2 Partial2 Alternate Function mapping */ +#define GPIO_FullRemap_TIM2 ((uint32_t)0x00180300) /* TIM2 Full Alternate Function mapping */ +#define GPIO_PartialRemap_TIM3 ((uint32_t)0x001A0800) /* TIM3 Partial Alternate Function mapping */ +#define GPIO_FullRemap_TIM3 ((uint32_t)0x001A0C00) /* TIM3 Full Alternate Function mapping */ +#define GPIO_Remap_TIM4 ((uint32_t)0x00001000) /* TIM4 Alternate Function mapping */ +#define GPIO_Remap1_CAN1 ((uint32_t)0x001D4000) /* CAN Alternate Function mapping */ +#define GPIO_Remap2_CAN1 ((uint32_t)0x001D0000) /* CAN Alternate Function mapping */ +#define GPIO_Remap_PD01 ((uint32_t)0x00008000) /* PD01 Alternate Function mapping */ +#define GPIO_Remap_TIM5CH4_LSI ((uint32_t)0x00200001) /* LSI connected to TIM5 Channel4 input capture for calibration */ +#define GPIO_Remap_ADC1_ETRGINJ ((uint32_t)0x00200002) /* ADC1 External Trigger Injected Conversion remapping */ +#define GPIO_Remap_ADC1_ETRGREG ((uint32_t)0x00200004) /* ADC1 External Trigger Regular Conversion remapping */ +#define GPIO_Remap_ADC2_ETRGINJ ((uint32_t)0x00200008) /* ADC2 External Trigger Injected Conversion remapping */ +#define GPIO_Remap_ADC2_ETRGREG ((uint32_t)0x00200010) /* ADC2 External Trigger Regular Conversion remapping */ +#define GPIO_Remap_SWJ_NoJTRST ((uint32_t)0x00300100) /* Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */ +#define GPIO_Remap_SWJ_JTAGDisable ((uint32_t)0x00300200) /* JTAG-DP Disabled and SW-DP Enabled */ +#define GPIO_Remap_SWJ_Disable ((uint32_t)0x00300400) /* Full SWJ Disabled (JTAG-DP + SW-DP) */ + +#define IS_GPIO_REMAP(REMAP) (((REMAP) == GPIO_Remap_SPI1) || ((REMAP) == GPIO_Remap_I2C1) || \ + ((REMAP) == GPIO_Remap_UART1) || ((REMAP) == GPIO_Remap_UART2) || \ + ((REMAP) == GPIO_PartialRemap_UART3) || ((REMAP) == GPIO_FullRemap_UART3) || \ + ((REMAP) == GPIO_PartialRemap_TIM1) || ((REMAP) == GPIO_FullRemap_TIM1) || \ + ((REMAP) == GPIO_PartialRemap1_TIM2) || ((REMAP) == GPIO_PartialRemap2_TIM2) || \ + ((REMAP) == GPIO_FullRemap_TIM2) || ((REMAP) == GPIO_PartialRemap_TIM3) || \ + ((REMAP) == GPIO_FullRemap_TIM3) || ((REMAP) == GPIO_Remap_TIM4) || \ + ((REMAP) == GPIO_Remap1_CAN1) || ((REMAP) == GPIO_Remap2_CAN1) || \ + ((REMAP) == GPIO_Remap_PD01) || ((REMAP) == GPIO_Remap_TIM5CH4_LSI) || \ + ((REMAP) == GPIO_Remap_ADC1_ETRGINJ) ||((REMAP) == GPIO_Remap_ADC1_ETRGREG) || \ + ((REMAP) == GPIO_Remap_ADC2_ETRGINJ) ||((REMAP) == GPIO_Remap_ADC2_ETRGREG) || \ + ((REMAP) == GPIO_Remap_SWJ_NoJTRST) || ((REMAP) == GPIO_Remap_SWJ_JTAGDisable)|| \ + ((REMAP) == GPIO_Remap_SWJ_Disable)) + +/** +* @} +*/ + +/** @defgroup GPIO_Port_Sources +* @{ +*/ + +#define GPIO_PortSourceGPIOA ((uint8_t)0x00) +#define GPIO_PortSourceGPIOB ((uint8_t)0x01) +#define GPIO_PortSourceGPIOC ((uint8_t)0x02) +#define GPIO_PortSourceGPIOD ((uint8_t)0x03) +#define GPIO_PortSourceGPIOE ((uint8_t)0x04) +#define GPIO_PortSourceGPIOF ((uint8_t)0x05) +#define GPIO_PortSourceGPIOG ((uint8_t)0x06) +#define IS_GPIO_EVENTOUT_PORT_SOURCE(PORTSOURCE) (((PORTSOURCE) == GPIO_PortSourceGPIOA) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOB) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOC) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOD) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOE)) + +#define IS_GPIO_EXTI_PORT_SOURCE(PORTSOURCE) (((PORTSOURCE) == GPIO_PortSourceGPIOA) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOB) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOC) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOD) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOE) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOF) || \ + ((PORTSOURCE) == GPIO_PortSourceGPIOG)) + +/** +* @} +*/ + +/** @defgroup GPIO_Pin_sources +* @{ +*/ + +#define GPIO_PinSource0 ((uint8_t)0x00) +#define GPIO_PinSource1 ((uint8_t)0x01) +#define GPIO_PinSource2 ((uint8_t)0x02) +#define GPIO_PinSource3 ((uint8_t)0x03) +#define GPIO_PinSource4 ((uint8_t)0x04) +#define GPIO_PinSource5 ((uint8_t)0x05) +#define GPIO_PinSource6 ((uint8_t)0x06) +#define GPIO_PinSource7 ((uint8_t)0x07) +#define GPIO_PinSource8 ((uint8_t)0x08) +#define GPIO_PinSource9 ((uint8_t)0x09) +#define GPIO_PinSource10 ((uint8_t)0x0A) +#define GPIO_PinSource11 ((uint8_t)0x0B) +#define GPIO_PinSource12 ((uint8_t)0x0C) +#define GPIO_PinSource13 ((uint8_t)0x0D) +#define GPIO_PinSource14 ((uint8_t)0x0E) +#define GPIO_PinSource15 ((uint8_t)0x0F) + +#define IS_GPIO_PIN_SOURCE(PINSOURCE) (((PINSOURCE) == GPIO_PinSource0) || \ + ((PINSOURCE) == GPIO_PinSource1) || \ + ((PINSOURCE) == GPIO_PinSource2) || \ + ((PINSOURCE) == GPIO_PinSource3) || \ + ((PINSOURCE) == GPIO_PinSource4) || \ + ((PINSOURCE) == GPIO_PinSource5) || \ + ((PINSOURCE) == GPIO_PinSource6) || \ + ((PINSOURCE) == GPIO_PinSource7) || \ + ((PINSOURCE) == GPIO_PinSource8) || \ + ((PINSOURCE) == GPIO_PinSource9) || \ + ((PINSOURCE) == GPIO_PinSource10) || \ + ((PINSOURCE) == GPIO_PinSource11) || \ + ((PINSOURCE) == GPIO_PinSource12) || \ + ((PINSOURCE) == GPIO_PinSource13) || \ + ((PINSOURCE) == GPIO_PinSource14) || \ + ((PINSOURCE) == GPIO_PinSource15)) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup GPIO_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup GPIO_Exported_Functions +* @{ +*/ + +void GPIO_DeInit(GPIO_TypeDef* GPIOx); +void GPIO_AFIODeInit(void); +void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); +void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); +uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); +uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); +uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); +uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx); +void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); +void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); +void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal); +void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal); +void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); +void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); +void GPIO_EventOutputCmd(FunctionalState NewState); +void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState); +void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); + +#endif /* __HAL_GPIO_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_i2c.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_i2c.h new file mode 100644 index 000000000..c6e5fe4fd --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_i2c.h @@ -0,0 +1,333 @@ +/** +****************************************************************************** +* @file HAL_i2c.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the I2C firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_I2C_H +#define __HAL_I2C_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup I2C +* @{ +*/ + +/** @defgroup I2C_Exported_Types +* @{ +*/ + +/** +* @brief I2C Init structure definition +*/ +/* +typedef struct +{ +uint16_t I2C_Mode; +uint16_t I2C_DutyCycle; +uint16_t I2C_OwnAddress1; +uint16_t I2C_Ack; +uint16_t I2C_AcknowledgedAddress; +uint32_t I2C_ClockSpeed; +}I2C_InitTypeDef; +*/ +typedef struct +{ + uint16_t I2C_Mode; + uint16_t I2C_Speed; + uint16_t I2C_OwnAddress; + uint32_t I2C_ClockSpeed; +} I2C_InitTypeDef; + +/** +* @} +*/ + + +/** @defgroup I2C_Exported_Constants +* @{ +*/ + +#define IS_I2C_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == I2C1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == I2C2_BASE)) +/** @defgroup I2C_modes +* @{ +*/ + +#define TX_EMPTY_CTRL (0x0001<<8) +#define IC_SLAVE_DISABLE (0x0001<<6) +#define IC_SLAVE_ENABLE (0x0000<<6) +#define IC_RESTART_EN (0x0001<<5) +#define IC_7BITADDR_MASTER (0x0000<<4) +#define IC_7BITADDR_SLAVE (0x0000<<3) + +#define I2C_Speed_STANDARD ((uint16_t)0x0002) +#define I2C_Speed_FAST ((uint16_t)0x0004) +#define I2C_Mode_MASTER ((uint16_t)0x0001) +#define I2C_Mode_SLAVE ((uint16_t)0x0000) + +#define TDMAE_SET ((uint16_t)0x0002) +#define RDMAE_SET ((uint16_t)0x0001) + +#define CMD_READ ((uint16_t)0x0100) +#define CMD_WRITE ((uint16_t)0x0000) + + + + +#define I2C_Mode_I2C ((uint16_t)0x0000) + +#define IS_I2C_MODE(MODE) (((MODE) == I2C_Mode_I2C)) + +/** +* @} +*/ + + +/** @defgroup I2C_transfer_direction +* @{ +*/ + +#define I2C_Direction_Transmitter ((uint8_t)0x00) +#define I2C_Direction_Receiver ((uint8_t)0x01) +#define IS_I2C_DIRECTION(DIRECTION) (((DIRECTION) == I2C_Direction_Transmitter) || \ + ((DIRECTION) == I2C_Direction_Receiver)) +/** +* @} +*/ + +/** @defgroup I2C_acknowledged_address_defines +* @{ +*/ + +#define I2C_AcknowledgedAddress_7bit ((uint16_t)0x4000) +#define I2C_AcknowledgedAddress_10bit ((uint16_t)0xC000) +#define IS_I2C_ACKNOWLEDGE_ADDRESS(ADDRESS) (((ADDRESS) == I2C_AcknowledgedAddress_7bit) || \ + ((ADDRESS) == I2C_AcknowledgedAddress_10bit)) + +/** +* @} +*/ + +/** @defgroup I2C_interrupts_definition +* @{ +*/ + + +#define IS_I2C_CONFIG_IT(IT) ((((IT) & (uint16_t)0xF8FF) == 0x00) && ((IT) != 0x00)) +/** +* @} +*/ + +/** @defgroup I2C_interrupts_definition +* @{ +*/ + +#define I2C_IT_RX_UNDER ((uint16_t)0x0001) +#define I2C_IT_RX_OVER ((uint16_t)0x0002) +#define I2C_IT_RX_FULL ((uint16_t)0x0004) +#define I2C_IT_TX_OVER ((uint16_t)0x0008) +#define I2C_IT_TX_EMPTY ((uint16_t)0x0010) +#define I2C_IT_RD_REQ ((uint16_t)0x0020) +#define I2C_IT_TX_ABRT ((uint16_t)0x0040) +#define I2C_IT_RX_DONE ((uint16_t)0x0080) +#define I2C_IT_ACTIVITY ((uint16_t)0x0100) +#define I2C_IT_STOP_DET ((uint16_t)0x0200) +#define I2C_IT_START_DET ((uint16_t)0x0400) +#define I2C_IT_GEN_CALL ((uint16_t)0x0800) + +#define IS_I2C_CLEAR_IT(IT) ((((IT) & (uint16_t)0xF000) == 0x00) && ((IT) != (uint16_t)0x00)) + +#define IS_I2C_GET_IT(IT) (((IT) == I2C_IT_RX_UNDER) || ((IT) == I2C_IT_RX_OVER) || \ + ((IT) == I2C_IT_RX_FULL) || ((IT) == I2C_IT_TX_OVER) || \ + ((IT) == I2C_IT_TX_EMPTY) || ((IT) == I2C_IT_RD_REQ) || \ + ((IT) == I2C_IT_TX_ABRT) || ((IT) == I2C_IT_RX_DONE) || \ + ((IT) == I2C_IT_ACTIVITY) || ((IT) == I2C_IT_STOP_DET) || \ + ((IT) == I2C_IT_START_DET) || ((IT) == I2C_IT_GEN_CALL)) +/** +* @} +*/ + +/** @defgroup I2C_flags_definition +* @{ +*/ + + + +#define I2C_FLAG_RX_UNDER ((uint16_t)0x0001) +#define I2C_FLAG_RX_OVER ((uint16_t)0x0002) +#define I2C_FLAG_RX_FULL ((uint16_t)0x0004) +#define I2C_FLAG_TX_OVER ((uint16_t)0x0008) +#define I2C_FLAG_TX_EMPTY ((uint16_t)0x0010) +#define I2C_FLAG_RD_REQ ((uint16_t)0x0020) +#define I2C_FLAG_TX_ABRT ((uint16_t)0x0040) +#define I2C_FLAG_RX_DONE ((uint16_t)0x0080) +#define I2C_FLAG_ACTIVITY ((uint16_t)0x0100) +#define I2C_FLAG_STOP_DET ((uint16_t)0x0200) +#define I2C_FLAG_START_DET ((uint16_t)0x0400) +#define I2C_FLAG_GEN_CALL ((uint16_t)0x0800) + + + + + + +#define IS_I2C_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0xF000) == 0x00) && ((FLAG) != (uint16_t)0x00)) + +#define IS_I2C_GET_FLAG(FLAG) (((FLAG) == I2C_FLAG_RX_UNDER) || ((FLAG) == I2C_FLAG_RX_OVER) || \ + ((FLAG) == I2C_FLAG_RX_FULL) || ((FLAG) == I2C_FLAG_TX_OVER) || \ + ((FLAG) == I2C_FLAG_TX_EMPTY) || ((FLAG) == I2C_FLAG_RD_REQ) || \ + ((FLAG) == I2C_FLAG_TX_ABRT) || ((FLAG) == I2C_FLAG_RX_DONE) || \ + ((FLAG) == I2C_FLAG_ACTIVITY) || ((FLAG) == I2C_FLAG_STOP_DET) || \ + ((FLAG) == I2C_FLAG_START_DET) || ((FLAG) == I2C_FLAG_GEN_CALL)) + + +/** @defgroup I2C_Statusflags_definition +* @{ +*/ + +#define I2C_STATUS_FLAG_ACTIVITY ((uint16_t)0x8001) +#define I2C_STATUS_FLAG_TFNF ((uint16_t)0x8002) +#define I2C_STATUS_FLAG_TFE ((uint16_t)0x8004) +#define I2C_STATUS_FLAG_RFNE ((uint16_t)0x8008) +#define I2C_STATUS_FLAG_RFF ((uint16_t)0x8010) +#define I2C_STATUS_FLAG_M_ACTIVITY ((uint16_t)0x8020) +#define I2C_STATUS_FLAG_S_ACTIVITY ((uint16_t)0x8040) + + +/** +* @} +*/ + +/** @defgroup I2C_Events +* @{ +*/ + + +#define I2C_EVENT_RX_UNDER ((uint32_t)0x0001) +#define I2C_EVENT_RX_OVER ((uint32_t)0x0002) +#define I2C_EVENT_RX_FULL ((uint32_t)0x0004) +#define I2C_EVENT_TX_OVER ((uint32_t)0x0008) +#define I2C_EVENT_TX_EMPTY ((uint32_t)0x0010) +#define I2C_EVENT_RD_REQ ((uint32_t)0x0020) +#define I2C_EVENT_TX_ABRT ((uint32_t)0x0040) +#define I2C_EVENT_RX_DONE ((uint32_t)0x0080) +#define I2C_EVENT_ACTIVITY ((uint32_t)0x0100) +#define I2C_EVENT_STOP_DET ((uint32_t)0x0200) +#define I2C_EVENT_START_DET ((uint32_t)0x0400) +#define I2C_EVENT_GEN_CALL ((uint32_t)0x0800) + + +#define IS_I2C_EVENT(EVENT) (((EVENT) == I2C_EVENT_RX_UNDER) || \ + ((EVENT) == I2C_EVENT_RX_OVER) || \ + ((EVENT) == I2C_EVENT_RX_FULL) || \ + ((EVENT) == I2C_EVENT_TX_OVER) || \ + ((EVENT) == I2C_EVENT_RD_REQ) || \ + ((EVENT) == I2C_EVENT_TX_ABRT) || \ + ((EVENT) == I2C_EVENT_RX_DONE) || \ + ((EVENT) == (I2C_EVENT_ACTIVITY | I2C_EVENT_STOP_DET)) || \ + ((EVENT) == (I2C_EVENT_START_DET | I2C_EVENT_GEN_CALL))) + +/** +* @} +*/ + +/** @defgroup I2C_own_address1 +* @{ +*/ + +#define IS_I2C_OWN_ADDRESS1(ADDRESS1) ((ADDRESS1) <= 0x3FF) +/** +* @} +*/ + +/** @defgroup I2C_clock_speed +* @{ +*/ + +#define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) >= 0x1) && ((SPEED) <= 400000)) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup I2C_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup I2C_Exported_Functions +* @{ +*/ + +void I2C_DeInit(I2C_TypeDef* I2Cx); +void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct); +void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct); +void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState); +void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState); +void I2C_DMALastTransferCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); +void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState); +void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState); + +void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address); +void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); +void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState); +void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState); +void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data); +void I2C_SendLastDataOrStop(I2C_TypeDef* I2Cx, uint8_t Data); +void I2C_ReadCmd(I2C_TypeDef* I2Cx); +uint8_t I2C_ReadLastDataOrStop(I2C_TypeDef* I2Cx); +uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx); +void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C_Direction); +uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register); + +uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx); +ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT); +FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG); +void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG); +ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT); +void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT); + + + +#endif /*__HAL_I2C_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_iwdg.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_iwdg.h new file mode 100644 index 000000000..1490ddbcc --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_iwdg.h @@ -0,0 +1,131 @@ +/** +****************************************************************************** +* @file HAL_iwdg.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the IWDG +* firmware library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_IWDG_H +#define __HAL_IWDG_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup IWDG +* @{ +*/ + +/** @defgroup IWDG_Exported_Types +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup IWDG_Exported_Constants +* @{ +*/ + +/** @defgroup Write_access_to_IWDG_PR_and_IWDG_RLR_registers +* @{ +*/ + +#define IWDG_WriteAccess_Enable ((uint16_t)0x5555) +#define IWDG_WriteAccess_Disable ((uint16_t)0x0000) +#define IS_IWDG_WRITE_ACCESS(ACCESS) (((ACCESS) == IWDG_WriteAccess_Enable) || \ + ((ACCESS) == IWDG_WriteAccess_Disable)) +/** +* @} +*/ + +/** @defgroup IWDG_prescaler +* @{ +*/ + +#define IWDG_Prescaler_4 ((uint8_t)0x00) +#define IWDG_Prescaler_8 ((uint8_t)0x01) +#define IWDG_Prescaler_16 ((uint8_t)0x02) +#define IWDG_Prescaler_32 ((uint8_t)0x03) +#define IWDG_Prescaler_64 ((uint8_t)0x04) +#define IWDG_Prescaler_128 ((uint8_t)0x05) +#define IWDG_Prescaler_256 ((uint8_t)0x06) +#define IS_IWDG_PRESCALER(PRESCALER) (((PRESCALER) == IWDG_Prescaler_4) || \ + ((PRESCALER) == IWDG_Prescaler_8) || \ + ((PRESCALER) == IWDG_Prescaler_16) || \ + ((PRESCALER) == IWDG_Prescaler_32) || \ + ((PRESCALER) == IWDG_Prescaler_64) || \ + ((PRESCALER) == IWDG_Prescaler_128)|| \ + ((PRESCALER) == IWDG_Prescaler_256)) +/** +* @} +*/ + +/** @defgroup IWDG_Flag +* @{ +*/ + +#define IWDG_FLAG_PVU ((uint16_t)0x0001) +#define IWDG_FLAG_RVU ((uint16_t)0x0002) +#define IS_IWDG_FLAG(FLAG) (((FLAG) == IWDG_FLAG_PVU) || ((FLAG) == IWDG_FLAG_RVU)) +#define IS_IWDG_RELOAD(RELOAD) ((RELOAD) <= 0xFFF) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup IWDG_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup IWDG_Exported_Functions +* @{ +*/ + +void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess); +void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); +void IWDG_SetReload(uint16_t Reload); +void IWDG_ReloadCounter(void); +void IWDG_Enable(void); +FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG); + +#endif /* __HAL_IWDG_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_misc.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_misc.h new file mode 100644 index 000000000..4146d6c55 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_misc.h @@ -0,0 +1,166 @@ +/** +****************************************************************************** +* @file HAL_misc.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the +* miscellaneous firmware library functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MISC_H +#define __MISC_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup MISC +* @{ +*/ + +/** @defgroup MISC_Exported_Types +* @{ +*/ + +/** +* @brief NVIC Init Structure definition +*/ + +typedef struct +{ + uint8_t NVIC_IRQChannel; + uint8_t NVIC_IRQChannelPreemptionPriority; + uint8_t NVIC_IRQChannelSubPriority; + FunctionalState NVIC_IRQChannelCmd; +} NVIC_InitTypeDef; + +/** +* @} +*/ + +/** @defgroup MISC_Exported_Constants +* @{ +*/ + +/** @defgroup Vector_Table_Base +* @{ +*/ + +#define NVIC_VectTab_RAM ((uint32_t)0x20000000) +#define NVIC_VectTab_FLASH ((uint32_t)0x08000000) +#define IS_NVIC_VECTTAB(VECTTAB) (((VECTTAB) == NVIC_VectTab_RAM) || \ + ((VECTTAB) == NVIC_VectTab_FLASH)) +/** +* @} +*/ + +/** @defgroup System_Low_Power +* @{ +*/ + +#define NVIC_LP_SEVONPEND ((uint8_t)0x10) +#define NVIC_LP_SLEEPDEEP ((uint8_t)0x04) +#define NVIC_LP_SLEEPONEXIT ((uint8_t)0x02) +#define IS_NVIC_LP(LP) (((LP) == NVIC_LP_SEVONPEND) || \ + ((LP) == NVIC_LP_SLEEPDEEP) || \ + ((LP) == NVIC_LP_SLEEPONEXIT)) +/** +* @} +*/ + +/** @defgroup Preemption_Priority_Group +* @{ +*/ + +#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /* 0 bits for pre-emption priority +4 bits for subpriority */ +#define NVIC_PriorityGroup_1 ((uint32_t)0x600) /* 1 bits for pre-emption priority +3 bits for subpriority */ +#define NVIC_PriorityGroup_2 ((uint32_t)0x500) /* 2 bits for pre-emption priority +2 bits for subpriority */ +#define NVIC_PriorityGroup_3 ((uint32_t)0x400) /* 3 bits for pre-emption priority +1 bits for subpriority */ +#define NVIC_PriorityGroup_4 ((uint32_t)0x300) /* 4 bits for pre-emption priority +0 bits for subpriority */ + +#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_OFFSET(OFFSET) ((OFFSET) < 0x0007FFFF) + +/** +* @} +*/ + +/** @defgroup SysTick_clock_source +* @{ +*/ + +#define SysTick_CLKSource_HCLK_Div8 ((uint32_t)0xFFFFFFFB) +#define SysTick_CLKSource_HCLK ((uint32_t)0x00000004) +#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SysTick_CLKSource_HCLK) || \ + ((SOURCE) == SysTick_CLKSource_HCLK_Div8)) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup MISC_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup MISC_Exported_Functions +* @{ +*/ + +void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); +void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct); +void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset); +void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState); +void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource); + +#endif /* __MISC_H */ + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_pwr.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_pwr.h new file mode 100644 index 000000000..5ae14c71e --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_pwr.h @@ -0,0 +1,155 @@ +/** +****************************************************************************** +* @file HAL_pwr.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the PWR firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_PWR_H +#define __HAL_PWR_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup PWR +* @{ +*/ + +/** @defgroup PWR_Exported_Types +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup PWR_Exported_Constants +* @{ +*/ + + +/** @defgroup PVD_detection_level +* @{ +*/ + +#define PWR_PVDLevel_1V8 ((uint32_t)0x00000000) +#define PWR_PVDLevel_2V1 ((uint32_t)0x00000200) +#define PWR_PVDLevel_2V4 ((uint32_t)0x00000400) +#define PWR_PVDLevel_2V7 ((uint32_t)0x00000600) +#define PWR_PVDLevel_3V0 ((uint32_t)0x00000800) +#define PWR_PVDLevel_3V3 ((uint32_t)0x00000A00) +#define PWR_PVDLevel_3V6 ((uint32_t)0x00000C00) +#define PWR_PVDLevel_3V9 ((uint32_t)0x00000E00) +#define PWR_PVDLevel_4V2 ((uint32_t)0x00001000) +#define PWR_PVDLevel_4V5 ((uint32_t)0x00001200) +#define PWR_PVDLevel_4V8 ((uint32_t)0x00001400) +#define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLevel_1V8) || ((LEVEL) == PWR_PVDLevel_2V1)|| \ + ((LEVEL) == PWR_PVDLevel_2V4) || ((LEVEL) == PWR_PVDLevel_2V7)|| \ + ((LEVEL) == PWR_PVDLevel_3V0) || ((LEVEL) == PWR_PVDLevel_3V3)|| \ + ((LEVEL) == PWR_PVDLevel_3V6) || ((LEVEL) == PWR_PVDLevel_3V9)|| \ + ((LEVEL) == PWR_PVDLevel_4V2) || ((LEVEL) == PWR_PVDLevel_4V5)|| \ + ((LEVEL) == PWR_PVDLevel_4V8)) + + +/** +* @} +*/ + +/** @defgroup Regulator_state_is_STOP_mode +* @{ +*/ + +#define PWR_Regulator_ON ((uint32_t)0x00000000) +#define PWR_Regulator_LowPower ((uint32_t)0x00000002) +#define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_Regulator_ON) || \ + ((REGULATOR) == PWR_Regulator_LowPower)) +/** +* @} +*/ + +/** @defgroup STOP_mode_entry +* @{ +*/ + +#define PWR_STOPEntry_WFI ((uint8_t)0x01) +#define PWR_STOPEntry_WFE ((uint8_t)0x02) +#define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPEntry_WFI) || ((ENTRY) == PWR_STOPEntry_WFE)) + +/** +* @} +*/ + +/** @defgroup PWR_Flag +* @{ +*/ + +#define PWR_FLAG_WU ((uint32_t)0x00000001) +#define PWR_FLAG_SB ((uint32_t)0x00000002) +#define PWR_FLAG_PVDO ((uint32_t)0x00000004) +#define IS_PWR_GET_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB) || \ + ((FLAG) == PWR_FLAG_PVDO)) + +#define IS_PWR_CLEAR_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB)) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup PWR_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup PWR_Exported_Functions +* @{ +*/ + +void PWR_DeInit(void); +void PWR_BackupAccessCmd(FunctionalState NewState); +void PWR_PVDCmd(FunctionalState NewState); +void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel); +void PWR_WakeUpPinCmd(FunctionalState NewState); +void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry); +void PWR_EnterSTANDBYMode(void); +FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG); +void PWR_ClearFlag(uint32_t PWR_FLAG); + +#endif /* __HAL_PWR_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rcc.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rcc.h new file mode 100644 index 000000000..5d99b6428 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rcc.h @@ -0,0 +1,425 @@ +/** +****************************************************************************** +* @file HAL_rcc.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the RCC firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_RCC_H +#define __HAL_RCC_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup RCC +* @{ +*/ + +/** @defgroup RCC_Exported_Types +* @{ +*/ + +typedef struct +{ + uint32_t SYSCLK_Frequency; + uint32_t HCLK_Frequency; + uint32_t PCLK1_Frequency; + uint32_t PCLK2_Frequency; + uint32_t ADCCLK_Frequency; +} RCC_ClocksTypeDef; + +/** +* @} +*/ + +/** @defgroup RCC_Exported_Constants +* @{ +*/ + +/** @defgroup HSE_configuration +* @{ +*/ + +#define RCC_HSE_OFF ((uint32_t)0x00000000) +#define RCC_HSE_ON ((uint32_t)0x00010000) +#define RCC_HSE_Bypass ((uint32_t)0x00040000) +#define IS_RCC_HSE(HSE) (((HSE) == RCC_HSE_OFF) || ((HSE) == RCC_HSE_ON) || \ + ((HSE) == RCC_HSE_Bypass)) + +/** +* @} +*/ + +/** @defgroup PLL_entry_clock_source +* @{ +*/ + +#define RCC_PLLSource_HSI_Div4 ((uint32_t)0x00000000) +#define RCC_PLLSource_HSE_Div1 ((uint32_t)0x00010000) +#define RCC_PLLSource_HSE_Div2 ((uint32_t)0x00030000) +#define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div4) || \ + ((SOURCE) == RCC_PLLSource_HSE_Div1) || \ + ((SOURCE) == RCC_PLLSource_HSE_Div2)) +/** +* @} +*/ + + +/** @defgroup System_clock_source +* @{ +*/ + +#define RCC_SYSCLKSource_HSI ((uint32_t)0x00000000) +#define RCC_SYSCLKSource_HSE ((uint32_t)0x00000001) +#define RCC_SYSCLKSource_PLLCLK ((uint32_t)0x00000002) +#define IS_RCC_SYSCLK_SOURCE(SOURCE) (((SOURCE) == RCC_SYSCLKSource_HSI) || \ + ((SOURCE) == RCC_SYSCLKSource_HSE) || \ + ((SOURCE) == RCC_SYSCLKSource_PLLCLK)) +/** +* @} +*/ + +/** @defgroup AHB_clock_source +* @{ +*/ + +#define RCC_SYSCLK_Div1 ((uint32_t)0x00000000) +#define RCC_SYSCLK_Div2 ((uint32_t)0x00000080) +#define RCC_SYSCLK_Div4 ((uint32_t)0x00000090) +#define RCC_SYSCLK_Div8 ((uint32_t)0x000000A0) +#define RCC_SYSCLK_Div16 ((uint32_t)0x000000B0) +#define RCC_SYSCLK_Div64 ((uint32_t)0x000000C0) +#define RCC_SYSCLK_Div128 ((uint32_t)0x000000D0) +#define RCC_SYSCLK_Div256 ((uint32_t)0x000000E0) +#define RCC_SYSCLK_Div512 ((uint32_t)0x000000F0) +#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)) +/** +* @} +*/ + +/** @defgroup APB1_APB2_clock_source +* @{ +*/ + +#define RCC_HCLK_Div1 ((uint32_t)0x00000000) +#define RCC_HCLK_Div2 ((uint32_t)0x00000400) +#define RCC_HCLK_Div4 ((uint32_t)0x00000500) +#define RCC_HCLK_Div8 ((uint32_t)0x00000600) +#define RCC_HCLK_Div16 ((uint32_t)0x00000700) +#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)) + +/** +* @} +*/ + +/** @defgroup PLL_multiplication_factor +* @{ +*/ + +#define RCC_PLLMul_2 ((uint32_t)0x00000000) +#define RCC_PLLMul_3 ((uint32_t)0x00040000) +#define RCC_PLLMul_4 ((uint32_t)0x00080000) +#define RCC_PLLMul_5 ((uint32_t)0x000C0000) +#define RCC_PLLMul_6 ((uint32_t)0x00100000) +#define RCC_PLLMul_7 ((uint32_t)0x00140000) +#define RCC_PLLMul_8 ((uint32_t)0x00180000) +#define RCC_PLLMul_9 ((uint32_t)0x001C0000) +#define RCC_PLLMul_10 ((uint32_t)0x00200000) +#define RCC_PLLMul_11 ((uint32_t)0x00240000) +#define RCC_PLLMul_12 ((uint32_t)0x00280000) +#define RCC_PLLMul_13 ((uint32_t)0x002C0000) +#define RCC_PLLMul_14 ((uint32_t)0x00300000) +#define RCC_PLLMul_15 ((uint32_t)0x00340000) +#define RCC_PLLMul_16 ((uint32_t)0x00380000) +#define IS_RCC_PLL_MUL(MUL) (((MUL) == RCC_PLLMul_2) || ((MUL) == RCC_PLLMul_3) || \ + ((MUL) == RCC_PLLMul_4) || ((MUL) == RCC_PLLMul_5) || \ + ((MUL) == RCC_PLLMul_6) || ((MUL) == RCC_PLLMul_7) || \ + ((MUL) == RCC_PLLMul_8) || ((MUL) == RCC_PLLMul_9) || \ + ((MUL) == RCC_PLLMul_10) || ((MUL) == RCC_PLLMul_11) || \ + ((MUL) == RCC_PLLMul_12) || ((MUL) == RCC_PLLMul_13) || \ + ((MUL) == RCC_PLLMul_14) || ((MUL) == RCC_PLLMul_15) || \ + ((MUL) == RCC_PLLMul_16)) + + +/** +* @} +*/ + +/** @defgroup RCC_Interrupt_source +* @{ +*/ + +#define RCC_IT_LSIRDY ((uint8_t)0x01) +#define RCC_IT_LSERDY ((uint8_t)0x02) +#define RCC_IT_HSIRDY ((uint8_t)0x04) +#define RCC_IT_HSERDY ((uint8_t)0x08) +#define RCC_IT_PLLRDY ((uint8_t)0x10) +#define RCC_IT_CSS ((uint8_t)0x80) +#define IS_RCC_IT(IT) ((((IT) & (uint8_t)0xE0) == 0x00) && ((IT) != 0x00)) +#define IS_RCC_GET_IT(IT) (((IT) == RCC_IT_LSIRDY) || ((IT) == RCC_IT_LSERDY) || \ + ((IT) == RCC_IT_HSIRDY) || ((IT) == RCC_IT_HSERDY) || \ + ((IT) == RCC_IT_PLLRDY) || ((IT) == RCC_IT_CSS)) + +#define IS_RCC_CLEAR_IT(IT) ((((IT) & (uint8_t)0x60) == 0x00) && ((IT) != 0x00)) +/** +* @} +*/ + +/** @defgroup USB_clock_source +* @{ +*/ + + +#define RCC_USBCLKSource_PLLCLK_Div1 ((uint8_t)0x00) +#define RCC_USBCLKSource_PLLCLK_Div2 ((uint8_t)0x01) +#define RCC_USBCLKSource_PLLCLK_Div3 ((uint8_t)0x02) +#define RCC_USBCLKSource_PLLCLK_Div4 ((uint8_t)0x03) +#define IS_RCC_USBCLK_SOURCE(SOURCE) (((SOURCE) == RCC_USBCLKSource_PLLCLK_Div1) || \ + ((SOURCE) == RCC_USBCLKSource_PLLCLK_Div2)) +/** +* @} +*/ + +/** @defgroup ADC_clock_source +* @{ +*/ + +#define RCC_PCLK2_Div2 ((uint32_t)0x00000000) +#define RCC_PCLK2_Div4 ((uint32_t)0x00004000) +#define RCC_PCLK2_Div6 ((uint32_t)0x00008000) +#define RCC_PCLK2_Div8 ((uint32_t)0x0000C000) +#define IS_RCC_ADCCLK(ADCCLK) (((ADCCLK) == RCC_PCLK2_Div2) || ((ADCCLK) == RCC_PCLK2_Div4) || \ + ((ADCCLK) == RCC_PCLK2_Div6) || ((ADCCLK) == RCC_PCLK2_Div8)) +/** +* @} +*/ + +/** @defgroup LSE_configuration +* @{ +*/ + +#define RCC_LSE_OFF ((uint8_t)0x00) +#define RCC_LSE_ON ((uint8_t)0x01) +#define RCC_LSE_Bypass ((uint8_t)0x04) +#define IS_RCC_LSE(LSE) (((LSE) == RCC_LSE_OFF) || ((LSE) == RCC_LSE_ON) || \ + ((LSE) == RCC_LSE_Bypass)) +/** +* @} +*/ + +/** @defgroup RTC_clock_source +* @{ +*/ + +#define RCC_RTCCLKSource_LSE ((uint32_t)0x00000100) +#define RCC_RTCCLKSource_LSI ((uint32_t)0x00000200) +#define RCC_RTCCLKSource_HSE_Div128 ((uint32_t)0x00000300) +#define IS_RCC_RTCCLK_SOURCE(SOURCE) (((SOURCE) == RCC_RTCCLKSource_LSE) || \ + ((SOURCE) == RCC_RTCCLKSource_LSI) || \ + ((SOURCE) == RCC_RTCCLKSource_HSE_Div128)) +/** +* @} +*/ + +/** @defgroup AHB_peripheral +* @{ +*/ + +#define RCC_AHBPeriph_DMA1 ((uint32_t)0x00000001) +//#define RCC_AHBPeriph_DMA2 ((uint32_t)0x00000002) +#define RCC_AHBPeriph_SRAM ((uint32_t)0x00000004) +#define RCC_AHBPeriph_FLITF ((uint32_t)0x00000010) +#define RCC_AHBPeriph_CRC ((uint32_t)0x00000040) +#define RCC_AHBPeriph_FSMC ((uint32_t)0x00000100) +#define RCC_AHBPeriph_SDIO ((uint32_t)0x00000400) +#define IS_RCC_AHB_PERIPH(PERIPH) ((((PERIPH) & 0xFFFFFAA8) == 0x00) && ((PERIPH) != 0x00)) +/** +* @} +*/ + +/** @defgroup APB2_peripheral +* @{ +*/ + +#define RCC_APB2Periph_AFIO ((uint32_t)0x00000001) +#define RCC_APB2Periph_GPIOA ((uint32_t)0x00000004) +#define RCC_APB2Periph_GPIOB ((uint32_t)0x00000008) +#define RCC_APB2Periph_GPIOC ((uint32_t)0x00000010) +#define RCC_APB2Periph_GPIOD ((uint32_t)0x00000020) +#define RCC_APB2Periph_GPIOE ((uint32_t)0x00000040) +#define RCC_APB2Periph_GPIOF ((uint32_t)0x00000080) +#define RCC_APB2Periph_GPIOG ((uint32_t)0x00000100) +#define RCC_APB2Periph_ADC1 ((uint32_t)0x00000200) +#define RCC_APB2Periph_ADC2 ((uint32_t)0x00000400) +#define RCC_APB2Periph_TIM1 ((uint32_t)0x00000800) +#define RCC_APB2Periph_SPI1 ((uint32_t)0x00001000) + +#define RCC_APB2Periph_UART1 ((uint32_t)0x00004000) +#define RCC_APB2Periph_ALL ((uint32_t)0x0003FFFD) +#define IS_RCC_APB2_PERIPH(PERIPH) ((((PERIPH) & 0xFFFC0002) == 0x00) && ((PERIPH) != 0x00)) +/** +* @} +*/ + +/** @defgroup APB1_peripheral +* @{ +*/ + +#define RCC_APB1Periph_TIM2 ((uint32_t)0x00000001) +#define RCC_APB1Periph_TIM3 ((uint32_t)0x00000002) +#define RCC_APB1Periph_TIM4 ((uint32_t)0x00000004) + +#define RCC_APB1Periph_WWDG ((uint32_t)0x00000800) +#define RCC_APB1Periph_SPI2 ((uint32_t)0x00004000) + +#define RCC_APB1Periph_UART2 ((uint32_t)0x00020000) +#define RCC_APB1Periph_UART3 ((uint32_t)0x00040000) + +#define RCC_APB1Periph_I2C1 ((uint32_t)0x00200000) +#define RCC_APB1Periph_I2C2 ((uint32_t)0x00400000) +#define RCC_APB1Periph_USB ((uint32_t)0x00800000) +#define RCC_APB1Periph_CAN1 ((uint32_t)0x02000000) +#define RCC_APB1Periph_BKP ((uint32_t)0x08000000) +#define RCC_APB1Periph_PWR ((uint32_t)0x10000000) +#define RCC_APB1Periph_DAC ((uint32_t)0x20000000) +#define RCC_APB1Periph_ALL ((uint32_t)0x3AFEC83F) + +#define IS_RCC_APB1_PERIPH(PERIPH) ((((PERIPH) & 0xC50137C0) == 0x00) && ((PERIPH) != 0x00)) +/** +* @} +*/ + +/** @defgroup Clock_source_to_output_on_MCO_pin +* @{ +*/ + +#define RCC_MCO_NoClock ((uint8_t)0x00) +#define RCC_MCO_SYSCLK ((uint8_t)0x04) +#define RCC_MCO_HSI ((uint8_t)0x05) +#define RCC_MCO_HSE ((uint8_t)0x06) +#define RCC_MCO_PLLCLK_Div2 ((uint8_t)0x07) +#define RCC_MCO_LSI ((uint8_t)0x02) +#define RCC_MCO_LSE ((uint8_t)0x03) +#define IS_RCC_MCO(MCO) (((MCO) == RCC_MCO_NoClock) || ((MCO) == RCC_MCO_HSI) || \ + ((MCO) == RCC_MCO_SYSCLK) || ((MCO) == RCC_MCO_HSE) || \ + ((MCO) == RCC_MCO_PLLCLK_Div2)||((MCO) == RCC_MCO_LSI)||\ + ((MCO) == RCC_MCO_LSE)) +/** +* @} +*/ + +/** @defgroup RCC_Flag +* @{ +*/ + +#define RCC_FLAG_HSIRDY ((uint8_t)0x21) +#define RCC_FLAG_HSERDY ((uint8_t)0x31) +#define RCC_FLAG_PLLRDY ((uint8_t)0x39) +#define RCC_FLAG_LSERDY ((uint8_t)0x41) +#define RCC_FLAG_LSIRDY ((uint8_t)0x61) +#define RCC_FLAG_PINRST ((uint8_t)0x7A) +#define RCC_FLAG_PORRST ((uint8_t)0x7B) +#define RCC_FLAG_SFTRST ((uint8_t)0x7C) +#define RCC_FLAG_IWDGRST ((uint8_t)0x7D) +#define RCC_FLAG_WWDGRST ((uint8_t)0x7E) +#define RCC_FLAG_LPWRRST ((uint8_t)0x7F) +#define IS_RCC_FLAG(FLAG) (((FLAG) == RCC_FLAG_HSIRDY) || ((FLAG) == RCC_FLAG_HSERDY) || \ + ((FLAG) == RCC_FLAG_PLLRDY) || ((FLAG) == RCC_FLAG_LSERDY) || \ + ((FLAG) == RCC_FLAG_LSIRDY) || ((FLAG) == RCC_FLAG_PINRST) || \ + ((FLAG) == RCC_FLAG_PORRST) || ((FLAG) == RCC_FLAG_SFTRST) || \ + ((FLAG) == RCC_FLAG_IWDGRST)|| ((FLAG) == RCC_FLAG_WWDGRST)|| \ + ((FLAG) == RCC_FLAG_LPWRRST)) + +#define IS_RCC_CALIBRATION_VALUE(VALUE) ((VALUE) <= 0x1F) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup RCC_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RCC_Exported_Functions +* @{ +*/ + +void RCC_DeInit(void); +void RCC_HSEConfig(uint32_t RCC_HSE); +ErrorStatus RCC_WaitForHSEStartUp(void); +void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue); +void RCC_HSICmd(FunctionalState NewState); +void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul); +void RCC_PLLCmd(FunctionalState NewState); +void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource); +uint8_t RCC_GetSYSCLKSource(void); +void RCC_HCLKConfig(uint32_t RCC_SYSCLK); +void RCC_PCLK1Config(uint32_t RCC_HCLK); +void RCC_PCLK2Config(uint32_t RCC_HCLK); +void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState); +void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource); +void RCC_ADCCLKConfig(uint32_t RCC_PCLK2); +void RCC_LSEConfig(uint8_t RCC_LSE); +void RCC_LSICmd(FunctionalState NewState); +void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource); +void RCC_RTCCLKCmd(FunctionalState NewState); +void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks); +void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); +void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); +void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); +void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); +void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); +void RCC_BackupResetCmd(FunctionalState NewState); +void RCC_ClockSecuritySystemCmd(FunctionalState NewState); +void RCC_MCOConfig(uint8_t RCC_MCO); +FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG); +void RCC_ClearFlag(void); +ITStatus RCC_GetITStatus(uint8_t RCC_IT); +void RCC_ClearITPendingBit(uint8_t RCC_IT); + +#endif /* __HAL_RCC_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rtc.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rtc.h new file mode 100644 index 000000000..a1d3f37ec --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_rtc.h @@ -0,0 +1,135 @@ +/** +****************************************************************************** +* @file HAL_rtc.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the RTC firmware +* library. +****************************************************************************** +* @attention +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+****************************************************************************** +*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_RTC_H +#define __HAL_RTC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup +* @{ +*/ + +/** @addtogroup RTC +* @{ +*/ + +/** @defgroup RTC_Exported_Types +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RTC_Exported_Constants +* @{ +*/ + +/** @defgroup RTC_interrupts_define +* @{ +*/ + +#define RTC_IT_OW ((uint16_t)0x0004) /*!< Overflow interrupt */ +#define RTC_IT_ALR ((uint16_t)0x0002) /*!< Alarm interrupt */ +#define RTC_IT_SEC ((uint16_t)0x0001) /*!< Second interrupt */ +#define IS_RTC_IT(IT) ((((IT) & (uint16_t)0xFFF8) == 0x00) && ((IT) != 0x00)) +#define IS_RTC_GET_IT(IT) (((IT) == RTC_IT_OW) || ((IT) == RTC_IT_ALR) || \ + ((IT) == RTC_IT_SEC)) +/** +* @} +*/ + +/** @defgroup RTC_interrupts_flags +* @{ +*/ + +#define RTC_FLAG_RTOFF ((uint16_t)0x0020) /*!< RTC Operation OFF flag */ +#define RTC_FLAG_RSF ((uint16_t)0x0008) /*!< Registers Synchronized flag */ +#define RTC_FLAG_OW ((uint16_t)0x0004) /*!< Overflow flag */ +#define RTC_FLAG_ALR ((uint16_t)0x0002) /*!< Alarm flag */ +#define RTC_FLAG_SEC ((uint16_t)0x0001) /*!< Second flag */ +#define IS_RTC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0xFFF0) == 0x00) && ((FLAG) != 0x00)) +#define IS_RTC_GET_FLAG(FLAG) (((FLAG) == RTC_FLAG_RTOFF) || ((FLAG) == RTC_FLAG_RSF) || \ + ((FLAG) == RTC_FLAG_OW) || ((FLAG) == RTC_FLAG_ALR) || \ + ((FLAG) == RTC_FLAG_SEC)) +#define IS_RTC_PRESCALER(PRESCALER) ((PRESCALER) <= 0xFFFFF) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup RTC_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RTC_Exported_Functions +* @{ +*/ + +void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState); +void RTC_EnterConfigMode(void); +void RTC_ExitConfigMode(void); +uint32_t RTC_GetCounter(void); +void RTC_SetCounter(uint32_t CounterValue); +void RTC_SetPrescaler(uint32_t PrescalerValue); +void RTC_SetAlarm(uint32_t AlarmValue); +uint32_t RTC_GetDivider(void); +void RTC_WaitForLastTask(void); +void RTC_WaitForSynchro(void); +FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG); +void RTC_ClearFlag(uint16_t RTC_FLAG); +ITStatus RTC_GetITStatus(uint16_t RTC_IT); +void RTC_ClearITPendingBit(uint16_t RTC_IT); + +#ifdef __cplusplus +} +#endif + +#endif /* __HAL_RTC_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_spi.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_spi.h new file mode 100644 index 000000000..8e732b382 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_spi.h @@ -0,0 +1,418 @@ +/** +****************************************************************************** +* @file HAL_spi.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the SPI firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_SPI_H +#define __HAL_SPI_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup SPI +* @{ +*/ + +/** @defgroup SPI_Exported_Types +* @{ +*/ + +/** +* @brief SPI Init structure definition +*/ + +typedef struct +{ + uint16_t SPI_Mode; + uint16_t SPI_DataSize; + uint16_t SPI_DataWidth; + uint16_t SPI_CPOL; + uint16_t SPI_CPHA; + uint16_t SPI_NSS; + uint16_t SPI_BaudRatePrescaler; + uint16_t SPI_FirstBit; +} SPI_InitTypeDef; + + +/** +* @} +*/ + +/** @defgroup SPI_Exported_Constants +* @{ +*/ + +#define IS_SPI_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == SPI0_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == SPI1_BASE)) + +#define IS_SPI_2_PERIPH(PERIPH) ((*(uint32_t*)&(PERIPH)) == SPI1_BASE) + + +/** +* @} +*/ + +/** @defgroup SPI_master_slave_mode +* @{ +*/ + +#define SPI_Mode_Master ((uint16_t)0x0004) +#define SPI_Mode_Slave ((uint16_t)0x0000) +#define IS_SPI_MODE(MODE) (((MODE) == SPI_Mode_Master) || \ + ((MODE) == SPI_Mode_Slave)) +/** +* @} +*/ + +/** @defgroup SPI_data_size +* @{ +*/ + +#define SPI_DataSize_32b ((uint16_t)0x0800) +#define SPI_DataSize_8b ((uint16_t)0x0000) +#define IS_SPI_DATASIZE(DATASIZE) (((DATASIZE) == SPI_DataSize_32b) || \ + ((DATASIZE) == SPI_DataSize_8b)) + +/** +* @} +*/ + + +/** @defgroup SPI_7bit_8bit data width +* @{ +*/ + +#define SPI_DataWidth_1b ((uint16_t)0x0001) +#define SPI_DataWidth_2b ((uint16_t)0x0002) +#define SPI_DataWidth_3b ((uint16_t)0x0003) +#define SPI_DataWidth_4b ((uint16_t)0x0004) +#define SPI_DataWidth_5b ((uint16_t)0x0005) +#define SPI_DataWidth_6b ((uint16_t)0x0006) +#define SPI_DataWidth_7b ((uint16_t)0x0007) +#define SPI_DataWidth_8b ((uint16_t)0x0008) +#define SPI_DataWidth_9b ((uint16_t)0x0009) +#define SPI_DataWidth_10b ((uint16_t)0x000a) +#define SPI_DataWidth_11b ((uint16_t)0x000b) +#define SPI_DataWidth_12b ((uint16_t)0x000c) +#define SPI_DataWidth_13b ((uint16_t)0x000d) +#define SPI_DataWidth_14b ((uint16_t)0x000e) +#define SPI_DataWidth_15b ((uint16_t)0x000f) +#define SPI_DataWidth_16b ((uint16_t)0x0010) +#define SPI_DataWidth_17b ((uint16_t)0x0011) +#define SPI_DataWidth_18b ((uint16_t)0x0012) +#define SPI_DataWidth_19b ((uint16_t)0x0013) +#define SPI_DataWidth_20b ((uint16_t)0x0014) +#define SPI_DataWidth_21b ((uint16_t)0x0015) +#define SPI_DataWidth_22b ((uint16_t)0x0016) +#define SPI_DataWidth_23b ((uint16_t)0x0017) +#define SPI_DataWidth_24b ((uint16_t)0x0018) +#define SPI_DataWidth_25b ((uint16_t)0x0019) +#define SPI_DataWidth_26b ((uint16_t)0x001a) +#define SPI_DataWidth_27b ((uint16_t)0x001b) +#define SPI_DataWidth_28b ((uint16_t)0x001c) +#define SPI_DataWidth_29b ((uint16_t)0x001d) +#define SPI_DataWidth_30b ((uint16_t)0x001e) +#define SPI_DataWidth_31b ((uint16_t)0x001f) +#define SPI_DataWidth_32b ((uint16_t)0x0000) +#define IS_SPI_DATAWIDRH(WIDTH) (((WIDTH) == SPI_DataWidth_1b) || ((WIDTH) == SPI_DataWidth_2b)||\ + ((WIDTH) == SPI_DataWidth_3b)||((WIDTH) == SPI_DataWidth_4b)||\ + ((WIDTH) == SPI_DataWidth_5b)||((WIDTH) == SPI_DataWidth_6b)||\ + ((WIDTH) == SPI_DataWidth_7b)||((WIDTH) == SPI_DataWidth_8b)||\ + ((WIDTH) == SPI_DataWidth_9b)||((WIDTH) == SPI_DataWidth_10b)||\ + ((WIDTH) == SPI_DataWidth_11b)||((WIDTH) == SPI_DataWidth_12b)||\ + ((WIDTH) == SPI_DataWidth_13b)||((WIDTH) == SPI_DataWidth_14b)||\ + ((WIDTH) == SPI_DataWidth_15b)||((WIDTH) == SPI_DataWidth_16b)||\ + ((WIDTH) == SPI_DataWidth_17b)||((WIDTH) == SPI_DataWidth_18b)||\ + ((WIDTH) == SPI_DataWidth_19b)||((WIDTH) == SPI_DataWidth_20b)||\ + ((WIDTH) == SPI_DataWidth_21b)||((WIDTH) == SPI_DataWidth_22b)||\ + ((WIDTH) == SPI_DataWidth_23b)||((WIDTH) == SPI_DataWidth_24b)||\ + ((WIDTH) == SPI_DataWidth_25b)||((WIDTH) == SPI_DataWidth_26b)||\ + ((WIDTH) == SPI_DataWidth_27b)||((WIDTH) == SPI_DataWidth_28b)||\ + ((WIDTH) == SPI_DataWidth_29b)||((WIDTH) == SPI_DataWidth_30b)||\ + ((WIDTH) == SPI_DataWidth_31b)||((WIDTH) == SPI_DataWidth_32b)||) +/** +* @} +*/ + + +/** @defgroup SPI_Clock_Polarity +* @{ +*/ + +#define SPI_CPOL_Low ((uint16_t)0x0000) +#define SPI_CPOL_High ((uint16_t)0x0002) +#define IS_SPI_CPOL(CPOL) (((CPOL) == SPI_CPOL_Low) || \ + ((CPOL) == SPI_CPOL_High)) +/** +* @} +*/ + +/** @defgroup SPI_Clock_Phase +* @{ +*/ + +#define SPI_CPHA_1Edge ((uint16_t)0x0001) +#define SPI_CPHA_2Edge ((uint16_t)0x0000) +#define IS_SPI_CPHA(CPHA) (((CPHA) == SPI_CPHA_1Edge) || \ + ((CPHA) == SPI_CPHA_2Edge)) +/** +* @} +*/ + +/** @defgroup SPI_Slave_Select_management +* @{ +*/ + +#define SPI_NSS_Soft ((uint16_t)0x0000) +#define SPI_NSS_Hard ((uint16_t)0x0400) +#define IS_SPI_NSS(NSS) (((NSS) == SPI_NSS_Soft) || \ + ((NSS) == SPI_NSS_Hard)) + + +/** +* @} +*/ + +/** @defgroup SPI_NSS_internal_software_mangement +* @{ +*/ + +#define SPI_NSSInternalSoft_Set ((uint16_t)0x0001) +#define SPI_NSSInternalSoft_Reset ((uint16_t)0xFFFE) +#define IS_SPI_NSS_INTERNAL(INTERNAL) (((INTERNAL) == SPI_NSSInternalSoft_Set) || \ + ((INTERNAL) == SPI_NSSInternalSoft_Reset)) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup SPI_BaudRate_Prescaler_ +* @{ +*/ + + +#define SPI_BaudRatePrescaler_2 ((uint16_t)0x0002) +#define SPI_BaudRatePrescaler_4 ((uint16_t)0x0004) +#define SPI_BaudRatePrescaler_8 ((uint16_t)0x0008) +#define SPI_BaudRatePrescaler_16 ((uint16_t)0x0010) +#define SPI_BaudRatePrescaler_32 ((uint16_t)0x0020) +#define SPI_BaudRatePrescaler_64 ((uint16_t)0x0040) +#define SPI_BaudRatePrescaler_128 ((uint16_t)0x0080) +#define SPI_BaudRatePrescaler_256 ((uint16_t)0x0100) +#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)) +/** +* @} +*/ + +/** @defgroup SPI_MSB_LSB_transmission +* @{ +*/ + +#define SPI_FirstBit_MSB ((uint16_t)0x0000) +#define SPI_FirstBit_LSB ((uint16_t)0x0004) +#define IS_SPI_FIRST_BIT(BIT) (((BIT) == SPI_FirstBit_MSB) || \ + ((BIT) == SPI_FirstBit_LSB)) + + +/** +* @} +*/ + +/** @defgroup SPI_DMA_transfer_requests +* @{ +*/ + +#define SPI_DMAReq_EN ((uint16_t)0x0200) +#define IS_SPI_DMAREQ(DMAREQ) ((DMAREQ) == SPI_DMAReq_EN) + + +/** +* @} +*/ + +/** @defgroup SPI TX Fifo and RX Fifo trigger level +* @{ +*/ +#define SPI_TXTLF ((uint16_t)0x0080) +#define SPI_RXTLF ((uint16_t)0x0020) +#define IS_SPI_FIFOTRIGGER(TRIGGER) (((TRIGGER) == SPI_TXTLF) && ((TRIGGER) == SPI_RXTLF)) + + + + + + + +/** +* @} +*/ + +/** @defgroup SPI_NSS_internal_software_mangement +* @{ +*/ + +#define SPI_CS_BIT0 ((uint16_t)0xfffe) +#define SPI_CS_BIT1 ((uint16_t)0xfffd) +#define SPI_CS_BIT2 ((uint16_t)0xfffb) +#define SPI_CS_BIT3 ((uint16_t)0xfff7) +#define SPI_CS_BIT4 ((uint16_t)0xffef) +#define SPI_CS_BIT5 ((uint16_t)0xffdf) +#define SPI_CS_BIT6 ((uint16_t)0xffbf) +#define SPI_CS_BIT7 ((uint16_t)0xff7f) +#define IS_SPI_CS(CS) (((CS) == SPI_CS_BIT0) || ((CS) == SPI_CS_BIT1)||\ + ((CS) == SPI_CS_BIT2) || ((CS) == SPI_CS_BIT3)||\ + ((CS) == SPI_CS_BIT4) || ((CS) == SPI_CS_BIT5)||\ + ((CS) == SPI_CS_BIT6) || ((CS) == SPI_CS_BIT7)) +/** +* @} +*/ + + +/** @defgroup SPI_direction_transmit_receive +* @{ +*/ + +#define SPI_Direction_Rx ((uint16_t)0x0010) +#define SPI_Direction_Tx ((uint16_t)0x0008) +#define SPI_Disable_Tx ((uint16_t)0xfff7) +#define SPI_Disable_Rx ((uint16_t)0xffef) +#define IS_SPI_DIRECTION(DIRECTION) (((DIRECTION) == SPI_Direction_Rx) || \ + ((DIRECTION) == SPI_Direction_Tx) || \ + ((DIRECTION) == SPI_Disable_Tx) || \ + ((DIRECTION) == SPI_Disable_Rx)) +/** +* @} +*/ + +/** @defgroup SPI_interrupts_definition +* @{ +*/ +#define SPI_INT_EN ((uint16_t)0x0002) + +#define SPI_IT_TX ((uint8_t)0x01) +#define SPI_IT_RX ((uint8_t)0x02) + +#define IS_SPI_CONFIG_IT(IT) (((IT) == SPI_IT_TX) || \ + ((IT) == SPI_IT_RX)) + +#define SPI_IT_UNDERRUN ((uint8_t)0x04) +#define SPI_IT_RXOVER ((uint8_t)0x08) +#define SPI_IT_RXMATCH ((uint8_t)0x10) +#define SPI_IT_RXFULL ((uint8_t)0x20) +#define SPI_IT_TXEPT ((uint8_t)0x40) + +#define IS_SPI_GET_IT(IT) (((IT) == SPI_IT_TX) || ((IT) == SPI_IT_RX) || \ + ((IT) == SPI_IT_UNDERRUN) || ((IT) == SPI_IT_RXOVER) || \ + ((IT) == SPI_IT_RXMATCH) || ((IT) == SPI_IT_RXFULL) || \ + ((IT) == SPI_IT_TXEPT)) +/** +* @} +*/ + +/** @defgroup SPI_flags_definition +* @{ +*/ + + +#define SPI_FLAG_RXAVL ((uint16_t)0x0002) +#define SPI_FLAG_TXEPT ((uint16_t)0x0001) + +#define IS_SPI_GET_FLAG(FLAG) (((FLAG) == SPI_FLAG_RXAVL) || \ + ((FLAG) == SPI_FLAG_TXEPT)) + +/** +* @} +*/ + +/** @defgroup SPI mode tx data transmit phase adjust set +*in slave mode according to txedge bit of CCTL register +* @{ +*/ + + +#define SPI_SlaveAdjust_FAST ((uint16_t)0x0020) +#define SPI_SlaveAdjust_LOW ((uint16_t)0xffdf) + +#define IS_SPI_SlaveAdjust(ADJUST) (((ADJUST) == SPI_SlaveAdjust_FAST) || \ + ((ADJUST) == SPI_SlaveAdjust_LOW)) + + +/** +* @} +*/ + +/** @defgroup SPI_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup SPI_Exported_Functions +* @{ +*/ + +void SPI_DeInit(SPI_TypeDef* SPIx); +void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct); +void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct); +void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState); +void SPI_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_IT, FunctionalState NewState); +void SPI_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_DMAReq, FunctionalState NewState); +void SPI_FifoTrigger(SPI_TypeDef* SPIx, uint16_t SPI_FifoTriggerValue, FunctionalState NewState); +void SPI_SendData(SPI_TypeDef* SPIx, uint32_t Data); +uint32_t SPI_ReceiveData(SPI_TypeDef* SPIx); +void SPI_CSInternalSelected(SPI_TypeDef* SPIx, uint16_t SPI_CSInternalSelected, FunctionalState NewState); +void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSInternalSoft); +void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize); +void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction); +FlagStatus SPI_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_FLAG); +ITStatus SPI_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_IT); +void SPI_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_IT); +void SPI_RxBytes(SPI_TypeDef* SPIx, uint16_t Number); +void SPI_SlaveAdjust(SPI_TypeDef* SPIx, uint16_t AdjustValue); +#endif /*__HAL_SPI_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_tim.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_tim.h new file mode 100644 index 000000000..8bb746729 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_tim.h @@ -0,0 +1,1036 @@ +/** +****************************************************************************** +* @file HAL_tim.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the TIM firmware +* library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_TIM_H +#define __HAL_TIM_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup TIM +* @{ +*/ + +/** @defgroup TIM_Exported_Types +* @{ +*/ + +/** +* @brief TIM Time Base Init structure definition +*/ + +typedef struct +{ + uint16_t TIM_Prescaler; + uint16_t TIM_CounterMode; + uint16_t TIM_Period; + uint16_t TIM_ClockDivision; + uint8_t TIM_RepetitionCounter; +} TIM_TimeBaseInitTypeDef; + +/** +* @brief TIM Output Compare Init structure definition +*/ + +typedef struct +{ + uint16_t TIM_OCMode; + uint16_t TIM_OutputState; + uint16_t TIM_OutputNState; + uint16_t TIM_Pulse; + uint16_t TIM_OCPolarity; + uint16_t TIM_OCNPolarity; + uint16_t TIM_OCIdleState; + uint16_t TIM_OCNIdleState; +} TIM_OCInitTypeDef; + +/** +* @brief TIM Input Capture Init structure definition +*/ + +typedef struct +{ + uint16_t TIM_Channel; + uint16_t TIM_ICPolarity; + uint16_t TIM_ICSelection; + uint16_t TIM_ICPrescaler; + uint16_t TIM_ICFilter; +} TIM_ICInitTypeDef; + +/** +* @brief BDTR structure definition +*/ + +typedef struct +{ + uint16_t TIM_OSSRState; + uint16_t TIM_OSSIState; + uint16_t TIM_LOCKLevel; + uint16_t TIM_DeadTime; + uint16_t TIM_Break; + uint16_t TIM_BreakPolarity; + uint16_t TIM_AutomaticOutput; +} TIM_BDTRInitTypeDef; + +/** @defgroup TIM_Exported_constants +* @{ +*/ + +#define IS_TIM_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == TIM1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM2_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM3_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM4_BASE)) + +#define IS_TIM_18_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == TIM1_BASE)) +#define IS_TIM_123458_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == TIM1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM2_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM3_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM4_BASE)) + +/** +* @} +*/ + +/** @defgroup TIM_Output_Compare_and_PWM_modes +* @{ +*/ + +#define TIM_OCMode_Timing ((uint16_t)0x0000) +#define TIM_OCMode_Active ((uint16_t)0x0010) +#define TIM_OCMode_Inactive ((uint16_t)0x0020) +#define TIM_OCMode_Toggle ((uint16_t)0x0030) +#define TIM_OCMode_PWM1 ((uint16_t)0x0060) +#define TIM_OCMode_PWM2 ((uint16_t)0x0070) +#define IS_TIM_OC_MODE(MODE) (((MODE) == TIM_OCMode_Timing) || \ + ((MODE) == TIM_OCMode_Active) || \ + ((MODE) == TIM_OCMode_Inactive) || \ + ((MODE) == TIM_OCMode_Toggle)|| \ + ((MODE) == TIM_OCMode_PWM1) || \ + ((MODE) == TIM_OCMode_PWM2)) +#define IS_TIM_OCM(MODE) (((MODE) == TIM_OCMode_Timing) || \ + ((MODE) == TIM_OCMode_Active) || \ + ((MODE) == TIM_OCMode_Inactive) || \ + ((MODE) == TIM_OCMode_Toggle)|| \ + ((MODE) == TIM_OCMode_PWM1) || \ + ((MODE) == TIM_OCMode_PWM2) || \ + ((MODE) == TIM_ForcedAction_Active) || \ + ((MODE) == TIM_ForcedAction_InActive)) +/** +* @} +*/ + +/** @defgroup TIM_One_Pulse_Mode +* @{ +*/ + +#define TIM_OPMode_Single ((uint16_t)0x0008) +#define TIM_OPMode_Repetitive ((uint16_t)0x0000) +#define IS_TIM_OPM_MODE(MODE) (((MODE) == TIM_OPMode_Single) || \ + ((MODE) == TIM_OPMode_Repetitive)) +/** +* @} +*/ + +/** @defgroup TIM_Channel +* @{ +*/ + +#define TIM_Channel_1 ((uint16_t)0x0000) +#define TIM_Channel_2 ((uint16_t)0x0004) +#define TIM_Channel_3 ((uint16_t)0x0008) +#define TIM_Channel_4 ((uint16_t)0x000C) +#define IS_TIM_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \ + ((CHANNEL) == TIM_Channel_2) || \ + ((CHANNEL) == TIM_Channel_3) || \ + ((CHANNEL) == TIM_Channel_4)) +#define IS_TIM_PWMI_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \ + ((CHANNEL) == TIM_Channel_2)) +#define IS_TIM_COMPLEMENTARY_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \ + ((CHANNEL) == TIM_Channel_2) || \ + ((CHANNEL) == TIM_Channel_3)) +/** +* @} +*/ + +/** @defgroup TIM_Clock_Division_CKD +* @{ +*/ + +#define TIM_CKD_DIV1 ((uint16_t)0x0000) +#define TIM_CKD_DIV2 ((uint16_t)0x0100) +#define TIM_CKD_DIV4 ((uint16_t)0x0200) +#define IS_TIM_CKD_DIV(DIV) (((DIV) == TIM_CKD_DIV1) || \ + ((DIV) == TIM_CKD_DIV2) || \ + ((DIV) == TIM_CKD_DIV4)) +/** +* @} +*/ + +/** @defgroup TIM_Counter_Mode +* @{ +*/ + +#define TIM_CounterMode_Up ((uint16_t)0x0000) +#define TIM_CounterMode_Down ((uint16_t)0x0010) +#define TIM_CounterMode_CenterAligned1 ((uint16_t)0x0020) +#define TIM_CounterMode_CenterAligned2 ((uint16_t)0x0040) +#define TIM_CounterMode_CenterAligned3 ((uint16_t)0x0060) +#define IS_TIM_COUNTER_MODE(MODE) (((MODE) == TIM_CounterMode_Up) || \ + ((MODE) == TIM_CounterMode_Down) || \ + ((MODE) == TIM_CounterMode_CenterAligned1) || \ + ((MODE) == TIM_CounterMode_CenterAligned2) || \ + ((MODE) == TIM_CounterMode_CenterAligned3)) +/** +* @} +*/ + +/** @defgroup TIM_Output_Compare_Polarity +* @{ +*/ + +#define TIM_OCPolarity_High ((uint16_t)0x0000) +#define TIM_OCPolarity_Low ((uint16_t)0x0002) +#define IS_TIM_OC_POLARITY(POLARITY) (((POLARITY) == TIM_OCPolarity_High) || \ + ((POLARITY) == TIM_OCPolarity_Low)) +/** +* @} +*/ + +/** @defgroup TIM_Output_Compare_N_Polarity +* @{ +*/ + +#define TIM_OCNPolarity_High ((uint16_t)0x0000) +#define TIM_OCNPolarity_Low ((uint16_t)0x0008) +#define IS_TIM_OCN_POLARITY(POLARITY) (((POLARITY) == TIM_OCNPolarity_High) || \ + ((POLARITY) == TIM_OCNPolarity_Low)) +/** +* @} +*/ + +/** @defgroup TIM_Output_Compare_states +* @{ +*/ + +#define TIM_OutputState_Disable ((uint16_t)0x0000) +#define TIM_OutputState_Enable ((uint16_t)0x0001) +#define IS_TIM_OUTPUT_STATE(STATE) (((STATE) == TIM_OutputState_Disable) || \ + ((STATE) == TIM_OutputState_Enable)) +/** +* @} +*/ + +/** @defgroup TIM_Output_Compare_N_States +* @{ +*/ + +#define TIM_OutputNState_Disable ((uint16_t)0x0000) +#define TIM_OutputNState_Enable ((uint16_t)0x0004) +#define IS_TIM_OUTPUTN_STATE(STATE) (((STATE) == TIM_OutputNState_Disable) || \ + ((STATE) == TIM_OutputNState_Enable)) +/** +* @} +*/ + +/** @defgroup TIM_Capture_Compare_States +* @{ +*/ + +#define TIM_CCx_Enable ((uint16_t)0x0001) +#define TIM_CCx_Disable ((uint16_t)0x0000) +#define IS_TIM_CCX(CCX) (((CCX) == TIM_CCx_Enable) || \ + ((CCX) == TIM_CCx_Disable)) +/** +* @} +*/ + +/** @defgroup TIM_Capture_Compare_N_States +* @{ +*/ + +#define TIM_CCxN_Enable ((uint16_t)0x0004) +#define TIM_CCxN_Disable ((uint16_t)0x0000) +#define IS_TIM_CCXN(CCXN) (((CCXN) == TIM_CCxN_Enable) || \ + ((CCXN) == TIM_CCxN_Disable)) +/** +* @} +*/ + +/** @defgroup Break_Input_enable_disable +* @{ +*/ + +#define TIM_Break_Enable ((uint16_t)0x1000) +#define TIM_Break_Disable ((uint16_t)0x0000) +#define IS_TIM_BREAK_STATE(STATE) (((STATE) == TIM_Break_Enable) || \ + ((STATE) == TIM_Break_Disable)) +/** +* @} +*/ + +/** @defgroup Break_Polarity +* @{ +*/ + +#define TIM_BreakPolarity_Low ((uint16_t)0x0000) +#define TIM_BreakPolarity_High ((uint16_t)0x2000) +#define IS_TIM_BREAK_POLARITY(POLARITY) (((POLARITY) == TIM_BreakPolarity_Low) || \ + ((POLARITY) == TIM_BreakPolarity_High)) +/** +* @} +*/ + +/** @defgroup TIM_AOE_Bit_Set_Reset +* @{ +*/ + +#define TIM_AutomaticOutput_Enable ((uint16_t)0x4000) +#define TIM_AutomaticOutput_Disable ((uint16_t)0x0000) +#define IS_TIM_AUTOMATIC_OUTPUT_STATE(STATE) (((STATE) == TIM_AutomaticOutput_Enable) || \ + ((STATE) == TIM_AutomaticOutput_Disable)) +/** +* @} +*/ + +/** @defgroup Lock_levels +* @{ +*/ + +#define TIM_LOCKLevel_OFF ((uint16_t)0x0000) +#define TIM_LOCKLevel_1 ((uint16_t)0x0100) +#define TIM_LOCKLevel_2 ((uint16_t)0x0200) +#define TIM_LOCKLevel_3 ((uint16_t)0x0300) +#define IS_TIM_LOCK_LEVEL(LEVEL) (((LEVEL) == TIM_LOCKLevel_OFF) || \ + ((LEVEL) == TIM_LOCKLevel_1) || \ + ((LEVEL) == TIM_LOCKLevel_2) || \ + ((LEVEL) == TIM_LOCKLevel_3)) +/** +* @} +*/ + +/** @defgroup OSSI:_Off-State_Selection_for_Idle_mode_states +* @{ +*/ + +#define TIM_OSSIState_Enable ((uint16_t)0x0400) +#define TIM_OSSIState_Disable ((uint16_t)0x0000) +#define IS_TIM_OSSI_STATE(STATE) (((STATE) == TIM_OSSIState_Enable) || \ + ((STATE) == TIM_OSSIState_Disable)) +/** +* @} +*/ + +/** @defgroup OSSR:_Off-State_Selection_for_Run_mode_states +* @{ +*/ + +#define TIM_OSSRState_Enable ((uint16_t)0x0800) +#define TIM_OSSRState_Disable ((uint16_t)0x0000) +#define IS_TIM_OSSR_STATE(STATE) (((STATE) == TIM_OSSRState_Enable) || \ + ((STATE) == TIM_OSSRState_Disable)) +/** +* @} +*/ + +/** @defgroup TIM_Output_Compare_Idle_State +* @{ +*/ + +#define TIM_OCIdleState_Set ((uint16_t)0x0100) +#define TIM_OCIdleState_Reset ((uint16_t)0x0000) +#define IS_TIM_OCIDLE_STATE(STATE) (((STATE) == TIM_OCIdleState_Set) || \ + ((STATE) == TIM_OCIdleState_Reset)) +/** +* @} +*/ + +/** @defgroup TIM_Output_Compare_N_Idle_State +* @{ +*/ + +#define TIM_OCNIdleState_Set ((uint16_t)0x0200) +#define TIM_OCNIdleState_Reset ((uint16_t)0x0000) +#define IS_TIM_OCNIDLE_STATE(STATE) (((STATE) == TIM_OCNIdleState_Set) || \ + ((STATE) == TIM_OCNIdleState_Reset)) +/** +* @} +*/ + +/** @defgroup TIM_Input_Capture_Polarity +* @{ +*/ + +#define TIM_ICPolarity_Rising ((uint16_t)0x0000) +#define TIM_ICPolarity_Falling ((uint16_t)0x0002) +#define IS_TIM_IC_POLARITY(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \ + ((POLARITY) == TIM_ICPolarity_Falling)) +/** +* @} +*/ + +/** @defgroup TIM_Input_Capture_Selection +* @{ +*/ + +#define TIM_ICSelection_DirectTI ((uint16_t)0x0001) +#define TIM_ICSelection_IndirectTI ((uint16_t)0x0002) +#define TIM_ICSelection_TRC ((uint16_t)0x0003) +#define IS_TIM_IC_SELECTION(SELECTION) (((SELECTION) == TIM_ICSelection_DirectTI) || \ + ((SELECTION) == TIM_ICSelection_IndirectTI) || \ + ((SELECTION) == TIM_ICSelection_TRC)) +/** +* @} +*/ + +/** @defgroup TIM_Input_Capture_Prescaler +* @{ +*/ + +#define TIM_ICPSC_DIV1 ((uint16_t)0x0000) +#define TIM_ICPSC_DIV2 ((uint16_t)0x0004) +#define TIM_ICPSC_DIV4 ((uint16_t)0x0008) +#define TIM_ICPSC_DIV8 ((uint16_t)0x000C) +#define IS_TIM_IC_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ICPSC_DIV1) || \ + ((PRESCALER) == TIM_ICPSC_DIV2) || \ + ((PRESCALER) == TIM_ICPSC_DIV4) || \ + ((PRESCALER) == TIM_ICPSC_DIV8)) +/** +* @} +*/ + +/** @defgroup TIM_interrupt_sources +* @{ +*/ + +#define TIM_IT_Update ((uint16_t)0x0001) +#define TIM_IT_CC1 ((uint16_t)0x0002) +#define TIM_IT_CC2 ((uint16_t)0x0004) +#define TIM_IT_CC3 ((uint16_t)0x0008) +#define TIM_IT_CC4 ((uint16_t)0x0010) +#define TIM_IT_COM ((uint16_t)0x0020) +#define TIM_IT_Trigger ((uint16_t)0x0040) +#define TIM_IT_Break ((uint16_t)0x0080) +#define IS_TIM_IT(IT) ((((IT) & (uint16_t)0xFF00) == 0x0000) && ((IT) != 0x0000)) +#define IS_TIM_PERIPH_IT(PERIPH, TIM_IT) ((((((*(uint32_t*)&(PERIPH)) == TIM2_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM4_BASE)) || (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))))&& \ + (((TIM_IT) & (uint16_t)0xFFA0) == 0x0000) && ((TIM_IT) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM1_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM8_BASE))))&& \ + (((TIM_IT) & (uint16_t)0xFF00) == 0x0000) && ((TIM_IT) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM6_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM7_BASE))))&& \ + (((TIM_IT) & (uint16_t)0xFFFE) == 0x0000) && ((TIM_IT) != 0x0000))) +#define IS_TIM_GET_IT(IT) (((IT) == TIM_IT_Update) || \ + ((IT) == TIM_IT_CC1) || \ + ((IT) == TIM_IT_CC2) || \ + ((IT) == TIM_IT_CC3) || \ + ((IT) == TIM_IT_CC4) || \ + ((IT) == TIM_IT_COM) || \ + ((IT) == TIM_IT_Trigger) || \ + ((IT) == TIM_IT_Break)) +/** +* @} +*/ + +/** @defgroup TIM_DMA_Base_address +* @{ +*/ + +#define TIM_DMABase_CR1 ((uint16_t)0x0000) +#define TIM_DMABase_CR2 ((uint16_t)0x0001) +#define TIM_DMABase_SMCR ((uint16_t)0x0002) +#define TIM_DMABase_DIER ((uint16_t)0x0003) +#define TIM_DMABase_SR ((uint16_t)0x0004) +#define TIM_DMABase_EGR ((uint16_t)0x0005) +#define TIM_DMABase_CCMR1 ((uint16_t)0x0006) +#define TIM_DMABase_CCMR2 ((uint16_t)0x0007) +#define TIM_DMABase_CCER ((uint16_t)0x0008) +#define TIM_DMABase_CNT ((uint16_t)0x0009) +#define TIM_DMABase_PSC ((uint16_t)0x000A) +#define TIM_DMABase_ARR ((uint16_t)0x000B) +#define TIM_DMABase_RCR ((uint16_t)0x000C) +#define TIM_DMABase_CCR1 ((uint16_t)0x000D) +#define TIM_DMABase_CCR2 ((uint16_t)0x000E) +#define TIM_DMABase_CCR3 ((uint16_t)0x000F) +#define TIM_DMABase_CCR4 ((uint16_t)0x0010) +#define TIM_DMABase_BDTR ((uint16_t)0x0011) +#define TIM_DMABase_DCR ((uint16_t)0x0012) +#define IS_TIM_DMA_BASE(BASE) (((BASE) == TIM_DMABase_CR1) || \ + ((BASE) == TIM_DMABase_CR2) || \ + ((BASE) == TIM_DMABase_SMCR) || \ + ((BASE) == TIM_DMABase_DIER) || \ + ((BASE) == TIM_DMABase_SR) || \ + ((BASE) == TIM_DMABase_EGR) || \ + ((BASE) == TIM_DMABase_CCMR1) || \ + ((BASE) == TIM_DMABase_CCMR2) || \ + ((BASE) == TIM_DMABase_CCER) || \ + ((BASE) == TIM_DMABase_CNT) || \ + ((BASE) == TIM_DMABase_PSC) || \ + ((BASE) == TIM_DMABase_ARR) || \ + ((BASE) == TIM_DMABase_RCR) || \ + ((BASE) == TIM_DMABase_CCR1) || \ + ((BASE) == TIM_DMABase_CCR2) || \ + ((BASE) == TIM_DMABase_CCR3) || \ + ((BASE) == TIM_DMABase_CCR4) || \ + ((BASE) == TIM_DMABase_BDTR) || \ + ((BASE) == TIM_DMABase_DCR)) +/** +* @} +*/ + +/** @defgroup TIM_DMA_Burst_Length +* @{ +*/ + +#define TIM_DMABurstLength_1Byte ((uint16_t)0x0000) +#define TIM_DMABurstLength_2Bytes ((uint16_t)0x0100) +#define TIM_DMABurstLength_3Bytes ((uint16_t)0x0200) +#define TIM_DMABurstLength_4Bytes ((uint16_t)0x0300) +#define TIM_DMABurstLength_5Bytes ((uint16_t)0x0400) +#define TIM_DMABurstLength_6Bytes ((uint16_t)0x0500) +#define TIM_DMABurstLength_7Bytes ((uint16_t)0x0600) +#define TIM_DMABurstLength_8Bytes ((uint16_t)0x0700) +#define TIM_DMABurstLength_9Bytes ((uint16_t)0x0800) +#define TIM_DMABurstLength_10Bytes ((uint16_t)0x0900) +#define TIM_DMABurstLength_11Bytes ((uint16_t)0x0A00) +#define TIM_DMABurstLength_12Bytes ((uint16_t)0x0B00) +#define TIM_DMABurstLength_13Bytes ((uint16_t)0x0C00) +#define TIM_DMABurstLength_14Bytes ((uint16_t)0x0D00) +#define TIM_DMABurstLength_15Bytes ((uint16_t)0x0E00) +#define TIM_DMABurstLength_16Bytes ((uint16_t)0x0F00) +#define TIM_DMABurstLength_17Bytes ((uint16_t)0x1000) +#define TIM_DMABurstLength_18Bytes ((uint16_t)0x1100) +#define IS_TIM_DMA_LENGTH(LENGTH) (((LENGTH) == TIM_DMABurstLength_1Byte) || \ + ((LENGTH) == TIM_DMABurstLength_2Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_3Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_4Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_5Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_6Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_7Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_8Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_9Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_10Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_11Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_12Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_13Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_14Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_15Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_16Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_17Bytes) || \ + ((LENGTH) == TIM_DMABurstLength_18Bytes)) +/** +* @} +*/ + +/** @defgroup TIM_DMA_sources +* @{ +*/ + +#define TIM_DMA_Update ((uint16_t)0x0100) +#define TIM_DMA_CC1 ((uint16_t)0x0200) +#define TIM_DMA_CC2 ((uint16_t)0x0400) +#define TIM_DMA_CC3 ((uint16_t)0x0800) +#define TIM_DMA_CC4 ((uint16_t)0x1000) +#define TIM_DMA_COM ((uint16_t)0x2000) +#define TIM_DMA_Trigger ((uint16_t)0x4000) +#define IS_TIM_DMA_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0x80FF) == 0x0000) && ((SOURCE) != 0x0000)) +#define IS_TIM_PERIPH_DMA(PERIPH, SOURCE) ((((((*(uint32_t*)&(PERIPH)) == TIM2_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM4_BASE)) || (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))))&& \ + (((SOURCE) & (uint16_t)0xA0FF) == 0x0000) && ((SOURCE) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM1_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM8_BASE))))&& \ + (((SOURCE) & (uint16_t)0x80FF) == 0x0000) && ((SOURCE) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM6_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM7_BASE))))&& \ + (((SOURCE) & (uint16_t)0xFEFF) == 0x0000) && ((SOURCE) != 0x0000))) +/** +* @} +*/ + +/** @defgroup TIM_External_Trigger_Prescaler +* @{ +*/ + +#define TIM_ExtTRGPSC_OFF ((uint16_t)0x0000) +#define TIM_ExtTRGPSC_DIV2 ((uint16_t)0x1000) +#define TIM_ExtTRGPSC_DIV4 ((uint16_t)0x2000) +#define TIM_ExtTRGPSC_DIV8 ((uint16_t)0x3000) +#define IS_TIM_EXT_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ExtTRGPSC_OFF) || \ + ((PRESCALER) == TIM_ExtTRGPSC_DIV2) || \ + ((PRESCALER) == TIM_ExtTRGPSC_DIV4) || \ + ((PRESCALER) == TIM_ExtTRGPSC_DIV8)) +/** +* @} +*/ + +/** @defgroup TIM_Internal_Trigger_Selection +* @{ +*/ + +#define TIM_TS_ITR0 ((uint16_t)0x0000) +#define TIM_TS_ITR1 ((uint16_t)0x0010) +#define TIM_TS_ITR2 ((uint16_t)0x0020) +#define TIM_TS_ITR3 ((uint16_t)0x0030) +#define TIM_TS_TI1F_ED ((uint16_t)0x0040) +#define TIM_TS_TI1FP1 ((uint16_t)0x0050) +#define TIM_TS_TI2FP2 ((uint16_t)0x0060) +#define TIM_TS_ETRF ((uint16_t)0x0070) +#define IS_TIM_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \ + ((SELECTION) == TIM_TS_ITR1) || \ + ((SELECTION) == TIM_TS_ITR2) || \ + ((SELECTION) == TIM_TS_ITR3) || \ + ((SELECTION) == TIM_TS_TI1F_ED) || \ + ((SELECTION) == TIM_TS_TI1FP1) || \ + ((SELECTION) == TIM_TS_TI2FP2) || \ + ((SELECTION) == TIM_TS_ETRF)) +#define IS_TIM_INTERNAL_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \ + ((SELECTION) == TIM_TS_ITR1) || \ + ((SELECTION) == TIM_TS_ITR2) || \ + ((SELECTION) == TIM_TS_ITR3)) +/** +* @} +*/ + +/** @defgroup TIM_TIx_External_Clock_Source +* @{ +*/ + +#define TIM_TIxExternalCLK1Source_TI1 ((uint16_t)0x0050) +#define TIM_TIxExternalCLK1Source_TI2 ((uint16_t)0x0060) +#define TIM_TIxExternalCLK1Source_TI1ED ((uint16_t)0x0040) +#define IS_TIM_TIXCLK_SOURCE(SOURCE) (((SOURCE) == TIM_TIxExternalCLK1Source_TI1) || \ + ((SOURCE) == TIM_TIxExternalCLK1Source_TI2) || \ + ((SOURCE) == TIM_TIxExternalCLK1Source_TI1ED)) +/** +* @} +*/ + +/** @defgroup TIM_External_Trigger_Polarity +* @{ +*/ +#define TIM_ExtTRGPolarity_Inverted ((uint16_t)0x8000) +#define TIM_ExtTRGPolarity_NonInverted ((uint16_t)0x0000) +#define IS_TIM_EXT_POLARITY(POLARITY) (((POLARITY) == TIM_ExtTRGPolarity_Inverted) || \ + ((POLARITY) == TIM_ExtTRGPolarity_NonInverted)) +/** +* @} +*/ + +/** @defgroup TIM_Prescaler_Reload_Mode +* @{ +*/ + +#define TIM_PSCReloadMode_Update ((uint16_t)0x0000) +#define TIM_PSCReloadMode_Immediate ((uint16_t)0x0001) +#define IS_TIM_PRESCALER_RELOAD(RELOAD) (((RELOAD) == TIM_PSCReloadMode_Update) || \ + ((RELOAD) == TIM_PSCReloadMode_Immediate)) +/** +* @} +*/ + +/** @defgroup TIM_Forced_Action +* @{ +*/ + +#define TIM_ForcedAction_Active ((uint16_t)0x0050) +#define TIM_ForcedAction_InActive ((uint16_t)0x0040) +#define IS_TIM_FORCED_ACTION(ACTION) (((ACTION) == TIM_ForcedAction_Active) || \ + ((ACTION) == TIM_ForcedAction_InActive)) +/** +* @} +*/ + +/** @defgroup TIM_Encoder_Mode +* @{ +*/ + +#define TIM_EncoderMode_TI1 ((uint16_t)0x0001) +#define TIM_EncoderMode_TI2 ((uint16_t)0x0002) +#define TIM_EncoderMode_TI12 ((uint16_t)0x0003) +#define IS_TIM_ENCODER_MODE(MODE) (((MODE) == TIM_EncoderMode_TI1) || \ + ((MODE) == TIM_EncoderMode_TI2) || \ + ((MODE) == TIM_EncoderMode_TI12)) +/** +* @} +*/ + + +/** @defgroup TIM_Event_Source +* @{ +*/ + +#define TIM_EventSource_Update ((uint16_t)0x0001) +#define TIM_EventSource_CC1 ((uint16_t)0x0002) +#define TIM_EventSource_CC2 ((uint16_t)0x0004) +#define TIM_EventSource_CC3 ((uint16_t)0x0008) +#define TIM_EventSource_CC4 ((uint16_t)0x0010) +#define TIM_EventSource_COM ((uint16_t)0x0020) +#define TIM_EventSource_Trigger ((uint16_t)0x0040) +#define TIM_EventSource_Break ((uint16_t)0x0080) +#define IS_TIM_EVENT_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0xFF00) == 0x0000) && ((SOURCE) != 0x0000)) +#define IS_TIM_PERIPH_EVENT(PERIPH, EVENT) ((((((*(uint32_t*)&(PERIPH)) == TIM2_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM4_BASE)) || (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))))&& \ + (((EVENT) & (uint16_t)0xFFA0) == 0x0000) && ((EVENT) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM1_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM8_BASE))))&& \ + (((EVENT) & (uint16_t)0xFF00) == 0x0000) && ((EVENT) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM6_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM7_BASE))))&& \ + (((EVENT) & (uint16_t)0xFFFE) == 0x0000) && ((EVENT) != 0x0000))) +/** +* @} +*/ + +/** @defgroup TIM_Update_Source +* @{ +*/ + +#define TIM_UpdateSource_Global ((uint16_t)0x0000) +#define TIM_UpdateSource_Regular ((uint16_t)0x0001) +#define IS_TIM_UPDATE_SOURCE(SOURCE) (((SOURCE) == TIM_UpdateSource_Global) || \ + ((SOURCE) == TIM_UpdateSource_Regular)) +/** +* @} +*/ + +/** @defgroup TIM_Ouput_Compare_Preload_State +* @{ +*/ + +#define TIM_OCPreload_Enable ((uint16_t)0x0008) +#define TIM_OCPreload_Disable ((uint16_t)0x0000) +#define IS_TIM_OCPRELOAD_STATE(STATE) (((STATE) == TIM_OCPreload_Enable) || \ + ((STATE) == TIM_OCPreload_Disable)) +/** +* @} +*/ + +/** @defgroup TIM_Ouput_Compare_Fast_State +* @{ +*/ + +#define TIM_OCFast_Enable ((uint16_t)0x0004) +#define TIM_OCFast_Disable ((uint16_t)0x0000) +#define IS_TIM_OCFAST_STATE(STATE) (((STATE) == TIM_OCFast_Enable) || \ + ((STATE) == TIM_OCFast_Disable)) + +/** +* @} +*/ + +/** @defgroup TIM_Ouput_Compare_Clear_State +* @{ +*/ + +#define TIM_OCClear_Enable ((uint16_t)0x0080) +#define TIM_OCClear_Disable ((uint16_t)0x0000) +#define IS_TIM_OCCLEAR_STATE(STATE) (((STATE) == TIM_OCClear_Enable) || \ + ((STATE) == TIM_OCClear_Disable)) +/** +* @} +*/ + +/** @defgroup TIM_Trigger_Output_Source +* @{ +*/ + +#define TIM_TRGOSource_Reset ((uint16_t)0x0000) +#define TIM_TRGOSource_Enable ((uint16_t)0x0010) +#define TIM_TRGOSource_Update ((uint16_t)0x0020) +#define TIM_TRGOSource_OC1 ((uint16_t)0x0030) +#define TIM_TRGOSource_OC1Ref ((uint16_t)0x0040) +#define TIM_TRGOSource_OC2Ref ((uint16_t)0x0050) +#define TIM_TRGOSource_OC3Ref ((uint16_t)0x0060) +#define TIM_TRGOSource_OC4Ref ((uint16_t)0x0070) +#define IS_TIM_TRGO_SOURCE(SOURCE) (((SOURCE) == TIM_TRGOSource_Reset) || \ + ((SOURCE) == TIM_TRGOSource_Enable) || \ + ((SOURCE) == TIM_TRGOSource_Update) || \ + ((SOURCE) == TIM_TRGOSource_OC1) || \ + ((SOURCE) == TIM_TRGOSource_OC1Ref) || \ + ((SOURCE) == TIM_TRGOSource_OC2Ref) || \ + ((SOURCE) == TIM_TRGOSource_OC3Ref) || \ + ((SOURCE) == TIM_TRGOSource_OC4Ref)) +#define IS_TIM_PERIPH_TRGO(PERIPH, TRGO) (((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM6_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM7_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_Reset)) ||\ + ((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM6_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM7_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_Enable)) ||\ + ((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM6_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM7_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_Update)) ||\ + ((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_OC1)) ||\ + ((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_OC1Ref)) ||\ + ((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_OC2Ref)) ||\ + ((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_OC3Ref)) ||\ + ((((*(uint32_t*)&(PERIPH)) == TIM2_BASE)||(((*(uint32_t*)&(PERIPH)) == TIM1_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM4_BASE))|| \ + (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))||(((*(uint32_t*)&(PERIPH)) == TIM8_BASE))) && \ + ((TRGO) == TIM_TRGOSource_OC4Ref))) +/** +* @} +*/ + +/** @defgroup TIM_Slave_Mode +* @{ +*/ + +#define TIM_SlaveMode_Reset ((uint16_t)0x0004) +#define TIM_SlaveMode_Gated ((uint16_t)0x0005) +#define TIM_SlaveMode_Trigger ((uint16_t)0x0006) +#define TIM_SlaveMode_External1 ((uint16_t)0x0007) +#define IS_TIM_SLAVE_MODE(MODE) (((MODE) == TIM_SlaveMode_Reset) || \ + ((MODE) == TIM_SlaveMode_Gated) || \ + ((MODE) == TIM_SlaveMode_Trigger) || \ + ((MODE) == TIM_SlaveMode_External1)) +/** +* @} +*/ + +/** @defgroup TIM_Master_Slave_Mode +* @{ +*/ + +#define TIM_MasterSlaveMode_Enable ((uint16_t)0x0080) +#define TIM_MasterSlaveMode_Disable ((uint16_t)0x0000) +#define IS_TIM_MSM_STATE(STATE) (((STATE) == TIM_MasterSlaveMode_Enable) || \ + ((STATE) == TIM_MasterSlaveMode_Disable)) +/** +* @} +*/ + +/** @defgroup TIM_Flags +* @{ +*/ + +#define TIM_FLAG_Update ((uint16_t)0x0001) +#define TIM_FLAG_CC1 ((uint16_t)0x0002) +#define TIM_FLAG_CC2 ((uint16_t)0x0004) +#define TIM_FLAG_CC3 ((uint16_t)0x0008) +#define TIM_FLAG_CC4 ((uint16_t)0x0010) +#define TIM_FLAG_COM ((uint16_t)0x0020) +#define TIM_FLAG_Trigger ((uint16_t)0x0040) +#define TIM_FLAG_Break ((uint16_t)0x0080) +#define TIM_FLAG_CC1OF ((uint16_t)0x0200) +#define TIM_FLAG_CC2OF ((uint16_t)0x0400) +#define TIM_FLAG_CC3OF ((uint16_t)0x0800) +#define TIM_FLAG_CC4OF ((uint16_t)0x1000) +#define IS_TIM_GET_FLAG(FLAG) (((FLAG) == TIM_FLAG_Update) || \ + ((FLAG) == TIM_FLAG_CC1) || \ + ((FLAG) == TIM_FLAG_CC2) || \ + ((FLAG) == TIM_FLAG_CC3) || \ + ((FLAG) == TIM_FLAG_CC4) || \ + ((FLAG) == TIM_FLAG_COM) || \ + ((FLAG) == TIM_FLAG_Trigger) || \ + ((FLAG) == TIM_FLAG_Break) || \ + ((FLAG) == TIM_FLAG_CC1OF) || \ + ((FLAG) == TIM_FLAG_CC2OF) || \ + ((FLAG) == TIM_FLAG_CC3OF) || \ + ((FLAG) == TIM_FLAG_CC4OF)) +#define IS_TIM_CLEAR_FLAG(PERIPH, TIM_FLAG) ((((((*(uint32_t*)&(PERIPH)) == TIM2_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM3_BASE))||\ + (((*(uint32_t*)&(PERIPH)) == TIM4_BASE)) || (((*(uint32_t*)&(PERIPH)) == TIM5_BASE))))&& \ + (((TIM_FLAG) & (uint16_t)0xE1A0) == 0x0000) && ((TIM_FLAG) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM1_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM8_BASE))))&& \ + (((TIM_FLAG) & (uint16_t)0xE100) == 0x0000) && ((TIM_FLAG) != 0x0000)) ||\ + (((((*(uint32_t*)&(PERIPH)) == TIM6_BASE) || (((*(uint32_t*)&(PERIPH)) == TIM7_BASE))))&& \ + (((TIM_FLAG) & (uint16_t)0xFFFE) == 0x0000) && ((TIM_FLAG) != 0x0000))) +#define IS_TIM_PERIPH_FLAG(PERIPH, TIM_FLAG) (((((*(uint32_t*)&(PERIPH))==TIM2_BASE) || ((*(uint32_t*)&(PERIPH)) == TIM3_BASE) ||\ + ((*(uint32_t*)&(PERIPH)) == TIM4_BASE) || ((*(uint32_t*)&(PERIPH))==TIM5_BASE) || \ + ((*(uint32_t*)&(PERIPH))==TIM1_BASE) || ((*(uint32_t*)&(PERIPH))==TIM8_BASE)) &&\ + (((TIM_FLAG) == TIM_FLAG_CC1) || ((TIM_FLAG) == TIM_FLAG_CC2) ||\ + ((TIM_FLAG) == TIM_FLAG_CC3) || ((TIM_FLAG) == TIM_FLAG_CC4) || \ + ((TIM_FLAG) == TIM_FLAG_Trigger))) ||\ + ((((*(uint32_t*)&(PERIPH))==TIM2_BASE) || ((*(uint32_t*)&(PERIPH)) == TIM3_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM4_BASE) || ((*(uint32_t*)&(PERIPH))==TIM5_BASE) ||\ + ((*(uint32_t*)&(PERIPH))==TIM1_BASE)|| ((*(uint32_t*)&(PERIPH))==TIM8_BASE) || \ + ((*(uint32_t*)&(PERIPH))==TIM7_BASE) || ((*(uint32_t*)&(PERIPH))==TIM6_BASE)) && \ + (((TIM_FLAG) == TIM_FLAG_Update))) ||\ + ((((*(uint32_t*)&(PERIPH))==TIM1_BASE) || ((*(uint32_t*)&(PERIPH)) == TIM8_BASE)) &&\ + (((TIM_FLAG) == TIM_FLAG_COM) || ((TIM_FLAG) == TIM_FLAG_Break))) ||\ + ((((*(uint32_t*)&(PERIPH))==TIM2_BASE) || ((*(uint32_t*)&(PERIPH)) == TIM3_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == TIM4_BASE) || ((*(uint32_t*)&(PERIPH))==TIM5_BASE) || \ + ((*(uint32_t*)&(PERIPH))==TIM1_BASE) || ((*(uint32_t*)&(PERIPH))==TIM8_BASE)) &&\ + (((TIM_FLAG) == TIM_FLAG_CC1OF) || ((TIM_FLAG) == TIM_FLAG_CC2OF) ||\ + ((TIM_FLAG) == TIM_FLAG_CC3OF) || ((TIM_FLAG) == TIM_FLAG_CC4OF)))) + +/** +* @} +*/ + +/** @defgroup TIM_Input_Capture_Filer_Value +* @{ +*/ + +#define IS_TIM_IC_FILTER(ICFILTER) ((ICFILTER) <= 0xF) +/** +* @} +*/ + +/** @defgroup TIM_External_Trigger_Filter +* @{ +*/ + +#define IS_TIM_EXT_FILTER(EXTFILTER) ((EXTFILTER) <= 0xF) +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Exported_Functions +* @{ +*/ + +void TIM_DeInit(TIM_TypeDef* TIMx); +void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); +void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); +void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); +void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); +void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); +void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct); +void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct); +void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct); +void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); +void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct); +void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct); +void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct); +void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState); +void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource); +void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength); +void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState); +void TIM_InternalClockConfig(TIM_TypeDef* TIMx); +void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource); +void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource, + uint16_t TIM_ICPolarity, uint16_t ICFilter); +void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter); +void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, + uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter); +void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter); +void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode); +void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode); +void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource); +void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode, + uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity); +void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); +void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); +void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); +void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); +void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); +void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); +void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); +void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); +void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); +void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); +void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); +void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); +void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); +void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); +void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); +void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); +void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); +void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); +void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); +void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); +void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); +void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); +void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); +void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx); +void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN); +void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode); +void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource); +void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState); +void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode); +void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource); +void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode); +void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode); +void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter); +void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload); +void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1); +void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2); +void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3); +void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4); +void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); +void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); +void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); +void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); +void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD); +uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx); +uint16_t TIM_GetCapture2(TIM_TypeDef* TIMx); +uint16_t TIM_GetCapture3(TIM_TypeDef* TIMx); +uint16_t TIM_GetCapture4(TIM_TypeDef* TIMx); +uint16_t TIM_GetCounter(TIM_TypeDef* TIMx); +uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx); +FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG); +void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG); +ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT); +void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT); + +#endif /*__HAL_TIM_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ + diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_uart.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_uart.h new file mode 100644 index 000000000..2a34454f1 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_uart.h @@ -0,0 +1,247 @@ +/** +****************************************************************************** +* @file HAL_uart.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the UART +* firmware library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_UART_H +#define __HAL_UART_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup UART +* @{ +*/ + +/** @defgroup UART_Exported_Types +* @{ +*/ + +/** +* @brief UART Init Structure definition +*/ + +typedef struct +{ + uint32_t UART_BaudRate; + uint16_t UART_WordLength; + uint16_t UART_StopBits; + uint16_t UART_Parity; + uint16_t UART_Mode; + uint16_t UART_HardwareFlowControl; +} UART_InitTypeDef; + + +/** +* @} +*/ + +/** @defgroup UART_Exported_Constants +* @{ +*/ + +#define IS_UART_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == UART1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == UART2_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == UART3_BASE)) +#define IS_UART_123_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == UART1_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == UART2_BASE) || \ + ((*(uint32_t*)&(PERIPH)) == UART3_BASE)) + +/** @defgroup UART_Word_Length +* @{ +*/ + +#define UART_WordLength_5b ((uint16_t)0x0000) +#define UART_WordLength_6b ((uint16_t)0x0010) +#define UART_WordLength_7b ((uint16_t)0x0020) +#define UART_WordLength_8b ((uint16_t)0x0030) + + +#define IS_UART_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WordLength_5b) || \ + ((LENGTH) == UART_WordLength_6b) || \ + ((LENGTH) == UART_WordLength_7b) || \ + ((LENGTH) == UART_WordLength_8b)) +/** +* @} +*/ + +/** @defgroup UART_Stop_Bits +* @{ +*/ + +#define UART_StopBits_1 ((uint16_t)0x0000) +#define UART_StopBits_2 ((uint16_t)0x0004) + +#define IS_UART_STOPBITS(STOPBITS) (((STOPBITS) == UART_StopBits_1) || \ + ((STOPBITS) == UART_StopBits_2)) + +/** +* @} +*/ + +/** @defgroup UART_Parity +* @{ +*/ + +#define UART_Parity_No ((uint16_t)0x0000) +#define UART_Parity_Even ((uint16_t)0x0003) +#define UART_Parity_Odd ((uint16_t)0x0001) +#define IS_UART_PARITY(PARITY) (((PARITY) == UART_Parity_No) || \ + ((PARITY) == UART_Parity_Even) || \ + ((PARITY) == UART_Parity_Odd)) +/** +* @} +*/ + +/** @defgroup UART_Mode +* @{ +*/ + +#define UART_Mode_Rx ((uint16_t)0x0008) +#define UART_Mode_Tx ((uint16_t)0x0010) +#define IS_UART_MODE(MODE) ((((MODE) & (uint16_t)0xFFE7) == 0x00) && ((MODE) != (uint16_t)0x00)) + +#define UART_EN ((uint16_t)0x0001) + +/** +* @} +*/ + +/** @defgroup UART_Hardware_Flow_Control +* @{ +*/ +#define UART_HardwareFlowControl_None ((uint16_t)0x0000) + +#define IS_UART_HARDWARE_FLOW_CONTROL(CONTROL)\ + (((CONTROL) == UART_HardwareFlowControl_None) || \ + ((CONTROL) == UART_HardwareFlowControl_RTS) || \ + ((CONTROL) == UART_HardwareFlowControl_CTS) || \ + ((CONTROL) == UART_HardwareFlowControl_RTS_CTS)) + +/** @defgroup UART_Interrupt_definition +* @{ +*/ + + +#define UART_IT_ERR ((uint16_t)0x0020) +#define UART_IT_PE ((uint16_t)0x0010) +#define UART_OVER_ERR ((uint16_t)0x0008) +#define UART_TIMEOUT_ERR ((uint16_t)0x0004) +#define UART_IT_RXIEN ((uint16_t)0x0002) +#define UART_IT_TXIEN ((uint16_t)0x0001) + +#define IS_UART_CONFIG_IT(IT) (((IT) == UART_IT_PE) || ((IT) == UART_IT_TXIEN) || \ + ((IT) == UART_IT_RXIEN) || ((IT) == UART_IT_ERR)) + +#define IS_UART_GET_IT(IT) (((IT) == UART_IT_PE) || ((IT) == UART_IT_TXIEN) || \ + ((IT) == UART_IT_ERR) || ((IT) == UART_IT_RXIEN) || \ + ((IT) == UART_OVER_ERR) || ((IT) == UART_TIMEOUT_ERR)) + +#define IS_UART_CLEAR_IT(IT) ((IT) == UART_IT_RXIEN) + + +/** +* @} +*/ + +/** @defgroup UART_DMA_Requests +* @{ +*/ +#define UART_DMAReq_EN ((uint16_t)0x0002) + +#define IS_UART_DMAREQ(DMAREQ) ((((DMAREQ) & (uint16_t)0xFFFD) == 0x00) && ((DMAREQ) != (uint16_t)0x00)) + +/** +* @} +*/ + + +/** @defgroup UART_Flags +* @{ +*/ + + +#define UART_FLAG_TXEMPTY ((uint16_t)0x0008) +#define UART_FLAG_TXFULL ((uint16_t)0x0004) +#define UART_FLAG_RXAVL ((uint16_t)0x0002) +#define UART_FLAG_TXEPT ((uint16_t)0x0001) + + +#define IS_UART_FLAG(FLAG) (((FLAG) == UART_FLAG_TXEMPTY) || ((FLAG) == UART_FLAG_TXFULL) || \ + ((FLAG) == UART_FLAG_RXAVL) || ((FLAG) == UART_FLAG_TXEPT)) + + +#define IS_UART_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0x00FF) == 0x00) && ((FLAG) != (uint16_t)0x00)) + +#define IS_UART_BAUDRATE(BAUDRATE) (((BAUDRATE) > 0) && ((BAUDRATE) < 0x0044AA21)) +#define IS_UART_ADDRESS(ADDRESS) ((ADDRESS) <= 0xF) +#define IS_UART_DATA(DATA) ((DATA) <= 0x1FF) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup UART_Exported_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup UART_Exported_Functions +* @{ +*/ + +void UART_DeInit(UART_TypeDef* UARTx); +void UART_Init(UART_TypeDef* UARTx, UART_InitTypeDef* UART_InitStruct); +void UART_StructInit(UART_InitTypeDef* UART_InitStruct); +void UART_Cmd(UART_TypeDef* UARTx, FunctionalState NewState); +void UART_ITConfig(UART_TypeDef* UARTx, uint16_t UART_IT, FunctionalState NewState); +void UART_DMACmd(UART_TypeDef* UARTx, uint16_t UART_DMAReq, FunctionalState NewState); +void UART_SendData(UART_TypeDef* UARTx, uint16_t Data); +uint16_t UART_ReceiveData(UART_TypeDef* UARTx); +FlagStatus UART_GetFlagStatus(UART_TypeDef* UARTx, uint16_t UART_FLAG); +void UART_ClearFlag(UART_TypeDef* UARTx, uint16_t UART_FLAG); +ITStatus UART_GetITStatus(UART_TypeDef* UARTx, uint16_t UART_IT); +void UART_ClearITPendingBit(UART_TypeDef* UARTx, uint16_t UART_IT); + +#endif /* __HAL_UART_H */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_wwdg.h b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_wwdg.h new file mode 100644 index 000000000..19fa1de1b --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/inc/HAL_wwdg.h @@ -0,0 +1,106 @@ +/** +****************************************************************************** +* @file HAL_wwdg.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the functions prototypes for the WWDG +* firmware library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __HAL_WWDG_H +#define __HAL_WWDG_H + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_device.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @addtogroup WWDG +* @{ +*/ + +/** @defgroup WWDG_Exported_Types +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup WWDG_Exported_Constants +* @{ +*/ + +/** @defgroup WWDG_Prescaler +* @{ +*/ + +#define WWDG_Prescaler_1 ((uint32_t)0x00000000) +#define WWDG_Prescaler_2 ((uint32_t)0x00000080) +#define WWDG_Prescaler_4 ((uint32_t)0x00000100) +#define WWDG_Prescaler_8 ((uint32_t)0x00000180) +#define IS_WWDG_PRESCALER(PRESCALER) (((PRESCALER) == WWDG_Prescaler_1) || \ + ((PRESCALER) == WWDG_Prescaler_2) || \ + ((PRESCALER) == WWDG_Prescaler_4) || \ + ((PRESCALER) == WWDG_Prescaler_8)) +#define IS_WWDG_WINDOW_VALUE(VALUE) ((VALUE) <= 0x7F) +#define IS_WWDG_COUNTER(COUNTER) (((COUNTER) >= 0x40) && ((COUNTER) <= 0x7F)) + +/** +* @} +*/ + +/** +* @} +*/ + +/** @defgroup WWDG_Exported_Macros +* @{ +*/ +/** +* @} +*/ + +/** @defgroup WWDG_Exported_Functions +* @{ +*/ + +void WWDG_DeInit(void); +void WWDG_SetPrescaler(uint32_t WWDG_Prescaler); +void WWDG_SetWindowValue(uint8_t WindowValue); +void WWDG_EnableIT(void); +void WWDG_SetCounter(uint8_t Counter); +void WWDG_Enable(uint8_t Counter); +FlagStatus WWDG_GetFlagStatus(void); +void WWDG_ClearFlag(void); + +#endif /* __HAL_WWDG_H */ + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_adc.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_adc.c new file mode 100644 index 000000000..2d823182b --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_adc.c @@ -0,0 +1,785 @@ +/** +****************************************************************************** +* @file HAL_adc.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the ADC firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_adc.h" +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup ADC +* @brief ADC driver modules +* @{ +*/ + +/** @defgroup ADC_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup ADC_Private_Defines +* @{ +*/ + + +/* ADCR register Mask */ +#define ADCR_CLEAR_Mask ((uint32_t)0xFFFFF183) + +/* ADCFG register Mask */ +#define ADCFG_CLEAR_Mask ((uint32_t)0xFFFFFF8F) + +/* ADC ADEN mask */ +#define ADCFG_ADEN_Set ((uint32_t)0x00000001) +#define ADCFG_ADEN_Reset ((uint32_t)0xFFFFFFFE) + +/* ADC DMA mask */ +#define ADCR_DMA_Set ((uint32_t)0x00000008) +#define ADCR_DMA_Reset ((uint32_t)0xFFFFFFF7) + +/* ADC Software start mask */ +#define ADCR_SWSTART_Set ((uint32_t)0x00000100) +#define ADCR_SWSTART_Reset ((uint32_t)0xFFFFFEFF) + +/* ADC EXTTRIG mask */ +#define ADCR_EXTTRIG_Set ((uint32_t)0x00000004) +#define ADCR_EXTTRIG_Reset ((uint32_t)0xFFFFFFFB) + +/*seletec channle enable */ +#define CHEN0_ENABLE ((uint32_t)0x00000001) +#define CHEN1_ENABLE ((uint32_t)0x00000002) +#define CHEN2_ENABLE ((uint32_t)0x00000004) +#define CHEN3_ENABLE ((uint32_t)0x00000008) +#define CHEN4_ENABLE ((uint32_t)0x00000010) +#define CHEN5_ENABLE ((uint32_t)0x00000020) +#define CHEN6_ENABLE ((uint32_t)0x00000040) +#define CHEN7_ENABLE ((uint32_t)0x00000080) +#define CHEN8_ENABLE ((uint32_t)0x00000100) +#define CHALL_ENABLE ((uint32_t)0x000001ff) + +#define CHEN_DISABLE ((uint32_t)0xFFFFFE00) + +/* ADC EXTSEL mask */ +#define ADCR_EXTSEL_Reset ((uint32_t)0xFFFFFF8F) + +/* ADC Analog watchdog enable mode mask */ +#define ADCFG_AWDMode_Reset ((uint32_t)0xFFFFFFFD) + +/* ADC AWDCH mask */ +#define ADCR_AWDCH_Reset ((uint32_t)0xFFFF0FFF) + +/* ADC TSPD mask */ +#define ADCHS_TSVREFE_Set ((uint32_t)0x00000100) +#define ADCHS_TSVREFE_Reset ((uint32_t)0xFFFFFEFF) + +/* ADC1 DATA register base address */ +#define ADDATA_ADDRESS ((uint32_t)0x40012400) +/** +* @} +*/ + +/** @defgroup ADC_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup ADC_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup ADC_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup ADC_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the ADCx peripheral registers to their default +* reset values. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @retval : None +*/ +void ADC_DeInit(ADC_TypeDef* ADCx) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + switch (*(uint32_t*)&ADCx) + { + case ADC1_BASE: + /* Enable ADC1 reset state */ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, ENABLE); + /* Release ADC1 from reset state */ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, DISABLE); + break; + + case ADC2_BASE: + /* Enable ADC2 reset state */ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, ENABLE); + /* Release ADC2 from reset state */ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, DISABLE); + break; + + default: + break; + } +} + +/** +* @brief Initializes the ADCx peripheral according to the specified parameters +* in the ADC_InitStruct. +* @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +* @param ADC_InitStruct: pointer to an ADC_InitTypeDef structure that +* contains the configuration information for the specified +* ADC peripheral. +* @retval : None +*/ +void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct) +{ + uint32_t tmpreg1 = 0; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_MODE(ADC_InitStruct->ADC_Mode)); + assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ScanConvMode)); + assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ContinuousConvMode)); + assert_param(IS_ADC_EXT_TRIG(ADC_InitStruct->ADC_ExternalTrigConv)); + assert_param(IS_ADC_DATA_ALIGN(ADC_InitStruct->ADC_DataAlign)); + assert_param(IS_ADC_REGULAR_LENGTH(ADC_InitStruct->ADC_NbrOfChannel)); + /*---------------------------- ADCx ADCFG Configuration -----------------*/ + /* Get the ADCx ADCFG value */ + tmpreg1 = ADCx->ADCFG; + /* Clear ADCPRE bits */ + tmpreg1 &= ADCFG_CLEAR_Mask; + /* Configure ADCx: AD convertion prescare*/ + /* Set ADCPRE bit according to ADC_PRESCARE value */ + tmpreg1 |= (uint32_t)(ADC_InitStruct->ADC_PRESCARE) | ADC_InitStruct->ADC_Resolution; + /* Write to ADCx ADCFG */ + ADCx->ADCFG = tmpreg1; + + /*---------------------------- ADCx ADCR Configuration -----------------*/ + /* Get the ADCx ADCR value */ + tmpreg1 = ADCx->ADCR; + /* Clear ALIGN , ADMD, and TRGEN and TRGSEL bits */ + tmpreg1 &= ADCR_CLEAR_Mask; + /* Configure ADCx: external trigger event and AD conversion mode and ALIGN*/ + /* Set ALIGN bit according to ADC_DataAlign value */ + /* Set TRGEN bits according to ADC_ContinuousConvMode value */ + /* Set TRGSEL bits according to ADC_ExternalTrigConv value */ + + tmpreg1 |= ((uint32_t)ADC_InitStruct->ADC_DataAlign) | ADC_InitStruct->ADC_ExternalTrigConv | + ((uint32_t)ADC_InitStruct->ADC_Mode) ; + + /* Write to ADCx ADCR */ + ADCx->ADCR = tmpreg1; + +} + +/** +* @brief Fills each ADC_InitStruct member with its default value. +* @param ADC_InitStruct : pointer to an ADC_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct) +{ + /* Initialize the ADC_Resolution values */ + ADC_InitStruct->ADC_Resolution = ADC_Resolution_12b; + /* Initialize the ADC_PRESCARE values */ + ADC_InitStruct->ADC_PRESCARE = ADC_PCLK2_PRESCARE_2; + /* Initialize the ADC_Mode member */ + ADC_InitStruct->ADC_Mode = ADC_Mode_Single; + /* Initialize the ADC_ContinuousConvMode member */ + ADC_InitStruct->ADC_ContinuousConvMode = DISABLE; + /* Initialize the ADC_ExternalTrigConv member */ + ADC_InitStruct->ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; + /* Initialize the ADC_DataAlign member */ + ADC_InitStruct->ADC_DataAlign = ADC_DataAlign_Right; + /* Initialize the ADC_NbrOfChannel member */ + +} + +/** +* @brief Enables or disables the specified ADC peripheral. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param NewState: new state of the ADCx peripheral. This parameter +* can be: ENABLE or DISABLE. +* @retval : None +*/ +void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Set the ADEN bit */ + ADCx->ADCFG |= ADCFG_ADEN_Set; + } + else + { + /* Disable the selected ADC peripheral */ + ADCx->ADCFG &= ADCFG_ADEN_Reset; + } +} + +/** +* @brief Enables or disables the specified ADC DMA request. +* @param ADCx: where x can be 1 or 2 to select the ADC peripheral. +* @param NewState: new state of the selected ADC DMA transfer. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_ADC_DMA_PERIPH(ADCx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected ADC DMA request */ + ADCx->ADCR |= ADCR_DMA_Set; + } + else + { + /* Disable the selected ADC DMA request */ + ADCx->ADCR &= ADCR_DMA_Reset; + } +} + +/** +* @brief Enables or disables the specified ADC interrupts. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param ADC_IT: specifies the ADC interrupt sources to be enabled +* or disabled. +* This parameter can be any combination of the following values: +* @arg ADC_IT_EOC: End of conversion interrupt mask +* @arg ADC_IT_AWD: Analog watchdog interrupt mask +* @param NewState: new state of the specified ADC interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState) +{ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + assert_param(IS_ADC_IT(ADC_IT)); + /* Get the ADC IT index */ + //itmask = (uint8_t)ADC_IT; + if (NewState != DISABLE) + { + /* Enable the selected ADC interrupts */ + ADCx->ADCR |= ADC_IT; + } + else + { + /* Disable the selected ADC interrupts */ + ADCx->ADCR &= (~(uint32_t)ADC_IT); + } +} + +/** +* @brief Enables or disables the selected ADC software start conversion . +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param NewState: new state of the selected ADC software start conversion. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected ADC conversion on external event and start the selected + ADC conversion */ + /*Set ADST bit*/ + ADCx->ADCR |= ADCR_SWSTART_Set; + } + else + { + /* Disable the selected ADC conversion on external event and stop the selected + ADC conversion */ + ADCx->ADCR &= ADCR_SWSTART_Reset; + } +} + +/** +* @brief Gets the selected ADC Software start conversion Status. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @retval : The new state of ADC software start conversion (SET or RESET). +*/ +FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + /* Check the status of ADST bit */ + if ((ADCx->ADCR & ADCR_SWSTART_Set) != (uint32_t)RESET) + { + /* ADST bit is set */ + bitstatus = SET; + } + else + { + /* ADST bit is reset */ + bitstatus = RESET; + } + /* Return the ADST bit status */ + return bitstatus; +} + +/** +* @brief Configures for the selected ADC channel its corresponding +* rank in the sequencer and its sample time. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param ADC_Channel: the ADC channel to configure. +* This parameter can be one of the following values: +* @arg ADC_Channel_0: ADC Channel0 selected +* @arg ADC_Channel_1: ADC Channel1 selected +* @arg ADC_Channel_2: ADC Channel2 selected +* @arg ADC_Channel_3: ADC Channel3 selected +* @arg ADC_Channel_4: ADC Channel4 selected +* @arg ADC_Channel_5: ADC Channel5 selected +* @arg ADC_Channel_6: ADC Channel6 selected +* @arg ADC_Channel_7: ADC Channel7 selected +* @arg ADC_Channel_8: ADC Channel8 selected +* @retval : None +*/ +void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_CHANNEL(ADC_Channel)); + assert_param(IS_ADC_REGULAR_RANK(Rank)); + assert_param(IS_ADC_SAMPLE_TIME(ADC_SampleTime)); + tmpreg = ADCx->ADCFG; + tmpreg &= ~(ADC_SMPR_SMP << 10); + ADCx->ADCFG = tmpreg | ((ADC_SampleTime & ADC_SMPR_SMP) << 10); + switch(ADC_Channel) + { + /* set the CHEN0 bit for channel 0 enable*/ + case ADC_Channel_0: ADCx->ADCHS |= CHEN0_ENABLE; + break; + /* set the CHEN1 bit for channel 1 enable*/ + case ADC_Channel_1: ADCx->ADCHS |= CHEN1_ENABLE; + break; + /* set the CHEN2 bit for channel 2 enable*/ + case ADC_Channel_2: ADCx->ADCHS |= CHEN2_ENABLE; + break; + /* set the CHEN3 bit for channel 3 enable*/ + case ADC_Channel_3: ADCx->ADCHS |= CHEN3_ENABLE; + break; + /* set the CHEN4 bit for channel 4 enable*/ + case ADC_Channel_4: ADCx->ADCHS |= CHEN4_ENABLE; + break; + /* set the CHEN5 bit for channel 5 enable*/ + case ADC_Channel_5: ADCx->ADCHS |= CHEN5_ENABLE; + break; + /* set the CHEN6 bit for channel 6 enable*/ + case ADC_Channel_6: ADCx->ADCHS |= CHEN6_ENABLE; + break; + /* set the CHEN7 bit for channel 7 enable*/ + case ADC_Channel_7: ADCx->ADCHS |= CHEN7_ENABLE; + break; + /* set the SENSOREN bit for channel 8 enable*/ + case ADC_Channel_8: ADCx->ADCHS |= CHEN8_ENABLE; //SENSOREN or VREFINT + break; + case ADC_Channel_All: ADCx->ADCHS |= CHALL_ENABLE; //SENSOREN or VREFINT + break; + default: + ADCx->ADCHS &= CHEN_DISABLE; + break; + } +} + +/** +* @brief Enables or disables the ADCx conversion through external trigger. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param NewState: new state of the selected ADC external trigger +* start of conversion. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected ADC conversion on external event */ + ADCx->ADCR |= ADCR_EXTTRIG_Set; + } + else + { + /* Disable the selected ADC conversion on external event */ + ADCx->ADCR &= ADCR_EXTTRIG_Reset; + } +} + +/** +* @brief Returns the last ADCx conversion result data for regular channel. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @retval : The Data conversion value. +*/ +uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + /* Return the selected ADC conversion value */ + return (uint16_t) ADCx->ADDATA; +} + +/** +* @brief Returns the last ADC conversion result data in dual mode. +* @retval : The Data conversion value. +*/ +uint32_t ADC_GetDualModeConversionValue(void) +{ + /* Return the dual mode conversion value */ + return (*(__IO uint32_t *) ADDATA_ADDRESS); +} + +/** +* @brief Configures the ADCx external trigger for injected channels conversion. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param ADC_ExternalTrigInjecConv: specifies the ADC trigger to +* start injected conversion. +* This parameter can be one of the following values: +* @arg ADC_ExternalTrigConv_T1_CC1: Timer1 capture +* compare1 selected (for ADC1) +* @arg ADC_ExternalTrigConv_T1_CC2: Timer1 capture +* compare2 selected (for ADC1) +* @arg ADC_ExternalTrigConv_T1_CC3: Timer1 capture +* compare3 selected (for ADC1) +* @arg ADC_ExternalTrigConv_T2_CC2: Timer2 capture +* compare2 selected (for ADC1) +* @arg ADC_ExternalTrigConv_T3_TRGO: Timer3 TRGO event +* selected (for ADC1) +* @arg ADC_ExternalTrigConv_T4_CC4: Timer4 capture +* compare4 selected (for ADC1) +* @arg ADC_ExternalTrigConv_T3_CC1: Timer3 capture +* compare1 selected (for ADC1) +* @arg ADC_ExternalTrigConv_EXTI_11: EXTI line 11 event +* cselected (for ADC1) +* @arg ADC_ExternalTrigConv_T1_TRGO: Timer1 TRGO event +* selected (for ADC2) +* @arg ADC_ExternalTrigConv_T1_CC4: Timer1 capture +* compare4 selected (for ADC2) +* @arg ADC_ExternalTrigConv_T2_TRGO: Timer2 TRGO event +* selected (for ADC2) +* @arg ADC_ExternalTrigConv_T2_CC1: Timer2 capture +* compare1 selected (for ADC2) +* @arg ADC_ExternalTrigConv_T3_CC4: Timer3 capture +* compare4 selected (for ADC2) +* @arg ADC_ExternalTrigConv_T4_TRGO: Timer4 TRGO event +* selected (for ADC2) +* @arg ADC_ExternalTrigConv_T3_CC1: Timer3 capture +* compare1 selected (for ADC2) +* @arg ADC_ExternalTrigConv_EXTI_15: EXTI line 15 event +* cselected (for ADC2) +* @retval : None +*/ +void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_EXT_INJEC_TRIG(ADC_ExternalTrigInjecConv)); + /* Get the old register value */ + tmpreg = ADCx->ADCR; + /* Clear the old external event selection for injected group */ + tmpreg &= ADCR_EXTSEL_Reset; + /* Set the external event selection for injected group */ + tmpreg |= ADC_ExternalTrigInjecConv; + /* Store the new register value */ + ADCx->ADCR = tmpreg; +} + +/** +* @brief Enables or disables the ADCx injected channels conversion +* through external trigger +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param NewState: new state of the selected ADC external trigger +* start of injected conversion. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected ADC external event selection for injected group */ + ADCx->ADCR |= ADCR_EXTTRIG_Set; + } + else + { + ADCx->ADCR &= ADCR_EXTTRIG_Reset; + } +} + +/** +* @brief Enables or disables the analog watchdog on single/all regular +* or injected channels +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param ADC_AnalogWatchdog: the ADC analog watchdog configuration. +* This parameter can be one of the following values: +* @arg ADC_AnalogWatchdog_SingleRegEnable: Analog watchdog on +* a single regular channel +* @arg ADC_AnalogWatchdog_None: No channel guarded by the +* analog watchdog +* analog watchdog +* @retval : None +*/ +void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_ANALOG_WATCHDOG(ADC_AnalogWatchdog)); + /* Get the old register value */ + tmpreg = ADCx->ADCFG; + /* Clear ADWEN bit */ + tmpreg &= ADCFG_AWDMode_Reset; + /* Set the analog watchdog enable mode */ + tmpreg |= ADC_AnalogWatchdog; + /* Store the new register value */ + ADCx->ADCFG = tmpreg; +} + +/** +* @brief Configures the high and low thresholds of the analog watchdog. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param HighThreshold: the ADC analog watchdog High threshold value. +* This parameter must be a 12bit value. +* @param LowThreshold: the ADC analog watchdog Low threshold value. +* This parameter must be a 12bit value. +* @retval : None +*/ +void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, + uint16_t LowThreshold) +{ + uint32_t tempThreshold; + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_THRESHOLD(HighThreshold)); + assert_param(IS_ADC_THRESHOLD(LowThreshold)); + /* Get the ADCx high threshold */ + tempThreshold = HighThreshold; + /* Set the ADCx high threshold and the ADCx low threshold */ + ADCx->ADCMPR = (tempThreshold << 16) | LowThreshold; +} + +/** +* @brief Configures the analog watchdog guarded single channel +* @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +* @param ADC_Channel: the ADC channel to configure for the analog +* watchdog. +* This parameter can be one of the following values: +* @arg ADC_Channel_0: ADC Channel0 selected +* @arg ADC_Channel_1: ADC Channel1 selected +* @arg ADC_Channel_2: ADC Channel2 selected +* @arg ADC_Channel_3: ADC Channel3 selected +* @arg ADC_Channel_4: ADC Channel4 selected +* @arg ADC_Channel_5: ADC Channel5 selected +* @arg ADC_Channel_6: ADC Channel6 selected +* @arg ADC_Channel_7: ADC Channel7 selected +* @arg ADC_Channel_8: ADC Channel8 selected +* @arg ADC_Channel_All: ADC all Channel selected +* @retval : None +*/ +void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_CHANNEL(ADC_Channel)); + /* Get the old register value */ + tmpreg = ADCx->ADCR; + /* Clear the Analog watchdog channel select bits */ + tmpreg &= ADCR_AWDCH_Reset; + /* Set the Analog watchdog channel */ + tmpreg |= (ADC_Channel << 12); + /* Store the new register value */ + ADCx->ADCR = tmpreg; +} + +/** +* @brief Enables or disables the temperature sensor and Vrefint channel. +* @param NewState: new state of the temperature sensor. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void ADC_TempSensorVrefintCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the temperature sensor and Vrefint channel*/ + ADC1->ADCFG |= ADCFG_TVSEN ; + ADC2->ADCFG |= ADCFG_TVSEN ;//next + } + else + { + /* Disable the temperature sensor and Vrefint channel*/ + ADC1->ADCFG &= ~ ADCFG_TVSEN; + ADC2->ADCFG &= ~ ADCFG_TVSEN; + } +} + +/** +* @brief Checks whether the specified ADC flag is set or not. +* @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +* @param ADC_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg ADC_FLAG_AWD: Analog watchdog flag +* @arg ADC_FLAG_EOC: End of conversion flag +* @arg ADC_FLAG_BUSY: AD conversion busy flag +* @retval : The new state of ADC_FLAG (SET or RESET). +*/ +FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_GET_FLAG(ADC_FLAG)); + /* Check the status of the specified ADC flag */ + if ((ADCx->ADSTA & ADC_FLAG) != (uint8_t)RESET) + { + /* ADC_FLAG is set */ + bitstatus = SET; + } + else + { + /* ADC_FLAG is reset */ + bitstatus = RESET; + } + + /* Return the ADC_FLAG status */ + return bitstatus; +} + +/** +* @brief Clears the ADCx's pending flags. +* @param ADCx: where x can be 1, 2 to select the ADC peripheral. +* @param ADC_FLAG: specifies the flag to clear. +* This parameter can be any combination of the following values: +* @arg ADC_FLAG_AWD: Analog watchdog flag +* @arg ADC_FLAG_EOC: End of conversion flag +* @retval : None +*/ +void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG) +{ + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_CLEAR_FLAG(ADC_FLAG)); + /* Clear the selected ADC flags */ + ADCx->ADSTA |= ADC_FLAG; +} + +/** +* @brief Checks whether the specified ADC interrupt has occurred or not. +* @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +* @param ADC_IT: specifies the ADC interrupt source to check. +* This parameter can be one of the following values: +* @arg ADC_IT_EOC: End of conversion interrupt mask +* @arg ADC_IT_AWD: Analog watchdog interrupt mask +* @retval : The new state of ADC_IT (SET or RESET). +*/ +ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT) +{ + ITStatus bitstatus = RESET; + + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_GET_IT(ADC_IT)); + + /* Check the status of the specified ADC interrupt */ + if (((ADCx->ADSTA & ADC_IT)) != (uint32_t)RESET) + { + /* ADC_IT is set */ + bitstatus = SET; + } + else + { + /* ADC_IT is reset */ + bitstatus = RESET; + } + /* Return the ADC_IT status */ + return bitstatus; +} + +/** +* @brief Clears the ADCx’s interrupt pending bits. +* @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +* @param ADC_IT: specifies the ADC interrupt pending bit to clear. +* This parameter can be any combination of the following values: +* @arg ADC_IT_EOC: End of conversion interrupt mask +* @arg ADC_IT_AWD: Analog watchdog interrupt mask +* @retval : None +*/ +void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT) +{ + + /* Check the parameters */ + assert_param(IS_ADC_ALL_PERIPH(ADCx)); + assert_param(IS_ADC_IT(ADC_IT)); + /* Clear the selected ADC interrupt pending bits */ + ADCx->ADSTA = ADC_IT; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_bkp.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_bkp.c new file mode 100644 index 000000000..c2afb00b9 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_bkp.c @@ -0,0 +1,300 @@ +/** +****************************************************************************** +* @file HAL_bkp.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the BKP firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_bkp.h" +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup BKP +* @brief BKP driver modules +* @{ +*/ + +/** @defgroup BKP_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup BKP_Private_Defines +* @{ +*/ + +/* ------------ BKP registers bit address in the alias region --------------- */ +#define BKP_OFFSET (BKP_BASE - PERIPH_BASE) + +/* --- CR Register ----*/ + +/* Alias word address of TPAL bit */ +#define CR_OFFSET (BKP_OFFSET + 0x30) +#define TPAL_BitNumber 0x01 +#define CR_TPAL_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPAL_BitNumber * 4)) + +/* Alias word address of TPE bit */ +#define TPE_BitNumber 0x00 +#define CR_TPE_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPE_BitNumber * 4)) + +/* --- CSR Register ---*/ + +/* Alias word address of TPIE bit */ +#define CSR_OFFSET (BKP_OFFSET + 0x34) +#define TPIE_BitNumber 0x02 +#define CSR_TPIE_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TPIE_BitNumber * 4)) + +/* Alias word address of TIF bit */ +#define TIF_BitNumber 0x09 +#define CSR_TIF_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TIF_BitNumber * 4)) + +/* Alias word address of TEF bit */ +#define TEF_BitNumber 0x08 +#define CSR_TEF_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TEF_BitNumber * 4)) + +/* ---------------------- BKP registers bit mask ------------------------ */ + +/* RTCCR register bit mask */ +#define RTCCR_CAL_Mask ((uint16_t)0xFF80) +#define RTCCR_Mask ((uint16_t)0xFC7F) + +/* CSR register bit mask */ +#define CSR_CTE_Set ((uint16_t)0x0001) +#define CSR_CTI_Set ((uint16_t)0x0002) + +/** +* @} +*/ + + +/** @defgroup BKP_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup BKP_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup BKP_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup BKP_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the BKP peripheral registers to their default +* reset values. +* @param None +* @retval : None +*/ +void BKP_DeInit(void) +{ + RCC_BackupResetCmd(ENABLE); + RCC_BackupResetCmd(DISABLE); +} + +/** +* @brief Configures the Tamper Pin active level. +* @param BKP_TamperPinLevel: specifies the Tamper Pin active level. +* This parameter can be one of the following values: +* @arg BKP_TamperPinLevel_High: Tamper pin active on high level +* @arg BKP_TamperPinLevel_Low: Tamper pin active on low level +* @retval : None +*/ +void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel) +{ + /* Check the parameters */ + assert_param(IS_BKP_TAMPER_PIN_LEVEL(BKP_TamperPinLevel)); + *(__IO uint32_t *) CR_TPAL_BB = BKP_TamperPinLevel; +} + +/** +* @brief Enables or disables the Tamper Pin activation. +* @param NewState: new state of the Tamper Pin activation. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void BKP_TamperPinCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + *(__IO uint32_t *) CR_TPE_BB = (uint32_t)NewState; +} + +/** +* @brief Enables or disables the Tamper Pin Interrupt. +* @param NewState: new state of the Tamper Pin Interrupt. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void BKP_ITConfig(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + *(__IO uint32_t *) CSR_TPIE_BB = (uint32_t)NewState; +} + +/** +* @brief Select the RTC output source to output on the Tamper pin. +* @param BKP_RTCOutputSource: specifies the RTC output source. +* This parameter can be one of the following values: +* @arg BKP_RTCOutputSource_None: no RTC output on the Tamper pin. +* @arg BKP_RTCOutputSource_CalibClock: output the RTC clock +* with frequency divided by 64 on the Tamper pin. +* @arg BKP_RTCOutputSource_Alarm: output the RTC Alarm pulse +* signal on the Tamper pin. +* @arg BKP_RTCOutputSource_Second: output the RTC Second pulse +* signal on the Tamper pin. +* @retval : None +*/ +void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource) +{ + uint16_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_BKP_RTC_OUTPUT_SOURCE(BKP_RTCOutputSource)); + tmpreg = BKP->RTCCR; + /* Clear CCO, ASOE and ASOS bits */ + tmpreg &= RTCCR_Mask; + + /* Set CCO, ASOE and ASOS bits according to BKP_RTCOutputSource value */ + tmpreg |= BKP_RTCOutputSource; + /* Store the new value */ + BKP->RTCCR = tmpreg; +} + +/** +* @brief Sets RTC Clock Calibration value. +* @param CalibrationValue: specifies the RTC Clock Calibration value. +* This parameter must be a number between 0 and 0x7F. +* @retval : None +*/ +void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue) +{ + uint16_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_BKP_CALIBRATION_VALUE(CalibrationValue)); + tmpreg = BKP->RTCCR; + /* Clear CAL[6:0] bits */ + tmpreg &= RTCCR_CAL_Mask; + /* Set CAL[6:0] bits according to CalibrationValue value */ + tmpreg |= CalibrationValue; + /* Store the new value */ + BKP->RTCCR = tmpreg; +} + +/** +* @brief Writes user data to the specified Data Backup Register. +* @param BKP_DR: specifies the Data Backup Register. +* This parameter can be BKP_DRx where x:[1, 42] +* @param Data: data to write +* @retval : None +*/ +void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data) +{ + /* Check the parameters */ + assert_param(IS_BKP_DR(BKP_DR)); + *(__IO uint16_t *) (BKP_BASE + BKP_DR) = Data; +} + +/** +* @brief Reads data from the specified Data Backup Register. +* @param BKP_DR: specifies the Data Backup Register. +* This parameter can be BKP_DRx where x:[1, 42] +* @retval : The content of the specified Data Backup Register +*/ +uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR) +{ + /* Check the parameters */ + assert_param(IS_BKP_DR(BKP_DR)); + return (*(__IO uint16_t *) (BKP_BASE + BKP_DR)); +} + +/** +* @brief Checks whether the Tamper Pin Event flag is set or not. +* @param None +* @retval : The new state of the Tamper Pin Event flag (SET or RESET). +*/ +FlagStatus BKP_GetFlagStatus(void) +{ + return (FlagStatus)(*(__IO uint32_t *) CSR_TEF_BB); +} + +/** +* @brief Clears Tamper Pin Event pending flag. +* @param None +* @retval : None +*/ +void BKP_ClearFlag(void) +{ + /* Set CTE bit to clear Tamper Pin Event flag */ + BKP->CSR |= CSR_CTE_Set; +} + +/** +* @brief Checks whether the Tamper Pin Interrupt has occurred or not. +* @param None +* @retval : The new state of the Tamper Pin Interrupt (SET or RESET). +*/ +ITStatus BKP_GetITStatus(void) +{ + return (ITStatus)(*(__IO uint32_t *) CSR_TIF_BB); +} + +/** +* @brief Clears Tamper Pin Interrupt pending bit. +* @param None +* @retval : None +*/ +void BKP_ClearITPendingBit(void) +{ + /* Set CTI bit to clear Tamper Pin Interrupt pending bit */ + BKP->CSR |= CSR_CTI_Set; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_can.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_can.c new file mode 100644 index 000000000..49978356c --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_can.c @@ -0,0 +1,971 @@ +/** +****************************************************************************** +* @file HAL_can.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the CAN firmware functions. +****************************************************************************** +* @attention +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+****************************************************************************** +*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_can.h" +#include "HAL_rcc.h" + +/** +* @brief: Deinitialinzes the CAN registers to their default reset values +* @retval: None +*/ +void CAN_DeInit(CAN_TypeDef* CANx) +{ + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + switch (*(uint32_t*)&CANx) + { + case CAN1_BASE: + /* Enable CAN1 reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, ENABLE); + /* Release CAN1 from reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, DISABLE); + break; + default: + break; + } + +} + +/** +* @brief Initializes the CAN peripheral according to the specified +* parameters in the CAN_InitStruct. +* @param CANx: where x can be 1 to select the CAN peripheral. +* @param CAN_InitStruct: pointer to a CAN_InitTypeDef structure that +* contains the configuration information for the CAN peripheral. +* @retval : Constant indicates initialization succeed which will be +* CANINITFAILED or CANINITOK. +*/ +uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_Basic_InitTypeDef* CAN_Basic_InitStruct) +{ + uint8_t InitStatus = CANINITFAILED; + + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(CAN_Basic_InitStruct->SJW)); + assert_param(IS_FUNCTIONAL_STATE(CAN_Basic_InitStruct->BRP)); + assert_param(IS_FUNCTIONAL_STATE(CAN_Basic_InitStruct->SAM)); + assert_param(IS_FUNCTIONAL_STATE(CAN_Basic_InitStruct->TESG2)); + assert_param(IS_FUNCTIONAL_STATE(CAN_Basic_InitStruct->TESG1)); + + CANx->BTR0 = ((uint32_t)(CAN_Basic_InitStruct->SJW) << 6) | ((uint32_t)(CAN_Basic_InitStruct->BRP)); + CANx->BTR1 = ((uint32_t)(CAN_Basic_InitStruct->SAM) << 7) | ((uint32_t)(CAN_Basic_InitStruct->TESG2) << 4) | \ + ((uint32_t)(CAN_Basic_InitStruct->TESG1)); + if(CAN_Basic_InitStruct->GTS == ENABLE) + { + CANx->CMR |= (uint32_t)CAN_SleepMode; + } + else + { + CANx->CMR &= ~(uint32_t)CAN_SleepMode; + } + + CANx->CDR |= ((CAN_Basic_InitStruct->CBP) << 6) | ((CAN_Basic_InitStruct->RXINTEN) << 5) | \ + ((CAN_Basic_InitStruct->CLOSE_OPEN_CLK) << 3) | (CAN_Basic_InitStruct->CDCLK); + + InitStatus = CANINITOK; + return InitStatus; +} + +/** +* @brief Configures the CAN_Basic reception filter according to the specified +* parameters in the CAN_Basic_FilterInitStruct. +* @param CAN_Basic_FilterInitStruct: pointer to a CAN_Basic_FilterInitTypeDef structure that +* contains the configuration information. +* @retval None +*/ +void CAN_FilterInit(CAN_Basic_FilterInitTypeDef* CAN_Basic_FilterInitStruct) +{ + /* Filter Mode */ + CAN1->ACR = CAN_Basic_FilterInitStruct->CAN_FilterId; + CAN1->AMR = CAN_Basic_FilterInitStruct->CAN_FilterMaskId; +} + + +/** +* @brief Fills each CAN_Basic_InitStruct member with its default value. +* @param CAN_Basic_InitStruct : pointer to a CAN_Basic_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void CAN_StructInit(CAN_Basic_InitTypeDef* CAN_Basic_InitStruct) +{ + /*--------------- Reset CAN_Basic init structure parameters values -----------------*/ + + + /* initialize the BRP member(where can be set with (0..63))*/ + CAN_Basic_InitStruct->BRP = 0x0; + /* initialize the SJW member(where can be set with (0..3)) */ + CAN_Basic_InitStruct->SJW = 0x0; + /* Initialize the TESG1 member(where can be set with (0..15)) */ + CAN_Basic_InitStruct->TESG1 = 0x0; + /* Initialize the TESG2 member(where can be set with(0..7)) */ + CAN_Basic_InitStruct->TESG2 = 0x0; + /* Initialize the SAM member(where can be set (SET or RESET)) */ + CAN_Basic_InitStruct->SAM = RESET; + /* Initialize the GTS member to Sleep Mode(where can be set (ENABLE or DISABLE)) */ + CAN_Basic_InitStruct->GTS = DISABLE; + /* Initialize the external pin CLKOUT frequence */ + CAN_Basic_InitStruct->CDCLK = 0x0; + /* Initialize the external clk is open or close */ + CAN_Basic_InitStruct->CLOSE_OPEN_CLK = 0x0; + /* Initialize the TX1 pin work as rx interrupt output */ + CAN_Basic_InitStruct->RXINTEN = 0x0; + /* Initialize the CBP of CDR register */ + CAN_Basic_InitStruct->CBP = 0x0; +} + +/** +* @brief Enables or disables the specified CAN interrupts. +* @param CANx: where x can be 1 to select the CAN peripheral. +* @param CAN_IT: specifies the CAN interrupt sources to be enabled or +* disabled. +* This parameter can be: CAN_IT_OIE, CAN_IT_EIE, CAN_IT_TIE, +* CAN_IT_RIE,. +* @param Newstate: new state of the CAN interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None. +*/ +void CAN_ITConfig(CAN_TypeDef* CANx, uint32_t CAN_IT, FunctionalState Newstate) +{ + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + assert_param(IS_CAN_ITConfig(CAN_IT)); + assert_param(IS_FUNCTIONAL_STATE(Newstate)); + if (Newstate != DISABLE) + { + /* Enable the selected CAN interrupt */ + CANx->CR |= CAN_IT; + } + else + { + /* Disable the selected CAN interrupt */ + CANx->CR &= ~CAN_IT; + } +} + + +/** +* @brief Initiates and transmits a CAN frame message. +* @param CANx: where x can be 1 to select the CAN peripheral. +* @param TxMessage: pointer to a structure which contains CAN Id, CAN DLC and CAN data. +* @retval CANTXOK if the CAN driver transmits the message +*/ +uint8_t CAN_Transmit(CAN_TypeDef* CANx, CanBasicTxMsg* BasicTxMessage) +{ + /* TXOK and TME bits */ + uint8_t state = 0; + /* Check the parameters */ + assert_param(IS_CAN_RTR(BasicTxMessage->RTR)); + assert_param(IS_CAN_DLC(BasicTxMessage->DLC)); + + CANx->TXID0 = (BasicTxMessage->IDH); + CANx->TXID1 = (BasicTxMessage->IDL << 5) | (BasicTxMessage->RTR << 4) | (BasicTxMessage->DLC); + if((FunctionalState)(BasicTxMessage->RTR) != ENABLE) + { + CANx->TXDR0 = BasicTxMessage->Data[0]; + CANx->TXDR1 = BasicTxMessage->Data[1]; + CANx->TXDR2 = BasicTxMessage->Data[2]; + CANx->TXDR3 = BasicTxMessage->Data[3]; + CANx->TXDR4 = BasicTxMessage->Data[4]; + CANx->TXDR5 = BasicTxMessage->Data[5]; + CANx->TXDR6 = BasicTxMessage->Data[6]; + CANx->TXDR7 = BasicTxMessage->Data[7]; + } + + CANx->CMR = CAN_CMR_TR; + + return state; +} + +/** +* @brief Cancels a transmit request. +* @param CANx: where x can be 1 to select the CAN peripheral. + +* @retval None +*/ +void CAN_CancelTransmit(CAN_TypeDef* CANx) +{ + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + assert_param(IS_CAN_TRANSMITMAILBOX(Mailbox)); + /* abort transmission */ + CANx->CMR = CAN_AT; + +} + +/** +* @brief Releases the specified receive FIFO. +* @param CANx: where x can be 1 to select the CAN peripheral. +* @retval None +*/ +void CAN_FIFORelease(CAN_TypeDef* CANx) +{ + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + + /* Release FIFO */ + CANx->CMR |= (uint32_t)CAN_RRB; + +} + +/** +* @brief Receives a correct CAN frame. +* @param CANx: where x can be 1 to select the CAN peripheral. +* @param RxMessage: pointer to a structure receive frame which contains CAN Id, +* CAN DLC, CAN data and FMI number. +* @retval None +*/ +void CAN_Receive(CAN_TypeDef* CANx, CanBasicRxMsg* BasicRxMessage) +{ + uint16_t tempid; + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + assert_param(IS_CAN_FIFO(FIFONumber)); + BasicRxMessage->RTR = (uint8_t)((CANx->RXID1) >> 4) & 0x1; + BasicRxMessage->DLC = (uint8_t)((CANx->RXID1) & 0xf); + tempid = (uint16_t)(((CANx->RXID1) & 0xe0) >> 5); + tempid |= (uint16_t)(CANx->RXID0 << 3); + BasicRxMessage->ID = tempid; + BasicRxMessage->Data[0] = CAN1->RXDR0; + BasicRxMessage->Data[1] = CAN1->RXDR1; + BasicRxMessage->Data[2] = CAN1->RXDR2; + BasicRxMessage->Data[3] = CAN1->RXDR3; + BasicRxMessage->Data[4] = CAN1->RXDR4; + BasicRxMessage->Data[5] = CAN1->RXDR5; + BasicRxMessage->Data[6] = CAN1->RXDR6; + BasicRxMessage->Data[7] = CAN1->RXDR7; + CAN_FIFORelease( CANx); +} + +/** +* @brief: Select the Sleep mode or not in Basic workmode +* @param: NewState to go into the Sleep mode or go out +* @retval: None +*/ +uint8_t CAN_Sleep(CAN_TypeDef* CANx) +{ + uint8_t sleepstatus = CANSLEEPFAILED; + + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + CANx->CMR |= CAN_SleepMode; + if((CANx->CMR & 0x10) == CAN_SleepMode) + { + sleepstatus = CANSLEEPOK; + } + /* At this step, sleep mode status */ + return (uint8_t)sleepstatus; + +} + +/** +* @brief Wakes the CAN up. +* @param CANx: where x can be 1 to select the CAN peripheral. +* @retval : CANWAKEUPOK if sleep mode left, CANWAKEUPFAILED in an other +* case. +*/ +uint8_t CAN_WakeUp(CAN_TypeDef* CANx) +{ + uint8_t wakeupstatus = CANWAKEUPFAILED; + + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + + /* Wake up request */ + CANx->CMR &= ~CAN_SleepMode; + + /* Sleep mode status */ + if((CANx->CMR & 0x01) == 0) + { + /* Sleep mode exited */ + wakeupstatus = CANWAKEUPOK; + } + /* At this step, sleep mode status */ + return (uint8_t)wakeupstatus; +} + + +/** +* @brief Checks whether the specified CAN flag is set or not. +* @param CANx: where x can be 1 or 2 to to select the CAN peripheral. +* @param CAN_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg CAN_STATUS_RBS: Receive buffer status +* @arg CAN_STATUS_DOS: Data overflow status +* @arg CAN_STATUS_TBS: Transmit buffer status +* @arg CAN_STATUS_TCS: Transmit complete status +* @arg CAN_STATUS_RS: Receiving status +* @arg CAN_STATUS_TS: Transmiting status +* @arg CAN_STATUS_ES: Error status +* @arg CAN_STATUS_BS: bus status, close or open +* @retval The new state of CAN_FLAG (SET or RESET). +*/ +FlagStatus CAN_GetFlagStatus(CAN_TypeDef* CANx, uint32_t CAN_FLAG) +{ + FlagStatus bitstatus = RESET; + + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + assert_param(IS_CAN_GET_FLAG(CAN_FLAG)); + + + if((CANx->SR & CAN_FLAG) == CAN_FLAG) + { + /* CAN_FLAG is set */ + bitstatus = SET; + } + else + { + /* CAN_FLAG is reset */ + bitstatus = RESET; + } + /* Return the CAN_FLAG status */ + return bitstatus; +} + +/** +* @brief Checks whether the specified CAN interrupt has occurred or not. +* @param CANx: where x can be 1 to select the CAN peripheral. +* @param CAN_IT: specifies the CAN interrupt source to check. +* This parameter can be one of the following values: +* @arg CAN_IT_RI: Receive FIFO not empty Interrupt +* @arg CAN_IT_TI: Transmit Interrupt +* @arg CAN_IT_EI: ERROR Interrupt +* @arg CAN_IT_DOI: Data voerflow Interrupt +* @arg CAN_IT_WUI: Wakeup Interrupt +* @arg CAN_IT_ALL: use it can enble all Interrupt +* @retval The current state of CAN_IT (SET or RESET). +*/ +ITStatus CAN_GetITStatus(CAN_TypeDef* CANx, uint32_t CAN_IT) +{ + ITStatus itstatus = RESET; + + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + assert_param(IS_CAN_IT(CAN_IT)); + + /* check the interrupt enable bit */ + if((CANx->IR & CAN_IT) != CAN_IT) + { + itstatus = RESET; + } + else + { + itstatus = SET; + } + + return itstatus; +} + + +/** +* @brief: Select the can work as peli mode or basic mode +* @param CANx: where x can be 1 or 2 to to select the CAN peripheral. +* @param CAN_MODE: specifies the work mode:CAN_BASICMode,CAN_PELIMode +* @retval: None +*/ +void CAN_Mode_Cmd(CAN_TypeDef* CANx, uint32_t CAN_MODE) +{ + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + + CANx->CDR |= CAN_MODE; +} + + +/** +* @brief: Select the Reset mode or not +* @param CANx: where x can be 1 or 2 to to select the CAN peripheral. +* @param: NewState to go into the Reset mode or go out +* @retval: None +*/ +void CAN_ResetMode_Cmd(CAN_TypeDef* CANx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + + if(NewState == ENABLE) + { + CANx->CR |= CAN_ResetMode; + } + else + { + CANx->CR &= ~CAN_ResetMode; + } +} + +/** +* @brief Clear the data overflow. +* @param CANx: where x can be 1 or 2 to to select the CAN peripheral. +* @retval None +*/ +void CAN_ClearDataOverflow(CAN_TypeDef* CANx) +{ + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + + CANx->CMR |= (uint32_t)CAN_CDO; + +} + +/** +* @brief Clears the CAN's IT pending. +* @param CANx: where x can be 1 or 2 to to select the CAN peripheral. +* @retval None +*/ +void CAN_ClearITPendingBit(CAN_TypeDef* CANx) +{ + uint32_t temp = 0; + temp = temp; + temp = CANx->IR; //read this register clear all interrupt + +} + + + +/** +* @brief: Select the Sleep mode or not in Peli workmode +* @param: NewState to go into the Sleep mode or go out +* @retval: None +*/ +void CAN_Peli_SleepMode_Cmd(FunctionalState NewState) +{ + if(NewState == ENABLE) + CAN1_PELI->MOD |= CAN_SleepMode; + else + CAN1_PELI->MOD &= ~CAN_SleepMode; +} + + +/** +* @brief Fills each CAN1_PELI_InitStruct member with its default value. +* @param CAN_Peli_InitStruct : pointer to a CAN_Peli_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void CAN_Peli_StructInit(CAN_Peli_InitTypeDef* CAN_Peli_InitStruct) +{ + /*--------------- Reset CAN_Peli init structure parameters values -----------------*/ + + /* initialize the BRP member(where can be set with (0..63))*/ + CAN_Peli_InitStruct->BRP = 0x0; + /* initialize the SJW member(where can be set with (0..3)) */ + CAN_Peli_InitStruct->SJW = 0x0; + /* Initialize the TESG1 member(where can be set with (0..15)) */ + CAN_Peli_InitStruct->TESG1 = 0x0; + /* Initialize the TESG2 member(where can be set with(0..7)) */ + CAN_Peli_InitStruct->TESG2 = 0x0; + /* Initialize the SAM member(where can be set (SET or RESET)) */ + CAN_Peli_InitStruct->SAM = RESET; + /* Initialize the LOM member*/ + CAN_Peli_InitStruct->LOM = DISABLE; + /* Initialize the STM member*/ + CAN_Peli_InitStruct->STM = DISABLE; + /* Initialize the SM member*/ + CAN_Peli_InitStruct->SM = DISABLE; + CAN_Peli_InitStruct->SRR = DISABLE; + CAN_Peli_InitStruct->EWLR = 0x96; +} + +/** +* @brief Initializes the CAN_Peli peripheral according to the specified +* parameters in the CAN_Peli_InitStruct. +* @param CAN_Basic_InitStruct: pointer to a CAN_Peli_InitTypeDef structure that contains +* the configuration information for the CAN peripheral in the peli workmode. +* @retval None +*/ +void CAN_Peli_Init(CAN_Peli_InitTypeDef* CAN_Peli_InitStruct) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->SJW)); + assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->BRP)); + assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->SAM)); + assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->TESG2)); + assert_param(IS_FUNCTIONAL_STATE(CAN_InitStruct->TESG1)); + + CAN1_PELI->BTR0 = ((uint32_t)CAN_Peli_InitStruct->SJW << 6) | ((uint32_t)CAN_Peli_InitStruct->BRP); + CAN1_PELI->BTR1 = ((uint32_t)CAN_Peli_InitStruct->SAM << 7) | ((uint32_t)CAN_Peli_InitStruct->TESG2 << 4) | \ + ((uint32_t)CAN_Peli_InitStruct->TESG1); + if(CAN_Peli_InitStruct->LOM == ENABLE) + CAN1_PELI->MOD |= (uint32_t)CAN_ListenOnlyMode; + else + CAN1_PELI->MOD &= ~(uint32_t)CAN_ListenOnlyMode; + if(CAN_Peli_InitStruct->STM == ENABLE) + CAN1_PELI->MOD |= (uint32_t)CAN_SeftTestMode; + else + CAN1_PELI->MOD &= ~(uint32_t)CAN_SeftTestMode; + if(CAN_Peli_InitStruct->SM == ENABLE) + CAN1_PELI->MOD |= (uint32_t)CAN_SleepMode; + else + CAN1_PELI->MOD &= ~(uint32_t)CAN_SleepMode; + CAN1_PELI->EWLR = (uint32_t)CAN_Peli_InitStruct->EWLR; +} + + + +/** +* @brief Configures the CAN_Peli reception filter according to the specified +* parameters in the CAN_Peli_FilterInitStruct. +* @param CAN_Peli_FilterInitStruct: pointer to a CAN_Peli_FilterInitTypeDef structure that +* contains the configuration information. +* @retval None +*/ +void CAN_Peli_FilterInit(CAN_Peli_FilterInitTypeDef* CAN_Peli_FilterInitStruct) +{ + if(CAN_Peli_FilterInitStruct->AFM == CAN_FilterMode_Singal) + CAN1_PELI->MOD |= (uint32_t)CAN_FilterMode_Singal; + else + CAN1_PELI->MOD &= (uint32_t)CAN_FilterMode_Double; + + CAN1_PELI->FF = CAN_Peli_FilterInitStruct->CAN_FilterId0; + CAN1_PELI->ID0 = CAN_Peli_FilterInitStruct->CAN_FilterId1; + CAN1_PELI->ID1 = CAN_Peli_FilterInitStruct->CAN_FilterId2; + CAN1_PELI->DATA0 = CAN_Peli_FilterInitStruct->CAN_FilterId3; + + CAN1_PELI->DATA1 = CAN_Peli_FilterInitStruct->CAN_FilterMaskId0; + CAN1_PELI->DATA2 = CAN_Peli_FilterInitStruct->CAN_FilterMaskId1; + CAN1_PELI->DATA3 = CAN_Peli_FilterInitStruct->CAN_FilterMaskId2; + CAN1_PELI->DATA4 = CAN_Peli_FilterInitStruct->CAN_FilterMaskId3; +} + +/** +* @brief Fills each CAN_Peli_FilterInitStruct member with its default value. +* @param CAN_Peli_FilterInitStruct: pointer to a CAN_InitTypeDef structure which ill be initialized. +* @retval None +*/ +void CAN_Peli_FilterStructInit(CAN_Peli_FilterInitTypeDef* CAN_Peli_FilterInitStruct) +{ + CAN_Peli_FilterInitStruct->CAN_FilterId0 = 0; + CAN_Peli_FilterInitStruct->CAN_FilterId1 = 0; + CAN_Peli_FilterInitStruct->CAN_FilterId2 = 0; + CAN_Peli_FilterInitStruct->CAN_FilterId3 = 0; + + CAN_Peli_FilterInitStruct->CAN_FilterMaskId0 = 0; + CAN_Peli_FilterInitStruct->CAN_FilterMaskId1 = 0; + CAN_Peli_FilterInitStruct->CAN_FilterMaskId2 = 0; + CAN_Peli_FilterInitStruct->CAN_FilterMaskId3 = 0; +} + + +/** +* @brief Initiates and transmits a CAN frame message. +* @param TxMessage: pointer to a structure which contains CAN Id, CAN DLC and CAN data. +* @retval None +*/ +void CAN_Peli_Transmit(CanPeliTxMsg* PeliTxMessage) +{ + /* Check the parameters */ + assert_param(IS_CAN_RTR(PeliTxMessage->RTR)); + assert_param(IS_CAN_DLC(PeliTxMessage->DLC)); + + CAN1_PELI->FF = (PeliTxMessage->FF << 7) | (PeliTxMessage->RTR << 6) | (PeliTxMessage->DLC); + if(((FunctionalState)PeliTxMessage->FF) != ENABLE) + { + CAN1_PELI->ID0 = (PeliTxMessage->IDHH); + // CAN1_PELI->ID1 = ((PeliTxMessage->IDHL)<<5); + CAN1_PELI->ID1 = (PeliTxMessage->IDHL & 0xE0); + if((FunctionalState)(PeliTxMessage->RTR) != ENABLE) + { + CAN1_PELI->DATA0 = PeliTxMessage->Data[0]; + CAN1_PELI->DATA1 = PeliTxMessage->Data[1]; + CAN1_PELI->DATA2 = PeliTxMessage->Data[2]; + CAN1_PELI->DATA3 = PeliTxMessage->Data[3]; + CAN1_PELI->DATA4 = PeliTxMessage->Data[4]; + CAN1_PELI->DATA5 = PeliTxMessage->Data[5]; + CAN1_PELI->DATA6 = PeliTxMessage->Data[6]; + CAN1_PELI->DATA7 = PeliTxMessage->Data[7]; + } + } + else + { + CAN1_PELI->ID0 = PeliTxMessage->IDHH; + CAN1_PELI->ID1 = PeliTxMessage->IDHL; + CAN1_PELI->DATA0 = PeliTxMessage->IDLH; + CAN1_PELI->DATA1 = PeliTxMessage->IDLL; + if((FunctionalState)(PeliTxMessage->RTR) != ENABLE) + { + CAN1_PELI->DATA2 = PeliTxMessage->Data[0]; + CAN1_PELI->DATA3 = PeliTxMessage->Data[1]; + CAN1_PELI->DATA4 = PeliTxMessage->Data[2]; + CAN1_PELI->DATA5 = PeliTxMessage->Data[3]; + CAN1_PELI->DATA6 = PeliTxMessage->Data[4]; + CAN1_PELI->DATA7 = PeliTxMessage->Data[5]; + CAN1_PELI->DATA8 = PeliTxMessage->Data[6]; + CAN1_PELI->DATA9 = PeliTxMessage->Data[7]; + } + } + if(CAN1_PELI->MOD & CAN_MOD_STM) + { + CAN1->CMR = CAN_CMR_GTS | CAN_CMR_AT; + } + else + { + CAN1->CMR = CAN_TR | CAN_AT; + } + +} + + + +/** +* @brief Initiates and transmits a CAN frame message. +* @param TxMessage: pointer to a structure which contains CAN Id, CAN DLC and CAN data. +* @retval None +*/ +void CAN_Peli_TransmitRepeat(CanPeliTxMsg* PeliTxMessage) +{ + /* Check the parameters */ + assert_param(IS_CAN_RTR(PeliTxMessage->RTR)); + assert_param(IS_CAN_DLC(PeliTxMessage->DLC)); + + CAN1_PELI->FF = (PeliTxMessage->FF << 7) | (PeliTxMessage->RTR << 6) | (PeliTxMessage->DLC); + if(((FunctionalState)PeliTxMessage->FF) != ENABLE) + { + CAN1_PELI->ID0 = (PeliTxMessage->IDHH); + CAN1_PELI->ID1 = ((PeliTxMessage->IDHL) << 5); + if((FunctionalState)(PeliTxMessage->RTR) != ENABLE) + { + CAN1_PELI->DATA0 = PeliTxMessage->Data[0]; + CAN1_PELI->DATA1 = PeliTxMessage->Data[1]; + CAN1_PELI->DATA2 = PeliTxMessage->Data[2]; + CAN1_PELI->DATA3 = PeliTxMessage->Data[3]; + CAN1_PELI->DATA4 = PeliTxMessage->Data[4]; + CAN1_PELI->DATA5 = PeliTxMessage->Data[5]; + CAN1_PELI->DATA6 = PeliTxMessage->Data[6]; + CAN1_PELI->DATA7 = PeliTxMessage->Data[7]; + } + } + else + { + CAN1_PELI->ID0 = PeliTxMessage->IDHH; + CAN1_PELI->ID1 = PeliTxMessage->IDHL; + CAN1_PELI->DATA0 = PeliTxMessage->IDLH; + CAN1_PELI->DATA1 = PeliTxMessage->IDLL; + if((FunctionalState)(PeliTxMessage->RTR) != ENABLE) + { + CAN1_PELI->DATA2 = PeliTxMessage->Data[0]; + CAN1_PELI->DATA3 = PeliTxMessage->Data[1]; + CAN1_PELI->DATA4 = PeliTxMessage->Data[2]; + CAN1_PELI->DATA5 = PeliTxMessage->Data[3]; + CAN1_PELI->DATA6 = PeliTxMessage->Data[4]; + CAN1_PELI->DATA7 = PeliTxMessage->Data[5]; + CAN1_PELI->DATA8 = PeliTxMessage->Data[6]; + CAN1_PELI->DATA9 = PeliTxMessage->Data[7]; + } + } + + if(CAN1_PELI->MOD & CAN_MOD_STM) + { + CAN1->CMR = CAN_CMR_GTS | CAN_CMR_AT; + } + else + { + CAN1->CMR = CAN_CMR_TR; + } +} + +/** @defgroup CAN_Group3 CAN Frames Reception functions +* @brief CAN Frames Reception functions +* +@verbatim +=============================================================================== +##### CAN Frames Reception functions ##### +=============================================================================== +[..] This section provides functions allowing to +(+) Receive a correct CAN frame. +(+) Release a specified receive FIFO +(+) Return the number of the pending received CAN frames. + +@endverbatim +* @{ +*/ + + +/** +* @brief Receives a correct CAN frame. +* @param RxMessage: pointer to a structure receive frame which contains CAN Id, +* CAN DLC, CAN data and FMI number. +* @retval None +*/ +void CAN_Peli_Receive(CanPeliRxMsg* PeliRxMessage) +{ + uint32_t tempid; + PeliRxMessage->FF = (CAN1_PELI->FF) >> 7; + PeliRxMessage->RTR = ((CAN1_PELI->FF) >> 6) & 0x1; + PeliRxMessage->DLC = (CAN1_PELI->FF) & 0xf; + + if(((FunctionalState)PeliRxMessage->FF) != ENABLE) + { + tempid = (uint32_t)(CAN1_PELI->ID1 >> 5); + tempid |= (uint32_t)(CAN1_PELI->ID0 << 3); + PeliRxMessage->ID = tempid; + PeliRxMessage->Data[0] = CAN1_PELI->DATA0; + PeliRxMessage->Data[1] = CAN1_PELI->DATA1; + PeliRxMessage->Data[2] = CAN1_PELI->DATA2; + PeliRxMessage->Data[3] = CAN1_PELI->DATA3; + PeliRxMessage->Data[4] = CAN1_PELI->DATA4; + PeliRxMessage->Data[5] = CAN1_PELI->DATA5; + PeliRxMessage->Data[6] = CAN1_PELI->DATA6; + PeliRxMessage->Data[7] = CAN1_PELI->DATA7; + } + else + { + tempid = (uint32_t)((CAN1_PELI->DATA1 & 0xf8) >> 3); + tempid |= (uint32_t)(CAN1_PELI->DATA0 << 5); + tempid |= (uint32_t)(CAN1_PELI->ID1 << 13); + tempid |= (uint32_t)(CAN1_PELI->ID0 << 21); + PeliRxMessage->ID = tempid; + PeliRxMessage->Data[0] = CAN1_PELI->DATA2; + PeliRxMessage->Data[1] = CAN1_PELI->DATA3; + PeliRxMessage->Data[2] = CAN1_PELI->DATA4; + PeliRxMessage->Data[3] = CAN1_PELI->DATA5; + PeliRxMessage->Data[4] = CAN1_PELI->DATA6; + PeliRxMessage->Data[5] = CAN1_PELI->DATA7; + PeliRxMessage->Data[6] = CAN1_PELI->DATA8; + PeliRxMessage->Data[7] = CAN1_PELI->DATA9; + } + CAN_FIFORelease( CAN1); +} + + +/** +* @brief Get available current informatoin in receive FIFO only in Peli workmode. +* @retval The value in reg RMC +*/ +uint32_t CAN_Peli_GetRxFIFOInfo(void) +{ + return CAN1_PELI->RMC; +} + + +/** @defgroup CAN_Group5 CAN Bus Error management functions +* @brief CAN Bus Error management functions +* +@verbatim +=============================================================================== +##### CAN Bus Error management functions ##### +=============================================================================== + +@endverbatim +* @{ +*/ + +/** +* @brief Returns the CAN's last error code (LEC). +* @retval Error code: +* - CAN_ERRORCODE_NoErr: No Error +* - CAN_ERRORCODE_StuffErr: Stuff Error +* - CAN_ERRORCODE_FormErr: Form Error +* - CAN_ERRORCODE_ACKErr : Acknowledgment Error +* - CAN_ERRORCODE_BitRecessiveErr: Bit Recessive Error +* - CAN_ERRORCODE_BitDominantErr: Bit Dominant Error +* - CAN_ERRORCODE_CRCErr: CRC Error +* - CAN_ERRORCODE_SoftwareSetErr: Software Set Error +*/ +uint8_t CAN_Peli_GetLastErrorCode(void) +{ + uint8_t errorcode = 0; + + /* Get the error code*/ + errorcode = ((uint8_t)CAN1_PELI->ECC); + + /* Return the error code*/ + return errorcode; +} +/** +* @brief Returns the CAN Receive Error Counter (REC). +* @note In case of an error during reception, this counter is incremented +* by 1 or by 8 depending on the error condition as defined by the CAN +* standard. After every successful reception, the counter is +* decremented by 1 or reset to 120 if its value was higher than 128. +* When the counter value exceeds 127, the CAN controller enters the +* error passive state. +* @retval CAN Receive Error Counter. +*/ +uint8_t CAN_Peli_GetReceiveErrorCounter(void) +{ + uint8_t counter = 0; + + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + + /* Get the Receive Error Counter*/ + counter = (uint8_t)(CAN1_PELI->RXERR); + + /* Return the Receive Error Counter*/ + return counter; +} + + +/** +* @brief Returns the LSB of the 9-bit CANx Transmit Error Counter(TEC). +* @retval LSB of the 8-bit CAN Transmit Error Counter. +*/ +uint8_t CAN_Peli_GetLSBTransmitErrorCounter(void) +{ + uint8_t counter = 0; + + /* Check the parameters */ + assert_param(IS_CAN_ALL_PERIPH(CANx)); + + /* Get the LSB of the 8-bit CAN Transmit Error Counter(TEC) */ + counter = (uint8_t)(CAN1_PELI->TXERR); + + /* Return the LSB of the 8-bit CAN Transmit Error Counter(TEC) */ + return counter; +} +/** @defgroup CAN_Group6 Interrupts and flags management functions +* @brief Interrupts and flags management functions +* +@verbatim +=============================================================================== +##### Interrupts and flags management functions ##### +=============================================================================== +[..] This section provides functions allowing to configure the CAN Interrupts +and to get the status and clear flags and Interrupts pending bits. +[..] The CAN provides 14 Interrupts sources and 15 Flags: + +*** Flags *** +============= +*/ +/** +* @brief Enables or disables the specified CAN interrupts in peli workmode. +* @param CAN_IT: specifies the CAN interrupt sources to be enabled or disabled. +* This parameter can be: +* @arg CAN_IT_RI: Receive FIFO not empty Interrupt +* @arg CAN_IT_TI: Transmit Interrupt +* @arg CAN_IT_EI: ERROR Interrupt +* @arg CAN_IT_DOI: Data voerflow Interrupt +* @arg CAN_IT_WUI: Wakeup Interrupt +* @arg CAN_IT_EPI(only Peli): passive error Interrupt +* @arg CAN_IT_ALI(only Peli): arbiter lose Interrupt +* @arg CAN_IT_BEI(only Peli): bus error Interrupt +@arg CAN_IT_ALL: use it can enble all Interrupt +* @param NewState: new state of the CAN interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval None +*/ +void CAN_Peli_ITConfig(uint32_t CAN_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_CAN_IT(CAN_IT)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + /* Enable the selected CAN interrupt */ + CAN1_PELI->IER |= CAN_IT; + } + else + { + /* Disable the selected CAN interrupt */ + CAN1_PELI->IER &= ~CAN_IT; + } +} + + +/** +* @brief Checks whether the specified CAN interrupt has occurred or not. +* @param CAN_IT: specifies the CAN interrupt source to check. +* This parameter can be one of the following values: +* @arg CAN_IT_RI: Receive FIFO not empty Interrupt +* @arg CAN_IT_TI: Transmit Interrupt +* @arg CAN_IT_EI: ERROR Interrupt +* @arg CAN_IT_DOI: Data voerflow Interrupt +* @arg CAN_IT_WUI: Wakeup Interrupt +* @arg CAN_IT_EPI(only Peli): passive error Interrupt +* @arg CAN_IT_ALI(only Peli): arbiter lose Interrupt +* @arg CAN_IT_BEI(only Peli): bus error Interrupt +@arg CAN_IT_ALL: use it can enble all Interrupt +* @retval The current state of CAN_IT (SET or RESET). +*/ +ITStatus CAN_Peli_GetITStatus(uint32_t CAN_IT) +{ + ITStatus itstatus = RESET; + /* Check the parameters */ + assert_param(IS_CAN_IT(CAN_IT)); + + /* check the interrupt enable bit */ + if((CAN1_PELI->IR & CAN_IT) != CAN_IT) + { + itstatus = RESET; + } + else + { + itstatus = SET; + } + + return itstatus; +} + +/** +* @brief Config CAN_Peli_InitTypeDef baud parameter. +* @param CAN_Peli_InitTypeDef: CAN struct. +* @param SrcClk: CAN module clock. +* @param baud: specified baud. +* @retval The current state of CAN_IT (SET or RESET). +*/ +void CAN_AutoCfg_BaudParam(CAN_Peli_InitTypeDef *CAN_Peli_InitStruct, unsigned int SrcClk, unsigned int baud ) +{ + unsigned int i, value = baud, record = 1; + unsigned int remain = 0, sumPrescaler = 0; + while(( baud == 0 ) || ( SrcClk == 0 )); //·ÀÖ¹²¨ÌØÂʼ°Ê±ÖÓΪ0 + sumPrescaler = SrcClk / baud; //×Ü·ÖƵ + sumPrescaler = sumPrescaler / 2; // + for( i = 25; i > 3; i -- ) + { + remain = sumPrescaler - ((sumPrescaler / i) * i); + if( remain == 0 ) //Õû³ý + { + record = i; + break; + } + else + { + if(remain < value) + { + value = remain; + record = i; + } + } + } + CAN_Peli_InitStruct->SJW = 0; + CAN_Peli_InitStruct->BRP = (sumPrescaler / record) - 1; + CAN_Peli_InitStruct->TESG2 = (record - 3) / 3; + CAN_Peli_InitStruct->TESG1 = (record - 3) - CAN_Peli_InitStruct->TESG2; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + + + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ + diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_crc.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_crc.c new file mode 100644 index 000000000..49b30441f --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_crc.c @@ -0,0 +1,164 @@ +/** +****************************************************************************** +* @file HAL_crc.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the CRC firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_crc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup CRC +* @brief CRC driver modules +* @{ +*/ + +/** @defgroup CRC_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup CRC_Private_Defines +* @{ +*/ + +/* CR register bit mask */ + +#define CR_RESET_Set ((uint32_t)0x00000001) + +/** +* @} +*/ + +/** @defgroup CRC_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup CRC_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup CRC_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup CRC_Private_Functions +* @{ +*/ + +/** +* @brief Resets the CRC Data register (DR). +* @param None +* @retval : None +*/ +void CRC_ResetDR(void) +{ + /* Reset CRC generator */ + CRC->CR = CR_RESET_Set; +} + +/** +* @brief Computes the 32-bit CRC of a given data word(32-bit). +* @param Data: data word(32-bit) to compute its CRC +* @retval : 32-bit CRC +*/ +uint32_t CRC_CalcCRC(uint32_t Data) +{ + CRC->DR = Data; + CRC->DR = CRC_GetCRC();//__NOP();// + return (CRC->DR); +} + +/** +* @brief Computes the 32-bit CRC of a given buffer of data word(32-bit). +* @param pBuffer: pointer to the buffer containing the data to be +* computed +* @param BufferLength: length of the buffer to be computed +* @retval : 32-bit CRC +*/ +uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength) +{ + uint32_t index = 0; + + for(index = 0; index < BufferLength; index++) + { + CRC->DR = pBuffer[index]; + } + return (CRC->DR); +} + +/** +* @brief Returns the current CRC value. +* @param None +* @retval : 32-bit CRC +*/ +uint32_t CRC_GetCRC(void) +{ + return (CRC->DR); +} + +/** +* @brief Stores a 8-bit data in the Independent Data(ID) register. +* @param IDValue: 8-bit value to be stored in the ID register +* @retval : None +*/ +void CRC_SetIDRegister(uint8_t IDValue) +{ + CRC->IDR = IDValue; +} + +/** +* @brief Returns the 8-bit data stored in the Independent Data(ID) register +* @param None +* @retval : 8-bit value of the ID register +*/ +uint8_t CRC_GetIDRegister(void) +{ + return (CRC->IDR); +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_dma.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_dma.c new file mode 100644 index 000000000..6fe71125d --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_dma.c @@ -0,0 +1,545 @@ +/** +****************************************************************************** +* @file HAL_dma.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the DMA firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_dma.h" + + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup DMA +* @brief DMA driver modules +* @{ +*/ + +/** @defgroup DMA_Private_TypesDefinitions +* @{ +*/ +/** +* @} +*/ + +/** @defgroup DMA_Private_Defines +* @{ +*/ + +/* DMA ENABLE mask */ +#define CCR_ENABLE_Set ((uint32_t)0x00000001) +#define CCR_ENABLE_Reset ((uint32_t)0xFFFFFFFE) + +/* DMA1 Channelx interrupt pending bit masks */ +#define DMA1_Channel1_IT_Mask ((uint32_t)0x0000000F) +#define DMA1_Channel2_IT_Mask ((uint32_t)0x000000F0) +#define DMA1_Channel3_IT_Mask ((uint32_t)0x00000F00) +#define DMA1_Channel4_IT_Mask ((uint32_t)0x0000F000) +#define DMA1_Channel5_IT_Mask ((uint32_t)0x000F0000) +#define DMA1_Channel6_IT_Mask ((uint32_t)0x00F00000) +#define DMA1_Channel7_IT_Mask ((uint32_t)0x0F000000) + + + + + + +/* DMA registers Masks */ +#define CCR_CLEAR_Mask ((uint32_t)0xFFFF800F) + +/** +* @} +*/ + +/** @defgroup DMA_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup DMA_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup DMA_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup DMA_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the DMAy Channelx registers to their default reset +* values. +* @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and +* x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the +* DMA Channel. +* @retval : None +*/ +void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); + /* Disable the selected DMAy Channelx */ + DMAy_Channelx->CCR &= CCR_ENABLE_Reset; + /* Reset DMAy Channelx control register */ + DMAy_Channelx->CCR = 0; + + /* Reset DMAy Channelx remaining bytes register */ + DMAy_Channelx->CNDTR = 0; + + /* Reset DMAy Channelx peripheral address register */ + DMAy_Channelx->CPAR = 0; + + /* Reset DMAy Channelx memory address register */ + DMAy_Channelx->CMAR = 0; + switch (*(uint32_t*)&DMAy_Channelx) + { + case DMA1_Channel1_BASE: + /* Reset interrupt pending bits for DMA1 Channel1 */ + DMA1->IFCR |= DMA1_Channel1_IT_Mask; + break; + case DMA1_Channel2_BASE: + /* Reset interrupt pending bits for DMA1 Channel2 */ + DMA1->IFCR |= DMA1_Channel2_IT_Mask; + break; + case DMA1_Channel3_BASE: + /* Reset interrupt pending bits for DMA1 Channel3 */ + DMA1->IFCR |= DMA1_Channel3_IT_Mask; + break; + case DMA1_Channel4_BASE: + /* Reset interrupt pending bits for DMA1 Channel4 */ + DMA1->IFCR |= DMA1_Channel4_IT_Mask; + break; + case DMA1_Channel5_BASE: + /* Reset interrupt pending bits for DMA1 Channel5 */ + DMA1->IFCR |= DMA1_Channel5_IT_Mask; + break; + case DMA1_Channel6_BASE: + /* Reset interrupt pending bits for DMA1 Channel6 */ + DMA1->IFCR |= DMA1_Channel6_IT_Mask; + break; + case DMA1_Channel7_BASE: + /* Reset interrupt pending bits for DMA1 Channel7 */ + DMA1->IFCR |= DMA1_Channel7_IT_Mask; + break; + + default: + break; + } +} + +/** +* @brief Initializes the DMAy Channelx according to the specified +* parameters in the DMA_InitStruct. +* @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and +* x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the +* DMA Channel. +* @param DMA_InitStruct: pointer to a DMA_InitTypeDef structure that +* contains the configuration information for the specified +* DMA Channel. +* @retval : None +*/ +void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); + assert_param(IS_DMA_DIR(DMA_InitStruct->DMA_DIR)); + assert_param(IS_DMA_BUFFER_SIZE(DMA_InitStruct->DMA_BufferSize)); + assert_param(IS_DMA_PERIPHERAL_INC_STATE(DMA_InitStruct->DMA_PeripheralInc)); + assert_param(IS_DMA_MEMORY_INC_STATE(DMA_InitStruct->DMA_MemoryInc)); + assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(DMA_InitStruct->DMA_PeripheralDataSize)); + assert_param(IS_DMA_MEMORY_DATA_SIZE(DMA_InitStruct->DMA_MemoryDataSize)); + assert_param(IS_DMA_MODE(DMA_InitStruct->DMA_Mode)); + assert_param(IS_DMA_PRIORITY(DMA_InitStruct->DMA_Priority)); + assert_param(IS_DMA_M2M_STATE(DMA_InitStruct->DMA_M2M)); + /*--------------------------- DMAy Channelx CCR Configuration -----------------*/ + /* Get the DMAy_Channelx CCR value */ + tmpreg = DMAy_Channelx->CCR; + /* Clear MEM2MEM, PL, MSIZE, PSIZE, MINC, PINC, CIRC and DIR bits */ + tmpreg &= CCR_CLEAR_Mask; + /* Configure DMAy Channelx: data transfer, data size, priority level and mode */ + /* Set DIR bit according to DMA_DIR value */ + /* Set CIRC bit according to DMA_Mode value */ + /* Set PINC bit according to DMA_PeripheralInc value */ + /* Set MINC bit according to DMA_MemoryInc value */ + /* Set PSIZE bits according to DMA_PeripheralDataSize value */ + /* Set MSIZE bits according to DMA_MemoryDataSize value */ + /* Set PL bits according to DMA_Priority value */ + /* Set the MEM2MEM bit according to DMA_M2M value */ + tmpreg |= DMA_InitStruct->DMA_DIR | DMA_InitStruct->DMA_Mode | + DMA_InitStruct->DMA_PeripheralInc | DMA_InitStruct->DMA_MemoryInc | + DMA_InitStruct->DMA_PeripheralDataSize | DMA_InitStruct->DMA_MemoryDataSize | + DMA_InitStruct->DMA_Priority | DMA_InitStruct->DMA_M2M; + /* Write to DMAy Channelx CCR */ + DMAy_Channelx->CCR = tmpreg; + /*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/ + /* Write to DMAy Channelx CNDTR */ + DMAy_Channelx->CNDTR = DMA_InitStruct->DMA_BufferSize; + /*--------------------------- DMAy Channelx CPAR Configuration ----------------*/ + /* Write to DMAy Channelx CPAR */ + DMAy_Channelx->CPAR = DMA_InitStruct->DMA_PeripheralBaseAddr; + /*--------------------------- DMAy Channelx CMAR Configuration ----------------*/ + /* Write to DMAy Channelx CMAR */ + DMAy_Channelx->CMAR = DMA_InitStruct->DMA_MemoryBaseAddr; +} + +/** +* @brief Fills each DMA_InitStruct member with its default value. +* @param DMA_InitStruct : pointer to a DMA_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct) +{ + /*-------------- Reset DMA init structure parameters values ------------------*/ + /* Initialize the DMA_PeripheralBaseAddr member */ + DMA_InitStruct->DMA_PeripheralBaseAddr = 0; + /* Initialize the DMA_MemoryBaseAddr member */ + DMA_InitStruct->DMA_MemoryBaseAddr = 0; + /* Initialize the DMA_DIR member */ + DMA_InitStruct->DMA_DIR = DMA_DIR_PeripheralSRC; + /* Initialize the DMA_BufferSize member */ + DMA_InitStruct->DMA_BufferSize = 0; + /* Initialize the DMA_PeripheralInc member */ + DMA_InitStruct->DMA_PeripheralInc = DMA_PeripheralInc_Disable; + /* Initialize the DMA_MemoryInc member */ + DMA_InitStruct->DMA_MemoryInc = DMA_MemoryInc_Disable; + /* Initialize the DMA_PeripheralDataSize member */ + DMA_InitStruct->DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; + /* Initialize the DMA_MemoryDataSize member */ + DMA_InitStruct->DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; + /* Initialize the DMA_Mode member */ + DMA_InitStruct->DMA_Mode = DMA_Mode_Normal; + /* Initialize the DMA_Priority member */ + DMA_InitStruct->DMA_Priority = DMA_Priority_Low; + /* Initialize the DMA_M2M member */ + DMA_InitStruct->DMA_M2M = DMA_M2M_Disable; +} + +/** +* @brief Enables or disables the specified DMAy Channelx. +* @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and +* x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the +* DMA Channel. +* @param NewState: new state of the DMAy Channelx. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected DMAy Channelx */ + DMAy_Channelx->CCR |= CCR_ENABLE_Set; + } + else + { + /* Disable the selected DMAy Channelx */ + DMAy_Channelx->CCR &= CCR_ENABLE_Reset; + } +} + +/** +* @brief Enables or disables the specified DMAy Channelx interrupts. +* @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and +* x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the +* DMA Channel. +* @param DMA_IT: specifies the DMA interrupts 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 interrupt mask +* @arg DMA_IT_TE: Transfer error interrupt mask +* @param NewState: new state of the specified DMA interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); + assert_param(IS_DMA_CONFIG_IT(DMA_IT)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected DMA interrupts */ + DMAy_Channelx->CCR |= DMA_IT; + } + else + { + /* Disable the selected DMA interrupts */ + DMAy_Channelx->CCR &= ~DMA_IT; + } +} + +/** +* @brief Returns the number of remaining data units in the current +* DMAy Channelx transfer. +* @param DMAy_Channelx: where y can be 1 or 2 to select the DMA and +* x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the +* DMA Channel. +* @retval : The number of remaining data units in the current DMAy Channelx +* transfer. +*/ +uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx) +{ + /* Check the parameters */ + assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx)); + /* Return the number of remaining data units for DMAy Channelx */ + return ((uint16_t)(DMAy_Channelx->CNDTR)); +} + +/** +* @brief Checks whether the specified DMAy Channelx flag is set or not. +* @param DMA_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg DMA1_FLAG_GL1: DMA1 Channel1 global flag. +* @arg DMA1_FLAG_TC1: DMA1 Channel1 transfer complete flag. +* @arg DMA1_FLAG_HT1: DMA1 Channel1 half transfer flag. +* @arg DMA1_FLAG_TE1: DMA1 Channel1 transfer error flag. +* @arg DMA1_FLAG_GL2: DMA1 Channel2 global flag. +* @arg DMA1_FLAG_TC2: DMA1 Channel2 transfer complete flag. +* @arg DMA1_FLAG_HT2: DMA1 Channel2 half transfer flag. +* @arg DMA1_FLAG_TE2: DMA1 Channel2 transfer error flag. +* @arg DMA1_FLAG_GL3: DMA1 Channel3 global flag. +* @arg DMA1_FLAG_TC3: DMA1 Channel3 transfer complete flag. +* @arg DMA1_FLAG_HT3: DMA1 Channel3 half transfer flag. +* @arg DMA1_FLAG_TE3: DMA1 Channel3 transfer error flag. +* @arg DMA1_FLAG_GL4: DMA1 Channel4 global flag. +* @arg DMA1_FLAG_TC4: DMA1 Channel4 transfer complete flag. +* @arg DMA1_FLAG_HT4: DMA1 Channel4 half transfer flag. +* @arg DMA1_FLAG_TE4: DMA1 Channel4 transfer error flag. +* @arg DMA1_FLAG_GL5: DMA1 Channel5 global flag. +* @arg DMA1_FLAG_TC5: DMA1 Channel5 transfer complete flag. +* @arg DMA1_FLAG_HT5: DMA1 Channel5 half transfer flag. +* @arg DMA1_FLAG_TE5: DMA1 Channel5 transfer error flag. +* @arg DMA1_FLAG_GL6: DMA1 Channel6 global flag. +* @arg DMA1_FLAG_TC6: DMA1 Channel6 transfer complete flag. +* @arg DMA1_FLAG_HT6: DMA1 Channel6 half transfer flag. +* @arg DMA1_FLAG_TE6: DMA1 Channel6 transfer error flag. +* @arg DMA1_FLAG_GL7: DMA1 Channel7 global flag. +* @arg DMA1_FLAG_TC7: DMA1 Channel7 transfer complete flag. +* @arg DMA1_FLAG_HT7: DMA1 Channel7 half transfer flag. +* @arg DMA1_FLAG_TE7: DMA1 Channel7 transfer error flag. +* @retval : The new state of DMA_FLAG (SET or RESET). +*/ +FlagStatus DMA_GetFlagStatus(uint32_t DMA_FLAG) +{ + FlagStatus bitstatus = RESET; + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_DMA_GET_FLAG(DMA_FLAG)); + + /* Get DMA1 ISR register value */ + tmpreg = DMA1->ISR ; + + /* Check the status of the specified DMA flag */ + if ((tmpreg & DMA_FLAG) != (uint32_t)RESET) + { + /* DMA_FLAG is set */ + bitstatus = SET; + } + else + { + /* DMA_FLAG is reset */ + bitstatus = RESET; + } + + /* Return the DMA_FLAG status */ + return bitstatus; +} + +/** +* @brief Clears the DMAy Channelx's pending flags. +* @param DMA_FLAG: specifies the flag to clear. +* This parameter can be any combination (for the same DMA) of +* the following values: +* @arg DMA1_FLAG_GL1: DMA1 Channel1 global flag. +* @arg DMA1_FLAG_TC1: DMA1 Channel1 transfer complete flag. +* @arg DMA1_FLAG_HT1: DMA1 Channel1 half transfer flag. +* @arg DMA1_FLAG_TE1: DMA1 Channel1 transfer error flag. +* @arg DMA1_FLAG_GL2: DMA1 Channel2 global flag. +* @arg DMA1_FLAG_TC2: DMA1 Channel2 transfer complete flag. +* @arg DMA1_FLAG_HT2: DMA1 Channel2 half transfer flag. +* @arg DMA1_FLAG_TE2: DMA1 Channel2 transfer error flag. +* @arg DMA1_FLAG_GL3: DMA1 Channel3 global flag. +* @arg DMA1_FLAG_TC3: DMA1 Channel3 transfer complete flag. +* @arg DMA1_FLAG_HT3: DMA1 Channel3 half transfer flag. +* @arg DMA1_FLAG_TE3: DMA1 Channel3 transfer error flag. +* @arg DMA1_FLAG_GL4: DMA1 Channel4 global flag. +* @arg DMA1_FLAG_TC4: DMA1 Channel4 transfer complete flag. +* @arg DMA1_FLAG_HT4: DMA1 Channel4 half transfer flag. +* @arg DMA1_FLAG_TE4: DMA1 Channel4 transfer error flag. +* @arg DMA1_FLAG_GL5: DMA1 Channel5 global flag. +* @arg DMA1_FLAG_TC5: DMA1 Channel5 transfer complete flag. +* @arg DMA1_FLAG_HT5: DMA1 Channel5 half transfer flag. +* @arg DMA1_FLAG_TE5: DMA1 Channel5 transfer error flag. +* @arg DMA1_FLAG_GL6: DMA1 Channel6 global flag. +* @arg DMA1_FLAG_TC6: DMA1 Channel6 transfer complete flag. +* @arg DMA1_FLAG_HT6: DMA1 Channel6 half transfer flag. +* @arg DMA1_FLAG_TE6: DMA1 Channel6 transfer error flag. +* @arg DMA1_FLAG_GL7: DMA1 Channel7 global flag. +* @arg DMA1_FLAG_TC7: DMA1 Channel7 transfer complete flag. +* @arg DMA1_FLAG_HT7: DMA1 Channel7 half transfer flag. +* @arg DMA1_FLAG_TE7: DMA1 Channel7 transfer error flag. +* @retval : None +*/ +void DMA_ClearFlag(uint32_t DMA_FLAG) +{ + /* Check the parameters */ + assert_param(IS_DMA_CLEAR_FLAG(DMA_FLAG)); + + /* Clear the selected DMA flags */ + DMA1->IFCR = DMA_FLAG; +} + +/** +* @brief Checks whether the specified DMAy Channelx interrupt has +* occurred or not. +* @param DMA_IT: specifies the DMA interrupt source to check. +* This parameter can be one of the following values: +* @arg DMA1_IT_GL1: DMA1 Channel1 global interrupt. +* @arg DMA1_IT_TC1: DMA1 Channel1 transfer complete interrupt. +* @arg DMA1_IT_HT1: DMA1 Channel1 half transfer interrupt. +* @arg DMA1_IT_TE1: DMA1 Channel1 transfer error interrupt. +* @arg DMA1_IT_GL2: DMA1 Channel2 global interrupt. +* @arg DMA1_IT_TC2: DMA1 Channel2 transfer complete interrupt. +* @arg DMA1_IT_HT2: DMA1 Channel2 half transfer interrupt. +* @arg DMA1_IT_TE2: DMA1 Channel2 transfer error interrupt. +* @arg DMA1_IT_GL3: DMA1 Channel3 global interrupt. +* @arg DMA1_IT_TC3: DMA1 Channel3 transfer complete interrupt. +* @arg DMA1_IT_HT3: DMA1 Channel3 half transfer interrupt. +* @arg DMA1_IT_TE3: DMA1 Channel3 transfer error interrupt. +* @arg DMA1_IT_GL4: DMA1 Channel4 global interrupt. +* @arg DMA1_IT_TC4: DMA1 Channel4 transfer complete interrupt. +* @arg DMA1_IT_HT4: DMA1 Channel4 half transfer interrupt. +* @arg DMA1_IT_TE4: DMA1 Channel4 transfer error interrupt. +* @arg DMA1_IT_GL5: DMA1 Channel5 global interrupt. +* @arg DMA1_IT_TC5: DMA1 Channel5 transfer complete interrupt. +* @arg DMA1_IT_HT5: DMA1 Channel5 half transfer interrupt. +* @arg DMA1_IT_TE5: DMA1 Channel5 transfer error interrupt. +* @arg DMA1_IT_GL6: DMA1 Channel6 global interrupt. +* @arg DMA1_IT_TC6: DMA1 Channel6 transfer complete interrupt. +* @arg DMA1_IT_HT6: DMA1 Channel6 half transfer interrupt. +* @arg DMA1_IT_TE6: DMA1 Channel6 transfer error interrupt. +* @arg DMA1_IT_GL7: DMA1 Channel7 global interrupt. +* @arg DMA1_IT_TC7: DMA1 Channel7 transfer complete interrupt. +* @arg DMA1_IT_HT7: DMA1 Channel7 half transfer interrupt. +* @arg DMA1_IT_TE7: DMA1 Channel7 transfer error interrupt. +* @retval : The new state of DMA_IT (SET or RESET). +*/ +ITStatus DMA_GetITStatus(uint32_t DMA_IT) +{ + ITStatus bitstatus = RESET; + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_DMA_GET_IT(DMA_IT)); + + /* Get DMA1 ISR register value */ + tmpreg = DMA1->ISR ; + + /* Check the status of the specified DMA interrupt */ + if ((tmpreg & DMA_IT) != (uint32_t)RESET) + { + /* DMA_IT is set */ + bitstatus = SET; + } + else + { + /* DMA_IT is reset */ + bitstatus = RESET; + } + /* Return the DMA_IT status */ + return bitstatus; +} + +/** +* @brief Clears the DMAy Channelx’s interrupt pending bits. +* @param DMA_IT: specifies the DMA interrupt pending bit to clear. +* This parameter can be any combination (for the same DMA) of +* the following values: +* @arg DMA1_IT_GL1: DMA1 Channel1 global interrupt. +* @arg DMA1_IT_TC1: DMA1 Channel1 transfer complete interrupt. +* @arg DMA1_IT_HT1: DMA1 Channel1 half transfer interrupt. +* @arg DMA1_IT_TE1: DMA1 Channel1 transfer error interrupt. +* @arg DMA1_IT_GL2: DMA1 Channel2 global interrupt. +* @arg DMA1_IT_TC2: DMA1 Channel2 transfer complete interrupt. +* @arg DMA1_IT_HT2: DMA1 Channel2 half transfer interrupt. +* @arg DMA1_IT_TE2: DMA1 Channel2 transfer error interrupt. +* @arg DMA1_IT_GL3: DMA1 Channel3 global interrupt. +* @arg DMA1_IT_TC3: DMA1 Channel3 transfer complete interrupt. +* @arg DMA1_IT_HT3: DMA1 Channel3 half transfer interrupt. +* @arg DMA1_IT_TE3: DMA1 Channel3 transfer error interrupt. +* @arg DMA1_IT_GL4: DMA1 Channel4 global interrupt. +* @arg DMA1_IT_TC4: DMA1 Channel4 transfer complete interrupt. +* @arg DMA1_IT_HT4: DMA1 Channel4 half transfer interrupt. +* @arg DMA1_IT_TE4: DMA1 Channel4 transfer error interrupt. +* @arg DMA1_IT_GL5: DMA1 Channel5 global interrupt. +* @arg DMA1_IT_TC5: DMA1 Channel5 transfer complete interrupt. +* @arg DMA1_IT_HT5: DMA1 Channel5 half transfer interrupt. +* @arg DMA1_IT_TE5: DMA1 Channel5 transfer error interrupt. +* @arg DMA1_IT_GL6: DMA1 Channel6 global interrupt. +* @arg DMA1_IT_TC6: DMA1 Channel6 transfer complete interrupt. +* @arg DMA1_IT_HT6: DMA1 Channel6 half transfer interrupt. +* @arg DMA1_IT_TE6: DMA1 Channel6 transfer error interrupt. +* @arg DMA1_IT_GL7: DMA1 Channel7 global interrupt. +* @arg DMA1_IT_TC7: DMA1 Channel7 transfer complete interrupt. +* @arg DMA1_IT_HT7: DMA1 Channel7 half transfer interrupt. +* @arg DMA1_IT_TE7: DMA1 Channel7 transfer error interrupt. +* @retval : None +*/ +void DMA_ClearITPendingBit(uint32_t DMA_IT) +{ + /* Check the parameters */ + assert_param(IS_DMA_CLEAR_IT(DMA_IT)); + + /* Clear the selected DMA interrupt pending bits */ + DMA1->IFCR = DMA_IT; + +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_exti.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_exti.c new file mode 100644 index 000000000..093dc0993 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_exti.c @@ -0,0 +1,262 @@ +/** +****************************************************************************** +* @file HAL_exti.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the EXTI firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_exti.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup EXTI +* @brief EXTI driver modules +* @{ +*/ + +/** @defgroup EXTI_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup EXTI_Private_Defines +* @{ +*/ + +#define EXTI_LineNone ((uint32_t)0x00000) /* No interrupt selected */ + +/** +* @} +*/ + +/** @defgroup EXTI_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup EXTI_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup EXTI_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup EXTI_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the EXTI peripheral registers to their default +* reset values. +* @param None +* @retval : None +*/ +void EXTI_DeInit(void) +{ + EXTI->IMR = 0x00000000; + EXTI->EMR = 0x00000000; + EXTI->RTSR = 0x00000000; + EXTI->FTSR = 0x00000000; + EXTI->PR = 0x001FFFFF; +} + +/** +* @brief Initializes the EXTI peripheral according to the specified +* parameters in the EXTI_InitStruct. +* @param EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure +* that contains the configuration information for the EXTI +* peripheral. +* @retval : None +*/ +void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct) +{ + /* Check the parameters */ + assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode)); + assert_param(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger)); + assert_param(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line)); + assert_param(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd)); + + if (EXTI_InitStruct->EXTI_LineCmd != DISABLE) + { + /* Clear EXTI line configuration */ + EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line; + EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line; + + *(__IO uint32_t *)(EXTI_BASE + (uint32_t)EXTI_InitStruct->EXTI_Mode) |= EXTI_InitStruct->EXTI_Line; + /* Clear Rising Falling edge configuration */ + EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line; + EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line; + + /* Select the trigger for the selected external interrupts */ + if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling) + { + /* Rising Falling edge */ + EXTI->RTSR |= EXTI_InitStruct->EXTI_Line; + EXTI->FTSR |= EXTI_InitStruct->EXTI_Line; + } + else + { + *(__IO uint32_t *)(EXTI_BASE + (uint32_t)EXTI_InitStruct->EXTI_Trigger) |= EXTI_InitStruct->EXTI_Line; + } + } + else + { + /* Disable the selected external lines */ + *(__IO uint32_t *)(EXTI_BASE + (uint32_t)EXTI_InitStruct->EXTI_Mode) &= ~EXTI_InitStruct->EXTI_Line; + } +} + +/** +* @brief Fills each EXTI_InitStruct member with its reset value. +* @param EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct) +{ + EXTI_InitStruct->EXTI_Line = EXTI_LineNone; + EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling; + EXTI_InitStruct->EXTI_LineCmd = DISABLE; +} + +/** +* @brief Generates a Software interrupt. +* @param EXTI_Line: specifies the EXTI lines to be enabled or +* disabled. +* This parameter can be any combination of EXTI_Linex where +* x can be (0..18). +* @retval : None +*/ +void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line) +{ + /* Check the parameters */ + assert_param(IS_EXTI_LINE(EXTI_Line)); + + EXTI->SWIER |= EXTI_Line; +} + +/** +* @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: +* @arg EXTI_Linex: External interrupt line x where x(0..18) +* @retval : The new state of EXTI_Line (SET or RESET). +*/ +FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_GET_EXTI_LINE(EXTI_Line)); + + if ((EXTI->PR & EXTI_Line) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @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 EXTI_Linex where +* x can be (0..18). +* @retval : None +*/ +void EXTI_ClearFlag(uint32_t EXTI_Line) +{ + /* Check the parameters */ + assert_param(IS_EXTI_LINE(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: +* @arg EXTI_Linex: External interrupt line x where x(0..18) +* @retval : The new state of EXTI_Line (SET or RESET). +*/ +ITStatus EXTI_GetITStatus(uint32_t EXTI_Line) +{ + ITStatus bitstatus = RESET; + uint32_t enablestatus = 0; + /* Check the parameters */ + assert_param(IS_GET_EXTI_LINE(EXTI_Line)); + + enablestatus = EXTI->IMR & EXTI_Line; + if (((EXTI->PR & EXTI_Line) != (uint32_t)RESET) && (enablestatus != (uint32_t)RESET)) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @brief Clears the EXTI’s line pending bits. +* @param EXTI_Line: specifies the EXTI lines to clear. +* This parameter can be any combination of EXTI_Linex where +* x can be (0..18). +* @retval : None +*/ +void EXTI_ClearITPendingBit(uint32_t EXTI_Line) +{ + /* Check the parameters */ + assert_param(IS_EXTI_LINE(EXTI_Line)); + + EXTI->PR = EXTI_Line; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_flash.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_flash.c new file mode 100644 index 000000000..4d94ad7f6 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_flash.c @@ -0,0 +1,930 @@ +/** +****************************************************************************** +* @file HAL_flash.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the FLASH firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_flash.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup FLASH +* @brief FLASH driver modules +* @{ +*/ + +/** @defgroup FLASH_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup FLASH_Private_Defines +* @{ +*/ + +/* Flash Access Control Register bits */ +#define ACR_LATENCY_Mask ((uint32_t)0x00000038) +#define ACR_HLFCYA_Mask ((uint32_t)0xFFFFFFF7) +#define ACR_PRFTBE_Mask ((uint32_t)0xFFFFFFEF) + +/* Flash Access Control Register bits */ +#define ACR_PRFTBS_Mask ((uint32_t)0x00000020) + +/* Flash Control Register bits */ +#define CR_PG_Set ((uint32_t)0x00000001) +#define CR_PG_Reset ((uint32_t)0x00001FFE) +#define CR_PER_Set ((uint32_t)0x00000002) +#define CR_PER_Reset ((uint32_t)0x00001FFD) +#define CR_MER_Set ((uint32_t)0x00000004) +#define CR_MER_Reset ((uint32_t)0x00001FFB) +#define CR_OPTPG_Set ((uint32_t)0x00000010) +#define CR_OPTPG_Reset ((uint32_t)0x00001FEF) +#define CR_OPTER_Set ((uint32_t)0x00000020) +#define CR_OPTER_Reset ((uint32_t)0x00001FDF) +#define CR_STRT_Set ((uint32_t)0x00000040) +#define CR_LOCK_Set ((uint32_t)0x00000080) + +/* FLASH Mask */ +#define RDPRT_Mask ((uint32_t)0x00000002) +#define WRP0_Mask ((uint32_t)0x000000FF) +#define WRP1_Mask ((uint32_t)0x0000FF00) +#define WRP2_Mask ((uint32_t)0x00FF0000) +#define WRP3_Mask ((uint32_t)0xFF000000) + +/* FLASH Keys */ +#define RDP_Key ((uint16_t)0x00A5) +#define FLASH_KEY1 ((uint32_t)0x45670123) +#define FLASH_KEY2 ((uint32_t)0xCDEF89AB) + +/* Delay definition */ +#define EraseTimeout ((uint32_t)0x00000FFF) +#define ProgramTimeout ((uint32_t)0x0000000F) + +/** +* @} +*/ + +/** @defgroup FLASH_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup FLASH_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup FLASH_Private_FunctionPrototypes +* @{ +*/ + +static void delay(void); +/** +* @} +*/ + +/** @defgroup FLASH_Private_Functions +* @{ +*/ + +/** +* @brief Sets the code latency value. +* @param FLASH_Latency: specifies the FLASH Latency value. +* This parameter can be one of the following values: +* @arg FLASH_Latency_0: FLASH Zero Latency cycle +* @arg FLASH_Latency_1: FLASH One Latency cycle +* @arg FLASH_Latency_2: FLASH Two Latency cycles +* @arg FLASH_Latency_3: FLASH Three Latency cycles +* @retval : None +*/ +void FLASH_SetLatency(uint32_t FLASH_Latency) +{ + uint32_t tmpreg = 0; + + /* Check the parameters */ + assert_param(IS_FLASH_LATENCY(FLASH_Latency)); + + /* Read the ACR register */ + tmpreg = FLASH->ACR; + + /* Sets the Latency value */ + tmpreg &= ACR_LATENCY_Mask; + tmpreg |= FLASH_Latency; + + /* Write the ACR register */ + FLASH->ACR = tmpreg; +} + +/** +* @brief Enables or disables the Half cycle flash access. +* @param FLASH_HalfCycleAccess: specifies the FLASH Half cycle Access mode. +* This parameter can be one of the following values: +* @arg FLASH_HalfCycleAccess_Enable: FLASH Half Cycle Enable +* @arg FLASH_HalfCycleAccess_Disable: FLASH Half Cycle Disable +* @retval : None +*/ +void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess) +{ + /* Check the parameters */ + assert_param(IS_FLASH_HALFCYCLEACCESS_STATE(FLASH_HalfCycleAccess)); + + /* Enable or disable the Half cycle access */ + FLASH->ACR &= ACR_HLFCYA_Mask; + FLASH->ACR |= FLASH_HalfCycleAccess; +} + +/** +* @brief Enables or disables the Prefetch Buffer. +* @param FLASH_PrefetchBuffer: specifies the Prefetch buffer status. +* This parameter can be one of the following values: +* @arg FLASH_PrefetchBuffer_Enable: FLASH Prefetch Buffer Enable +* @arg FLASH_PrefetchBuffer_Disable: FLASH Prefetch Buffer Disable +* @retval : None +*/ +void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer) +{ + /* Check the parameters */ + assert_param(IS_FLASH_PREFETCHBUFFER_STATE(FLASH_PrefetchBuffer)); + + /* Enable or disable the Prefetch Buffer */ + FLASH->ACR &= ACR_PRFTBE_Mask; + FLASH->ACR |= FLASH_PrefetchBuffer; +} + +/** +* @brief Unlocks the FLASH Program Erase Controller. +* @param None +* @retval : None +*/ +void FLASH_Unlock(void) +{ + /* Authorize the FPEC Access */ + FLASH->KEYR = FLASH_KEY1; + FLASH->KEYR = FLASH_KEY2; +} + +/** +* @brief Locks the FLASH Program Erase Controller. +* @param None +* @retval : None +*/ +void FLASH_Lock(void) +{ + /* Set the Lock Bit to lock the FPEC and the FCR */ + FLASH->CR |= CR_LOCK_Set; +} + +/** +* @brief Erases a specified FLASH page. +* @param Page_Address: The page address to be erased. +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_ErasePage(uint32_t Page_Address) +{ + FLASH_Status status = FLASH_COMPLETE; + /* Check the parameters */ + assert_param(IS_FLASH_ADDRESS(Page_Address)); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + + if(status == FLASH_COMPLETE) + { + /* if the previous operation is completed, proceed to erase the page */ + FLASH->CR |= CR_PER_Set; + FLASH->AR = Page_Address; + FLASH->CR |= CR_STRT_Set; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status != FLASH_BUSY) + { + /* if the erase operation is completed, disable the PER Bit */ + FLASH->CR &= CR_PER_Reset; + } + } + + /* Return the Erase Status */ + return status; +} + +/** +* @brief Erases all FLASH pages. +* @param None +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_EraseAllPages(void) +{ + FLASH_Status status = FLASH_COMPLETE; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + + if(status == FLASH_COMPLETE) + { + /* if the previous operation is completed, proceed to erase all pages */ + FLASH->AR = 0x08000000; + FLASH->CR |= CR_MER_Set; + FLASH->CR |= CR_STRT_Set; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status != FLASH_BUSY) + { + /* if the erase operation is completed, disable the MER Bit */ + FLASH->CR &= CR_MER_Reset; + } + } + + /* Return the Erase Status */ + return status; +} + +/** +* @brief Erases the FLASH option bytes. +* @param None +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_EraseOptionBytes(void) +{ + FLASH_Status status = FLASH_COMPLETE; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status == FLASH_COMPLETE) + { + /* Authorize the small information block programming */ + FLASH->OPTKEYR = FLASH_KEY1; + FLASH->OPTKEYR = FLASH_KEY2; + + /* if the previous operation is completed, proceed to erase the option bytes */ + FLASH->CR |= CR_OPTER_Set; + FLASH->AR = 0x1FFFF800; + FLASH->CR |= CR_STRT_Set; + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + + if(status == FLASH_COMPLETE) + { + /* if the erase operation is completed, disable the OPTER Bit */ + FLASH->CR &= CR_OPTER_Reset; + + /* Enable the Option Bytes Programming operation */ + FLASH->CR |= CR_OPTPG_Set; + + /* Enable the readout access */ + OB->RDP = RDP_Key; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status != FLASH_BUSY) + { + /* if the program operation is completed, disable the OPTPG Bit */ + FLASH->CR &= CR_OPTPG_Reset; + } + } + else + { + if (status != FLASH_BUSY) + { + /* Disable the OPTPG Bit */ + FLASH->CR &= CR_OPTPG_Reset; + } + } + } + /* Return the erase status */ + return status; +} + +/** +* @brief Programs a word at a specified address. +* @param Address: specifies the address to be programmed. +* @param Data: specifies the data to be programmed. +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data) +{ + FLASH_Status status = FLASH_COMPLETE; + /* Check the parameters */ + assert_param(IS_FLASH_ADDRESS(Address)); + + + + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + /* if the previous operation is completed, proceed to program the new first + half word */ + FLASH->CR |= CR_PG_Set; + + *(__IO uint16_t*)Address = (uint16_t)Data; + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + /* if the previous operation is completed, proceed to program the new second + half word */ + *(__IO uint16_t*)(Address + 2) = Data >> 16; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status != FLASH_BUSY) + { + /* Disable the PG Bit */ + FLASH->CR &= CR_PG_Reset; + } + } + else + { + if (status != FLASH_BUSY) + { + /* Disable the PG Bit */ + FLASH->CR &= CR_PG_Reset; + } + } + } + + + /* Return the Program Status */ + return status; +} + +/** +* @brief Programs a half word at a specified address. +* @param Address: specifies the address to be programmed. +* @param Data: specifies the data to be programmed. +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) +{ + FLASH_Status status = FLASH_COMPLETE; + /* Check the parameters */ + assert_param(IS_FLASH_ADDRESS(Address)); + + + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + /* if the previous operation is completed, proceed to program the new data */ + FLASH->CR |= CR_PG_Set; + + *(__IO uint16_t*)Address = Data; + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status != FLASH_BUSY) + { + /* if the program operation is completed, disable the PG Bit */ + FLASH->CR &= CR_PG_Reset; + } + } + + + /* Return the Program Status */ + return status; +} + +/** +* @brief Programs a half word at a specified Option Byte Data address. +* @param Address: specifies the address to be programmed. +* This parameter can be 0x1FFFF804 or 0x1FFFF806. +* @param Data: specifies the data to be programmed. +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data) +{ + FLASH_Status status = FLASH_COMPLETE; + /* Check the parameters */ + assert_param(IS_OB_DATA_ADDRESS(Address)); + + + + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status == FLASH_COMPLETE) + { + /* Authorize the small information block programming */ + FLASH->OPTKEYR = FLASH_KEY1; + FLASH->OPTKEYR = FLASH_KEY2; + /* Enables the Option Bytes Programming operation */ + FLASH->CR |= CR_OPTPG_Set; + *(__IO uint16_t*)Address = Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status != FLASH_BUSY) + { + /* if the program operation is completed, disable the OPTPG Bit */ + FLASH->CR &= CR_OPTPG_Reset; + } + } + + + + /* Return the Option Byte Data Program Status */ + return status; +} + +/** +* @brief Write protects the desired pages +* @param FLASH_Pages: specifies the address of the pages to be +* write protected. This parameter can be: +* @arg For microcontroller Medium-density devices (FLASH page size equal to 1 KB) +* A value between FLASH_WRProt_Pages0to3 and FLASH_WRProt_Pages124to127 +* @arg For microcontroller High-density devices (FLASH page size equal to 2 KB) +* A value between FLASH_WRProt_Pages0to1 and FLASH_WRProt_Pages60to61 +* or FLASH_WRProt_Pages62to255 +* @arg FLASH_WRProt_AllPages +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages) +{ + uint16_t WRP0_Data = 0xFFFF, WRP1_Data = 0xFFFF, WRP2_Data = 0xFFFF, WRP3_Data = 0xFFFF; + + FLASH_Status status = FLASH_COMPLETE; + + /* Check the parameters */ + assert_param(IS_FLASH_WRPROT_PAGE(FLASH_Pages)); + + + + FLASH_Pages = (uint32_t)(~FLASH_Pages); + WRP0_Data = (uint16_t)(FLASH_Pages & WRP0_Mask); + WRP1_Data = (uint16_t)((FLASH_Pages & WRP1_Mask) >> 8); + WRP2_Data = (uint16_t)((FLASH_Pages & WRP2_Mask) >> 16); + WRP3_Data = (uint16_t)((FLASH_Pages & WRP3_Mask) >> 24); + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + /* Authorizes the small information block programming */ + FLASH->OPTKEYR = FLASH_KEY1; + FLASH->OPTKEYR = FLASH_KEY2; + FLASH->CR |= CR_OPTPG_Set; + if(WRP0_Data != 0xFF) + { + OB->WRP0 = WRP0_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + if((status == FLASH_COMPLETE) && (WRP1_Data != 0xFF)) + { + OB->WRP1 = WRP1_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + if((status == FLASH_COMPLETE) && (WRP2_Data != 0xFF)) + { + OB->WRP2 = WRP2_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + + if((status == FLASH_COMPLETE) && (WRP3_Data != 0xFF)) + { + OB->WRP3 = WRP3_Data; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + } + + if(status != FLASH_BUSY) + { + /* if the program operation is completed, disable the OPTPG Bit */ + FLASH->CR &= CR_OPTPG_Reset; + } + } + + + + /* Return the write protection operation Status */ + return status; +} + +/** +* @brief Enables or disables the read out protection. +* If the user has already programmed the other option bytes before +* calling this function, he must re-program them since this +* function erases all option bytes. +* @param Newstate: new state of the ReadOut Protection. +* This parameter can be: ENABLE or DISABLE. +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState) +{ + FLASH_Status status = FLASH_COMPLETE; + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + + + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status == FLASH_COMPLETE) + { + /* Authorizes the small information block programming */ + FLASH->OPTKEYR = FLASH_KEY1; + FLASH->OPTKEYR = FLASH_KEY2; + FLASH->AR = 0x1ffff800; + FLASH->CR |= CR_OPTER_Set; + FLASH->CR |= CR_STRT_Set; + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + if(status == FLASH_COMPLETE) + { + /* if the erase operation is completed, disable the OPTER Bit */ + FLASH->CR &= CR_OPTER_Reset; + /* Enable the Option Bytes Programming operation */ + FLASH->CR |= CR_OPTPG_Set; + if(NewState != DISABLE) + { + OB->RDP = 0x00; + } + else + { + OB->RDP = RDP_Key; + } + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(EraseTimeout); + + if(status != FLASH_BUSY) + { + /* if the program operation is completed, disable the OPTPG Bit */ + FLASH->CR &= CR_OPTPG_Reset; + } + } + else + { + if(status != FLASH_BUSY) + { + /* Disable the OPTER Bit */ + FLASH->CR &= CR_OPTER_Reset; + } + } + } + + + + /* Return the protection operation Status */ + return status; +} + +/** +* @brief Programs the FLASH User Option Byte: IWDG_SW / RST_STOP / +* RST_STDBY. +* @param OB_IWDG: Selects the IWDG mode +* This parameter can be one of the following values: +* @arg OB_IWDG_SW: Software IWDG selected +* @arg OB_IWDG_HW: Hardware IWDG selected +* @param OB_STOP: Reset event when entering STOP mode. +* This parameter can be one of the following values: +* @arg OB_STOP_NoRST: No reset generated when entering in STOP +* @arg 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 OB_STDBY_NoRST: No reset generated when entering in STANDBY +* @arg OB_STDBY_RST: Reset generated when entering in STANDBY +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_STOP, uint16_t OB_STDBY) +{ + FLASH_Status status = FLASH_COMPLETE; + /* 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)); + + + + /* Authorize the small information block programming */ + FLASH->OPTKEYR = FLASH_KEY1; + FLASH->OPTKEYR = FLASH_KEY2; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + + if(status == FLASH_COMPLETE) + { + /* Enable the Option Bytes Programming operation */ + FLASH->CR |= CR_OPTPG_Set; + + OB->USER = ( OB_IWDG | OB_STOP | OB_STDBY) | (uint16_t)0xF8; + + /* Wait for last operation to be completed */ + status = FLASH_WaitForLastOperation(ProgramTimeout); + if(status != FLASH_BUSY) + { + /* if the program operation is completed, disable the OPTPG Bit */ + FLASH->CR &= CR_OPTPG_Reset; + } + } + + + + /* Return the Option Byte program Status */ + return status; +} + +/** +* @brief Returns the FLASH User Option Bytes values. +* @param None +* @retval : The FLASH User Option Bytes values:IWDG_SW(Bit0), RST_STOP(Bit1) +* and RST_STDBY(Bit2). +*/ +uint32_t FLASH_GetUserOptionByte(void) +{ + /* Return the User Option Byte */ + return (uint32_t)(FLASH->OBR >> 2); +} + +/** +* @brief Returns the FLASH Write Protection Option Bytes Register value. +* @param None +* @retval : The FLASH Write Protection Option Bytes Register value +*/ +uint32_t FLASH_GetWriteProtectionOptionByte(void) +{ + /* Return the Falsh write protection Register value */ + return (uint32_t)(FLASH->WRPR); +} + +/** +* @brief Checks whether the FLASH Read Out Protection Status is set +* or not. +* @param None +* @retval : FLASH ReadOut Protection Status(SET or RESET) +*/ +FlagStatus FLASH_GetReadOutProtectionStatus(void) +{ + FlagStatus readoutstatus = RESET; + if ((FLASH->OBR & RDPRT_Mask) != (uint32_t)RESET) + { + readoutstatus = SET; + } + else + { + readoutstatus = RESET; + } + return readoutstatus; +} + +/** +* @brief Checks whether the FLASH Prefetch Buffer status is set or not. +* @param None +* @retval : FLASH Prefetch Buffer Status (SET or RESET). +*/ +FlagStatus FLASH_GetPrefetchBufferStatus(void) +{ + FlagStatus bitstatus = RESET; + + if ((FLASH->ACR & ACR_PRFTBS_Mask) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + /* Return the new state of FLASH Prefetch Buffer Status (SET or RESET) */ + return bitstatus; +} + +/** +* @brief Enables or disables the specified FLASH interrupts. +* @param FLASH_IT: specifies the FLASH interrupt sources to be +* enabled or disabled. +* This parameter can be any combination of the following values: +* @arg FLASH_IT_ERROR: FLASH Error Interrupt +* @arg FLASH_IT_EOP: FLASH end of operation Interrupt +* @param NewState: new state of the specified Flash interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void FLASH_ITConfig(uint16_t FLASH_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FLASH_IT(FLASH_IT)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if(NewState != DISABLE) + { + /* Enable the interrupt sources */ + FLASH->CR |= FLASH_IT; + } + else + { + /* Disable the interrupt sources */ + FLASH->CR &= ~(uint32_t)FLASH_IT; + } +} + +/** +* @brief Checks whether the specified FLASH flag is set or not. +* @param FLASH_FLAG: specifies the FLASH flag to check. +* This parameter can be one of the following values: +* @arg FLASH_FLAG_BSY: FLASH Busy flag +* @arg FLASH_FLAG_PGERR: FLASH Program error flag +* @arg FLASH_FLAG_WRPRTERR: FLASH Write protected error flag +* @arg FLASH_FLAG_EOP: FLASH End of Operation flag +* @arg FLASH_FLAG_OPTERR: FLASH Option Byte error flag +* @retval : The new state of FLASH_FLAG (SET or RESET). +*/ +FlagStatus FLASH_GetFlagStatus(uint16_t FLASH_FLAG) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_FLASH_GET_FLAG(FLASH_FLAG)) ; + if(FLASH_FLAG == FLASH_FLAG_OPTERR) + { + if((FLASH->OBR & FLASH_FLAG_OPTERR) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + } + else + { + if((FLASH->SR & FLASH_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + } + /* Return the new state of FLASH_FLAG (SET or RESET) */ + return bitstatus; +} + +/** +* @brief Clears the FLASH’s pending flags. +* @param FLASH_FLAG: specifies the FLASH flags to clear. +* This parameter can be any combination of the following values: +* @arg FLASH_FLAG_BSY: FLASH Busy flag +* @arg FLASH_FLAG_PGERR: FLASH Program error flag +* @arg FLASH_FLAG_WRPRTERR: FLASH Write protected error flag +* @arg FLASH_FLAG_EOP: FLASH End of Operation flag +* @retval : None +*/ +void FLASH_ClearFlag(uint16_t FLASH_FLAG) +{ + /* Check the parameters */ + assert_param(IS_FLASH_CLEAR_FLAG(FLASH_FLAG)) ; + + /* Clear the flags */ + FLASH->SR = FLASH_FLAG; +} + +/** +* @brief Returns the FLASH Status. +* @param None +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP or FLASH_COMPLETE +*/ +FLASH_Status FLASH_GetStatus(void) +{ + FLASH_Status flashstatus = FLASH_COMPLETE; + + if((FLASH->SR & FLASH_FLAG_BSY) == FLASH_FLAG_BSY) + { + flashstatus = FLASH_BUSY; + } + else + { + if(FLASH->SR & FLASH_FLAG_PGERR) + { + flashstatus = FLASH_ERROR_PG; + } + else + { + if(FLASH->SR & FLASH_FLAG_WRPRTERR) + { + flashstatus = FLASH_ERROR_WRP; + } + else + { + flashstatus = FLASH_COMPLETE; + } + } + } + /* Return the Flash Status */ + return flashstatus; +} + +/** +* @brief Waits for a Flash operation to complete or a TIMEOUT to occur. +* @param Timeout: FLASH progamming Timeout +* @retval : FLASH Status: The returned value can be: FLASH_BUSY, +* FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE or +* FLASH_TIMEOUT. +*/ +FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout) +{ + FLASH_Status status = FLASH_COMPLETE; + + + + /* Check for the Flash Status */ + status = FLASH_GetStatus(); + /* Wait for a Flash operation to complete or a TIMEOUT to occur */ + while((status == FLASH_BUSY) && (Timeout != 0x00)) + { + delay(); + status = FLASH_GetStatus(); + Timeout--; + } + if(Timeout == 0x00 ) + { + status = FLASH_TIMEOUT; + } + + + + /* Return the operation status */ + return status; +} + +/** +* @brief Inserts a time delay. +* @param None +* @retval : None +*/ +static void delay(void) +{ + __IO uint32_t i = 0; + for(i = 0xFF; i != 0; i--) + { + } +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_gpio.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_gpio.c new file mode 100644 index 000000000..999b8720b --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_gpio.c @@ -0,0 +1,574 @@ +/** +****************************************************************************** +* @file HAL_gpio.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the GPIO firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_gpio.h" +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup GPIO +* @brief GPIO driver modules +* @{ +*/ + +/** @defgroup GPIO_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup GPIO_Private_Defines +* @{ +*/ + +/* ------------ RCC registers bit address in the alias region ----------------*/ +#define AFIO_OFFSET (AFIO_BASE - PERIPH_BASE) + +/* --- EVENTCR Register -----*/ + +/* Alias word address of EVOE bit */ +#define EVCR_OFFSET (AFIO_OFFSET + 0x00) +#define EVOE_BitNumber ((uint8_t)0x07) +#define EVCR_EVOE_BB (PERIPH_BB_BASE + (EVCR_OFFSET * 32) + (EVOE_BitNumber * 4)) +#define EVCR_PORTPINCONFIG_MASK ((uint16_t)0xFF80) +#define LSB_MASK ((uint16_t)0xFFFF) +#define DBGAFR_POSITION_MASK ((uint32_t)0x000F0000) +#define DBGAFR_SWJCFG_MASK ((uint32_t)0xFFFFFFFF) +#define DBGAFR_LOCATION_MASK ((uint32_t)0x00200000) +#define DBGAFR_NUMBITS_MASK ((uint32_t)0x00100000) + +/** +* @} +*/ + +/** @defgroup GPIO_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup GPIO_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup GPIO_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup GPIO_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the GPIOx peripheral registers to their default +* reset values. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @retval : None +*/ +void GPIO_DeInit(GPIO_TypeDef* GPIOx) +{ + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + + switch (*(uint32_t*)&GPIOx) + { + case GPIOA_BASE: + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE); + break; + case GPIOB_BASE: + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE); + break; + case GPIOC_BASE: + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, DISABLE); + break; + case GPIOD_BASE: + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, DISABLE); + break; + + default: + break; + } +} + +/** +* @brief Deinitializes the Alternate Functions (remap, event control +* and EXTI configuration) registers to their default reset +* values. +* @param None +* @retval : None +*/ +void GPIO_AFIODeInit(void) +{ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, DISABLE); +} + +/** +* @brief Initializes the GPIOx peripheral according to the specified +* parameters in the GPIO_InitStruct. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param GPIO_InitStruct: pointer to a GPIO_InitTypeDef structure that +* contains the configuration information for the specified GPIO +* peripheral. +* @retval : None +*/ +void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) +{ + uint32_t currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00; + uint32_t tmpreg = 0x00, pinmask = 0x00; + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode)); + assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin)); + + /*---------------------------- GPIO Mode Configuration -----------------------*/ + currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F); + if ((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00) + { + /* Check the parameters */ + assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed)); + /* Output mode */ + currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed; + } + /*---------------------------- GPIO CRL Configuration ------------------------*/ + /* Configure the eight low port pins */ + if (((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00) + { + tmpreg = GPIOx->CRL; + for (pinpos = 0x00; pinpos < 0x08; pinpos++) + { + pos = ((uint32_t)0x01) << pinpos; + /* Get the port pins position */ + currentpin = (GPIO_InitStruct->GPIO_Pin) & pos; + if (currentpin == pos) + { + pos = pinpos << 2; + /* Clear the corresponding low control register bits */ + pinmask = ((uint32_t)0x0F) << pos; + tmpreg &= ~pinmask; + /* Write the mode configuration in the corresponding bits */ + tmpreg |= (currentmode << pos); + /* Reset the corresponding ODR bit */ + if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) + { + GPIOx->BRR = (((uint32_t)0x01) << pinpos); + } + else + { + /* Set the corresponding ODR bit */ + if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) + { + GPIOx->BSRR = (((uint32_t)0x01) << pinpos); + } + } + } + } + GPIOx->CRL = tmpreg; + } + /*---------------------------- GPIO CRH Configuration ------------------------*/ + /* Configure the eight high port pins */ + if (GPIO_InitStruct->GPIO_Pin > 0x00FF) + { + tmpreg = GPIOx->CRH; + for (pinpos = 0x00; pinpos < 0x08; pinpos++) + { + pos = (((uint32_t)0x01) << (pinpos + 0x08)); + /* Get the port pins position */ + currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos); + if (currentpin == pos) + { + pos = pinpos << 2; + /* Clear the corresponding high control register bits */ + pinmask = ((uint32_t)0x0F) << pos; + tmpreg &= ~pinmask; + /* Write the mode configuration in the corresponding bits */ + tmpreg |= (currentmode << pos); + /* Reset the corresponding ODR bit */ + if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) + { + GPIOx->BRR = (((uint32_t)0x01) << (pinpos + 0x08)); + } + /* Set the corresponding ODR bit */ + if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) + { + GPIOx->BSRR = (((uint32_t)0x01) << (pinpos + 0x08)); + } + } + } + GPIOx->CRH = tmpreg; + } +} + +/** +* @brief Fills each GPIO_InitStruct member with its default value. +* @param GPIO_InitStruct : pointer to a GPIO_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct) +{ + /* Reset GPIO init structure parameters values */ + GPIO_InitStruct->GPIO_Pin = GPIO_Pin_All; + GPIO_InitStruct->GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN_FLOATING; +} + +/** +* @brief Reads the specified input port pin. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param GPIO_Pin: specifies the port bit to read. +* This parameter can be GPIO_Pin_x where x can be (0..15). +* @retval : The input port pin value. +*/ +uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + uint8_t bitstatus = 0x00; + + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); + + if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET) + { + bitstatus = (uint8_t)Bit_SET; + } + else + { + bitstatus = (uint8_t)Bit_RESET; + } + return bitstatus; +} + +/** +* @brief Reads the specified GPIO input data port. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @retval : GPIO input data port value. +*/ +uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx) +{ + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + + return ((uint16_t)GPIOx->IDR); +} + +/** +* @brief Reads the specified output data port bit. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param GPIO_Pin: specifies the port bit to read. +* This parameter can be GPIO_Pin_x where x can be (0..15). +* @retval : The output port pin value. +*/ +uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + uint8_t bitstatus = 0x00; + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); + + if ((GPIOx->ODR & GPIO_Pin) != (uint32_t)Bit_RESET) + { + bitstatus = (uint8_t)Bit_SET; + } + else + { + bitstatus = (uint8_t)Bit_RESET; + } + return bitstatus; +} + +/** +* @brief Reads the specified GPIO output data port. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @retval : GPIO output data port value. +*/ +uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx) +{ + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + + return ((uint16_t)GPIOx->ODR); +} + +/** +* @brief Sets the selected data port bits. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param GPIO_Pin: specifies the port bits to be written. +* This parameter can be any combination of GPIO_Pin_x where +* x can be (0..15). +* @retval : None +*/ +void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + GPIOx->BSRR = GPIO_Pin; +} + +/** +* @brief Clears the selected data port bits. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param GPIO_Pin: specifies the port bits to be written. +* This parameter can be any combination of GPIO_Pin_x where +* x can be (0..15). +* @retval : None +*/ +void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + GPIOx->BRR = GPIO_Pin; +} + +/** +* @brief Sets or clears the selected data port bit. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param GPIO_Pin: specifies the port bit to be written. +* This parameter can be one of GPIO_Pin_x where x can be (0..15). +* @param BitVal: specifies the value to be written to the selected bit. +* This parameter can be one of the BitAction enum values: +* @arg Bit_RESET: to clear the port pin +* @arg Bit_SET: to set the port pin +* @retval : None +*/ +void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal) +{ + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); + assert_param(IS_GPIO_BIT_ACTION(BitVal)); + + if (BitVal != Bit_RESET) + { + GPIOx->BSRR = GPIO_Pin; + } + else + { + GPIOx->BRR = GPIO_Pin; + } +} + +/** +* @brief Writes data to the specified GPIO data port. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param PortVal: specifies the value to be written to the port output +* data register. +* @retval : None +*/ +void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal) +{ + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + + GPIOx->ODR = PortVal; +} + +/** +* @brief Locks GPIO Pins configuration registers. +* @param GPIOx: where x can be (A..G) to select the GPIO peripheral. +* @param GPIO_Pin: specifies the port bit to be written. +* This parameter can be any combination of GPIO_Pin_x where +* x can be (0..15). +* @retval : None +*/ +void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) +{ + uint32_t tmp = 0x00010000; + + /* Check the parameters */ + assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); + assert_param(IS_GPIO_PIN(GPIO_Pin)); + + tmp |= GPIO_Pin; + /* Set LCKK bit */ + GPIOx->LCKR = tmp; + /* Reset LCKK bit */ + GPIOx->LCKR = GPIO_Pin; + /* Set LCKK bit */ + GPIOx->LCKR = tmp; + /* Read LCKK bit*/ + tmp = GPIOx->LCKR; + /* Read LCKK bit*/ + tmp = GPIOx->LCKR; +} + +/** +* @brief Selects the GPIO pin used as Event output. +* @param GPIO_PortSource: selects the GPIO port to be used as source +* for Event output. +* This parameter can be GPIO_PortSourceGPIOx where x can be +* (A..E). +* @param GPIO_PinSource: specifies the pin for the Event output. +* This parameter can be GPIO_PinSourcex where x can be (0..15). +* @retval : None +*/ +void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource) +{ + uint32_t tmpreg = 0x00; + /* Check the parameters */ + assert_param(IS_GPIO_EVENTOUT_PORT_SOURCE(GPIO_PortSource)); + assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource)); + + tmpreg = AFIO->EVCR; + /* Clear the PORT[6:4] and PIN[3:0] bits */ + tmpreg &= EVCR_PORTPINCONFIG_MASK; + tmpreg |= (uint32_t)GPIO_PortSource << 0x04; + tmpreg |= GPIO_PinSource; + AFIO->EVCR = tmpreg; +} + +/** +* @brief Enables or disables the Event Output. +* @param NewState: new state of the Event output. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void GPIO_EventOutputCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + *(__IO uint32_t *) EVCR_EVOE_BB = (uint32_t)NewState; +} + +/** +* @brief Changes the mapping of the specified pin. +* @param GPIO_Remap: selects the pin to remap. +* This parameter can be one of the following values: +* @arg GPIO_Remap_SPI1 +* @arg GPIO_Remap_I2C1 +* @arg GPIO_Remap_UART1 +* @arg GPIO_Remap_UART2 +* @arg GPIO_PartialRemap_UART3 +* @arg GPIO_FullRemap_UART3 +* @arg GPIO_PartialRemap_TIM1 +* @arg GPIO_FullRemap_TIM1 +* @arg GPIO_PartialRemap1_TIM2 +* @arg GPIO_PartialRemap2_TIM2 +* @arg GPIO_FullRemap_TIM2 +* @arg GPIO_PartialRemap_TIM3 +* @arg GPIO_FullRemap_TIM3 +* @arg GPIO_Remap_TIM4 +* @arg GPIO_Remap1_CAN1 +* @arg GPIO_Remap2_CAN1 +* @arg GPIO_Remap_PD01 +* @arg GPIO_Remap_TIM5CH4_LSI +* @arg GPIO_Remap_ADC1_ETRGINJ +* @arg GPIO_Remap_ADC1_ETRGREG +* @arg GPIO_Remap_ADC2_ETRGINJ +* @arg GPIO_Remap_ADC2_ETRGREG +* @arg GPIO_Remap_SWJ_NoJTRST +* @arg GPIO_Remap_SWJ_JTAGDisable +* @arg GPIO_Remap_SWJ_Disable +* @param NewState: new state of the port pin remapping. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState) +{ + uint32_t tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00; + /* Check the parameters */ + assert_param(IS_GPIO_REMAP(GPIO_Remap)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + tmpreg = AFIO->MAPR; + tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10; + tmp = GPIO_Remap & LSB_MASK; + if ((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) + { + tmpreg &= DBGAFR_SWJCFG_MASK; + AFIO->MAPR &= DBGAFR_SWJCFG_MASK; + } + else if ((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK) + { + tmp1 = ((uint32_t)0x03) << tmpmask; + tmpreg &= ~tmp1; + tmpreg |= ~DBGAFR_SWJCFG_MASK; + } + else + { + tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15) * 0x10)); + tmpreg |= ~DBGAFR_SWJCFG_MASK; + } + if (NewState != DISABLE) + { + tmpreg |= (tmp << ((GPIO_Remap >> 0x15) * 0x10)); + } + AFIO->MAPR = tmpreg; +} + +/** +* @brief Selects the GPIO pin used as EXTI Line. +* @param GPIO_PortSource: selects the GPIO port to be used as +* source for EXTI lines. +* This parameter can be GPIO_PortSourceGPIOx where x can be +* (A..G). +* @param GPIO_PinSource: specifies the EXTI line to be configured. +* This parameter can be GPIO_PinSourcex where x can be (0..15). +* @retval : None +*/ +void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource) +{ + uint32_t tmp = 0x00; + /* Check the parameters */ + assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource)); + assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource)); + + tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)); + AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp; + AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03))); +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_i2c.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_i2c.c new file mode 100644 index 000000000..4e70f643a --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_i2c.c @@ -0,0 +1,818 @@ +/** +****************************************************************************** +* @file HAL_i2c.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the I2C firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_i2c.h" +#include "HAL_rcc.h" + + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup I2C +* @brief I2C driver modules +* @{ +*/ + +/** @defgroup I2C_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup I2C_Private_Defines +* @{ +*/ + +/*I2c Enable disable*/ +#define IC_ENABLE_Reset ((uint16_t)0xFFFE) +#define IC_ENABLE_Set ((uint16_t)0x0001) +#define IC_CON_RESET ((uint16_t)0xFE8A) +#define INTR_MASK ((uint16_t)0xC000) + +/*I2c DMA reset*/ +#define DMA_CR_TDMAE_RDMAE_Reset ((uint16_t)0xFFFC) + +/* I2C START mask */ +#define IC_CON_START_Set ((uint16_t)0x0020) +#define IC_CON_START_Reset ((uint16_t)0xFFDF) + +/* I2C STOP mask */ +#define IC_DATA_CMD_STOP_Set ((uint16_t)0x0200) +#define IC_DATA_CMD_STOP_Reset ((uint16_t)0xFDFF) + +/* I2C ADD2 mask */ +#define IC_TAR_Reset ((uint16_t)0xFF00) + +/* I2C IC_10BITADDR_MASTER bit mask */ +#define IC_TAR_ENDUAL_Set ((uint16_t)0x1000) +#define IC_TAR_ENDUAL_Reset ((uint16_t)0xEFFF) + +/* I2C SPECIAL¡¢GC_OR_START bits mask */ +#define IC_TAR_GC_Set ((uint16_t)0x0800) +#define IC_TAR_GC_Reset ((uint16_t)0xF7FF) + +/* I2C FLAG mask */ +#define FLAG_Mask ((uint32_t)0x00793FFF) + + +static uint8_t I2C_CMD_DIR = 0; + +/*ÐÂÔö¼ÓµÄÓû§±äÁ¿£¬Íⲿµ÷ÓÃʱÐèÒª¸üиñäÁ¿Öµ*/ +uint16_t I2C_DMA_DIR = 0; + +/** +* @} +*/ + +/** @defgroup I2C_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup I2C_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup I2C_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup I2C_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the I2Cx peripheral registers to their default +* reset values. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @retval : None +*/ +void I2C_DeInit(I2C_TypeDef* I2Cx) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + switch (*(uint32_t*)&I2Cx) + { + case I2C1_BASE: + /* Enable I2C1 reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE); + /* Release I2C1 from reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE); + break; + case I2C2_BASE: + /* Enable I2C2 reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, ENABLE); + /* Release I2C2 from reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C2, DISABLE); + break; + default: + break; + } +} + +/** +* @brief Initializes the I2Cx peripheral according to the specified +* parameters in the I2C_InitStruct. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param I2C_InitStruct: pointer to a I2C_InitTypeDef structure that +* contains the configuration information for the specified +* I2C peripheral. +* @retval : None +*/ +void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct) +{ + + uint16_t tmpreg = 0; + uint32_t pclk1 = 8000000; + uint32_t minSclLowTime = 0; + uint32_t i2cPeriod = 0; + uint32_t pclk1Period = 0; + RCC_ClocksTypeDef rcc_clocks; + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_I2C_MODE(I2C_InitStruct->I2C_Mode)); + assert_param(IS_I2C_CLOCK_SPEED(I2C_InitStruct->I2C_ClockSpeed)); + /*---------------------------- I2Cx IC_ENABLE Configuration ------------------------*/ + /* Disable the selected I2C peripheral */ + I2Cx->IC_ENABLE &= IC_ENABLE_Reset; + + /* Get pclk1 frequency value */ + RCC_GetClocksFreq(&rcc_clocks); + pclk1 = rcc_clocks.PCLK1_Frequency; + + /* Set pclk1 period value */ + pclk1Period = 1000000000 / pclk1; + + i2cPeriod = 1000000000 / I2C_InitStruct->I2C_ClockSpeed; //ns unit + tmpreg = 0; + /* Configure speed in standard mode */ + if (I2C_InitStruct->I2C_ClockSpeed <= 100000) + { + /* Standard mode speed calculate */ + minSclLowTime = 4700; //ns unit + tmpreg = minSclLowTime / pclk1Period; + /* Write to I2Cx IC_SS_SCL_LCNT */ + I2Cx->IC_SS_SCL_LCNT = tmpreg; + tmpreg = (i2cPeriod - pclk1Period * I2Cx->IC_SS_SCL_LCNT) / pclk1Period; + /* Write to I2Cx IC_SS_SCL_HCNT */ + I2Cx->IC_SS_SCL_HCNT = tmpreg; + + + } + else /*(I2C_InitStruct->I2C_ClockSpeed <= 400000)*/ + { + /* Configure speed in fast mode */ + minSclLowTime = 1300; //ns unit + tmpreg = minSclLowTime / pclk1Period; + /* Write to I2Cx IC_FS_SCL_LCNT */ + I2Cx->IC_FS_SCL_LCNT = tmpreg; + tmpreg = (i2cPeriod - pclk1Period * I2Cx->IC_FS_SCL_LCNT) / pclk1Period; + /* Write to I2Cx IC_FS_SCL_HCNT */ + I2Cx->IC_FS_SCL_HCNT = tmpreg; + } + + /*Get the I2Cx IC_CON value */ + tmpreg = I2Cx->IC_CON; + /*Clear TX_EMPTY_CTRL,IC_SLAVE_DISABLE,IC_RESTART_EN,IC_10BITADDR_SLAVE,SPEED,MASTER_MODE bits*/ + tmpreg &= IC_CON_RESET; + /*Set TX_EMPTY_CTRL,IC_SLAVE_DISABLE,IC_RESTART_EN,IC_10BITADDR_SLAVE,SPEED,MASTER_MODE bits*/ + tmpreg = TX_EMPTY_CTRL | IC_SLAVE_DISABLE | IC_RESTART_EN | IC_7BITADDR_MASTER | I2C_InitStruct->I2C_Speed | I2C_InitStruct->I2C_Mode; + /* Write to I2Cx IC_CON */ + I2Cx->IC_CON = tmpreg; + + /*---------------------------- I2Cx IC_INTR_MASK Configuration ------------------------*/ + /* Get the I2Cx IC_INTR_MASK value */ + tmpreg = I2Cx->IC_INTR_MASK; + /* clear the I2Cx IC_INTR_MASK value */ + tmpreg &= INTR_MASK; + /* Write to IC_INTR_MASK */ + I2Cx->IC_INTR_MASK = tmpreg; + + /* Write to IC_RX_TL */ + I2Cx->IC_RX_TL = 0x0; //rxfifo depth is 1 + /* Write to IC_TX_TL */ + I2Cx->IC_TX_TL = 0x1; //tcfifo depth is 1 + +} + +/** +* @brief Fills each I2C_InitStruct member with its default value. +* @param I2C_InitStruct: pointer to an I2C_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct) +{ + /*---------------- Reset I2C init structure parameters values ----------------*/ + /* Initialize the I2C_Mode member */ + I2C_InitStruct->I2C_Mode = I2C_Mode_MASTER; + /* Initialize the I2C_OwnAddress member */ + I2C_InitStruct->I2C_OwnAddress = 0xA8; + /* Initialize the I2C_Speed member */ + I2C_InitStruct->I2C_Speed = I2C_Speed_STANDARD; + /* initialize the I2C_ClockSpeed member */ + I2C_InitStruct->I2C_ClockSpeed = 100000; +} + +/** +* @brief Enables or disables the specified I2C peripheral. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param NewState: new state of the I2Cx peripheral. This parameter +* can be: ENABLE or DISABLE. +* @retval : None +*/ +void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected I2C peripheral */ + I2Cx->IC_ENABLE |= IC_ENABLE_Set; + } + else + { + /* Disable the selected I2C peripheral */ + I2Cx->IC_ENABLE &= IC_ENABLE_Reset; + } +} + +/** +* @brief Enables or disables the specified I2C DMA requests. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param DMA_Direcction : TDMAE_SET,RDMAE_SET +* This parameter can be any combination of the following values: +* @arg TDMAE_SET :DMA TX set +* @arg RDMAE_SET :DMA RX set +* @param NewState: new state of the I2C DMA transfer. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected I2C DMA requests */ + if(I2C_DMA_DIR == TDMAE_SET) + { + /* Enable the selected I2C TX DMA requests */ + I2Cx->IC_DMA_CR |= TDMAE_SET; + } + else if(I2C_DMA_DIR == RDMAE_SET) + { + /* Enable the selected I2C TX DMA requests */ + I2Cx->IC_DMA_CR |= RDMAE_SET; + } + } + else + { + /* Disable the selected I2C DMA requests */ + I2Cx->IC_DMA_CR &= DMA_CR_TDMAE_RDMAE_Reset; + } +} + + +/** +* @brief Generates I2Cx communication START condition. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param NewState: new state of the I2C START condition generation. +* This parameter can be: ENABLE or DISABLE. +* @retval : None. +*/ +void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Generate a START condition */ + I2Cx->IC_CON |= IC_CON_START_Set; + } + else + { + /* Disable the START condition generation */ + I2Cx->IC_CON &= IC_CON_START_Reset; + } +} + +/** +* @brief Generates I2Cx communication STOP condition. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param NewState: new state of the I2C STOP condition generation. +* This parameter can be: ENABLE or DISABLE. +* @retval : None. +*/ +void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState) +{ + u16 overTime = 3000; + I2Cx->IC_ENABLE |= 0x02; + while(I2Cx->IC_ENABLE & 0x02) + { + if(0 == overTime --) + { + break; + } + } + I2Cx->IC_CLR_TX_ABRT; +} + +/** +* @brief Configures the specified I2C own address2. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param Address: specifies the 7bit I2C own address2. +* @retval : None. +*/ +void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address) +//void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint16_t Address) +{ + uint16_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + /* Get the old register value */ + tmpreg = I2Cx->IC_TAR; + /* Reset I2Cx Own address2 bit [7:0] */ + tmpreg &= IC_TAR_Reset; + /* Set I2Cx Own address2 */ + tmpreg |= Address >> 1; + /* Store the new register value */ + I2Cx->IC_TAR = tmpreg; +} + +/** +* @brief Enables or disables the specified I2C dual addressing mode. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param NewState: new state of the I2C dual addressing mode. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable dual addressing mode */ + I2Cx->IC_TAR |= IC_TAR_ENDUAL_Set; + } + else + { + /* Disable dual addressing mode */ + I2Cx->IC_TAR &= IC_TAR_ENDUAL_Reset; + } +} + +/** +* @brief Enables or disables the specified I2C general call feature. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param NewState: new state of the I2C General call. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable generall call */ + I2Cx->IC_TAR |= IC_TAR_GC_Set; + } + else + { + /* Disable generall call */ + I2Cx->IC_TAR &= IC_TAR_GC_Reset; + } +} + +/** +* @brief Enables or disables the specified I2C interrupts. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param I2C_IT: specifies the I2C interrupts sources to be enabled +* or disabled. +* This parameter can be any combination of the following values: +* @arg I2C_IT_RX_UNDER: Rx Buffer is empty interrupt mask +* @arg I2C_IT_RX_OVER : RX Buffer Overrun interrupt mask +* @arg I2C_IT_RX_FULL : Rx buffer full interrupt mask +* @arg I2C_IT_TX_OVER : TX Buffer Overrun interrupt mask +* @arg I2C_IT_TX_EMPTY : TX_FIFO empty interrupt mask +* @arg I2C_IT_RD_REQ : I2C work as slave or master interrupt mask +* @arg I2C_IT_TX_ABRT : TX error interrupt mask(Master mode) +* @arg I2C_IT_RX_DONE : Master not ack interrupt mask(slave mode) +* @arg I2C_IT_ACTIVITY : I2C activity interrupt mask +* @arg I2C_IT_STOP_DET : stop condition interrupt mask +* @arg I2C_IT_START_DET : start condition interrupt mask +* @arg I2C_IT_GEN_CALL : a general call address and ack interrupt mask +* @param NewState: new state of the specified I2C interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + assert_param(IS_I2C_CONFIG_IT(I2C_IT)); + + if(I2C_IT == I2C_IT_RX_FULL) + { + I2Cx->IC_DATA_CMD = CMD_READ; + } + + if (NewState != DISABLE) + { + /* Enable the selected I2C interrupts */ + I2Cx->IC_INTR_MASK |= I2C_IT; + } + else + { + /* Disable the selected I2C interrupts */ + I2Cx->IC_INTR_MASK &= (uint16_t)~I2C_IT; + } +} + +/** +* @brief Sends a data byte through the I2Cx peripheral. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param Data: Byte to be transmitted.. +* @retval : None +*/ +void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + /* Write in the IC_DATA_CMD register the data to be sent */ + I2Cx->IC_DATA_CMD = CMD_WRITE | Data; +} + +/** +* @brief Returns the most recent received data by the I2Cx peripheral. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @retval : The value of the received data. + +*/ +void I2C_ReadCmd(I2C_TypeDef* I2Cx) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + + I2Cx->IC_DATA_CMD = CMD_READ; +} + +/** +* @brief Returns the most recent received data by the I2Cx peripheral. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @retval : The value of the received data. +*/ +uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + I2C_CMD_DIR = 0; + /* Return the data in the IC_DATA_CMD register */ + return (uint8_t)I2Cx->IC_DATA_CMD; +} + +/** +* @brief Transmits the address byte to select the slave device. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param Address: specifies the slave address which will be transmitted +* @param I2C_Direction: specifies whether the I2C device will be a +* Transmitter or a Receiver. +* This parameter can be one of the following values +* @arg I2C_Direction_Transmitter: Transmitter mode +* @arg I2C_Direction_Receiver: Receiver mode +* @retval : None. +*/ +void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C_Direction) +{ + /* Store the new register value */ + I2Cx->IC_TAR = Address >> 1; +} + +/** +* @brief Reads the specified I2C register and returns its value. +* @param I2C_Register: specifies the register to read. +* This parameter can be one of the following values: +* @retval : The value of the read register. +*/ +uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_I2C_REGISTER(I2C_Register)); + /* Return the selected register value */ + return (*(__IO uint16_t *)(*((__IO uint32_t *)&I2Cx) + I2C_Register)); +} + +/** +* @brief Returns the last I2Cx Event. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @retval : The last event +*/ +uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx) +{ + uint32_t lastevent = 0; + uint32_t flag1 = 0; + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + /* Read the I2Cx status register */ + flag1 = I2Cx->IC_RAW_INTR_STAT; + + /* Get the last event value from I2C status register */ + lastevent = (flag1 ) & FLAG_Mask; + /* Return status */ + return lastevent; +} + + + +/** +* @brief Checks whether the last I2Cx Event is equal to the one passed +* as parameter. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param I2C_EVENT: specifies the event to be checked. +* This parameter can be one of the following values: +* @arg I2C_EVENT_RX_UNDER: Rx Buffer is empty event +* @arg I2C_EVENT_RX_OVER : RX Buffer Overrun event +* @arg I2C_EVENTT_RX_FULL : Rx buffer full event +* @arg I2C_EVENT_TX_OVER : TX Buffer Overrun event +* @arg I2C_EVENT_TX_EMPTY : TX_FIFO empty event +* @arg I2C_EVENT_RD_REQ : I2C work as slave or master event +* @arg I2C_EVENT_TX_ABRT : TX error event(Master mode) +* @arg I2C_EVENT_RX_DONE : Master not ack event(slave mode) +* @arg I2C_EVENT_ACTIVITY : I2C activity event +* @arg I2C_EVENT_STOP_DET : stop condition event +* @arg I2C_EVENT_START_DET : start condition event +* @arg I2C_EVENT_GEN_CALL : a general call address and ack event +* - SUCCESS: Last event is equal to the I2C_EVENT +* - ERROR: Last event is different from the I2C_EVENT +*/ +ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT) +{ + uint32_t lastevent = 0; + uint32_t flag1 = 0; + ErrorStatus status = ERROR; + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_I2C_EVENT(I2C_EVENT)); + + if((I2C_EVENT == I2C_EVENT_RX_FULL) && (I2C_CMD_DIR == 0)) + { + I2Cx->IC_DATA_CMD = CMD_READ; + I2C_CMD_DIR = 1; + } + /* Read the I2Cx status register */ + flag1 = I2Cx->IC_RAW_INTR_STAT; + //flag1 = I2Cx->IC_INTR_STAT; + /* Get the last event value from I2C status register */ + lastevent = (flag1 ) & I2C_EVENT; + + /* Check whether the last event is equal to I2C_EVENT */ + if (lastevent == I2C_EVENT ) + //if((I2Cx->IC_RAW_INTR_STAT & I2C_EVENT) != (uint32_t)RESET) + { + /* SUCCESS: last event is equal to I2C_EVENT */ + status = SUCCESS; + } + else + { + /* ERROR: last event is different from I2C_EVENT */ + status = ERROR; + } + /* Return status */ + return status; + +} + +/** +* @brief Checks whether the specified I2C flag is set or not. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param I2C_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg I2C_FLAG_RX_UNDER: Rx Buffer is empty flag +* @arg I2C_FLAG_RX_OVER : RX Buffer Overrun flag +* @arg I2C_FLAG_RX_FULL : Rx buffer full flag +* @arg I2C_FLAG_TX_OVER : TX Buffer Overrun flag +* @arg I2C_FLAG_TX_EMPTY: TX_FIFO empty flag +* @arg I2C_FLAG_RD_REQ : I2C work as slave or master flag +* @arg I2C_FLAG_TX_ABRT : TX error flag(Master mode) +* @arg I2C_FLAG_RX_DONE : Master not ack flag(slave mode) +* @arg I2C_FLAG_ACTIVITY: I2C activity flag +* @arg I2C_FLAG_STOP_DET: stop condition flag +* @arg I2C_FLAG_START_DET: start condition flag +* @arg I2C_FLAG_GEN_CALL : a general call address and ack flag +* @retval : The new state of I2C_FLAG (SET or RESET). +*/ +FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG) +{ + FlagStatus bitstatus = RESET; + __IO uint32_t i2creg = 0, i2cxbase = 0; + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_I2C_GET_FLAG(I2C_FLAG)); + + if(I2C_FLAG & 0x8000) + { + if((I2Cx->IC_STATUS & I2C_FLAG) != (uint32_t)RESET) + { + /* I2C_FLAG is set */ + bitstatus = SET; + } + else + { + /* I2C_FLAG is reset */ + bitstatus = RESET; + } + } + else + { + if((I2C_FLAG == I2C_FLAG_RX_FULL) && (I2C_CMD_DIR == 0)) + { + I2Cx->IC_DATA_CMD = CMD_READ; + I2C_CMD_DIR = 1; + } + /* Check the status of the specified I2C flag */ + if((I2Cx->IC_RAW_INTR_STAT & I2C_FLAG) != (uint32_t)RESET) + { + /* I2C_FLAG is set */ + bitstatus = SET; + } + else + { + /* I2C_FLAG is reset */ + bitstatus = RESET; + } + } + + /* Return the I2C_FLAG status */ + return bitstatus; +} + +/** +* @brief Clears the I2Cx's pending flags. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param I2C_FLAG: specifies the flag to clear. +* This parameter can be any combination of the following values: +* @arg I2C_FLAG_RX_UNDER: Rx Buffer is empty flag +* @arg I2C_FLAG_RX_OVER : RX Buffer Overrun flag +* @arg I2C_FLAG_RX_FULL : Rx buffer full flag +* @arg I2C_FLAG_TX_OVER : TX Buffer Overrun flag +* @arg I2C_FLAG_TX_EMPTY: TX_FIFO empty flag +* @arg I2C_FLAG_RD_REQ : I2C work as slave or master flag +* @arg I2C_FLAG_TX_ABRT : TX error flag(Master mode) +* @arg I2C_FLAG_RX_DONE : Master not ack flag(slave mode) +* @arg I2C_FLAG_ACTIVITY: I2C activity flag +* @arg I2C_FLAG_STOP_DET: stop condition flag +* @arg I2C_FLAG_START_DET: start condition flag +* @arg I2C_FLAG_GEN_CALL : a general call address and ack flag +* @retval : None +*/ +void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_I2C_CLEAR_FLAG(I2C_FLAG)); + + if((I2C_FLAG & I2C_FLAG_RX_UNDER) == I2C_FLAG_RX_UNDER) {I2Cx->IC_CLR_RX_UNDER;} + if((I2C_FLAG & I2C_FLAG_RX_OVER) == I2C_FLAG_RX_OVER) {I2Cx->IC_CLR_RX_OVER;} + if((I2C_FLAG & I2C_FLAG_TX_OVER) == I2C_FLAG_TX_OVER) {I2Cx->IC_CLR_TX_OVER;} + if((I2C_FLAG & I2C_FLAG_RD_REQ) == I2C_FLAG_RD_REQ) {I2Cx->IC_CLR_RD_REQ;} + if((I2C_FLAG & I2C_FLAG_TX_ABRT) == I2C_FLAG_TX_ABRT) {I2Cx->IC_CLR_TX_ABRT;} + if((I2C_FLAG & I2C_FLAG_RX_DONE) == I2C_FLAG_RX_DONE) {I2Cx->IC_CLR_RX_DONE;} + if((I2C_FLAG & I2C_FLAG_ACTIVITY) == I2C_FLAG_ACTIVITY) {I2Cx->IC_CLR_ACTIVITY;} + if((I2C_FLAG & I2C_FLAG_STOP_DET) == I2C_FLAG_STOP_DET) {I2Cx->IC_CLR_STOP_DET;} + if((I2C_FLAG & I2C_FLAG_START_DET) == I2C_FLAG_START_DET) {I2Cx->IC_CLR_START_DET;} + if((I2C_FLAG & I2C_FLAG_GEN_CALL) == I2C_FLAG_GEN_CALL) {I2Cx->IC_CLR_GEN_CALL;} +} + +/** +* @brief Checks whether the specified I2C interrupt has occurred or not. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param I2C_IT: specifies the interrupt source to check. +* This parameter can be one of the following values: +* @arg I2C_IT_RX_UNDER: Rx Buffer is empty interrupt +* @arg I2C_IT_RX_OVER : RX Buffer Overrun interrupt +* @arg I2C_IT_RX_FULL : Rx buffer full interrupt +* @arg I2C_IT_TX_OVER : TX Buffer Overrun interrupt +* @arg I2C_IT_TX_EMPTY : TX_FIFO empty interrupt +* @arg I2C_IT_RD_REQ : I2C work as slave or master interrupt +* @arg I2C_IT_TX_ABRT : TX error interrupt (Master mode) +* @arg I2C_IT_RX_DONE : Master not ack interrupt (slave mode) +* @arg I2C_IT_ACTIVITY : I2C activity interrupt +* @arg I2C_IT_STOP_DET : stop condition interrupt +* @arg I2C_IT_START_DET : start condition interrupt +* @arg I2C_IT_GEN_CALL : a general call address and ack interrupt +* @retval : The new state of I2C_IT (SET or RESET). +*/ +ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT) +{ + ITStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_I2C_GET_IT(I2C_IT)); + + /* Check the status of the specified I2C flag */ + if((I2Cx->IC_RAW_INTR_STAT & I2C_IT) != (uint32_t)RESET) + { + /* I2C_IT is set */ + bitstatus = SET; + } + else + { + /* I2C_IT is reset */ + bitstatus = RESET; + } + + /* Return the I2C_IT status */ + return bitstatus; +} + +/** +* @brief Clears the I2Cx interrupt pending bits. +* @param I2Cx: where x can be 1 or 2 to select the I2C peripheral. +* @param I2C_IT: specifies the interrupt pending bit to clear. +* This parameter can be any combination of the following values: +* @arg I2C_IT_RX_UNDER: Rx Buffer is empty interrupt +* @arg I2C_IT_RX_OVER : RX Buffer Overrun interrupt +* @arg I2C_IT_RX_FULL : Rx buffer full interrupt +* @arg I2C_IT_TX_OVER : TX Buffer Overrun interrupt +* @arg I2C_IT_TX_EMPTY : TX_FIFO empty interrupt +* @arg I2C_IT_RD_REQ : I2C work as slave or master interrupt +* @arg I2C_IT_TX_ABRT : TX error interrupt (Master mode) +* @arg I2C_IT_RX_DONE : Master not ack interrupt (slave mode) +* @arg I2C_IT_ACTIVITY : I2C activity interrupt +* @arg I2C_IT_STOP_DET : stop condition interrupt +* @arg I2C_IT_START_DET : start condition interrupt +* @arg I2C_IT_GEN_CALL : a general call address and ack interrupt +* @retval : None +*/ +void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT) +{ + /* Check the parameters */ + assert_param(IS_I2C_ALL_PERIPH(I2Cx)); + assert_param(IS_I2C_CLEAR_IT(I2C_IT)); + + if((I2C_IT & I2C_IT_RX_UNDER) == I2C_FLAG_RX_UNDER) {I2Cx->IC_CLR_RX_UNDER;} + if((I2C_IT & I2C_IT_RX_OVER) == I2C_FLAG_RX_OVER) {I2Cx->IC_CLR_RX_OVER;} + if((I2C_IT & I2C_IT_TX_OVER) == I2C_FLAG_TX_OVER) {I2Cx->IC_CLR_TX_OVER;} + if((I2C_IT & I2C_IT_RD_REQ) == I2C_FLAG_RD_REQ) {I2Cx->IC_CLR_RD_REQ;} + if((I2C_IT & I2C_IT_TX_ABRT) == I2C_FLAG_TX_ABRT) {I2Cx->IC_CLR_TX_ABRT;} + if((I2C_IT & I2C_IT_RX_DONE) == I2C_FLAG_RX_DONE) {I2Cx->IC_CLR_RX_DONE;} + if((I2C_IT & I2C_IT_ACTIVITY) == I2C_FLAG_ACTIVITY) {I2Cx->IC_CLR_ACTIVITY;} + if((I2C_IT & I2C_IT_STOP_DET) == I2C_FLAG_STOP_DET) {I2Cx->IC_CLR_STOP_DET;} + if((I2C_IT & I2C_IT_START_DET) == I2C_FLAG_START_DET) {I2Cx->IC_CLR_START_DET;} + if((I2C_IT & I2C_IT_GEN_CALL) == I2C_FLAG_GEN_CALL) {I2Cx->IC_CLR_GEN_CALL;} +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_iwdg.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_iwdg.c new file mode 100644 index 000000000..4999a96e3 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_iwdg.c @@ -0,0 +1,194 @@ +/** +****************************************************************************** +* @file HAL_iwdg.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the IWDG firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_iwdg.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup IWDG +* @brief IWDG driver modules +* @{ +*/ + +/** @defgroup IWDG_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup IWDG_Private_Defines +* @{ +*/ + +/* ---------------------- IWDG registers bit mask ----------------------------*/ + +/* KR register bit mask */ +#define KR_KEY_Reload ((uint16_t)0xAAAA) +#define KR_KEY_Enable ((uint16_t)0xCCCC) + +/** +* @} +*/ + +/** @defgroup IWDG_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup IWDG_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup IWDG_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup IWDG_Private_Functions +* @{ +*/ + +/** +* @brief Enables or disables write access to IWDG_PR and IWDG_RLR +* registers. +* @param IWDG_WriteAccess: new state of write access to IWDG_PR and +* IWDG_RLR registers. +* This parameter can be one of the following values: +* @arg IWDG_WriteAccess_Enable: Enable write access to +* IWDG_PR and IWDG_RLR registers +* @arg IWDG_WriteAccess_Disable: Disable write access to +* IWDG_PR and IWDG_RLR registers +* @retval : None +*/ +void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess) +{ + /* Check the parameters */ + assert_param(IS_IWDG_WRITE_ACCESS(IWDG_WriteAccess)); + IWDG->KR = IWDG_WriteAccess; +} + +/** +* @brief Sets IWDG Prescaler value. +* @param IWDG_Prescaler: specifies the IWDG Prescaler value. +* This parameter can be one of the following values: +* @arg IWDG_Prescaler_4: IWDG prescaler set to 4 +* @arg IWDG_Prescaler_8: IWDG prescaler set to 8 +* @arg IWDG_Prescaler_16: IWDG prescaler set to 16 +* @arg IWDG_Prescaler_32: IWDG prescaler set to 32 +* @arg IWDG_Prescaler_64: IWDG prescaler set to 64 +* @arg IWDG_Prescaler_128: IWDG prescaler set to 128 +* @arg IWDG_Prescaler_256: IWDG prescaler set to 256 +* @retval : None +*/ +void IWDG_SetPrescaler(uint8_t IWDG_Prescaler) +{ + /* Check the parameters */ + assert_param(IS_IWDG_PRESCALER(IWDG_Prescaler)); + IWDG->PR = IWDG_Prescaler; +} + +/** +* @brief Sets IWDG Reload value. +* @param Reload: specifies the IWDG Reload value. +* This parameter must be a number between 0 and 0x0FFF. +* @retval : None +*/ +void IWDG_SetReload(uint16_t Reload) +{ + /* Check the parameters */ + assert_param(IS_IWDG_RELOAD(Reload)); + IWDG->RLR = Reload; +} + +/** +* @brief Reloads IWDG counter with value defined in the reload register +* (write access to IWDG_PR and IWDG_RLR registers disabled). +* @param None +* @retval : None +*/ +void IWDG_ReloadCounter(void) +{ + IWDG->KR = KR_KEY_Reload; +} + +/** +* @brief Enables IWDG (write access to IWDG_PR and IWDG_RLR registers +* disabled). +* @param None +* @retval : None +*/ +void IWDG_Enable(void) +{ + IWDG->KR = KR_KEY_Enable; +} + +/** +* @brief Checks whether the specified IWDG flag is set or not. +* @param IWDG_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg IWDG_FLAG_PVU: Prescaler Value Update on going +* @arg IWDG_FLAG_RVU: Reload Value Update on going +* @retval : The new state of IWDG_FLAG (SET or RESET). +*/ +FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_IWDG_FLAG(IWDG_FLAG)); + if ((IWDG->SR & IWDG_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + /* Return the flag status */ + return bitstatus; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_misc.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_misc.c new file mode 100644 index 000000000..d56238252 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_misc.c @@ -0,0 +1,217 @@ +/** +****************************************************************************** +* @file HAL_misc.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the miscellaneous firmware functions (add-on +* to CMSIS functions). +****************************************************************************** +* @attention +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+****************************************************************************** +*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_misc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup MISC +* @brief MISC driver modules +* @{ +*/ + +/** @defgroup MISC_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup MISC_Private_Defines +* @{ +*/ + +#define AIRCR_VECTKEY_MASK ((uint32_t)0x05FA0000) +/** +* @} +*/ + +/** @defgroup MISC_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup MISC_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup MISC_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup MISC_Private_Functions +* @{ +*/ + +/** +* @brief Configures the priority grouping: pre-emption priority and subpriority. +* @param NVIC_PriorityGroup: specifies 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 +* @retval None +*/ +void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) +{ + + + /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */ + SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup; +} + +/** +* @brief Initializes the NVIC peripheral according to the specified +* parameters in the NVIC_InitStruct. +* @param NVIC_InitStruct: pointer to a NVIC_InitTypeDef structure that contains +* the configuration information for the specified NVIC peripheral. +* @retval None +*/ +void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct) +{ + uint32_t tmppriority = 0x00, tmppre = 0x00, tmpsub = 0x0F; + + + + if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE) + { + /* Compute the Corresponding IRQ Priority --------------------------------*/ + tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700)) >> 0x08; + tmppre = (0x4 - tmppriority); + tmpsub = tmpsub >> tmppriority; + + tmppriority = (uint32_t)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre; + tmppriority |= NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub; + tmppriority = tmppriority << 0x04; + + NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority; + + /* Enable the Selected IRQ Channels --------------------------------------*/ + NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] = + (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F); + } + else + { + /* Disable the Selected IRQ Channels -------------------------------------*/ + NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] = + (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F); + } + + tmppre = NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05]; +} + +/** +* @brief Sets the vector table location and Offset. +* @param NVIC_VectTab: specifies if the vector table is in RAM or FLASH memory. +* This parameter can be one of the following values: +* @arg NVIC_VectTab_RAM +* @arg NVIC_VectTab_FLASH +* @param Offset: Vector Table base offset field. This value must be a multiple +* of 0x200. +* @retval None +*/ +void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset) +{ + SCB->VTOR = NVIC_VectTab | (Offset & (uint32_t)0x1FFFFF80); +} + +/** +* @brief Selects the condition for the system to enter low power mode. +* @param LowPowerMode: Specifies the new mode for the system to enter low power mode. +* This parameter can be one of the following values: +* @arg NVIC_LP_SEVONPEND +* @arg NVIC_LP_SLEEPDEEP +* @arg NVIC_LP_SLEEPONEXIT +* @param NewState: new state of LP condition. This parameter can be: ENABLE or DISABLE. +* @retval None +*/ +void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState) +{ + + + if (NewState != DISABLE) + { + SCB->SCR |= LowPowerMode; + } + else + { + SCB->SCR &= (uint32_t)(~(uint32_t)LowPowerMode); + } +} + +/** +* @brief Configures the SysTick clock source. +* @param SysTick_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 SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource) +{ + /* Check the parameters */ + + if (SysTick_CLKSource == SysTick_CLKSource_HCLK) + { + SysTick->CTRL |= SysTick_CLKSource_HCLK; + } + else + { + SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8; + } +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_pwr.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_pwr.c new file mode 100644 index 000000000..da846c618 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_pwr.c @@ -0,0 +1,346 @@ +/** +****************************************************************************** +* @file HAL_pwr.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the PWR firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_pwr.h" +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup PWR +* @brief PWR driver modules +* @{ +*/ + +/** @defgroup PWR_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup PWR_Private_Defines +* @{ +*/ + +/* --------- PWR registers bit address in the alias region ---------- */ +#define PWR_OFFSET (PWR_BASE - PERIPH_BASE) + +/* --- CR Register ---*/ + +/* Alias word address of DBP bit */ +#define CR_OFFSET (PWR_OFFSET + 0x00) +#define DBP_BitNumber 0x08 +#define CR_DBP_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (DBP_BitNumber * 4)) + +/* Alias word address of PVDE bit */ +#define PVDE_BitNumber 0x04 +#define CR_PVDE_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PVDE_BitNumber * 4)) + +/* --- CSR Register ---*/ + +/* Alias word address of EWUP bit */ +#define CSR_OFFSET (PWR_OFFSET + 0x04) +#define EWUP_BitNumber 0x08 +#define CSR_EWUP_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (EWUP_BitNumber * 4)) + +/* ------------------ PWR registers bit mask ------------------------ */ + +/* CR register bit mask */ +#define CR_PDDS_Set ((uint32_t)0x00000002) +#define CR_DS_Mask ((uint32_t)0xFFFFFFFC) +#define CR_CWUF_Set ((uint32_t)0x00000004) +#define CR_PLS_Mask ((uint32_t)0xFFFFE1FF) + +/* --------- Cortex System Control register bit mask ---------------- */ + +/* Cortex System Control register address */ +#define SCB_SysCtrl ((uint32_t)0xE000ED10) + +/* SLEEPDEEP bit mask */ +#define SysCtrl_SLEEPDEEP_Set ((uint32_t)0x00000004) +/** +* @} +*/ + +/** @defgroup PWR_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup PWR_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup PWR_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup PWR_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the PWR peripheral registers to their default +* reset values. +* @param None +* @retval : None +*/ +void PWR_DeInit(void) +{ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, DISABLE); +} + +/** +* @brief Enables or disables access to the RTC and backup registers. +* @param NewState: new state of the access to the RTC and backup +* registers. This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void PWR_BackupAccessCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + //*(__IO uint32_t *) CR_DBP_BB = (uint32_t)NewState; + if(NewState != DISABLE) + { + PWR->CR |= 0x00000100; + } + else + { + PWR->CR &= 0xfffffeff; + } + +} + +/** +* @brief Enables or disables the Power Voltage Detector(PVD). +* @param NewState: new state of the PVD. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void PWR_PVDCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if(NewState == ENABLE) + { + PWR->CR |= 0x00000010; + } + else + { + PWR->CR &= 0xffffffef; + } + +} + +/** +* @brief Configures the voltage threshold detected by the Power Voltage +* Detector(PVD). +* @param PWR_PVDLevel: specifies the PVD detection level +* This parameter can be one of the following values: +* @arg PWR_PVDLevel_1V8: PVD detection level set to 2.8V +* @arg PWR_PVDLevel_2V1: PVD detection level set to 2.1V +* @arg PWR_PVDLevel_2V4: PVD detection level set to 2.4V +* @arg PWR_PVDLevel_2V7: PVD detection level set to 2.7V +* @arg PWR_PVDLevel_3V0: PVD detection level set to 3.0V +* @arg PWR_PVDLevel_3V3: PVD detection level set to 3.3V +* @arg PWR_PVDLevel_3V6: PVD detection level set to 3.6V +* @arg PWR_PVDLevel_3V9: PVD detection level set to 3.9V +* @arg PWR_PVDLevel_4V2: PVD detection level set to 4.2V +* @arg PWR_PVDLevel_4V5: PVD detection level set to 4.5V +* @arg PWR_PVDLevel_4V8: PVD detection level set to 4.8V +* @retval : None +*/ +void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_PWR_PVD_LEVEL(PWR_PVDLevel)); + tmpreg = PWR->CR; + /* Clear PLS[12:9] bits */ + tmpreg &= CR_PLS_Mask; + /* Set PLS[12:9] bits according to PWR_PVDLevel value */ + tmpreg |= PWR_PVDLevel; + /* Store the new value */ + PWR->CR = tmpreg; +} + +/** +* @brief Enables or disables the WakeUp Pin functionality. +* @param NewState: new state of the WakeUp Pin functionality. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void PWR_WakeUpPinCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if(NewState != DISABLE) + { + PWR->CSR |= 0x00000100; + } + else + { + PWR->CSR &= 0xfffffeff; + } +} + +/** +* @brief Enters STOP mode. +* @param PWR_Regulator: specifies the regulator state in STOP mode. +* This parameter can be one of the following values: +* @arg PWR_Regulator_ON: STOP mode with regulator ON +* @arg PWR_Regulator_LowPower: STOP mode with +* regulator in low power mode +* @param PWR_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 PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_PWR_REGULATOR(PWR_Regulator)); + assert_param(IS_PWR_STOP_ENTRY(PWR_STOPEntry)); + + /* Select the regulator state in STOP mode ---------------------------------*/ + tmpreg = PWR->CR; + /* Clear PDDS and LPDS bits */ + tmpreg &= CR_DS_Mask; + /* Set LPDS bit according to PWR_Regulator value */ + tmpreg |= PWR_Regulator; + /* Store the new value */ + PWR->CR = tmpreg; + /* Set SLEEPDEEP bit of Cortex System Control Register */ + + SCB->SCR |= SysCtrl_SLEEPDEEP_Set; + + /* Select STOP mode entry --------------------------------------------------*/ + if(PWR_STOPEntry == PWR_STOPEntry_WFI) + { + /* Request Wait For Interrupt */ + __WFI(); + } + else + { + /* Request Wait For Event */ + __WFE(); + } +} + +/** +* @brief Enters STANDBY mode. +* @param None +* @retval : None +*/ +void PWR_EnterSTANDBYMode(void) +{ + /* Clear Wake-up flag */ + PWR->CR |= CR_CWUF_Set; + /* Select STANDBY mode */ + PWR->CR |= CR_PDDS_Set; + /* Set SLEEPDEEP bit of Cortex System Control Register */ + + SCB->SCR |= SysCtrl_SLEEPDEEP_Set; + /* This option is used to ensure that store operations are completed */ +#if defined ( __CC_ARM ) + __force_stores(); +#endif + /* Request Wait For Interrupt */ + __WFI(); +} + +/** +* @brief Checks whether the specified PWR flag is set or not. +* @param PWR_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg PWR_FLAG_WU: Wake Up flag +* @arg PWR_FLAG_SB: StandBy flag +* @arg PWR_FLAG_PVDO: PVD Output +* @retval : The new state of PWR_FLAG (SET or RESET). +*/ +FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_PWR_GET_FLAG(PWR_FLAG)); + + if ((PWR->CSR & PWR_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + /* Return the flag status */ + return bitstatus; +} + +/** +* @brief Clears the PWR's pending flags. +* @param PWR_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 +* @retval : None +*/ +void PWR_ClearFlag(uint32_t PWR_FLAG) +{ + /* Check the parameters */ + assert_param(IS_PWR_CLEAR_FLAG(PWR_FLAG)); + + PWR->CR |= PWR_FLAG << 2; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rcc.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rcc.c new file mode 100644 index 000000000..d17fc6a44 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rcc.c @@ -0,0 +1,1149 @@ +/** +****************************************************************************** +* @file HAL_rcc.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the RCC firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup RCC +* @brief RCC driver modules +* @{ +*/ + +/** @defgroup RCC_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RCC_Private_Defines +* @{ +*/ + +/* ------------ RCC registers bit address in the alias region ----------- */ +#define RCC_OFFSET (RCC_BASE - PERIPH_BASE) + +/* --- CR Register ---*/ + +/* Alias word address of HSION bit */ +#define CR_OFFSET (RCC_OFFSET + 0x00) +#define HSION_BitNumber 0x00 +#define CR_HSION_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (HSION_BitNumber * 4)) + +/* Alias word address of PLLON bit */ +#define PLLON_BitNumber 0x18 +#define CR_PLLON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PLLON_BitNumber * 4)) + +/* Alias word address of CSSON bit */ +#define CSSON_BitNumber 0x13 +#define CR_CSSON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (CSSON_BitNumber * 4)) + +/* --- CFGR Register ---*/ + +/* Alias word address of USBPRE bit */ +#define CFGR_OFFSET (RCC_OFFSET + 0x04) +#define USBPRE_BitNumber 0x16 +#define CFGR_USBPRE_BB (PERIPH_BB_BASE + (CFGR_OFFSET * 32) + (USBPRE_BitNumber * 4)) + +/* --- BDCR Register ---*/ + +/* Alias word address of RTCEN bit */ +#define BDCR_OFFSET (RCC_OFFSET + 0x20) +#define RTCEN_BitNumber 0x0F +#define BDCR_RTCEN_BB (PERIPH_BB_BASE + (BDCR_OFFSET * 32) + (RTCEN_BitNumber * 4)) + +/* Alias word address of BDRST bit */ +#define BDRST_BitNumber 0x10 +#define BDCR_BDRST_BB (PERIPH_BB_BASE + (BDCR_OFFSET * 32) + (BDRST_BitNumber * 4)) + +/* --- CSR Register ---*/ + +/* Alias word address of LSION bit */ +#define CSR_OFFSET (RCC_OFFSET + 0x24) +#define LSION_BitNumber 0x00 +#define CSR_LSION_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (LSION_BitNumber * 4)) + +/* ---------------------- RCC registers bit mask ------------------------ */ + +/* CR register bit mask */ +#define CR_HSEBYP_Reset ((uint32_t)0xFFFBFFFF) +#define CR_HSEBYP_Set ((uint32_t)0x00040000) +#define CR_HSEON_Reset ((uint32_t)0xFFFEFFFF) +#define CR_HSEON_Set ((uint32_t)0x00010000) +#define CR_HSITRIM_Mask ((uint32_t)0xFFFFFF07) + +/* CFGR register bit mask */ +#define CFGR_PLL_Mask ((uint32_t)0xFFC0FFFF) +#define CFGR_PLLMull_Mask ((uint32_t)0x003C0000) +#define CFGR_PLLSRC_Mask ((uint32_t)0x00010000) +#define CFGR_PLLXTPRE_Mask ((uint32_t)0x00020000) +#define CFGR_SWS_Mask ((uint32_t)0x0000000C) +#define CFGR_SW_Mask ((uint32_t)0xFFFFFFFC) +#define CFGR_HPRE_Reset_Mask ((uint32_t)0xFFFFFF0F) +#define CFGR_HPRE_Set_Mask ((uint32_t)0x000000F0) +#define CFGR_PPRE1_Reset_Mask ((uint32_t)0xFFFFF8FF) +#define CFGR_PPRE1_Set_Mask ((uint32_t)0x00000700) +#define CFGR_PPRE2_Reset_Mask ((uint32_t)0xFFFFC7FF) +#define CFGR_PPRE2_Set_Mask ((uint32_t)0x00003800) +#define CFGR_ADCPRE_Reset_Mask ((uint32_t)0xFFFF3FFF) +#define CFGR_ADCPRE_Set_Mask ((uint32_t)0x0000C000) + +/* CSR register bit mask */ +#define CSR_RMVF_Set ((uint32_t)0x01000000) + +/* RCC Flag Mask */ +#define FLAG_Mask ((uint8_t)0x1F) + +/* CIR register byte 2 (Bits[15:8]) base address */ +#define CIR_BYTE2_ADDRESS ((uint32_t)0x40021009) + +/* CIR register byte 3 (Bits[23:16]) base address */ +#define CIR_BYTE3_ADDRESS ((uint32_t)0x4002100A) + +/* CFGR register byte 4 (Bits[31:24]) base address */ +#define CFGR_BYTE4_ADDRESS ((uint32_t)0x40021007) + +/* BDCR register base address */ +#define BDCR_ADDRESS (PERIPH_BASE + BDCR_OFFSET) + +#ifndef HSEStartUp_TimeOut +/* Time out for HSE start up */ +#define HSEStartUp_TimeOut ((uint16_t)0x0500) +#endif + +/** +* @} +*/ + +/** @defgroup RCC_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RCC_Private_Variables +* @{ +*/ + +static __I uint8_t APBAHBPrescTable[16] = {0, 0, 0, 0, 1, 2, 3, 4, 1, 2, 3, 4, 6, 7, 8, 9}; +static __I uint8_t ADCPrescTable[4] = {2, 4, 6, 8}; + +/** +* @} +*/ + +/** @defgroup RCC_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RCC_Private_Functions +* @{ +*/ + +/** +* @brief Resets the RCC clock configuration to the default reset state. +* @param None +* @retval : None +*/ +void RCC_DeInit(void) +{ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + /* Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0], ADCPRE[1:0] and MCO[2:0] bits */ + RCC->CFGR &= (uint32_t)0xF8FF0000; + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + /* Reset PLLSRC, PLLXTPRE, PLLMUL[3:0] and USBPRE bits */ + RCC->CFGR &= (uint32_t)0xFF80FFFF; + /* Disable all interrupts */ + RCC->CIR = 0x00000000; +} + +/** +* @brief Configures the External High Speed oscillator (HSE). +* HSE can not be stopped if it is used directly or through the +* PLL as system clock. +* @param RCC_HSE: specifies the new state of the HSE. +* This parameter can be one of the following values: +* @arg RCC_HSE_OFF: HSE oscillator OFF +* @arg RCC_HSE_ON: HSE oscillator ON +* @arg RCC_HSE_Bypass: HSE oscillator bypassed with external +* clock +* @retval : None +*/ +void RCC_HSEConfig(uint32_t RCC_HSE) +{ + /* Check the parameters */ + assert_param(IS_RCC_HSE(RCC_HSE)); + /* Reset HSEON and HSEBYP bits before configuring the HSE ------------------*/ + /* Reset HSEON bit */ + RCC->CR &= CR_HSEON_Reset; + /* Reset HSEBYP bit */ + RCC->CR &= CR_HSEBYP_Reset; + /* Configure HSE (RCC_HSE_OFF is already covered by the code section above) */ + switch(RCC_HSE) + { + case RCC_HSE_ON: + /* Set HSEON bit */ + RCC->CR |= CR_HSEON_Set; + break; + + case RCC_HSE_Bypass: + /* Set HSEBYP and HSEON bits */ + RCC->CR |= CR_HSEBYP_Set | CR_HSEON_Set; + break; + + default: + break; + } +} + +/** +* @brief Waits for HSE start-up. +* @param None +* @retval : An ErrorStatus enumuration value: +* - SUCCESS: HSE oscillator is stable and ready to use +* - ERROR: HSE oscillator not yet ready +*/ +ErrorStatus RCC_WaitForHSEStartUp(void) +{ + __IO uint32_t StartUpCounter = 0; + ErrorStatus status = ERROR; + FlagStatus HSEStatus = RESET; + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC_GetFlagStatus(RCC_FLAG_HSERDY); + StartUpCounter++; + } + while((HSEStatus == RESET) && (StartUpCounter != HSEStartUp_TimeOut)); + if (RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET) + { + status = SUCCESS; + } + else + { + status = ERROR; + } + return (status); +} + +/** +* @brief Adjusts the Internal High Speed oscillator (HSI) calibration +* value. +* @param HSICalibrationValue: specifies the calibration trimming value. +* This parameter must be a number between 0 and 0x1F. +* @retval : None +*/ +void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_RCC_CALIBRATION_VALUE(HSICalibrationValue)); + tmpreg = RCC->CR; + /* Clear HSITRIM[4:0] bits */ + tmpreg &= CR_HSITRIM_Mask; + /* Set the HSITRIM[4:0] bits according to HSICalibrationValue value */ + tmpreg |= (uint32_t)HSICalibrationValue << 3; + /* Store the new value */ + RCC->CR = tmpreg; +} + +/** +* @brief Enables or disables the Internal High Speed oscillator (HSI). +* HSI can not be stopped if it is used directly or through the +* PLL as system clock. +* @param NewState: new state of the HSI. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_HSICmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if(NewState == ENABLE) + { + RCC->CR |= 0x01; + } + else + { + RCC->CR &= 0xfffffffe; + } +} +/** +* @brief Configures the PLL clock source and DM DN factor. +* This function must be used only when the PLL is disabled. +* @param RCC_PLLSource: specifies the PLL entry clock source. +* This parameter can be one of the following values: +* @arg RCC_PLLSource_HSI_Div2: HSI oscillator clock divided +* by 2 selected as PLL clock entry +* @arg RCC_PLLSource_HSE_Div1: HSE oscillator clock selected +* as PLL clock entry +* @arg RCC_PLLSource_HSE_Div2: HSE oscillator clock divided +* by 2 selected as PLL clock entry +* @param RCC_PLLDN: specifies the PLL multiplication factor. +* This parameter can be RCC_PLLMul_x where x:[31:26] +* @param RCC_PLLDM: specifies the PLL Divsior factor. +* This parameter can be RCC_Divsior_x where x:[22:20] +* @retval : None +*/ +void RCC_PLLDMDNConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLDN, uint32_t RCC_PLLDM) +{ + uint32_t tmpreg0 = 0; + + /* Check the parameters */ + assert_param(IS_RCC_PLL_SOURCE(RCC_PLLSource)); + assert_param(IS_RCC_PLL_MUL(RCC_PLLMul)); + tmpreg0 = RCC->CR; + + /* Clear PLLDN, PLLDM bits */ + /* Clear PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */ + tmpreg0 &= 0x038fffff; + + /* Set the PLL configuration bits */ + tmpreg0 |= (RCC_PLLDN << 26) | (RCC_PLLDM << 20); + + RCC->CR = tmpreg0; +} + + +/** +* @brief Configures the PLL clock source and multiplication factor. +* This function must be used only when the PLL is disabled. +* @param RCC_PLLSource: specifies the PLL entry clock source. +* This parameter can be one of the following values: +* @arg RCC_PLLSource_HSI_Div2: HSI oscillator clock divided +* by 2 selected as PLL clock entry +* @arg RCC_PLLSource_HSE_Div1: HSE oscillator clock selected +* as PLL clock entry +* @arg RCC_PLLSource_HSE_Div2: HSE oscillator clock divided +* by 2 selected as PLL clock entry +* @param RCC_PLLMul: specifies the PLL multiplication factor. +* This parameter can be RCC_PLLMul_x where x:[31:26][22:20] +* @retval : None +*/ +void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_RCC_PLL_SOURCE(RCC_PLLSource)); + assert_param(IS_RCC_PLL_MUL(RCC_PLLMul)); + tmpreg = RCC->CFGR; + /* Clear PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */ + tmpreg &= CFGR_PLL_Mask; + /* Set the PLL configuration bits */ + tmpreg |= RCC_PLLSource; + /* Store the new value */ + RCC->CFGR = tmpreg; + + if(RCC_PLLMul == RCC_PLLMul_2) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000007, 0x00000003); //Frclk*8/4 + } + if(RCC_PLLMul == RCC_PLLMul_3) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000005, 0x00000001);//Frclk*6/2 + } + if(RCC_PLLMul == RCC_PLLMul_4) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000007, 0x00000001);//Frclk*8/2 + } + if(RCC_PLLMul == RCC_PLLMul_5) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000009, 0x00000001);//Frclk*10/2 + } + if(RCC_PLLMul == RCC_PLLMul_6) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x0000000B, 0x00000001);//Frclk*12/2 + } + if(RCC_PLLMul == RCC_PLLMul_7) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x0000000D, 0x00000001);//Frclk*14/2 + } + if(RCC_PLLMul == RCC_PLLMul_8) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x0000000F, 0x00000001);//Frclk*16/2 + } + if(RCC_PLLMul == RCC_PLLMul_9) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000011, 0x00000001);//Frclk*18/2 + } + if(RCC_PLLMul == RCC_PLLMul_10) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000013, 0x00000001);//Frclk*20/2 + } + if(RCC_PLLMul == RCC_PLLMul_11) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000015, 0x00000001);//Frclk*22/2 + } + if(RCC_PLLMul == RCC_PLLMul_12) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000017, 0x00000001);//Frclk*24/2 + } + if(RCC_PLLMul == RCC_PLLMul_13) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x00000019, 0x00000001);//Frclk*26/2 + } + if(RCC_PLLMul == RCC_PLLMul_14) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x0000001B, 0x00000001);//Frclk*28/2 + } + if(RCC_PLLMul == RCC_PLLMul_15) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x0000001D, 0x00000001);//Frclk*30/2 + } + if(RCC_PLLMul == RCC_PLLMul_16) + { + RCC_PLLDMDNConfig(RCC_PLLSource, 0x0000001F, 0x00000001);//Frclk*32/2 + } +} + + +/** +* @brief Enables or disables the PLL. +* The PLL can not be disabled if it is used as system clock. +* @param NewState: new state of the PLL. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_PLLCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + RCC->CR |= 0x01000000; + } + else + { + RCC->CR &= 0xfeffffff; + } +} + +/** +* @brief Configures the system clock (SYSCLK). +* @param RCC_SYSCLKSource: specifies the clock source used as system +* clock. This parameter can be one of the following values: +* @arg RCC_SYSCLKSource_HSI: HSI selected as system clock +* @arg RCC_SYSCLKSource_HSE: HSE selected as system clock +* @arg RCC_SYSCLKSource_PLLCLK: PLL selected as system clock +* @retval : None +*/ +void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_RCC_SYSCLK_SOURCE(RCC_SYSCLKSource)); + tmpreg = RCC->CFGR; + /* Clear SW[1:0] bits */ + tmpreg &= CFGR_SW_Mask; + /* Set SW[1:0] bits according to RCC_SYSCLKSource value */ + tmpreg |= RCC_SYSCLKSource; + /* Store the new value */ + RCC->CFGR = tmpreg; +} + +/** +* @brief Returns the clock source used as system clock. +* @param None +* @retval : The clock source used as system clock. The returned value can +* be one of the following: +* - 0x00: HSI/6 used as system clock +* - 0x04: HSE used as system clock +* - 0x08: PLL used as system clock +*/ +uint8_t RCC_GetSYSCLKSource(void) +{ + return ((uint8_t)(RCC->CFGR & CFGR_SWS_Mask)); +} + +/** +* @brief Configures the AHB clock (HCLK). +* @param RCC_SYSCLK: defines the AHB clock divider. This clock is derived from +* the system clock (SYSCLK). +* This parameter can be one of the following values: +* @arg RCC_SYSCLK_Div1: AHB clock = SYSCLK +* @arg RCC_SYSCLK_Div2: AHB clock = SYSCLK/2 +* @arg RCC_SYSCLK_Div4: AHB clock = SYSCLK/4 +* @arg RCC_SYSCLK_Div8: AHB clock = SYSCLK/8 +* @arg RCC_SYSCLK_Div16: AHB clock = SYSCLK/16 +* @arg RCC_SYSCLK_Div64: AHB clock = SYSCLK/64 +* @arg RCC_SYSCLK_Div128: AHB clock = SYSCLK/128 +* @arg RCC_SYSCLK_Div256: AHB clock = SYSCLK/256 +* @arg RCC_SYSCLK_Div512: AHB clock = SYSCLK/512 +* @retval : None +*/ +void RCC_HCLKConfig(uint32_t RCC_SYSCLK) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_RCC_HCLK(RCC_SYSCLK)); + tmpreg = RCC->CFGR; + /* Clear HPRE[3:0] bits */ + tmpreg &= CFGR_HPRE_Reset_Mask; + /* Set HPRE[3:0] bits according to RCC_SYSCLK value */ + tmpreg |= RCC_SYSCLK; + /* Store the new value */ + RCC->CFGR = tmpreg; +} + +/** +* @brief Configures the Low Speed APB clock (PCLK1). +* @param RCC_HCLK: defines the APB1 clock divider. This clock is derived from +* the AHB clock (HCLK). +* This parameter can be one of the following values: +* @arg RCC_HCLK_Div1: APB1 clock = HCLK +* @arg RCC_HCLK_Div2: APB1 clock = HCLK/2 +* @arg RCC_HCLK_Div4: APB1 clock = HCLK/4 +* @arg RCC_HCLK_Div8: APB1 clock = HCLK/8 +* @arg RCC_HCLK_Div16: APB1 clock = HCLK/16 +* @retval : None +*/ +void RCC_PCLK1Config(uint32_t RCC_HCLK) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_RCC_PCLK(RCC_HCLK)); + tmpreg = RCC->CFGR; + /* Clear PPRE1[2:0] bits */ + tmpreg &= CFGR_PPRE1_Reset_Mask; + /* Set PPRE1[2:0] bits according to RCC_HCLK value */ + tmpreg |= RCC_HCLK; + /* Store the new value */ + RCC->CFGR = tmpreg; +} + +/** +* @brief Configures the High Speed APB clock (PCLK2). +* @param RCC_HCLK: defines the APB2 clock divider. This clock is derived from +* the AHB clock (HCLK). +* This parameter can be one of the following values: +* @arg RCC_HCLK_Div1: APB2 clock = HCLK +* @arg RCC_HCLK_Div2: APB2 clock = HCLK/2 +* @arg RCC_HCLK_Div4: APB2 clock = HCLK/4 +* @arg RCC_HCLK_Div8: APB2 clock = HCLK/8 +* @arg RCC_HCLK_Div16: APB2 clock = HCLK/16 +* @retval : None +*/ +void RCC_PCLK2Config(uint32_t RCC_HCLK) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_RCC_PCLK(RCC_HCLK)); + tmpreg = RCC->CFGR; + /* Clear PPRE2[2:0] bits */ + tmpreg &= CFGR_PPRE2_Reset_Mask; + /* Set PPRE2[2:0] bits according to RCC_HCLK value */ + tmpreg |= RCC_HCLK << 3; + /* Store the new value */ + RCC->CFGR = tmpreg; +} + +/** +* @brief Enables or disables the specified RCC interrupts. +* @param RCC_IT: specifies the RCC interrupt sources to be enabled or disabled. +* This parameter can be any combination of the following values: +* @arg RCC_IT_LSIRDY: LSI ready interrupt +* @arg RCC_IT_LSERDY: LSE ready interrupt +* @arg RCC_IT_HSIRDY: HSI ready interrupt +* @arg RCC_IT_HSERDY: HSE ready interrupt +* @arg RCC_IT_PLLRDY: PLL ready interrupt +* @param NewState: new state of the specified RCC interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_RCC_IT(RCC_IT)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Perform Byte access to RCC_CIR[12:8] bits to enable the selected interrupts */ + RCC->CIR &= ~((uint32_t)0x1f) << 8; + RCC->CIR |= ((uint32_t)RCC_IT) << 8; + } + else + { + /* Perform Byte access to RCC_CIR[12:8] bits to disable the selected interrupts */ + RCC->CIR &= ~((uint32_t)RCC_IT << 8); + } +} + +/** +* @brief Configures the USB clock (USBCLK). +* @param RCC_USBCLKSource: specifies the USB clock source. This clock is +* derived from the PLL output. +* This parameter can be one of the following values: +* @arg RCC_USBCLKSource_PLLCLK_1Div5: PLL clock divided by 1,5 selected as USB +* clock source +* @arg RCC_USBCLKSource_PLLCLK_Div1: PLL clock selected as USB clock source +* @retval : None +*/ +void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource) +{ + /* Check the parameters */ + assert_param(IS_RCC_USBCLK_SOURCE(RCC_USBCLKSource)); + RCC->CFGR &= ~(3 << 22); + RCC->CFGR |= RCC_USBCLKSource << 22; +} + +/** +* @brief Configures the ADC clock (ADCCLK). +* @param RCC_PCLK2: defines the ADC clock divider. This clock is derived from +* the APB2 clock (PCLK2). +* This parameter can be one of the following values: +* @arg RCC_PCLK2_Div2: ADC clock = PCLK2/2 +* @arg RCC_PCLK2_Div4: ADC clock = PCLK2/4 +* @arg RCC_PCLK2_Div6: ADC clock = PCLK2/6 +* @arg RCC_PCLK2_Div8: ADC clock = PCLK2/8 +* @retval : None +*/ +void RCC_ADCCLKConfig(uint32_t RCC_PCLK2) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_RCC_ADCCLK(RCC_PCLK2)); + tmpreg = RCC->CFGR; + /* Clear ADCPRE[1:0] bits */ + tmpreg &= CFGR_ADCPRE_Reset_Mask; + /* Set ADCPRE[1:0] bits according to RCC_PCLK2 value */ + tmpreg |= RCC_PCLK2; + /* Store the new value */ + RCC->CFGR = tmpreg; +} + +/** +* @brief Configures the External Low Speed oscillator (LSE). +* @param RCC_LSE: specifies the new state of the LSE. +* This parameter can be one of the following values: +* @arg RCC_LSE_OFF: LSE oscillator OFF +* @arg RCC_LSE_ON: LSE oscillator ON +* @arg RCC_LSE_Bypass: LSE oscillator bypassed with external +* clock +* @retval : None +*/ +void RCC_LSEConfig(uint8_t RCC_LSE) +{ + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_LSE)); + + /* Configure LSE (RCC_LSE_OFF is already covered by the code section above) */ + switch(RCC_LSE) + { + case RCC_LSE_ON: + /* Set LSEON bit */ + RCC->BDCR |= RCC_LSE_ON; + break; + + case RCC_LSE_Bypass: + /* Set LSEBYP and LSEON bits */ + RCC->BDCR |= RCC_LSE_Bypass | RCC_LSE_ON; + break; + + default: + break; + } +} + +/** +* @brief Enables or disables the Internal Low Speed oscillator (LSI). +* LSI can not be disabled if the IWDG is running. +* @param NewState: new state of the LSI. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_LSICmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + RCC->CSR |= 0x00000001; + } + else + { + RCC->CSR &= 0xfffffffe; + } +} + +/** +* @brief Configures the RTC clock (RTCCLK). +* Once the RTC clock is selected it can’t be changed unless the +* Backup domain is reset. +* @param RCC_RTCCLKSource: specifies the RTC clock source. +* This parameter can be one of the following values: +* @arg RCC_RTCCLKSource_LSE: LSE selected as RTC clock +* @arg RCC_RTCCLKSource_LSI: LSI selected as RTC clock +* @arg RCC_RTCCLKSource_HSE_Div128: HSE clock divided by 128 +* selected as RTC clock +* @retval : None +*/ +void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource) +{ + /* Check the parameters */ + assert_param(IS_RCC_RTCCLK_SOURCE(RCC_RTCCLKSource)); + /* Select the RTC clock source */ + RCC->BDCR |= RCC_RTCCLKSource; +} + +/** +* @brief Enables or disables the RTC clock. +* This function must be used only after the RTC clock was +* selected using the RCC_RTCCLKConfig function. +* @param NewState: new state of the RTC clock. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_RTCCLKCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + RCC->BDCR |= 0x00008000; + } + else + { + RCC->BDCR &= 0xffff7fff; + } +} + +/** +* @brief Returns the frequencies of different on chip clocks. +* @param RCC_Clocks: pointer to a RCC_ClocksTypeDef structure which +* will hold the clocks frequencies. +* @retval : None +*/ +void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks) +{ + uint32_t tmp = 0, pllmull1 = 0, pllmull2 = 0, pllsource = 0, presc = 0; + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & CFGR_SWS_Mask; + switch (tmp) + { + case 0x00: /* HSI used as system clock */ + RCC_Clocks->SYSCLK_Frequency = HSI_Value_Pll_OFF; + break; + case 0x04: /* HSE used as system clock */ + RCC_Clocks->SYSCLK_Frequency = HSE_Value; + break; + case 0x08: /* PLL used as system clock */ + /* Get PLL clock source and multiplication factor ----------------------*/ + //pllmull = RCC->CFGR & CFGR_PLLMull_Mask; + //pllmull = ( pllmull >> 18) + 2; + pllmull1 = ((RCC->CR & 0xfc000000) >> 26) + 1; + pllmull2 = ((RCC->CR & 0x00700000) >> 20) + 1; + pllsource = RCC->CFGR & CFGR_PLLSRC_Mask; + if (pllsource == 0x00) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + RCC_Clocks->SYSCLK_Frequency = 2 * (HSI_Value_Pll_ON >> 1) * pllmull1 / pllmull2; + } + else + { + /* HSE selected as PLL clock entry */ + if ((RCC->CFGR & CFGR_PLLXTPRE_Mask) != (uint32_t)RESET) + { + /* HSE oscillator clock divided by 2 */ + RCC_Clocks->SYSCLK_Frequency = (HSE_Value >> 1) * pllmull1 / pllmull2; + } + else + { + RCC_Clocks->SYSCLK_Frequency = HSE_Value * pllmull1 / pllmull2; + } + } + break; + default: + RCC_Clocks->SYSCLK_Frequency = HSI_Value_Pll_OFF; + break; + } + /* Compute HCLK, PCLK1, PCLK2 and ADCCLK clocks frequencies ----------------*/ + /* Get HCLK prescaler */ + tmp = RCC->CFGR & CFGR_HPRE_Set_Mask; + tmp = tmp >> 4; + presc = APBAHBPrescTable[tmp]; + /* HCLK clock frequency */ + RCC_Clocks->HCLK_Frequency = RCC_Clocks->SYSCLK_Frequency >> presc; + /* Get PCLK1 prescaler */ + tmp = RCC->CFGR & CFGR_PPRE1_Set_Mask; + tmp = tmp >> 8; + presc = APBAHBPrescTable[tmp]; + /* PCLK1 clock frequency */ + RCC_Clocks->PCLK1_Frequency = RCC_Clocks->HCLK_Frequency >> presc; + /* Get PCLK2 prescaler */ + tmp = RCC->CFGR & CFGR_PPRE2_Set_Mask; + tmp = tmp >> 11; + presc = APBAHBPrescTable[tmp]; + /* PCLK2 clock frequency */ + RCC_Clocks->PCLK2_Frequency = RCC_Clocks->HCLK_Frequency >> presc; + /* Get ADCCLK prescaler */ + tmp = RCC->CFGR & CFGR_ADCPRE_Set_Mask; + tmp = tmp >> 14; + presc = ADCPrescTable[tmp]; + /* ADCCLK clock frequency */ + RCC_Clocks->ADCCLK_Frequency = RCC_Clocks->PCLK2_Frequency / presc; +} + +/** +* @brief Enables or disables the AHB peripheral clock. +* @param RCC_AHBPeriph: specifies the AHB peripheral to gates its clock. +* This parameter can be any combination of the following values: +* @arg RCC_AHBPeriph_DMA1 +* @arg RCC_AHBPeriph_DMA2 +* @arg RCC_AHBPeriph_SRAM +* @arg RCC_AHBPeriph_FLITF +* @arg RCC_AHBPeriph_CRC +* @arg RCC_AHBPeriph_FSMC +* @arg RCC_AHBPeriph_SDIO +* SRAM and FLITF clock can be disabled only during sleep mode. +* @param NewState: new state of the specified peripheral clock. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_RCC_AHB_PERIPH(RCC_AHBPeriph)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + RCC->AHBENR |= RCC_AHBPeriph; + } + else + { + RCC->AHBENR &= ~RCC_AHBPeriph; + } +} + +/** +* @brief Enables or disables the High Speed APB (APB2) peripheral clock. +* @param RCC_APB2Periph: specifies the APB2 peripheral to gates its +* clock. +* This parameter can be any combination of the following values: +* @arg RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB, +* RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE, +* RCC_APB2Periph_GPIOF, RCC_APB2Periph_GPIOG, RCC_APB2Periph_ADC1, +* RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1, +* RCC_APB2Periph_TIM8, RCC_APB2Periph_UART1, +* RCC_APB2Periph_ALL +* @param NewState: new state of the specified peripheral clock. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + RCC->APB2ENR |= RCC_APB2Periph; + } + else + { + RCC->APB2ENR &= ~RCC_APB2Periph; + } +} + +/** +* @brief Enables or disables the Low Speed APB (APB1) peripheral clock. +* @param RCC_APB1Periph: specifies the APB1 peripheral to gates its +* clock. +* This parameter can be any combination of the following values: +* @arg RCC_APB1Periph_TIM2, RCC_APB1Periph_TIM3, RCC_APB1Periph_TIM4, +* RCC_APB1Periph_TIM5, RCC_APB1Periph_TIM6, RCC_APB1Periph_TIM7, +* RCC_APB1Periph_WWDG, RCC_APB1Periph_SPI2, RCC_APB1Periph_SPI3, +* RCC_APB1Periph_UART2, RCC_APB1Periph_UART3, RCC_APB1Periph_UART4, +* RCC_APB1Periph_UART5, RCC_APB1Periph_I2C1, RCC_APB1Periph_I2C2, +* RCC_APB1Periph_USB, RCC_APB1Periph_CAN1, RCC_APB1Periph_BKP, +* RCC_APB1Periph_PWR, RCC_APB1Periph_DAC, RCC_APB1Periph_ALL +* @param NewState: new state of the specified peripheral clock. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + RCC->APB1ENR |= RCC_APB1Periph; + } + else + { + RCC->APB1ENR &= ~RCC_APB1Periph; + } +} + +/** +* @brief Forces or releases High Speed APB (APB2) peripheral reset. +* @param RCC_APB2Periph: specifies the APB2 peripheral to reset. +* This parameter can be any combination of the following values: +* @arg RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB, +* RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_ADC1, +* RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1, +* RCC_APB2Periph_TIM8, RCC_APB2Periph_UART1, RCC_APB2Periph_ADC3, +* RCC_APB2Periph_ALL +* @param NewState: new state of the specified peripheral reset. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + RCC->APB2RSTR |= RCC_APB2Periph; + } + else + { + RCC->APB2RSTR &= ~RCC_APB2Periph; + } +} + +/** +* @brief Forces or releases Low Speed APB (APB1) peripheral reset. +* @param RCC_APB1Periph: specifies the APB1 peripheral to reset. +* This parameter can be any combination of the following values: +* @arg RCC_APB1Periph_TIM2, RCC_APB1Periph_TIM3, RCC_APB1Periph_TIM4, +* RCC_APB1Periph_TIM5, RCC_APB1Periph_TIM6, RCC_APB1Periph_TIM7, +* RCC_APB1Periph_WWDG, RCC_APB1Periph_SPI2, RCC_APB1Periph_SPI3, +* RCC_APB1Periph_UART2, RCC_APB1Periph_UART3, RCC_APB1Periph_UART4, +* RCC_APB1Periph_UART5, RCC_APB1Periph_I2C1, RCC_APB1Periph_I2C2, +* RCC_APB1Periph_USB, RCC_APB1Periph_CAN1, RCC_APB1Periph_BKP, +* RCC_APB1Periph_PWR, RCC_APB1Periph_DAC, RCC_APB1Periph_ALL +* @param NewState: new state of the specified peripheral clock. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + RCC->APB1RSTR |= RCC_APB1Periph; + } + else + { + RCC->APB1RSTR &= ~RCC_APB1Periph; + } +} + +/** +* @brief Forces or releases the Backup domain reset. +* @param NewState: new state of the Backup domain reset. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_BackupResetCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + *(__IO uint32_t *) BDCR_BDRST_BB = (uint32_t)NewState; +} + +/** +* @brief Enables or disables the Clock Security System. +* @param NewState: new state of the Clock Security System.. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void RCC_ClockSecuritySystemCmd(FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_FUNCTIONAL_STATE(NewState)); + *(__IO uint32_t *) CR_CSSON_BB = (uint32_t)NewState; +} + +/** +* @brief Selects the clock source to output on MCO pin. +* @param RCC_MCO: specifies the clock source to output. +* This parameter can be one of the following values: +* @arg RCC_MCO_NoClock: No clock selected +* @arg RCC_MCO_SYSCLK: System clock selected +* @arg RCC_MCO_HSI: HSI oscillator clock selected +* @arg RCC_MCO_HSE: HSE oscillator clock selected +* @arg RCC_MCO_PLLCLK_Div2: PLL clock divided by 2 selected +* @retval : None +*/ +void RCC_MCOConfig(uint8_t RCC_MCO) +{ + /* Check the parameters */ + assert_param(IS_RCC_MCO(RCC_MCO)); + /* Perform Byte access to MCO[2:0] bits to select the MCO source */ + *(__IO uint8_t *) CFGR_BYTE4_ADDRESS = RCC_MCO; +} + +/** +* @brief Checks whether the specified RCC flag is set or not. +* @param RCC_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg RCC_FLAG_HSIRDY: HSI oscillator clock ready +* @arg RCC_FLAG_HSERDY: HSE oscillator clock ready +* @arg RCC_FLAG_PLLRDY: PLL clock ready +* @arg RCC_FLAG_LSERDY: LSE oscillator clock ready +* @arg RCC_FLAG_LSIRDY: LSI oscillator clock ready +* @arg RCC_FLAG_PINRST: Pin reset +* @arg RCC_FLAG_PORRST: POR/PDR reset +* @arg RCC_FLAG_SFTRST: Software reset +* @arg RCC_FLAG_IWDGRST: Independent Watchdog reset +* @arg RCC_FLAG_WWDGRST: Window Watchdog reset +* @arg RCC_FLAG_LPWRRST: Low Power reset +* @retval : The new state of RCC_FLAG (SET or RESET). +*/ +FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG) +{ + uint32_t tmp = 0; + uint32_t statusreg = 0; + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_RCC_FLAG(RCC_FLAG)); + /* Get the RCC register index */ + tmp = RCC_FLAG >> 5; + if (tmp == 1) /* The flag to check is in CR register */ + { + statusreg = RCC->CR; + } + else if (tmp == 2) /* The flag to check is in BDCR register */ + { + statusreg = RCC->BDCR; + } + else /* The flag to check is in CSR register */ + { + statusreg = RCC->CSR; + } + /* Get the flag position */ + tmp = RCC_FLAG & FLAG_Mask; + if ((statusreg & ((uint32_t)1 << tmp)) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + /* Return the flag status */ + return bitstatus; +} + +/** +* @brief Clears the RCC reset flags. +* The reset flags are: RCC_FLAG_PINRST, RCC_FLAG_PORRST, +* RCC_FLAG_SFTRST, RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST, +* RCC_FLAG_LPWRRST +* @param None +* @retval : None +*/ +void RCC_ClearFlag(void) +{ + /* Set RMVF bit to clear the reset flags */ + RCC->CSR |= CSR_RMVF_Set; +} + +/** +* @brief Checks whether the specified RCC interrupt has occurred or not. +* @param RCC_IT: specifies the RCC interrupt source to check. +* This parameter can be one of the following values: +* @arg RCC_IT_LSIRDY: LSI ready interrupt +* @arg RCC_IT_LSERDY: LSE ready interrupt +* @arg RCC_IT_HSIRDY: HSI ready interrupt +* @arg RCC_IT_HSERDY: HSE ready interrupt +* @arg RCC_IT_PLLRDY: PLL ready interrupt +* @arg RCC_IT_CSS: Clock Security System interrupt +* @retval : The new state of RCC_IT (SET or RESET). +*/ +ITStatus RCC_GetITStatus(uint8_t RCC_IT) +{ + ITStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_RCC_GET_IT(RCC_IT)); + /* Check the status of the specified RCC interrupt */ + if ((RCC->CIR & RCC_IT) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + /* Return the RCC_IT status */ + return bitstatus; +} + +/** +* @brief Clears the RCC’s interrupt pending bits. +* @param RCC_IT: specifies the interrupt pending bit to clear. +* This parameter can be any combination of the following values: +* @arg RCC_IT_LSIRDY: LSI ready interrupt +* @arg RCC_IT_LSERDY: LSE ready interrupt +* @arg RCC_IT_HSIRDY: HSI ready interrupt +* @arg RCC_IT_HSERDY: HSE ready interrupt +* @arg RCC_IT_PLLRDY: PLL ready interrupt +* @arg RCC_IT_CSS: Clock Security System interrupt +* @retval : None +*/ +void RCC_ClearITPendingBit(uint8_t RCC_IT) +{ + /* Check the parameters */ + assert_param(IS_RCC_CLEAR_IT(RCC_IT)); + /* Perform Byte access to RCC_CIR[23:16] bits to clear the selected interrupt + pending bits */ + + RCC->CIR |= (uint32_t)RCC_IT << 16; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rtc.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rtc.c new file mode 100644 index 000000000..dae87cdf5 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_rtc.c @@ -0,0 +1,339 @@ +/** +****************************************************************************** +* @file HAL_rtc.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the RTC firmware functions. +****************************************************************************** +* @attention +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+****************************************************************************** +*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_rtc.h" + +/** @addtogroup +* @{ +*/ + +/** @defgroup RTC +* @brief RTC driver modules +* @{ +*/ + +/** @defgroup RTC_Private_TypesDefinitions +* @{ +*/ +/** +* @} +*/ + +/** @defgroup RTC_Private_Defines +* @{ +*/ +#define RTC_LSB_MASK ((uint32_t)0x0000FFFF) /*!< RTC LSB Mask */ +#define PRLH_MSB_MASK ((uint32_t)0x000F0000) /*!< RTC Prescaler MSB Mask */ + +/** +* @} +*/ + +/** @defgroup RTC_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RTC_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RTC_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup RTC_Private_Functions +* @{ +*/ + +/** +* @brief Enables or disables the specified RTC interrupts. +* @param RTC_IT: specifies the RTC interrupts sources to be enabled or disabled. +* This parameter can be any combination of the following values: +* @arg RTC_IT_OW: Overflow interrupt +* @arg RTC_IT_ALR: Alarm interrupt +* @arg RTC_IT_SEC: Second interrupt +* @param NewState: new state of the specified RTC interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval None +*/ +void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_RTC_IT(RTC_IT)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + RTC->CRH |= RTC_IT; + } + else + { + RTC->CRH &= (uint16_t)~RTC_IT; + } +} + +/** +* @brief Enters the RTC configuration mode. +* @param None +* @retval None +*/ +void RTC_EnterConfigMode(void) +{ + /* Set the CNF flag to enter in the Configuration Mode */ + RTC->CRL |= RTC_CRL_CNF; +} + +/** +* @brief Exits from the RTC configuration mode. +* @param None +* @retval None +*/ +void RTC_ExitConfigMode(void) +{ + /* Reset the CNF flag to exit from the Configuration Mode */ + RTC->CRL &= (uint16_t)~((uint16_t)RTC_CRL_CNF); +} + +/** +* @brief Gets the RTC counter value. +* @param None +* @retval RTC counter value. +*/ +uint32_t RTC_GetCounter(void) +{ + uint16_t tmp = 0; + tmp = RTC->CNTL; + return (((uint32_t)RTC->CNTH << 16 ) | tmp) ; +} + +/** +* @brief Sets the RTC counter value. +* @param CounterValue: RTC counter new value. +* @retval None +*/ +void RTC_SetCounter(uint32_t CounterValue) +{ + RTC_EnterConfigMode(); + /* Set RTC COUNTER MSB word */ + RTC->CNTH = CounterValue >> 16; + /* Set RTC COUNTER LSB word */ + RTC->CNTL = (CounterValue & RTC_LSB_MASK); + RTC_ExitConfigMode(); +} + +/** +* @brief Sets the RTC prescaler value. +* @param PrescalerValue: RTC prescaler new value. +* @retval None +*/ +void RTC_SetPrescaler(uint32_t PrescalerValue) +{ + /* Check the parameters */ + assert_param(IS_RTC_PRESCALER(PrescalerValue)); + + RTC_EnterConfigMode(); + /* Set RTC PRESCALER MSB word */ + RTC->PRLH = (PrescalerValue & PRLH_MSB_MASK) >> 16; + /* Set RTC PRESCALER LSB word */ + RTC->PRLL = (PrescalerValue & RTC_LSB_MASK); + RTC_ExitConfigMode(); +} + +/** +* @brief Sets the RTC alarm value. +* @param AlarmValue: RTC alarm new value. +* @retval None +*/ +void RTC_SetAlarm(uint32_t AlarmValue) +{ + RTC_EnterConfigMode(); + /* Set the ALARM MSB word */ + RTC->ALRH = AlarmValue >> 16; + /* Set the ALARM LSB word */ + RTC->ALRL = (AlarmValue & RTC_LSB_MASK); + RTC_ExitConfigMode(); +} + +/** +* @brief Gets the RTC divider value. +* @param None +* @retval RTC Divider value. +*/ +uint32_t RTC_GetDivider(void) +{ + uint32_t tmp = 0x00; + tmp = ((uint32_t)RTC->DIVH & (uint32_t)0x000F) << 16; + tmp |= RTC->DIVL; + return tmp; +} + +/** +* @brief Waits until last write operation on RTC registers has finished. +* @note This function must be called before any write to RTC registers. +* @param None +* @retval None +*/ +void RTC_WaitForLastTask(void) +{ + /* Loop until RTOFF flag is set */ + while ((RTC->CRL & RTC_FLAG_RTOFF) == (uint16_t)RESET) + { + } +} + +/** +* @brief Waits until the RTC registers (RTC_CNT, RTC_ALR and RTC_PRL) +* are synchronized with RTC APB clock. +* @note This function must be called before any read operation after an APB reset +* or an APB clock stop. +* @param None +* @retval None +*/ +void RTC_WaitForSynchro(void) +{ + /* Clear RSF flag */ + RTC->CRL &= (uint16_t)~RTC_FLAG_RSF; + /* Loop until RSF flag is set */ + while ((RTC->CRL & RTC_FLAG_RSF) == (uint16_t)RESET) + { + } +} + +/** +* @brief Checks whether the specified RTC flag is set or not. +* @param RTC_FLAG: specifies the flag to check. +* This parameter can be one the following values: +* @arg RTC_FLAG_RTOFF: RTC Operation OFF flag +* @arg RTC_FLAG_RSF: Registers Synchronized flag +* @arg RTC_FLAG_OW: Overflow flag +* @arg RTC_FLAG_ALR: Alarm flag +* @arg RTC_FLAG_SEC: Second flag +* @retval The new state of RTC_FLAG (SET or RESET). +*/ +FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG) +{ + FlagStatus bitstatus = RESET; + + /* Check the parameters */ + assert_param(IS_RTC_GET_FLAG(RTC_FLAG)); + + if ((RTC->CRL & RTC_FLAG) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @brief Clears the RTC's pending flags. +* @param RTC_FLAG: specifies the flag to clear. +* This parameter can be any combination of the following values: +* @arg RTC_FLAG_RSF: Registers Synchronized flag. This flag is cleared only after +* an APB reset or an APB Clock stop. +* @arg RTC_FLAG_OW: Overflow flag +* @arg RTC_FLAG_ALR: Alarm flag +* @arg RTC_FLAG_SEC: Second flag +* @retval None +*/ +void RTC_ClearFlag(uint16_t RTC_FLAG) +{ + /* Check the parameters */ + assert_param(IS_RTC_CLEAR_FLAG(RTC_FLAG)); + + /* Clear the corresponding RTC flag */ + RTC->CRL &= (uint16_t)~RTC_FLAG; +} + +/** +* @brief Checks whether the specified RTC interrupt has occurred or not. +* @param RTC_IT: specifies the RTC interrupts sources to check. +* This parameter can be one of the following values: +* @arg RTC_IT_OW: Overflow interrupt +* @arg RTC_IT_ALR: Alarm interrupt +* @arg RTC_IT_SEC: Second interrupt +* @retval The new state of the RTC_IT (SET or RESET). +*/ +ITStatus RTC_GetITStatus(uint16_t RTC_IT) +{ + ITStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_RTC_GET_IT(RTC_IT)); + + bitstatus = (ITStatus)(RTC->CRL & RTC_IT); + if (((RTC->CRH & RTC_IT) != (uint16_t)RESET) && (bitstatus != (uint16_t)RESET)) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @brief Clears the RTC's interrupt pending bits. +* @param RTC_IT: specifies the interrupt pending bit to clear. +* This parameter can be any combination of the following values: +* @arg RTC_IT_OW: Overflow interrupt +* @arg RTC_IT_ALR: Alarm interrupt +* @arg RTC_IT_SEC: Second interrupt +* @retval None +*/ +void RTC_ClearITPendingBit(uint16_t RTC_IT) +{ + /* Check the parameters */ + assert_param(IS_RTC_IT(RTC_IT)); + + /* Clear the corresponding RTC pending bit */ + RTC->CRL &= (uint16_t)~RTC_IT; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_spi.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_spi.c new file mode 100644 index 000000000..f02e9c451 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_spi.c @@ -0,0 +1,693 @@ +/** +****************************************************************************** +* @file HAL_spi.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the SPI firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_spi.h" + + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup SPI +* @brief SPI driver modules +* @{ +*/ + +/** @defgroup SPI_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + + +/** @defgroup SPI_Private_Defines +* @{ +*/ + + + +/* SPI SPIENE mask */ +#define GCTL_SPIEN_Set ((uint16_t)0x0001) +#define GCTL_SPIEN_Reset ((uint16_t)0xFFFE) +/* SPI registers Masks */ +#define GCTL_CLEAR_Mask ((uint16_t)0xF000) +#define CCTL_CLEAR_Mask ((uint16_t)0xFFC0) +#define SPBRG_CLEAR_Mask ((uint16_t)0x0000) +#define SPI_DataSize_Mask ((uint16_t)0xFCFF) +/** +* @} +*/ + +/** @defgroup SPI_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup SPI_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup SPI_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup SPI_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the SPIx peripheral registers to their default +* reset values . +* @param SPIx: where x can be 0, 1 to select the SPI peripheral. +* @retval : None +*/ +void SPI_DeInit(SPI_TypeDef* SPIx) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + + switch (*(uint32_t*)&SPIx) + { + case SPI1_BASE: + /* Enable SPI1 reset state */ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, ENABLE); + /* Release SPI1 from reset state */ + RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1, DISABLE); + break; + case SPI2_BASE: + /* Enable SPI2 reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, ENABLE); + /* Release SPI1 from reset state */ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, DISABLE); + break; + + + default: + break; + } +} + +/** +* @brief Initializes the SPIx peripheral according to the specified +* parameters in the SPI_InitStruct. +* @param SPIx: where x can be 0, 1 to select the SPI peripheral. +* @param SPI_InitStruct: pointer to a SPI_InitTypeDef structure that +* contains the configuration information for the specified +* SPI peripheral. +* @retval : None +*/ +void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct) +{ + uint32_t tmpreg = 0; + + /* check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + + /* Check the SPI parameters */ + assert_param(IS_SPI_DIRECTION_MODE(SPI_InitStruct->SPI_Direction)); + assert_param(IS_SPI_MODE(SPI_InitStruct->SPI_Mode)); + assert_param(IS_SPI_DATASIZE(SPI_InitStruct->SPI_DataSize)); + assert_param(IS_SPI_CPOL(SPI_InitStruct->SPI_CPOL)); + assert_param(IS_SPI_CPHA(SPI_InitStruct->SPI_CPHA)); + assert_param(IS_SPI_NSS(SPI_InitStruct->SPI_NSS)); + assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_InitStruct->SPI_BaudRatePrescaler)); + assert_param(IS_SPI_FIRST_BIT(SPI_InitStruct->SPI_FirstBit)); + assert_param(IS_SPI_DATAWIDRH(SPI_InitStruct->SPI_DataWidth)); + assert_param(IS_SPI_CRC_POLYNOMIAL(SPI_InitStruct->SPI_CRCPolynomial)); + /*---------------------------- SPIx GCTL Configuration ------------------------*/ + /* Get the SPIx GCTL value */ + tmpreg = SPIx->GCTL; + /* Clear csn_sel, dmamode, txtlf, rxtlf,data_sel, rxen, txen, mm, int_en, spien bits */ + tmpreg &= GCTL_CLEAR_Mask; + /* Configure SPIx: direction, NSS management, first transmitted bit, BaudRate prescaler + master/salve mode, CPOL and CPHA */ + /* Set dat_sel bits according to SPI_DataSize value */ + /* Set csn and csn_sel bits according to SPI_NSS value */ + /* Set mm bit according to SPI_Mode value */ + tmpreg |= (uint32_t)((uint32_t) SPI_InitStruct->SPI_DataSize | SPI_InitStruct->SPI_NSS | + SPI_InitStruct->SPI_Mode ); + /* Write to SPIx GCTL */ + SPIx->GCTL = tmpreg; + /*---------------------------- SPIx CCTL Configuration ------------------------*/ + tmpreg = SPIx->CCTL; + /* Clear spilen, lsbfe, CPOL, CPHA bits */ + tmpreg &= CCTL_CLEAR_Mask; + /* Set Spilen bit according to SPI_DataWidth value */ + /* Set LSBFirst bit according to SPI_FirstBit value */ + /* Set CPOL bit according to SPI_CPOL value */ + /* Set CPHA bit according to SPI_CPHA value */ + tmpreg |= (uint16_t)( SPI_InitStruct->SPI_FirstBit | SPI_InitStruct->SPI_CPOL | + SPI_InitStruct->SPI_CPHA) ; + + /* Write to SPIx CCTL */ + SPIx->CCTL = tmpreg | 0x18; + /*---------------------------- SPIx SPBRG Configuration ------------------------*/ + tmpreg = SPIx->SPBRG; + /* Clear spbrg bits */ + tmpreg &= (uint16_t)SPBRG_CLEAR_Mask; + /* Set BR bits according to SPI_BaudRatePrescaler value */ + tmpreg |= (uint16_t) SPI_InitStruct->SPI_BaudRatePrescaler; + /* Write to SPIx SPBRG */ + SPIx->SPBRG = tmpreg; + + if((SPI_InitStruct->SPI_DataWidth) != SPI_DataWidth_8b) + { + SPIx->CCTL |= 1 << 2; //lsbfe + SPIx->CCTL |= 1 << 3; //spilen + } + SPIx->EXTCTL = SPI_InitStruct->SPI_DataWidth; +} + +/** +* @brief Fills each SPI_InitStruct member with its default value. +* @param SPI_InitStruct : pointer to a SPI_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct) +{ + /*--------------- Reset SPI init structure parameters values -----------------*/ + + /* initialize the SPI_Mode member */ + SPI_InitStruct->SPI_Mode = SPI_Mode_Slave; + /* initialize the SPI_DataSize member */ + SPI_InitStruct->SPI_DataSize = SPI_DataSize_8b; + /* Initialize the SPILEN member */ + SPI_InitStruct->SPI_DataWidth = SPI_DataWidth_8b; + /* Initialize the SPI_CPOL member */ + SPI_InitStruct->SPI_CPOL = SPI_CPOL_Low; + /* Initialize the SPI_CPHA member */ + SPI_InitStruct->SPI_CPHA = SPI_CPHA_1Edge; + /* Initialize the SPI_NSS member */ + SPI_InitStruct->SPI_NSS = SPI_NSS_Soft; + /* Initialize the SPI_BaudRatePrescaler member */ + SPI_InitStruct->SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; + /* Initialize the SPI_FirstBit member */ + SPI_InitStruct->SPI_FirstBit = SPI_FirstBit_MSB; + +} + + +/** +* @brief Enables or disables the specified SPI peripheral. +* @param SPIx: where x can be 0, 1 to select the SPI peripheral. +* @param NewState: new state of the SPIx peripheral. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the selected SPI peripheral */ + SPIx->GCTL |= GCTL_SPIEN_Set; + } + else + { + /* Disable the selected SPI peripheral */ + SPIx->GCTL &= GCTL_SPIEN_Reset; + } +} + + +/** +* @brief Enables or disables the specified SPIinterrupts. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @param SPI_IT: specifies the SPI interrupt source to be +* enabled or disabled. +* This parameter can be one of the following values: +* @arg SPI_IT_TX: Tx buffer empty interrupt mask +* @arg SPI_IT_RX: Rx buffer interrupt mask +* @arg SPI_IT_UNDERRUN: under Error interrupt mask in slave mode +* @arg SPI_IT_RXOVER: RX OVER Error interrupt mask +* @arg SPI_IT_RXMATCH: spectials rx data numbers interrupt mask +* @arg SPI_IT_RXFULL: Rx buffer full interrupt mask +* @arg SPI_IT_TXEPT: Tx buffer empty interrupt mask +* @param NewState: new state of the specified SPI interrupt. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void SPI_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + assert_param(IS_SPI_CONFIG_IT(SPI_IT)); + + if (NewState != DISABLE) + { + /* Enable the selected SPI Global interrupt */ + SPIx->GCTL |= SPI_INT_EN; + /* Enable the selected SPI interrupt */ + SPIx->INTEN |= SPI_IT; + } + else + { + /* Disable the selected SPI interrupt */ + SPIx->INTEN &= (uint16_t)~SPI_IT; + /* Disable the selected SPI Global interrupt */ + SPIx->GCTL &= (uint16_t)~SPI_INT_EN; + } + +} + +/** +* @brief Enables or disables the SPIx DMA interface. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @param SPI_DMAReq: specifies the SPI DMA transfer request +* to be enabled or disabled. +* This parameter can be any combination of the following values: +* @arg SPI_DMAReq_EN: DMA transfer request enable +* @param NewState: new state of the selected SPI DMA transfer +* request. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void SPI_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_DMAReq, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + assert_param(IS_SPI_DMAREQ(SPI_DMAReq)); + if (NewState != DISABLE) + { + /* Enable the selected SPI DMA requests */ + SPIx->GCTL |= SPI_DMAReq; + } + else + { + /* Disable the selected SPI DMA requests */ + SPIx->GCTL &= (uint32_t)~SPI_DMAReq; + } +} + +/** +* @brief configure tn Fifo trigger level bit. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @param SPI_FifoTriggerValue: specifies the Fifo trigger level +* This parameter can be any combination of the following values: +* SPI_TXTLF : SPI TX FIFO Trigger value set +* SPI_RXTLF : SPI RX FIFO Trigger value set +* @param NewState: new state of the selected SPI DMA transfer +* request. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void SPI_FifoTrigger(SPI_TypeDef* SPIx, uint16_t SPI_FifoTriggerValue, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + assert_param(IS_SPI_FIFOTRIGGER(SPI_FifoTriggerValue)); + + if (NewState != DISABLE) + { + /* Enable the selected SPI DMA requests */ + SPIx->GCTL |= SPI_FifoTriggerValue; + } + else + { + /* Disable the selected SPI DMA requests */ + SPIx->GCTL &= (uint32_t)~SPI_FifoTriggerValue; + } +} + +/** +* @brief Transmits a Data through the SPIx peripheral. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @param Data : Data to be transmitted.. +* @retval : None +*/ +void SPI_SendData(SPI_TypeDef* SPIx, uint32_t Data) +{ + uint8_t temp; + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + + /* Write in the TXREG register the data to be sent */ + temp = SPIx->EXTCTL; + SPIx->TXREG = Data; + if(temp > 0x8 || temp == 0) SPIx->TXREG = Data >> 8; + if(temp > 0x10 || temp == 0) SPIx->TXREG = Data >> 16; + if(temp > 0x18 || temp == 0) SPIx->TXREG = Data >> 24; +} + + +/** +* @brief Returns the most recent received data by the SPIx peripheral. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @retval : The value of the received data. +*/ +uint32_t SPI_ReceiveData(SPI_TypeDef* SPIx) +{ + + uint32_t temp = 0; + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + temp = temp; + temp |= (uint32_t)SPIx->RXREG; + if(SPIx->EXTCTL > 8 || SPIx->EXTCTL == 0) temp |= (uint32_t) (SPIx->RXREG) << 8; + if(SPIx->EXTCTL > 16 || SPIx->EXTCTL == 0) temp |= (uint32_t)( SPIx->RXREG) << 16; + if(SPIx->EXTCTL > 24 || SPIx->EXTCTL == 0) temp |= (uint32_t)( SPIx->RXREG) << 24; + + return temp; +} + +/** +* @brief Slave chip csn single by selected +* @param SPIx: where x can be 0, 1 to select the SPI peripheral. +* @param SPI_CSInternalSelected: specifies the SPI CS internal selected. +* This parameter can be one of the following values: +* @arg SPI_CS_BIT0: cs bit 0 selected +* @arg SPI_CS_BIT1: cs bit 1 selected +* @arg SPI_CS_BIT2: cs bit 2 selected +* @arg SPI_CS_BIT3: cs bit 3 selected +* @arg SPI_CS_BIT4: cs bit 4 selected +* @arg SPI_CS_BIT5: cs bit 5 selected +* @arg SPI_CS_BIT6: cs bit 6 selected +* @arg SPI_CS_BIT7: cs bit 7 selected +* @param NewState: new state of the selected SPI CS pin +* request. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void SPI_CSInternalSelected(SPI_TypeDef* SPIx, uint16_t SPI_CSInternalSelected, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_CS(SPI_CSInternalSelected)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + + if (NewState != DISABLE) + { + /* selected cs pin according SCSR Value */ + SPIx->SCSR &= SPI_CSInternalSelected; + } + else + { + /* release cs pin according SCSR Value*/ + SPIx->SCSR |= ~SPI_CSInternalSelected; + } +} + + +/** +* @brief Configures internally by software the NSS pin for the selected +* SPI. +* @param SPIx: where x can be 1, 2 to select the SPI peripheral. +* @param SPI_NSSInternalSoft: specifies the SPI NSS internal state. +* This parameter can be one of the following values: +* @arg SPI_NSSInternalSoft_Set: Set NSS pin internally +* @arg SPI_NSSInternalSoft_Reset: Reset NSS pin internally +* @retval : None +*/ +void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSInternalSoft) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_NSS_INTERNAL(SPI_NSSInternalSoft)); + if (SPI_NSSInternalSoft != SPI_NSSInternalSoft_Reset) + { + /* Set NSS pin internally by software */ + SPIx->GCTL |= SPI_NSSInternalSoft_Set; + } + else + { + /* Reset NSS pin internally by software */ + SPIx->GCTL &= SPI_NSSInternalSoft_Reset; + } +} + + + +/** +* @brief Configures the data size for the selected SPI. +* @param SPIx: where x can be 0, 1 to select the SPI peripheral. +* @param SPI_DataSize: specifies the SPI data size. +* This parameter can be one of the following values: +* @arg SPI_DataSize_32b: Set data frame format to 32bit +* @arg SPI_DataSize_16b: Set data frame format to 16bit +* @arg SPI_DataSize_8b: Set data frame format to 8bit +* @retval : None +*/ +void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_DATASIZE(SPI_DataSize)); + /* Clear data_sel bit */ + SPIx->GCTL &= SPI_DataSize_Mask; + /* Set new data_sel bit value */ + SPIx->GCTL |= SPI_DataSize; +} + + + +/** +* @brief Selects the data transfer direction in bi-directional mode +* for the specified SPI. +* @param SPIx: where x can be 0, 1 to select the SPI peripheral. +* @param SPI_Direction: specifies the data transfer direction in +* bi-directional mode. +* This parameter can be one of the following values: +* @arg SPI_Direction_Tx: Selects Tx transmission direction +* @arg SPI_Direction_Rx: Selects Rx receive direction +@arg SPI_Disable_Tx: Selects Rx receive direction +@arg SPI_Disable_Rx: Selects Rx receive direction +* @retval : None +*/ +void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_DIRECTION(SPI_Direction)); + + /* Set the Tx only mode */ + if(SPI_Direction == SPI_Direction_Tx) + { + SPIx->GCTL |= SPI_Direction_Tx; + } + /* Set the Rx only mode */ + if(SPI_Direction == SPI_Direction_Rx) + { + SPIx->GCTL |= SPI_Direction_Rx; + } + /* Disable the Tx only mode */ + if(SPI_Direction == SPI_Disable_Tx) + { + SPIx->GCTL &= SPI_Disable_Tx; + } + /* Disable the Rx only mode */ + if(SPI_Direction == SPI_Disable_Rx) + { + SPIx->GCTL &= SPI_Disable_Rx; + } +} + +/** +* @brief Checks whether the specified SPI flag is set or not. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @param SPI_FLAG: specifies the SPI flag to check. +* This parameter can be one of the following values: +* @arg SPI_FLAG_RXAVL: Rx buffer has bytes flag +* @arg SPI_FLAG_TXEPT: Tx buffer and tx shifter empty flag +* @retval : The new state of SPI_FLAG (SET or RESET). +*/ +FlagStatus SPI_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_FLAG) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_GET_FLAG(SPI_FLAG)); + if(SPIx->EXTCTL == 8) + { + /* Check the status of the specified SPI flag */ + if ((SPIx->CSTAT & SPI_FLAG) != (uint16_t)RESET) + { + /* SPI_FLAG is set */ + bitstatus = SET; + } + else + { + /* SPI_FLAG is reset */ + bitstatus = RESET; + } + /* Return the SPI_FLAG status */ + return bitstatus; + } + else + { + uint8_t number; + if(SPIx->EXTCTL > 0 && SPIx->EXTCTL <= 8) + number = 1; + else if(SPIx->EXTCTL <= 16) + number = 2; + else if(SPIx->EXTCTL <= 24) + number = 3; + else if(SPIx->EXTCTL <= 31 || SPIx->EXTCTL == 0) + number = 4; + if(((SPIx->CSTAT & 0xf00) >> 8) >= number) + { + return SET; + } + else + { + return RESET; + } + } +} + +/** +* @brief Checks whether the specified SPI interrupt has occurred or not. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @param SPI_IT: specifies the SPI interrupt source to check. +* This parameter can be one of the following values: +* @arg SPI_IT_TX: Tx buffer empty interrupt +* @arg SPI_IT_RX: Rx buffer interrupt +* @arg SPI_IT_UNDERRUN: under Error interrupt in slave mode +* @arg SPI_IT_RXOVER: RX OVER Error interrupt +* @arg SPI_IT_RXMATCH: spectials rx data numbers interrupt +* @arg SPI_IT_RXFULL: Rx buffer full interrupt +* @arg SPI_IT_TXEPT: Tx buffer and tx shifter empty interrupt +* @retval : The new state of SPI_IT (SET or RESET). +*/ +ITStatus SPI_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_IT) +{ + ITStatus bitstatus = RESET; + + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_GET_IT(SPI_IT)); + /* Check the status of the specified SPI interrupt */ + if ((SPIx->INTSTAT & SPI_IT) != (uint16_t)RESET) + { + /* SPI_IT is set */ + bitstatus = SET; + } + else + { + /* SPI_IT is reset */ + bitstatus = RESET; + } + /* Return the SPI_IT status */ + return bitstatus; +} + +/** +* @brief Clears the SPIx Error interrupt pending bit. +* @param SPIx: where x can be : +* 0, 1 in SPI mode +* @param SPI_IT: specifies the SPI interrupt pending bit to clear. +* @arg SPI_IT_TX: Tx buffer empty interrupt +* @arg SPI_IT_RX: Rx buffer interrupt +* @arg SPI_IT_UNDERRUN: under Error interrupt in slave mode +* @arg SPI_IT_RXOVER: RX OVER Error interrupt +* @arg SPI_IT_RXMATCH: spectials rx data numbers interrupt +* @arg SPI_IT_RXFULL: Rx buffer full interrupt +* @arg SPI_IT_TXEPT: Tx buffer and tx shifter empty interrupt +* This function clears only ERR intetrrupt pending bit. +* @retval : None +*/ +void SPI_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_IT) +{ + + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_CLEAR_IT(SPI_IT)); + + /* Clear the selected SPI IT INTERRUPT */ + SPIx->INTCLR |= (uint16_t)SPI_IT; +} + + +/** +* @brief SPI Hole a count Received bytes in next receive process. +* @param SPIx: where x can be 0, 1 in SPI mode +* @param Number: specifies the SPI receive Number. +* This parament can be 1-65535. +* This function can use only in SPI master single receive mode. +* @retval : None +*/ +void SPI_RxBytes(SPI_TypeDef* SPIx, uint16_t Number) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + /*set the received bytes in next receive process */ + SPIx->RXDNR = Number; +} + +/** +* @brief slave mode tx data transmit phase adjust set. +* @param SPIx: where x can be 0, 1 in SPI mode +* @param AdjustValue: specifies the SPI receive Number. +* This parament can be : +* SPI_SlaveAdjust_FAST: fast speed use +* SPI_SlaveAdjust_LOW: low speed use +* This function can use only in SPI master single receive mode. +* @retval : None +*/ +void SPI_SlaveAdjust(SPI_TypeDef* SPIx, uint16_t AdjustValue) +{ + /* Check the parameters */ + assert_param(IS_SPI_ALL_PERIPH(SPIx)); + assert_param(IS_SPI_SlaveAdjust(AdjustValue)); + /*set the AdjustValue according to txedge bit of CCTL register*/ + SPIx->CCTL |= AdjustValue; +} + + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_tim.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_tim.c new file mode 100644 index 000000000..0d0d4584a --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_tim.c @@ -0,0 +1,2838 @@ +/** +****************************************************************************** +* @file HAL_tim.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the TIM firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_tim.h" +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup TIM +* @brief TIM driver modules +* @{ +*/ + +/** @defgroup TIM_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Private_Defines +* @{ +*/ + +/* ---------------------- TIM registers bit mask ------------------------ */ +#define CR1_CEN_Set ((uint16_t)0x0001) +#define CR1_CEN_Reset ((uint16_t)0x03FE) +#define CR1_UDIS_Set ((uint16_t)0x0002) +#define CR1_UDIS_Reset ((uint16_t)0x03FD) +#define CR1_URS_Set ((uint16_t)0x0004) +#define CR1_URS_Reset ((uint16_t)0x03FB) +#define CR1_OPM_Reset ((uint16_t)0x03F7) +#define CR1_CounterMode_Mask ((uint16_t)0x038F) +#define CR1_ARPE_Set ((uint16_t)0x0080) +#define CR1_ARPE_Reset ((uint16_t)0x037F) +#define CR1_CKD_Mask ((uint16_t)0x00FF) +#define CR2_CCPC_Set ((uint16_t)0x0001) +#define CR2_CCPC_Reset ((uint16_t)0xFFFE) +#define CR2_CCUS_Set ((uint16_t)0x0004) +#define CR2_CCUS_Reset ((uint16_t)0xFFFB) +#define CR2_CCDS_Set ((uint16_t)0x0008) +#define CR2_CCDS_Reset ((uint16_t)0xFFF7) +#define CR2_MMS_Mask ((uint16_t)0xFF8F) +#define CR2_TI1S_Set ((uint16_t)0x0080) +#define CR2_TI1S_Reset ((uint16_t)0xFF7F) +#define CR2_OIS1_Reset ((uint16_t)0x7EFF) +#define CR2_OIS1N_Reset ((uint16_t)0x7DFF) +#define CR2_OIS2_Reset ((uint16_t)0x7BFF) +#define CR2_OIS2N_Reset ((uint16_t)0x77FF) +#define CR2_OIS3_Reset ((uint16_t)0x6FFF) +#define CR2_OIS3N_Reset ((uint16_t)0x5FFF) +#define CR2_OIS4_Reset ((uint16_t)0x3FFF) +#define SMCR_SMS_Mask ((uint16_t)0xFFF8) +#define SMCR_ETR_Mask ((uint16_t)0x00FF) +#define SMCR_TS_Mask ((uint16_t)0xFF8F) +#define SMCR_MSM_Reset ((uint16_t)0xFF7F) +#define SMCR_ECE_Set ((uint16_t)0x4000) +#define CCMR_CC13S_Mask ((uint16_t)0xFFFC) +#define CCMR_CC24S_Mask ((uint16_t)0xFCFF) +#define CCMR_TI13Direct_Set ((uint16_t)0x0001) +#define CCMR_TI24Direct_Set ((uint16_t)0x0100) +#define CCMR_OC13FE_Reset ((uint16_t)0xFFFB) +#define CCMR_OC24FE_Reset ((uint16_t)0xFBFF) +#define CCMR_OC13PE_Reset ((uint16_t)0xFFF7) +#define CCMR_OC24PE_Reset ((uint16_t)0xF7FF) +#define CCMR_OC13M_Mask ((uint16_t)0xFF8F) +#define CCMR_OC24M_Mask ((uint16_t)0x8FFF) +#define CCMR_OC13CE_Reset ((uint16_t)0xFF7F) +#define CCMR_OC24CE_Reset ((uint16_t)0x7FFF) +#define CCMR_IC13PSC_Mask ((uint16_t)0xFFF3) +#define CCMR_IC24PSC_Mask ((uint16_t)0xF3FF) +#define CCMR_IC13F_Mask ((uint16_t)0xFF0F) +#define CCMR_IC24F_Mask ((uint16_t)0x0FFF) +#define CCMR_Offset ((uint16_t)0x0018) +#define CCER_CCE_Set ((uint16_t)0x0001) +#define CCER_CCNE_Set ((uint16_t)0x0004) +#define CCER_CC1P_Reset ((uint16_t)0xFFFD) +#define CCER_CC2P_Reset ((uint16_t)0xFFDF) +#define CCER_CC3P_Reset ((uint16_t)0xFDFF) +#define CCER_CC4P_Reset ((uint16_t)0xDFFF) +#define CCER_CC1NP_Reset ((uint16_t)0xFFF7) +#define CCER_CC2NP_Reset ((uint16_t)0xFF7F) +#define CCER_CC3NP_Reset ((uint16_t)0xF7FF) +#define CCER_CC1E_Set ((uint16_t)0x0001) +#define CCER_CC1E_Reset ((uint16_t)0xFFFE) +#define CCER_CC1NE_Reset ((uint16_t)0xFFFB) +#define CCER_CC2E_Set ((uint16_t)0x0010) +#define CCER_CC2E_Reset ((uint16_t)0xFFEF) +#define CCER_CC2NE_Reset ((uint16_t)0xFFBF) +#define CCER_CC3E_Set ((uint16_t)0x0100) +#define CCER_CC3E_Reset ((uint16_t)0xFEFF) +#define CCER_CC3NE_Reset ((uint16_t)0xFBFF) +#define CCER_CC4E_Set ((uint16_t)0x1000) +#define CCER_CC4E_Reset ((uint16_t)0xEFFF) +#define BDTR_MOE_Set ((uint16_t)0x8000) +#define BDTR_MOE_Reset ((uint16_t)0x7FFF) +/** +* @} +*/ + +/** @defgroup TIM_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Private_FunctionPrototypes +* @{ +*/ + +static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); +static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); +static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); +static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter); +/** +* @} +*/ + +/** @defgroup TIM_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup TIM_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the TIMx peripheral registers to their default +* reset values. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @retval : None +*/ +void TIM_DeInit(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + + switch (*(uint32_t*)&TIMx) + { + case TIM1_BASE: + RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, DISABLE); + break; + + case TIM2_BASE: + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE); + break; + + case TIM3_BASE: + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM3, DISABLE); + break; + + case TIM4_BASE: + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM4, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM4, DISABLE); + break; + + default: + break; + } +} + +/** +* @brief Initializes the TIMx Time Base Unit peripheral according to +* the specified parameters in the TIM_TimeBaseInitStruct. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_TimeBaseInitStruct: pointer to a TIM_TimeBaseInitTypeDef +* structure that contains the configuration information for +* the specified TIM peripheral. +* @retval : None +*/ +void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_COUNTER_MODE(TIM_TimeBaseInitStruct->TIM_CounterMode)); + assert_param(IS_TIM_CKD_DIV(TIM_TimeBaseInitStruct->TIM_ClockDivision)); + /* Select the Counter Mode and set the clock division */ + TIMx->CR1 &= CR1_CKD_Mask & CR1_CounterMode_Mask; + TIMx->CR1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision | + TIM_TimeBaseInitStruct->TIM_CounterMode; + + /* Set the Autoreload value */ + TIMx->ARR = TIM_TimeBaseInitStruct->TIM_Period ; + + /* Set the Prescaler value */ + TIMx->PSC = TIM_TimeBaseInitStruct->TIM_Prescaler; + + if(*(uint32_t*)&TIMx == TIM1_BASE) + { + /* Set the Repetition Counter value */ + TIMx->RCR = TIM_TimeBaseInitStruct->TIM_RepetitionCounter; + } + + /* Generate an update event to reload the Prescaler value immediatly */ + TIMx->EGR = TIM_PSCReloadMode_Immediate; +} + +/** +* @brief Initializes the TIMx Channel1 according to the specified +* parameters in the TIM_OCInitStruct. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure +* that contains the configuration information for the specified +* TIM peripheral. +* @retval : None +*/ +void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); + assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); + /* Disable the Channel 1: Reset the CC1E Bit */ + TIMx->CCER &= CCER_CC1E_Reset; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= CCMR_OC13M_Mask; + + /* Select the Output Compare Mode */ + tmpccmrx |= TIM_OCInitStruct->TIM_OCMode; + + /* Reset the Output Polarity level */ + tmpccer &= CCER_CC1P_Reset; + /* Set the Output Compare Polarity */ + tmpccer |= TIM_OCInitStruct->TIM_OCPolarity; + + /* Set the Output State */ + tmpccer |= TIM_OCInitStruct->TIM_OutputState; + + /* Set the Capture Compare Register value */ + TIMx->CCR1 = TIM_OCInitStruct->TIM_Pulse; + + if(*(uint32_t*)&TIMx == TIM1_BASE) + { + assert_param(IS_TIM_OUTPUTN_STATE(TIM_OCInitStruct->TIM_OutputNState)); + assert_param(IS_TIM_OCN_POLARITY(TIM_OCInitStruct->TIM_OCNPolarity)); + assert_param(IS_TIM_OCNIDLE_STATE(TIM_OCInitStruct->TIM_OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); + + /* Reset the Output N Polarity level */ + tmpccer &= CCER_CC1NP_Reset; + /* Set the Output N Polarity */ + tmpccer |= TIM_OCInitStruct->TIM_OCNPolarity; + /* Reset the Output N State */ + tmpccer &= CCER_CC1NE_Reset; + + /* Set the Output N State */ + tmpccer |= TIM_OCInitStruct->TIM_OutputNState; + /* Reset the Ouput Compare and Output Compare N IDLE State */ + tmpcr2 &= CR2_OIS1_Reset; + tmpcr2 &= CR2_OIS1N_Reset; + /* Set the Output Idle state */ + tmpcr2 |= TIM_OCInitStruct->TIM_OCIdleState; + /* Set the Output N Idle state */ + tmpcr2 |= TIM_OCInitStruct->TIM_OCNIdleState; + } + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Initializes the TIMx Channel2 according to the specified +* parameters in the TIM_OCInitStruct. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure +* that contains the configuration information for the specified +* TIM peripheral. +* @retval : None +*/ +void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); + assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= CCER_CC2E_Reset; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR1 register value */ + tmpccmrx = TIMx->CCMR1; + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= CCMR_OC24M_Mask; + + /* Select the Output Compare Mode */ + tmpccmrx |= (uint16_t)(TIM_OCInitStruct->TIM_OCMode << 8); + + /* Reset the Output Polarity level */ + tmpccer &= CCER_CC2P_Reset; + /* Set the Output Compare Polarity */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 4); + + /* Set the Output State */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 4); + + /* Set the Capture Compare Register value */ + TIMx->CCR2 = TIM_OCInitStruct->TIM_Pulse; + + if(*(uint32_t*)&TIMx == TIM1_BASE) + { + assert_param(IS_TIM_OUTPUTN_STATE(TIM_OCInitStruct->TIM_OutputNState)); + assert_param(IS_TIM_OCN_POLARITY(TIM_OCInitStruct->TIM_OCNPolarity)); + assert_param(IS_TIM_OCNIDLE_STATE(TIM_OCInitStruct->TIM_OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); + + /* Reset the Output N Polarity level */ + tmpccer &= CCER_CC2NP_Reset; + /* Set the Output N Polarity */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCNPolarity << 4); + /* Reset the Output N State */ + tmpccer &= CCER_CC2NE_Reset; + + /* Set the Output N State */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputNState << 4); + /* Reset the Ouput Compare and Output Compare N IDLE State */ + tmpcr2 &= CR2_OIS2_Reset; + tmpcr2 &= CR2_OIS2N_Reset; + /* Set the Output Idle state */ + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 2); + /* Set the Output N Idle state */ + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCNIdleState << 2); + } + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmrx; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Initializes the TIMx Channel3 according to the specified +* parameters in the TIM_OCInitStruct. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure +* that contains the configuration information for the specified +* TIM peripheral. +* @retval : None +*/ +void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); + assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= CCER_CC3E_Reset; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= CCMR_OC13M_Mask; + + /* Select the Output Compare Mode */ + tmpccmrx |= TIM_OCInitStruct->TIM_OCMode; + + /* Reset the Output Polarity level */ + tmpccer &= CCER_CC3P_Reset; + /* Set the Output Compare Polarity */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 8); + + /* Set the Output State */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 8); + + /* Set the Capture Compare Register value */ + TIMx->CCR3 = TIM_OCInitStruct->TIM_Pulse; + + if(*(uint32_t*)&TIMx == TIM1_BASE) + { + assert_param(IS_TIM_OUTPUTN_STATE(TIM_OCInitStruct->TIM_OutputNState)); + assert_param(IS_TIM_OCN_POLARITY(TIM_OCInitStruct->TIM_OCNPolarity)); + assert_param(IS_TIM_OCNIDLE_STATE(TIM_OCInitStruct->TIM_OCNIdleState)); + assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); + + /* Reset the Output N Polarity level */ + tmpccer &= CCER_CC3NP_Reset; + /* Set the Output N Polarity */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCNPolarity << 8); + /* Reset the Output N State */ + tmpccer &= CCER_CC3NE_Reset; + + /* Set the Output N State */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputNState << 8); + /* Reset the Ouput Compare and Output Compare N IDLE State */ + tmpcr2 &= CR2_OIS3_Reset; + tmpcr2 &= CR2_OIS3N_Reset; + /* Set the Output Idle state */ + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 4); + /* Set the Output N Idle state */ + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCNIdleState << 4); + } + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Initializes the TIMx Channel4 according to the specified +* parameters in the TIM_OCInitStruct. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure +* that contains the configuration information for the specified +* TIM peripheral. +* @retval : None +*/ +void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) +{ + uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0; + + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode)); + assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity)); + /* Disable the Channel 2: Reset the CC4E Bit */ + TIMx->CCER &= CCER_CC4E_Reset; + + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Get the TIMx CR2 register value */ + tmpcr2 = TIMx->CR2; + + /* Get the TIMx CCMR2 register value */ + tmpccmrx = TIMx->CCMR2; + + /* Reset the Output Compare Mode Bits */ + tmpccmrx &= CCMR_OC24M_Mask; + + /* Select the Output Compare Mode */ + tmpccmrx |= (uint16_t)(TIM_OCInitStruct->TIM_OCMode << 8); + + /* Reset the Output Polarity level */ + tmpccer &= CCER_CC4P_Reset; + /* Set the Output Compare Polarity */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 12); + + /* Set the Output State */ + tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 12); + + /* Set the Capture Compare Register value */ + TIMx->CCR4 = TIM_OCInitStruct->TIM_Pulse; + + if(*(uint32_t*)&TIMx == TIM1_BASE) + { + assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState)); + /* Reset the Ouput Compare IDLE State */ + tmpcr2 &= CR2_OIS4_Reset; + /* Set the Output Idle state */ + tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 6); + } + /* Write to TIMx CR2 */ + TIMx->CR2 = tmpcr2; + + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmrx; + + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Initializes the TIM peripheral according to the specified +* parameters in the TIM_ICInitStruct. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure +* that contains the configuration information for the specified +* TIM peripheral. +* @retval : None +*/ +void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel)); + assert_param(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity)); + assert_param(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection)); + assert_param(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler)); + assert_param(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter)); + + if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1) + { + /* TI1 Configuration */ + TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2) + { + /* TI2 Configuration */ + TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3) + { + /* TI3 Configuration */ + TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else + { + /* TI4 Configuration */ + TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, + TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } +} + +/** +* @brief Configures the TIM peripheral according to the specified +* parameters in the TIM_ICInitStruct to measure an external PWM +* signal. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure +* that contains the configuration information for the specified +* TIM peripheral. +* @retval : None +*/ +void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct) +{ + uint16_t icoppositepolarity = TIM_ICPolarity_Rising; + uint16_t icoppositeselection = TIM_ICSelection_DirectTI; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Select the Opposite Input Polarity */ + if (TIM_ICInitStruct->TIM_ICPolarity == TIM_ICPolarity_Rising) + { + icoppositepolarity = TIM_ICPolarity_Falling; + } + else + { + icoppositepolarity = TIM_ICPolarity_Rising; + } + /* Select the Opposite Input */ + if (TIM_ICInitStruct->TIM_ICSelection == TIM_ICSelection_DirectTI) + { + icoppositeselection = TIM_ICSelection_IndirectTI; + } + else + { + icoppositeselection = TIM_ICSelection_DirectTI; + } + if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1) + { + /* TI1 Configuration */ + TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + /* TI2 Configuration */ + TI2_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } + else + { + /* TI2 Configuration */ + TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection, + TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + /* TI1 Configuration */ + TI1_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter); + /* Set the Input Capture Prescaler value */ + TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler); + } +} + +/** +* @brief Configures the: Break feature, dead time, Lock level, the OSSI, +* the OSSR State and the AOE(automatic output enable). +* @param TIMx: where x can be 1 to select the TIM +* @param TIM_BDTRInitStruct: pointer to a TIM_BDTRInitTypeDef +* structure that contains the BDTR Register configuration +* information for the TIM peripheral. +* @retval : None +*/ +void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct) +{ + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_TIM_OSSR_STATE(TIM_BDTRInitStruct->TIM_OSSRState)); + assert_param(IS_TIM_OSSI_STATE(TIM_BDTRInitStruct->TIM_OSSIState)); + assert_param(IS_TIM_LOCK_LEVEL(TIM_BDTRInitStruct->TIM_LOCKLevel)); + assert_param(IS_TIM_BREAK_STATE(TIM_BDTRInitStruct->TIM_Break)); + assert_param(IS_TIM_BREAK_POLARITY(TIM_BDTRInitStruct->TIM_BreakPolarity)); + assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(TIM_BDTRInitStruct->TIM_AutomaticOutput)); + /* Set the Lock level, the Break enable Bit and the Ploarity, the OSSR State, + the OSSI State, the dead time value and the Automatic Output Enable Bit */ + TIMx->BDTR = (uint32_t)TIM_BDTRInitStruct->TIM_OSSRState | TIM_BDTRInitStruct->TIM_OSSIState | + TIM_BDTRInitStruct->TIM_LOCKLevel | TIM_BDTRInitStruct->TIM_DeadTime | + TIM_BDTRInitStruct->TIM_Break | TIM_BDTRInitStruct->TIM_BreakPolarity | + TIM_BDTRInitStruct->TIM_AutomaticOutput; +} + +/** +* @brief Fills each TIM_TimeBaseInitStruct member with its default value. +* @param TIM_TimeBaseInitStruct : pointer to a TIM_TimeBaseInitTypeDef +* structure which will be initialized. +* @retval : None +*/ +void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) +{ + /* Set the default configuration */ + TIM_TimeBaseInitStruct->TIM_Period = 0xFFFF; + TIM_TimeBaseInitStruct->TIM_Prescaler = 0x0000; + TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1; + TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up; + TIM_TimeBaseInitStruct->TIM_RepetitionCounter = 0x0000; +} + +/** +* @brief Fills each TIM_OCInitStruct member with its default value. +* @param TIM_OCInitStruct : pointer to a TIM_OCInitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct) +{ + /* Set the default configuration */ + TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing; + TIM_OCInitStruct->TIM_OutputState = TIM_OutputState_Disable; + TIM_OCInitStruct->TIM_OutputNState = TIM_OutputNState_Disable; + TIM_OCInitStruct->TIM_Pulse = 0x0000; + TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High; + TIM_OCInitStruct->TIM_OCNPolarity = TIM_OCPolarity_High; + TIM_OCInitStruct->TIM_OCIdleState = TIM_OCIdleState_Reset; + TIM_OCInitStruct->TIM_OCNIdleState = TIM_OCNIdleState_Reset; +} + +/** +* @brief Fills each TIM_ICInitStruct member with its default value. +* @param TIM_ICInitStruct : pointer to a TIM_ICInitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct) +{ + /* Set the default configuration */ + TIM_ICInitStruct->TIM_Channel = TIM_Channel_1; + TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising; + TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI; + TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1; + TIM_ICInitStruct->TIM_ICFilter = 0x00; +} + +/** +* @brief Fills each TIM_BDTRInitStruct member with its default value. +* @param TIM_BDTRInitStruct : pointer to a TIM_BDTRInitTypeDef +* structure which will be initialized. +* @retval : None +*/ +void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct) +{ + /* Set the default configuration */ + TIM_BDTRInitStruct->TIM_OSSRState = TIM_OSSRState_Disable; + TIM_BDTRInitStruct->TIM_OSSIState = TIM_OSSIState_Disable; + TIM_BDTRInitStruct->TIM_LOCKLevel = TIM_LOCKLevel_OFF; + TIM_BDTRInitStruct->TIM_DeadTime = 0x00; + TIM_BDTRInitStruct->TIM_Break = TIM_Break_Disable; + TIM_BDTRInitStruct->TIM_BreakPolarity = TIM_BreakPolarity_Low; + TIM_BDTRInitStruct->TIM_AutomaticOutput = TIM_AutomaticOutput_Disable; +} + +/** +* @brief Enables or disables the specified TIM peripheral. +* @param TIMx: where x can be 1 to 4 to select the TIMx peripheral. +* @param NewState: new state of the TIMx peripheral. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + + if (NewState != DISABLE) + { + + /* Enable the TIM Counter */ + TIMx->CR1 |= CR1_CEN_Set; + + } + else + { + /* Disable the TIM Counter */ + TIMx->CR1 &= CR1_CEN_Reset; + } + +} + +/** +* @brief Enables or disables the TIM peripheral Main Outputs. +* @param TIMx: where x can be 1 to select the TIMx peripheral. +* @param NewState: new state of the TIM peripheral Main Outputs. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the TIM Main Output */ + TIMx->BDTR |= BDTR_MOE_Set; + } + else + { + /* Disable the TIM Main Output */ + TIMx->BDTR &= BDTR_MOE_Reset; + } +} + +/** +* @brief Enables or disables the specified TIM interrupts. +* @param TIMx: where x can be 1 to 4 to select the TIMx peripheral. +* @param TIM_IT: specifies the TIM interrupts sources to be enabled +* or disabled. +* This parameter can be any combination of the following values: +* @arg TIM_IT_Update: TIM update Interrupt source +* @arg TIM_IT_CC1: TIM Capture Compare 1 Interrupt source +* @arg TIM_IT_CC2: TIM Capture Compare 2 Interrupt source +* @arg TIM_IT_CC3: TIM Capture Compare 3 Interrupt source +* @arg TIM_IT_CC4: TIM Capture Compare 4 Interrupt source +* @arg TIM_IT_COM: TIM Commutation Interrupt source +* @arg TIM_IT_Trigger: TIM Trigger Interrupt source +* @arg TIM_IT_Break: TIM Break Interrupt source +* @param NewState: new state of the TIM interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState) +{ + unsigned int temp = 0; + temp = temp; + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_IT(TIM_IT)); + assert_param(IS_TIM_PERIPH_IT((TIMx), (TIM_IT))); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + /* Enable the Interrupt sources */ + TIMx->DIER |= TIM_IT; + temp = TIMx->DIER; + } + else + { + /* Disable the Interrupt sources */ + TIMx->DIER &= (uint16_t)~TIM_IT; + } + +} + +/** +* @brief Configures the TIMx event to be generate by software. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_EventSource: specifies the event source. +* This parameter can be one or more of the following values: +* @arg TIM_EventSource_Update: Timer update Event source +* @arg TIM_EventSource_CC1: Timer Capture Compare 1 Event source +* @arg TIM_EventSource_CC2: Timer Capture Compare 2 Event source +* @arg TIM_EventSource_CC3: Timer Capture Compare 3 Event source +* @arg TIM_EventSource_CC4: Timer Capture Compare 4 Event source +* @arg TIM_EventSource_Trigger: Timer Trigger Event source +* @retval : None +*/ +void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_EVENT_SOURCE(TIM_EventSource)); + assert_param(IS_TIM_PERIPH_EVENT((TIMx), (TIM_EventSource))); + /* Set the event sources */ + TIMx->EGR = TIM_EventSource; +} + +/** +* @brief Configures the TIMx’s DMA interface. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_DMABase: DMA Base address. +* This parameter can be one of the following values: +* @arg TIM_DMABase_CR, TIM_DMABase_CR2, TIM_DMABase_SMCR, +* TIM_DMABase_DIER, TIM1_DMABase_SR, TIM_DMABase_EGR, +* TIM_DMABase_CCMR1, TIM_DMABase_CCMR2, TIM_DMABase_CCER, +* TIM_DMABase_CNT, TIM_DMABase_PSC, TIM_DMABase_ARR, +* TIM_DMABase_RCR, TIM_DMABase_CCR1, TIM_DMABase_CCR2, +* TIM_DMABase_CCR3, TIM_DMABase_CCR4, TIM_DMABase_BDTR, +* TIM_DMABase_DCR. +* @param TIM_DMABurstLength: DMA Burst length. +* This parameter can be one value between: +* TIM_DMABurstLength_1Byte and TIM_DMABurstLength_18Bytes. +* @retval : None +*/ +void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_DMA_BASE(TIM_DMABase)); + assert_param(IS_TIM_DMA_LENGTH(TIM_DMABurstLength)); + /* Set the DMA Base and the DMA Burst Length */ + TIMx->DCR = TIM_DMABase | TIM_DMABurstLength; +} + +/** +* @brief Enables or disables the TIMx’s DMA Requests. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_DMASource: specifies the DMA Request sources. +* This parameter can be any combination of the following values: +* @arg TIM_DMA_Update: TIM update Interrupt source +* @arg TIM_DMA_CC1: TIM Capture Compare 1 DMA source +* @arg TIM_DMA_CC2: TIM Capture Compare 2 DMA source +* @arg TIM_DMA_CC3: TIM Capture Compare 3 DMA source +* @arg TIM_DMA_CC4: TIM Capture Compare 4 DMA source +* @arg TIM_DMA_COM: TIM Commutation DMA source +* @arg TIM_DMA_Trigger: TIM Trigger DMA source +* @param NewState: new state of the DMA Request sources. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_DMA_SOURCE(TIM_DMASource)); + assert_param(IS_TIM_PERIPH_DMA(TIMx, TIM_DMASource)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + /* Enable the DMA sources */ + TIMx->DIER |= TIM_DMASource; + } + else + { + /* Disable the DMA sources */ + TIMx->DIER &= (uint16_t)~TIM_DMASource; + } +} + +/** +* @brief Configures the TIMx interrnal Clock +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @retval : None +*/ +void TIM_InternalClockConfig(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Disable slave mode to clock the prescaler directly with the internal clock */ + TIMx->SMCR &= SMCR_SMS_Mask; +} + +/** +* @brief Configures the TIMx Internal Trigger as External Clock +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ITRSource: Trigger source. +* This parameter can be one of the following values: +* @param TIM_TS_ITR0: Internal Trigger 0 +* @param TIM_TS_ITR1: Internal Trigger 1 +* @param TIM_TS_ITR2: Internal Trigger 2 +* @param TIM_TS_ITR3: Internal Trigger 3 +* @retval : None +*/ +void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_INTERNAL_TRIGGER_SELECTION(TIM_InputTriggerSource)); + /* Select the Internal Trigger */ + TIM_SelectInputTrigger(TIMx, TIM_InputTriggerSource); + /* Select the External clock mode1 */ + TIMx->SMCR |= TIM_SlaveMode_External1; +} + +/** +* @brief Configures the TIMx Trigger as External Clock +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_TIxExternalCLKSource: Trigger source. +* This parameter can be one of the following values: +* @arg TIM_TIxExternalCLK1Source_TI1ED: TI1 Edge Detector +* @arg TIM_TIxExternalCLK1Source_TI1: Filtered Timer Input 1 +* @arg TIM_TIxExternalCLK1Source_TI2: Filtered Timer Input 2 +* @param TIM_ICPolarity: specifies the TIx Polarity. +* This parameter can be: +* @arg TIM_ICPolarity_Rising +* @arg TIM_ICPolarity_Falling +* @param ICFilter : specifies the filter value. +* This parameter must be a value between 0x0 and 0xF. +* @retval : None +*/ +void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource, + uint16_t TIM_ICPolarity, uint16_t ICFilter) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_TIXCLK_SOURCE(TIM_TIxExternalCLKSource)); + assert_param(IS_TIM_IC_POLARITY(TIM_ICPolarity)); + assert_param(IS_TIM_IC_FILTER(ICFilter)); + /* Configure the Timer Input Clock Source */ + if (TIM_TIxExternalCLKSource == TIM_TIxExternalCLK1Source_TI2) + { + TI2_Config(TIMx, TIM_ICPolarity, TIM_ICSelection_DirectTI, ICFilter); + } + else + { + TI1_Config(TIMx, TIM_ICPolarity, TIM_ICSelection_DirectTI, ICFilter); + } + /* Select the Trigger source */ + TIM_SelectInputTrigger(TIMx, TIM_TIxExternalCLKSource); + /* Select the External clock mode1 */ + TIMx->SMCR |= TIM_SlaveMode_External1; +} + +/** +* @brief Configures the External clock Mode1 +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ExtTRGPrescaler: The external Trigger Prescaler. +* It can be one of the following values: +* @arg TIM_ExtTRGPSC_OFF +* @arg TIM_ExtTRGPSC_DIV2 +* @arg TIM_ExtTRGPSC_DIV4 +* @arg TIM_ExtTRGPSC_DIV8. +* @param TIM_ExtTRGPolarity: The external Trigger Polarity. +* It can be one of the following values: +* @arg TIM_ExtTRGPolarity_Inverted +* @arg TIM_ExtTRGPolarity_NonInverted +* @param ExtTRGFilter: External Trigger Filter. +* This parameter must be a value between 0x00 and 0x0F +* @retval : None +*/ +void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter) +{ + uint16_t tmpsmcr = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_EXT_PRESCALER(TIM_ExtTRGPrescaler)); + assert_param(IS_TIM_EXT_POLARITY(TIM_ExtTRGPolarity)); + assert_param(IS_TIM_EXT_FILTER(ExtTRGFilter)); + /* Configure the ETR Clock source */ + TIM_ETRConfig(TIMx, TIM_ExtTRGPrescaler, TIM_ExtTRGPolarity, ExtTRGFilter); + + /* Get the TIMx SMCR register value */ + tmpsmcr = TIMx->SMCR; + /* Reset the SMS Bits */ + tmpsmcr &= SMCR_SMS_Mask; + /* Select the External clock mode1 */ + tmpsmcr |= TIM_SlaveMode_External1; + /* Select the Trigger selection : ETRF */ + tmpsmcr &= SMCR_TS_Mask; + tmpsmcr |= TIM_TS_ETRF; + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; +} + +/** +* @brief Configures the External clock Mode2 +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ExtTRGPrescaler: The external Trigger Prescaler. +* It can be one of the following values: +* @arg TIM_ExtTRGPSC_OFF +* @arg TIM_ExtTRGPSC_DIV2 +* @arg TIM_ExtTRGPSC_DIV4 +* @arg TIM_ExtTRGPSC_DIV8 +* @param TIM_ExtTRGPolarity: The external Trigger Polarity. +* It can be one of the following values: +* @arg TIM_ExtTRGPolarity_Inverted +* @arg TIM_ExtTRGPolarity_NonInverted +* @param ExtTRGFilter: External Trigger Filter. +* This parameter must be a value between 0x00 and 0x0F +* @retval : None +*/ +void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, + uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_EXT_PRESCALER(TIM_ExtTRGPrescaler)); + assert_param(IS_TIM_EXT_POLARITY(TIM_ExtTRGPolarity)); + assert_param(IS_TIM_EXT_FILTER(ExtTRGFilter)); + /* Configure the ETR Clock source */ + TIM_ETRConfig(TIMx, TIM_ExtTRGPrescaler, TIM_ExtTRGPolarity, ExtTRGFilter); + /* Enable the External clock mode2 */ + TIMx->SMCR |= SMCR_ECE_Set; +} + +/** +* @brief Configures the TIMx External Trigger (ETR). +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ExtTRGPrescaler: The external Trigger Prescaler. +* This parameter can be one of the following values: +* @arg TIM_ExtTRGPSC_OFF +* @arg TIM_ExtTRGPSC_DIV2 +* @arg TIM_ExtTRGPSC_DIV4 +* @arg TIM_ExtTRGPSC_DIV8 +* @param TIM_ExtTRGPolarity: The external Trigger Polarity. +* This parameter can be one of the following values: +* @arg TIM_ExtTRGPolarity_Inverted +* @arg TIM_ExtTRGPolarity_NonInverted +* @param ExtTRGFilter: External Trigger Filter. +* This parameter must be a value between 0x00 and 0x0F. +* @retval : None +*/ +void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, + uint16_t ExtTRGFilter) +{ + uint16_t tmpsmcr = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_EXT_PRESCALER(TIM_ExtTRGPrescaler)); + assert_param(IS_TIM_EXT_POLARITY(TIM_ExtTRGPolarity)); + assert_param(IS_TIM_EXT_FILTER(ExtTRGFilter)); + tmpsmcr = TIMx->SMCR; + /* Reset the ETR Bits */ + tmpsmcr &= SMCR_ETR_Mask; + /* Set the Prescaler, the Filter value and the Polarity */ + tmpsmcr |= TIM_ExtTRGPrescaler | TIM_ExtTRGPolarity | (uint16_t)(ExtTRGFilter << 8); + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; +} + +/** +* @brief Configures the TIMx Prescaler. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param Prescaler: specifies the Prescaler Register value +* @param TIM_PSCReloadMode: specifies the TIM Prescaler Reload mode +* This parameter can be one of the following values: +* @arg TIM_PSCReloadMode_Update: The Prescaler is loaded at +* the update event. +* @arg TIM_PSCReloadMode_Immediate: The Prescaler is loaded +* immediatly. +* @retval : None +*/ +void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_PRESCALER_RELOAD(TIM_PSCReloadMode)); + /* Set the Prescaler value */ + TIMx->PSC = Prescaler; + /* Set or reset the UG Bit */ + TIMx->EGR = TIM_PSCReloadMode; +} + +/** +* @brief Specifies the TIMx Counter Mode to be used. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_CounterMode: specifies the Counter Mode to be used +* This parameter can be one of the following values: +* @arg TIM_CounterMode_Up: TIM Up Counting Mode +* @arg TIM_CounterMode_Down: TIM Down Counting Mode +* @arg TIM_CounterMode_CenterAligned1: TIM Center Aligned Mode1 +* @arg TIM_CounterMode_CenterAligned2: TIM Center Aligned Mode2 +* @arg TIM_CounterMode_CenterAligned3: TIM Center Aligned Mode3 +* @retval : None +*/ +void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode) +{ + uint16_t tmpcr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_COUNTER_MODE(TIM_CounterMode)); + tmpcr1 = TIMx->CR1; + /* Reset the CMS and DIR Bits */ + tmpcr1 &= CR1_CounterMode_Mask; + /* Set the Counter Mode */ + tmpcr1 |= TIM_CounterMode; + /* Write to TIMx CR1 register */ + TIMx->CR1 = tmpcr1; + +} + +/** +* @brief Selects the Input Trigger source +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_InputTriggerSource: The Input Trigger source. +* This parameter can be one of the following values: +* @arg TIM_TS_ITR0: Internal Trigger 0 +* @arg TIM_TS_ITR1: Internal Trigger 1 +* @arg TIM_TS_ITR2: Internal Trigger 2 +* @arg TIM_TS_ITR3: Internal Trigger 3 +* @arg TIM_TS_TI1F_ED: TI1 Edge Detector +* @arg TIM_TS_TI1FP1: Filtered Timer Input 1 +* @arg TIM_TS_TI2FP2: Filtered Timer Input 2 +* @arg TIM_TS_ETRF: External Trigger input +* @retval : None +*/ +void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource) +{ + uint16_t tmpsmcr = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_TRIGGER_SELECTION(TIM_InputTriggerSource)); + /* Get the TIMx SMCR register value */ + tmpsmcr = TIMx->SMCR; + /* Reset the TS Bits */ + tmpsmcr &= SMCR_TS_Mask; + /* Set the Input Trigger source */ + tmpsmcr |= TIM_InputTriggerSource; + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; +} + +/** +* @brief Configures the TIMx Encoder Interface. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_EncoderMode: specifies the TIMx Encoder Mode. +* This parameter can be one of the following values: +* @arg TIM_EncoderMode_TI1: Counter counts on TI1FP1 edge +* depending on TI2FP2 level. +* @arg TIM_EncoderMode_TI2: Counter counts on TI2FP2 edge +* depending on TI1FP1 level. +* @arg TIM_EncoderMode_TI12: Counter counts on both TI1FP1 and +* TI2FP2 edges depending on the level of the other input. +* @param TIM_IC1Polarity: specifies the IC1 Polarity +* This parmeter can be one of the following values: +* @arg TIM_ICPolarity_Falling: IC Falling edge. +* @arg TIM_ICPolarity_Rising: IC Rising edge. +* @param TIM_IC2Polarity: specifies the IC2 Polarity +* This parmeter can be one of the following values: +* @arg TIM_ICPolarity_Falling: IC Falling edge. +* @arg TIM_ICPolarity_Rising: IC Rising edge. +* @retval : None +*/ +void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode, + uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity) +{ + uint16_t tmpsmcr = 0; + uint16_t tmpccmr1 = 0; + uint16_t tmpccer = 0; + + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_ENCODER_MODE(TIM_EncoderMode)); + assert_param(IS_TIM_IC_POLARITY(TIM_IC1Polarity)); + assert_param(IS_TIM_IC_POLARITY(TIM_IC2Polarity)); + /* Get the TIMx SMCR register value */ + tmpsmcr = TIMx->SMCR; + /* Get the TIMx CCMR1 register value */ + tmpccmr1 = TIMx->CCMR1; + /* Get the TIMx CCER register value */ + tmpccer = TIMx->CCER; + /* Set the encoder Mode */ + tmpsmcr &= SMCR_SMS_Mask; + tmpsmcr |= TIM_EncoderMode; + /* Select the Capture Compare 1 and the Capture Compare 2 as input */ + tmpccmr1 &= CCMR_CC13S_Mask & CCMR_CC24S_Mask; + tmpccmr1 |= CCMR_TI13Direct_Set | CCMR_TI24Direct_Set; + /* Set the TI1 and the TI2 Polarities */ + tmpccer &= CCER_CC1P_Reset & CCER_CC2P_Reset; + tmpccer |= (TIM_IC1Polarity | (uint16_t)(TIM_IC2Polarity << 4)); + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmr1; + /* Write to TIMx CCER */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Forces the TIMx output 1 waveform to active or inactive level. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ForcedAction: specifies the forced Action to be set to +* the output waveform. +* This parameter can be one of the following values: +* @arg TIM_ForcedAction_Active: Force active level on OC1REF +* @arg TIM_ForcedAction_InActive: Force inactive level on +* OC1REF. +* @retval : None +*/ +void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC1M Bits */ + tmpccmr1 &= CCMR_OC13M_Mask; + /* Configure The Forced output Mode */ + tmpccmr1 |= TIM_ForcedAction; + /* Write to TIMx CCMR1 register */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Forces the TIMx output 2 waveform to active or inactive level. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ForcedAction: specifies the forced Action to be set to +* the output waveform. +* This parameter can be one of the following values: +* @arg TIM_ForcedAction_Active: Force active level on OC2REF +* @arg TIM_ForcedAction_InActive: Force inactive level on +* OC2REF. +* @retval : None +*/ +void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC2M Bits */ + tmpccmr1 &= CCMR_OC24M_Mask; + /* Configure The Forced output Mode */ + tmpccmr1 |= (uint16_t)(TIM_ForcedAction << 8); + /* Write to TIMx CCMR1 register */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Forces the TIMx output 3 waveform to active or inactive level. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ForcedAction: specifies the forced Action to be set to +* the output waveform. +* This parameter can be one of the following values: +* @arg TIM_ForcedAction_Active: Force active level on OC3REF +* @arg TIM_ForcedAction_InActive: Force inactive level on +* OC3REF. +* @retval : None +*/ +void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC1M Bits */ + tmpccmr2 &= CCMR_OC13M_Mask; + /* Configure The Forced output Mode */ + tmpccmr2 |= TIM_ForcedAction; + /* Write to TIMx CCMR2 register */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Forces the TIMx output 4 waveform to active or inactive level. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ForcedAction: specifies the forced Action to be set to +* the output waveform. +* This parameter can be one of the following values: +* @arg TIM_ForcedAction_Active: Force active level on OC4REF +* @arg TIM_ForcedAction_InActive: Force inactive level on +* OC4REF. +* @retval : None +*/ +void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction)); + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC2M Bits */ + tmpccmr2 &= CCMR_OC24M_Mask; + /* Configure The Forced output Mode */ + tmpccmr2 |= (uint16_t)(TIM_ForcedAction << 8); + /* Write to TIMx CCMR2 register */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Enables or disables TIMx peripheral Preload register on ARR. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param NewState: new state of the TIMx peripheral Preload register +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Set the ARR Preload Bit */ + TIMx->CR1 |= CR1_ARPE_Set; + } + else + { + /* Reset the ARR Preload Bit */ + TIMx->CR1 &= CR1_ARPE_Reset; + } + +} + +/** +* @brief Selects the TIM peripheral Commutation event. +* @param TIMx: where x can be 1 to select the TIMx peripheral +* @param NewState: new state of the Commutation event. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Set the COM Bit */ + TIMx->CR2 |= CR2_CCUS_Set; + } + else + { + /* Reset the COM Bit */ + TIMx->CR2 &= CR2_CCUS_Reset; + } +} + +/** +* @brief Selects the TIMx peripheral Capture Compare DMA source. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param NewState: new state of the Capture Compare DMA source +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Set the CCDS Bit */ + TIMx->CR2 |= CR2_CCDS_Set; + } + else + { + /* Reset the CCDS Bit */ + TIMx->CR2 &= CR2_CCDS_Reset; + } +} + +/** +* @brief Sets or Resets the TIM peripheral Capture Compare Preload +* Control bit. +* @param TIMx: where x can be 1 to select the TIMx peripheral +* @param NewState: new state of the Capture Compare Preload Control bit +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Set the CCPC Bit */ + TIMx->CR2 |= CR2_CCPC_Set; + } + else + { + /* Reset the CCPC Bit */ + TIMx->CR2 &= CR2_CCPC_Reset; + } +} + +/** +* @brief Enables or disables the TIMx peripheral Preload register on CCR1. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPreload: new state of the TIMx peripheral Preload +* register +* This parameter can be one of the following values: +* @arg TIM_OCPreload_Enable +* @arg TIM_OCPreload_Disable +* @retval : None +*/ +void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC1PE Bit */ + tmpccmr1 &= CCMR_OC13PE_Reset; + /* Enable or Disable the Output Compare Preload feature */ + tmpccmr1 |= TIM_OCPreload; + /* Write to TIMx CCMR1 register */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Enables or disables the TIMx peripheral Preload register on CCR2. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPreload: new state of the TIMx peripheral Preload +* register +* This parameter can be one of the following values: +* @arg TIM_OCPreload_Enable +* @arg TIM_OCPreload_Disable +* @retval : None +*/ +void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC2PE Bit */ + tmpccmr1 &= CCMR_OC24PE_Reset; + /* Enable or Disable the Output Compare Preload feature */ + tmpccmr1 |= (uint16_t)(TIM_OCPreload << 8); + /* Write to TIMx CCMR1 register */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Enables or disables the TIMx peripheral Preload register on CCR3. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPreload: new state of the TIMx peripheral Preload +* register +* This parameter can be one of the following values: +* @arg TIM_OCPreload_Enable +* @arg TIM_OCPreload_Disable +* @retval : None +*/ +void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC3PE Bit */ + tmpccmr2 &= CCMR_OC13PE_Reset; + /* Enable or Disable the Output Compare Preload feature */ + tmpccmr2 |= TIM_OCPreload; + /* Write to TIMx CCMR2 register */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Enables or disables the TIMx peripheral Preload register on CCR4. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPreload: new state of the TIMx peripheral Preload +* register +* This parameter can be one of the following values: +* @arg TIM_OCPreload_Enable +* @arg TIM_OCPreload_Disable +* @retval : None +*/ +void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload)); + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC4PE Bit */ + tmpccmr2 &= CCMR_OC24PE_Reset; + /* Enable or Disable the Output Compare Preload feature */ + tmpccmr2 |= (uint16_t)(TIM_OCPreload << 8); + /* Write to TIMx CCMR2 register */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Configures the TIMx Output Compare 1 Fast feature. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCFast_Enable: TIM output compare fast enable +* @arg TIM_OCFast_Disable: TIM output compare fast disable +* @retval : None +*/ +void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); + /* Get the TIMx CCMR1 register value */ + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC1FE Bit */ + tmpccmr1 &= CCMR_OC13FE_Reset; + /* Enable or Disable the Output Compare Fast Bit */ + tmpccmr1 |= TIM_OCFast; + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Configures the TIMx Output Compare 2 Fast feature. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCFast_Enable: TIM output compare fast enable +* @arg TIM_OCFast_Disable: TIM output compare fast disable +* @retval : None +*/ +void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); + /* Get the TIMx CCMR1 register value */ + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC2FE Bit */ + tmpccmr1 &= CCMR_OC24FE_Reset; + /* Enable or Disable the Output Compare Fast Bit */ + tmpccmr1 |= (uint16_t)(TIM_OCFast << 8); + /* Write to TIMx CCMR1 */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Configures the TIMx Output Compare 3 Fast feature. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCFast_Enable: TIM output compare fast enable +* @arg TIM_OCFast_Disable: TIM output compare fast disable +* @retval : None +*/ +void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); + /* Get the TIMx CCMR2 register value */ + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC3FE Bit */ + tmpccmr2 &= CCMR_OC13FE_Reset; + /* Enable or Disable the Output Compare Fast Bit */ + tmpccmr2 |= TIM_OCFast; + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Configures the TIMx Output Compare 4 Fast feature. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCFast: new state of the Output Compare Fast Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCFast_Enable: TIM output compare fast enable +* @arg TIM_OCFast_Disable: TIM output compare fast disable +* @retval : None +*/ +void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCFAST_STATE(TIM_OCFast)); + /* Get the TIMx CCMR2 register value */ + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC4FE Bit */ + tmpccmr2 &= CCMR_OC24FE_Reset; + /* Enable or Disable the Output Compare Fast Bit */ + tmpccmr2 |= (uint16_t)(TIM_OCFast << 8); + /* Write to TIMx CCMR2 */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Clears or safeguards the OCREF1 signal on an external event +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCClear_Enable: TIM Output clear enable +* @arg TIM_OCClear_Disable: TIM Output clear disable +* @retval : None +*/ +void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC1CE Bit */ + tmpccmr1 &= CCMR_OC13CE_Reset; + /* Enable or Disable the Output Compare Clear Bit */ + tmpccmr1 |= TIM_OCClear; + /* Write to TIMx CCMR1 register */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Clears or safeguards the OCREF2 signal on an external event +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCClear_Enable: TIM Output clear enable +* @arg TIM_OCClear_Disable: TIM Output clear disable +* @retval : None +*/ +void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr1 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); + tmpccmr1 = TIMx->CCMR1; + /* Reset the OC2CE Bit */ + tmpccmr1 &= CCMR_OC24CE_Reset; + /* Enable or Disable the Output Compare Clear Bit */ + tmpccmr1 |= (uint16_t)(TIM_OCClear << 8); + /* Write to TIMx CCMR1 register */ + TIMx->CCMR1 = tmpccmr1; +} + +/** +* @brief Clears or safeguards the OCREF3 signal on an external event +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCClear_Enable: TIM Output clear enable +* @arg TIM_OCClear_Disable: TIM Output clear disable +* @retval : None +*/ +void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC3CE Bit */ + tmpccmr2 &= CCMR_OC13CE_Reset; + /* Enable or Disable the Output Compare Clear Bit */ + tmpccmr2 |= TIM_OCClear; + /* Write to TIMx CCMR2 register */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Clears or safeguards the OCREF4 signal on an external event +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCClear: new state of the Output Compare Clear Enable Bit. +* This parameter can be one of the following values: +* @arg TIM_OCClear_Enable: TIM Output clear enable +* @arg TIM_OCClear_Disable: TIM Output clear disable +* @retval : None +*/ +void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear) +{ + uint16_t tmpccmr2 = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OCCLEAR_STATE(TIM_OCClear)); + tmpccmr2 = TIMx->CCMR2; + /* Reset the OC4CE Bit */ + tmpccmr2 &= CCMR_OC24CE_Reset; + /* Enable or Disable the Output Compare Clear Bit */ + tmpccmr2 |= (uint16_t)(TIM_OCClear << 8); + /* Write to TIMx CCMR2 register */ + TIMx->CCMR2 = tmpccmr2; +} + +/** +* @brief Configures the TIMx channel 1 polarity. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPolarity: specifies the OC1 Polarity +* This parmeter can be one of the following values: +* @arg TIM_OCPolarity_High: Output Compare active high +* @arg TIM_OCPolarity_Low: Output Compare active low +* @retval : None +*/ +void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); + tmpccer = TIMx->CCER; + /* Set or Reset the CC1P Bit */ + tmpccer &= CCER_CC1P_Reset; + tmpccer |= TIM_OCPolarity; + /* Write to TIMx CCER register */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Configures the TIMx Channel 1N polarity. +* @param TIMx: where x can be 1 to select the TIM peripheral. +* @param TIM_OCNPolarity: specifies the OC1N Polarity +* This parmeter can be one of the following values: +* @arg TIM_OCNPolarity_High: Output Compare active high +* @arg TIM_OCNPolarity_Low: Output Compare active low +* @retval : None +*/ +void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity) +{ + uint16_t tmpccer = 0; + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_TIM_OCN_POLARITY(TIM_OCNPolarity)); + + tmpccer = TIMx->CCER; + /* Set or Reset the CC1NP Bit */ + tmpccer &= CCER_CC1NP_Reset; + tmpccer |= TIM_OCNPolarity; + /* Write to TIMx CCER register */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Configures the TIMx channel 2 polarity. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPolarity: specifies the OC2 Polarity +* This parmeter can be one of the following values: +* @arg TIM_OCPolarity_High: Output Compare active high +* @arg TIM_OCPolarity_Low: Output Compare active low +* @retval : None +*/ +void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); + tmpccer = TIMx->CCER; + /* Set or Reset the CC2P Bit */ + tmpccer &= CCER_CC2P_Reset; + tmpccer |= (uint16_t)(TIM_OCPolarity << 4); + /* Write to TIMx CCER register */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Configures the TIMx Channel 2N polarity. +* @param TIMx: where x can be 1 to select the TIM peripheral. +* @param TIM_OCNPolarity: specifies the OC2N Polarity +* This parmeter can be one of the following values: +* @arg TIM_OCNPolarity_High: Output Compare active high +* @arg TIM_OCNPolarity_Low: Output Compare active low +* @retval : None +*/ +void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity) +{ + uint16_t tmpccer = 0; + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_TIM_OCN_POLARITY(TIM_OCNPolarity)); + + tmpccer = TIMx->CCER; + /* Set or Reset the CC2NP Bit */ + tmpccer &= CCER_CC2NP_Reset; + tmpccer |= (uint16_t)(TIM_OCNPolarity << 4); + /* Write to TIMx CCER register */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Configures the TIMx channel 3 polarity. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPolarity: specifies the OC3 Polarity +* This parmeter can be one of the following values: +* @arg TIM_OCPolarity_High: Output Compare active high +* @arg TIM_OCPolarity_Low: Output Compare active low +* @retval : None +*/ +void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); + tmpccer = TIMx->CCER; + /* Set or Reset the CC3P Bit */ + tmpccer &= CCER_CC3P_Reset; + tmpccer |= (uint16_t)(TIM_OCPolarity << 8); + /* Write to TIMx CCER register */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Configures the TIMx Channel 3N polarity. +* @param TIMx: where x can be 1 to select the TIM peripheral. +* @param TIM_OCNPolarity: specifies the OC3N Polarity +* This parmeter can be one of the following values: +* @arg TIM_OCNPolarity_High: Output Compare active high +* @arg TIM_OCNPolarity_Low: Output Compare active low +* @retval : None +*/ +void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity) +{ + uint16_t tmpccer = 0; + + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_TIM_OCN_POLARITY(TIM_OCNPolarity)); + + tmpccer = TIMx->CCER; + /* Set or Reset the CC3NP Bit */ + tmpccer &= CCER_CC3NP_Reset; + tmpccer |= (uint16_t)(TIM_OCNPolarity << 8); + /* Write to TIMx CCER register */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Configures the TIMx channel 4 polarity. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_OCPolarity: specifies the OC4 Polarity +* This parmeter can be one of the following values: +* @arg TIM_OCPolarity_High: Output Compare active high +* @arg TIM_OCPolarity_Low: Output Compare active low +* @retval : None +*/ +void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity) +{ + uint16_t tmpccer = 0; + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity)); + tmpccer = TIMx->CCER; + /* Set or Reset the CC4P Bit */ + tmpccer &= CCER_CC4P_Reset; + tmpccer |= (uint16_t)(TIM_OCPolarity << 12); + /* Write to TIMx CCER register */ + TIMx->CCER = tmpccer; +} + +/** +* @brief Enables or disables the TIM Capture Compare Channel x. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_Channel: specifies the TIM Channel +* This parmeter can be one of the following values: +* @arg TIM_Channel_1: TIM Channel 1 +* @arg TIM_Channel_2: TIM Channel 2 +* @arg TIM_Channel_3: TIM Channel 3 +* @arg TIM_Channel_4: TIM Channel 4 +* @param TIM_CCx: specifies the TIM Channel CCxE bit new state. +* This parameter can be: TIM_CCx_Enable or TIM_CCx_Disable. +* @retval : None +*/ +void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_CHANNEL(TIM_Channel)); + assert_param(IS_TIM_CCX(TIM_CCx)); + /* Reset the CCxE Bit */ + TIMx->CCER &= (uint16_t)(~((uint16_t)(CCER_CCE_Set << TIM_Channel))); + /* Set or reset the CCxE Bit */ + TIMx->CCER |= (uint16_t)(TIM_CCx << TIM_Channel); +} + +/** +* @brief Enables or disables the TIM Capture Compare Channel xN. +* @param TIMx: where x can be 1 to select the TIM peripheral. +* @param TIM_Channel: specifies the TIM Channel +* This parmeter can be one of the following values: +* @arg TIM_Channel_1: TIM Channel 1 +* @arg TIM_Channel_2: TIM Channel 2 +* @arg TIM_Channel_3: TIM Channel 3 +* @param TIM_CCxN: specifies the TIM Channel CCxNE bit new state. +* This parameter can be: TIM_CCxN_Enable or TIM_CCxN_Disable. +* @retval : None +*/ +void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN) +{ + /* Check the parameters */ + assert_param(IS_TIM_18_PERIPH(TIMx)); + assert_param(IS_TIM_COMPLEMENTARY_CHANNEL(TIM_Channel)); + assert_param(IS_TIM_CCXN(TIM_CCxN)); + /* Reset the CCxNE Bit */ + TIMx->CCER &= (uint16_t)(~((uint16_t)(CCER_CCNE_Set << TIM_Channel))); + /* Set or reset the CCxNE Bit */ + TIMx->CCER |= (uint16_t)(TIM_CCxN << TIM_Channel); +} + +/** +* @brief Selects the TIM Ouput Compare Mode. +* This function disables the selected channel before changing +* the Ouput Compare Mode. User has to enable this channel using +* TIM_CCxCmd and TIM_CCxNCmd functions. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_Channel: specifies the TIM Channel +* This parmeter can be one of the following values: +* @arg TIM_Channel_1: TIM Channel 1 +* @arg TIM_Channel_2: TIM Channel 2 +* @arg TIM_Channel_3: TIM Channel 3 +* @arg TIM_Channel_4: TIM Channel 4 +* @param TIM_OCMode: specifies the TIM Output Compare Mode. +* This paramter can be one of the following values: +* @arg TIM_OCMode_Timing +* @arg TIM_OCMode_Active +* @arg TIM_OCMode_Toggle +* @arg TIM_OCMode_PWM1 +* @arg TIM_OCMode_PWM2 +* @arg TIM_ForcedAction_Active +* @arg TIM_ForcedAction_InActive +* @retval : None +*/ +void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_CHANNEL(TIM_Channel)); + assert_param(IS_TIM_OCM(TIM_OCMode)); + + /* Disable the Channel: Reset the CCxE Bit */ + TIMx->CCER &= (uint16_t)(~((uint16_t)(CCER_CCE_Set << TIM_Channel))); + if((TIM_Channel == TIM_Channel_1) || (TIM_Channel == TIM_Channel_3)) + { + /* Reset the OCxM bits in the CCMRx register */ + *((__IO uint32_t *)((*(uint32_t*)&TIMx) + CCMR_Offset + (TIM_Channel >> 1))) &= CCMR_OC13M_Mask; + + /* Configure the OCxM bits in the CCMRx register */ + *((__IO uint32_t *)((*(uint32_t*)&TIMx) + CCMR_Offset + (TIM_Channel >> 1))) |= TIM_OCMode; + } + else + { + /* Reset the OCxM bits in the CCMRx register */ + *((__IO uint32_t *)((*(uint32_t*)&TIMx) + CCMR_Offset + ((uint16_t)(TIM_Channel - 4) >> 1))) &= CCMR_OC24M_Mask; + + /* Configure the OCxM bits in the CCMRx register */ + *((__IO uint32_t *)((*(uint32_t*)&TIMx) + CCMR_Offset + ((uint16_t)(TIM_Channel - 4) >> 1))) |= (uint16_t)(TIM_OCMode << 8); + } +} + +/** +* @brief Enables or Disables the TIMx Update event. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param NewState: new state of the TIMx UDIS bit +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Set the Update Disable Bit */ + TIMx->CR1 |= CR1_UDIS_Set; + } + else + { + /* Reset the Update Disable Bit */ + TIMx->CR1 &= CR1_UDIS_Reset; + } +} + +/** +* @brief Configures the TIMx Update Request Interrupt source. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_UpdateSource: specifies the Update source. +* This parameter can be one of the following values: +* @arg TIM_UpdateSource_Regular +* @arg TIM_UpdateSource_Global +* @retval : None +*/ +void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_UPDATE_SOURCE(TIM_UpdateSource)); + if (TIM_UpdateSource != TIM_UpdateSource_Global) + { + /* Set the URS Bit */ + TIMx->CR1 |= CR1_URS_Set; + } + else + { + /* Reset the URS Bit */ + TIMx->CR1 &= CR1_URS_Reset; + } +} + +/** +* @brief Enables or disables the TIMx’s Hall sensor interface. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM peripheral. +* @param NewState: new state of the TIMx Hall sensor interface. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Set the TI1S Bit */ + TIMx->CR2 |= CR2_TI1S_Set; + } + else + { + /* Reset the TI1S Bit */ + TIMx->CR2 &= CR2_TI1S_Reset; + } +} + +/** +* @brief Selects the TIMx’s One Pulse Mode. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_OPMode: specifies the OPM Mode to be used. +* This parameter can be one of the following values: +* @arg TIM_OPMode_Single +* @arg TIM_OPMode_Repetitive +* @retval : None +*/ +void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_OPM_MODE(TIM_OPMode)); + /* Reset the OPM Bit */ + TIMx->CR1 &= CR1_OPM_Reset; + /* Configure the OPM Mode */ + TIMx->CR1 |= TIM_OPMode; +} + +/** +* @brief Selects the TIMx Trigger Output Mode. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_TRGOSource: specifies the Trigger Output source. +* This paramter can be as follow: +* 1/ For TIM1 to TIM8: +* @arg TIM_TRGOSource_Reset +* @arg TIM_TRGOSource_Enable +* @arg TIM_TRGOSource_Update +* 2/ These parameters are available for all TIMx +* @arg TIM_TRGOSource_OC1 +* @arg TIM_TRGOSource_OC1Ref +* @arg TIM_TRGOSource_OC2Ref +* @arg TIM_TRGOSource_OC3Ref +* @arg TIM_TRGOSource_OC4Ref +* @retval : None +*/ +void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_TRGO_SOURCE(TIM_TRGOSource)); + assert_param(IS_TIM_PERIPH_TRGO(TIMx, TIM_TRGOSource)); + /* Reset the MMS Bits */ + TIMx->CR2 &= CR2_MMS_Mask; + /* Select the TRGO source */ + TIMx->CR2 |= TIM_TRGOSource; +} + +/** +* @brief Selects the TIMx Slave Mode. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_SlaveMode: specifies the Timer Slave Mode. +* This paramter can be one of the following values: +* @arg TIM_SlaveMode_Reset +* @arg TIM_SlaveMode_Gated +* @arg TIM_SlaveMode_Trigger +* @arg TIM_SlaveMode_External1 +* @retval : None +*/ +void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_SLAVE_MODE(TIM_SlaveMode)); + /* Reset the SMS Bits */ + TIMx->SMCR &= SMCR_SMS_Mask; + /* Select the Slave Mode */ + TIMx->SMCR |= TIM_SlaveMode; +} + +/** +* @brief Sets or Resets the TIMx Master/Slave Mode. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_MasterSlaveMode: specifies the Timer Master Slave Mode. +* This paramter can be one of the following values: +* @arg TIM_MasterSlaveMode_Enable: synchronization between the +* current timer and its slaves (through TRGO). +* @arg TIM_MasterSlaveMode_Disable: No action +* @retval : None +*/ +void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_MSM_STATE(TIM_MasterSlaveMode)); + /* Reset the MSM Bit */ + TIMx->SMCR &= SMCR_MSM_Reset; + + /* Set or Reset the MSM Bit */ + TIMx->SMCR |= TIM_MasterSlaveMode; +} + +/** +* @brief Sets the TIMx Counter Register value +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param Counter: specifies the Counter register new value. +* @retval : None +*/ +void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + /* Set the Counter Register value */ + TIMx->CNT = Counter; +} + +/** +* @brief Sets the TIMx Autoreload Register value +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param Autoreload: specifies the Autoreload register new value. +* @retval : None +*/ +void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + /* Set the Autoreload Register value */ + TIMx->ARR = Autoreload; +} + +/** +* @brief Sets the TIMx Capture Compare1 Register value +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param Compare1: specifies the Capture Compare1 register new value. +* @retval : None +*/ +void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Set the Capture Compare1 Register value */ + TIMx->CCR1 = Compare1; +} + +/** +* @brief Sets the TIMx Capture Compare2 Register value +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param Compare2: specifies the Capture Compare2 register new value. +* @retval : None +*/ +void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Set the Capture Compare2 Register value */ + TIMx->CCR2 = Compare2; +} + +/** +* @brief Sets the TIMx Capture Compare3 Register value +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param Compare3: specifies the Capture Compare3 register new value. +* @retval : None +*/ +void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Set the Capture Compare3 Register value */ + TIMx->CCR3 = Compare3; +} + +/** +* @brief Sets the TIMx Capture Compare4 Register value +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param Compare4: specifies the Capture Compare4 register new value. +* @retval : None +*/ +void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Set the Capture Compare4 Register value */ + TIMx->CCR4 = Compare4; +} + +/** +* @brief Sets the TIMx Input Capture 1 prescaler. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPSC: specifies the Input Capture1 prescaler +* new value. +* This parameter can be one of the following values: +* @arg TIM_ICPSC_DIV1: no prescaler +* @arg TIM_ICPSC_DIV2: capture is done once every 2 events +* @arg TIM_ICPSC_DIV4: capture is done once every 4 events +* @arg TIM_ICPSC_DIV8: capture is done once every 8 events +* @retval : None +*/ +void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); + /* Reset the IC1PSC Bits */ + TIMx->CCMR1 &= CCMR_IC13PSC_Mask; + /* Set the IC1PSC value */ + TIMx->CCMR1 |= TIM_ICPSC; +} + +/** +* @brief Sets the TIMx Input Capture 2 prescaler. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPSC: specifies the Input Capture2 prescaler +* new value. +* This parameter can be one of the following values: +* @arg TIM_ICPSC_DIV1: no prescaler +* @arg TIM_ICPSC_DIV2: capture is done once every 2 events +* @arg TIM_ICPSC_DIV4: capture is done once every 4 events +* @arg TIM_ICPSC_DIV8: capture is done once every 8 events +* @retval : None +*/ +void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); + /* Reset the IC2PSC Bits */ + TIMx->CCMR1 &= CCMR_IC24PSC_Mask; + /* Set the IC2PSC value */ + TIMx->CCMR1 |= (uint16_t)(TIM_ICPSC << 8); +} + +/** +* @brief Sets the TIMx Input Capture 3 prescaler. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPSC: specifies the Input Capture3 prescaler +* new value. +* This parameter can be one of the following values: +* @arg TIM_ICPSC_DIV1: no prescaler +* @arg TIM_ICPSC_DIV2: capture is done once every 2 events +* @arg TIM_ICPSC_DIV4: capture is done once every 4 events +* @arg TIM_ICPSC_DIV8: capture is done once every 8 events +* @retval : None +*/ +void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); + /* Reset the IC3PSC Bits */ + TIMx->CCMR2 &= CCMR_IC13PSC_Mask; + /* Set the IC3PSC value */ + TIMx->CCMR2 |= TIM_ICPSC; +} + +/** +* @brief Sets the TIMx Input Capture 4 prescaler. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPSC: specifies the Input Capture4 prescaler +* new value. +* This parameter can be one of the following values: +* @arg TIM_ICPSC_DIV1: no prescaler +* @arg TIM_ICPSC_DIV2: capture is done once every 2 events +* @arg TIM_ICPSC_DIV4: capture is done once every 4 events +* @arg TIM_ICPSC_DIV8: capture is done once every 8 events +* @retval : None +*/ +void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC)); + /* Reset the IC4PSC Bits */ + TIMx->CCMR2 &= CCMR_IC24PSC_Mask; + /* Set the IC4PSC value */ + TIMx->CCMR2 |= (uint16_t)(TIM_ICPSC << 8); +} + +/** +* @brief Sets the TIMx Clock Division value. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_CKD: specifies the clock division value. +* This parameter can be one of the following value: +* @arg TIM_CKD_DIV1: TDTS = Tck_tim +* @arg TIM_CKD_DIV2: TDTS = 2*Tck_tim +* @arg TIM_CKD_DIV4: TDTS = 4*Tck_tim +* @retval : None +*/ +void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + assert_param(IS_TIM_CKD_DIV(TIM_CKD)); + /* Reset the CKD Bits */ + TIMx->CR1 &= CR1_CKD_Mask; + /* Set the CKD value */ + TIMx->CR1 |= TIM_CKD; + +} + +/** +* @brief Gets the TIMx Input Capture 1 value. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @retval : Capture Compare 1 Register value. +*/ +uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Get the Capture 1 Register value */ + return TIMx->CCR1; +} + +/** +* @brief Gets the TIMx Input Capture 2 value. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @retval : Capture Compare 2 Register value. +*/ +uint16_t TIM_GetCapture2(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Get the Capture 2 Register value */ + return TIMx->CCR2; +} + +/** +* @brief Gets the TIMx Input Capture 3 value. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @retval : Capture Compare 3 Register value. +*/ +uint16_t TIM_GetCapture3(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Get the Capture 3 Register value */ + return TIMx->CCR3; +} + +/** +* @brief Gets the TIMx Input Capture 4 value. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @retval : Capture Compare 4 Register value. +*/ +uint16_t TIM_GetCapture4(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_123458_PERIPH(TIMx)); + /* Get the Capture 4 Register value */ + return TIMx->CCR4; +} + +/** +* @brief Gets the TIMx Counter value. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @retval : Counter Register value. +*/ +uint16_t TIM_GetCounter(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + /* Get the Counter Register value */ + return TIMx->CNT; +} + +/** +* @brief Gets the TIMx Prescaler value. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @retval : Prescaler Register value. +*/ +uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + /* Get the Prescaler Register value */ + return TIMx->PSC; +} + +/** +* @brief Checks whether the specified TIM flag is set or not. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg TIM_FLAG_Update: TIM update Flag +* @arg TIM_FLAG_CC1: TIM Capture Compare 1 Flag +* @arg TIM_FLAG_CC2: TIM Capture Compare 2 Flag +* @arg TIM_FLAG_CC3: TIM Capture Compare 3 Flag +* @arg TIM_FLAG_CC4: TIM Capture Compare 4 Flag +* @arg TIM_FLAG_COM: TIM Commutation Flag +* @arg TIM_FLAG_Trigger: TIM Trigger Flag +* @arg TIM_FLAG_Break: TIM Break Flag +* @arg TIM_FLAG_CC1OF: TIM Capture Compare 1 overcapture Flag +* @arg TIM_FLAG_CC2OF: TIM Capture Compare 2 overcapture Flag +* @arg TIM_FLAG_CC3OF: TIM Capture Compare 3 overcapture Flag +* @arg TIM_FLAG_CC4OF: TIM Capture Compare 4 overcapture Flag +* @retval : The new state of TIM_FLAG (SET or RESET). +*/ +FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG) +{ + ITStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_GET_FLAG(TIM_FLAG)); + assert_param(IS_TIM_PERIPH_FLAG(TIMx, TIM_FLAG)); + + if ((TIMx->SR & TIM_FLAG) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @brief Clears the TIMx's pending flags. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_FLAG: specifies the flag bit to clear. +* This parameter can be any combination of the following values: +* @arg TIM_FLAG_Update: TIM update Flag +* @arg TIM_FLAG_CC1: TIM Capture Compare 1 Flag +* @arg TIM_FLAG_CC2: TIM Capture Compare 2 Flag +* @arg TIM_FLAG_CC3: TIM Capture Compare 3 Flag +* @arg TIM_FLAG_CC4: TIM Capture Compare 4 Flag +* @arg TIM_FLAG_COM: TIM Commutation Flag +* @arg TIM_FLAG_Trigger: TIM Trigger Flag +* @arg TIM_FLAG_Break: TIM Break Flag +* @arg TIM_FLAG_CC1OF: TIM Capture Compare 1 overcapture Flag +* @arg TIM_FLAG_CC2OF: TIM Capture Compare 2 overcapture Flag +* @arg TIM_FLAG_CC3OF: TIM Capture Compare 3 overcapture Flag +* @arg TIM_FLAG_CC4OF: TIM Capture Compare 4 overcapture Flag +* @retval : None +*/ +void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_CLEAR_FLAG(TIMx, TIM_FLAG)); + + /* Clear the flags */ + TIMx->SR = (uint16_t)~TIM_FLAG; +} + +/** +* @brief Checks whether the TIM interrupt has occurred or not. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_IT: specifies the TIM interrupt source to check. +* This parameter can be one of the following values: +* @arg TIM_IT_Update: TIM update Interrupt source +* @arg TIM_IT_CC1: TIM Capture Compare 1 Interrupt source +* @arg TIM_IT_CC2: TIM Capture Compare 2 Interrupt source +* @arg TIM_IT_CC3: TIM Capture Compare 3 Interrupt source +* @arg TIM_IT_CC4: TIM Capture Compare 4 Interrupt source +* @arg TIM_IT_COM: TIM Commutation Interrupt +* source +* @arg TIM_IT_Trigger: TIM Trigger Interrupt source +* @arg TIM_IT_Break: TIM Break Interrupt source +* @retval : The new state of the TIM_IT(SET or RESET). +*/ +ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT) +{ + ITStatus bitstatus = RESET; + uint16_t itstatus = 0x0, itenable = 0x0; + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_GET_IT(TIM_IT)); + assert_param(IS_TIM_PERIPH_IT(TIMx, TIM_IT)); + + itstatus = TIMx->SR & TIM_IT; + + itenable = TIMx->DIER & TIM_IT; + if ((itstatus != (uint16_t)RESET) && (itenable != (uint16_t)RESET)) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @brief Clears the TIMx's interrupt pending bits. +* @param TIMx: where x can be 1 to 4 to select the TIM peripheral. +* @param TIM_IT: specifies the pending bit to clear. +* This parameter can be any combination of the following values: +* @arg TIM_IT_Update: TIM1 update Interrupt source +* @arg TIM_IT_CC1: TIM Capture Compare 1 Interrupt source +* @arg TIM_IT_CC2: TIM Capture Compare 2 Interrupt source +* @arg TIM_IT_CC3: TIM Capture Compare 3 Interrupt source +* @arg TIM_IT_CC4: TIM Capture Compare 4 Interrupt source +* @arg TIM_IT_COM: TIM Commutation Interrupt +* source +* @arg TIM_IT_Trigger: TIM Trigger Interrupt source +* @arg TIM_IT_Break: TIM Break Interrupt source +* @retval : None +*/ +void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT) +{ + /* Check the parameters */ + assert_param(IS_TIM_ALL_PERIPH(TIMx)); + assert_param(IS_TIM_PERIPH_IT(TIMx, TIM_IT)); + /* Clear the IT pending Bit */ + TIMx->SR = (uint16_t)~TIM_IT; +} + +/** +* @brief Configure the TI1 as Input. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPolarity : The Input Polarity. +* This parameter can be one of the following values: +* @arg TIM_ICPolarity_Rising +* @arg TIM_ICPolarity_Falling +* @param TIM_ICSelection: specifies the input to be used. +* This parameter can be one of the following values: +* @arg TIM_ICSelection_DirectTI: TIM Input 1 is selected to +* be connected to IC1. +* @arg TIM_ICSelection_IndirectTI: TIM Input 1 is selected to +* be connected to IC2. +* @arg TIM_ICSelection_TRC: TIM Input 1 is selected to be +* connected to TRC. +* @param TIM_ICFilter: Specifies the Input Capture Filter. +* This parameter must be a value between 0x00 and 0x0F. +* @retval : None +*/ +static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr1 = 0, tmpccer = 0; + /* Disable the Channel 1: Reset the CC1E Bit */ + TIMx->CCER &= CCER_CC1E_Reset; + tmpccmr1 = TIMx->CCMR1; + tmpccer = TIMx->CCER; + /* Select the Input and set the filter */ + tmpccmr1 &= CCMR_CC13S_Mask & CCMR_IC13F_Mask; + tmpccmr1 |= TIM_ICSelection | (uint16_t)(TIM_ICFilter << 4); + /* Select the Polarity and set the CC1E Bit */ + tmpccer &= CCER_CC1P_Reset; + tmpccer |= TIM_ICPolarity | CCER_CC1E_Set; + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1; + TIMx->CCER = tmpccer; +} + +/** +* @brief Configure the TI2 as Input. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPolarity : The Input Polarity. +* This parameter can be one of the following values: +* @arg TIM_ICPolarity_Rising +* @arg TIM_ICPolarity_Falling +* @param TIM_ICSelection: specifies the input to be used. +* This parameter can be one of the following values: +* @arg TIM_ICSelection_DirectTI: TIM Input 2 is selected to +* be connected to IC2. +* @arg TIM_ICSelection_IndirectTI: TIM Input 2 is selected to +* be connected to IC1. +* @arg TIM_ICSelection_TRC: TIM Input 2 is selected to be +* connected to TRC. +* @param TIM_ICFilter: Specifies the Input Capture Filter. +* This parameter must be a value between 0x00 and 0x0F. +* @retval : None +*/ +static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr1 = 0, tmpccer = 0, tmp = 0; + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= CCER_CC2E_Reset; + tmpccmr1 = TIMx->CCMR1; + tmpccer = TIMx->CCER; + tmp = (uint16_t)(TIM_ICPolarity << 4); + /* Select the Input and set the filter */ + tmpccmr1 &= CCMR_CC24S_Mask & CCMR_IC24F_Mask; + tmpccmr1 |= (uint16_t)(TIM_ICFilter << 12); + tmpccmr1 |= (uint16_t)(TIM_ICSelection << 8); + /* Select the Polarity and set the CC2E Bit */ + tmpccer &= CCER_CC2P_Reset; + tmpccer |= tmp | CCER_CC2E_Set; + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1 ; + TIMx->CCER = tmpccer; +} + +/** +* @brief Configure the TI3 as Input. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPolarity : The Input Polarity. +* This parameter can be one of the following values: +* @arg TIM_ICPolarity_Rising +* @arg TIM_ICPolarity_Falling +* @param TIM_ICSelection: specifies the input to be used. +* This parameter can be one of the following values: +* @arg TIM_ICSelection_DirectTI: TIM Input 3 is selected to +* be connected to IC3. +* @arg TIM_ICSelection_IndirectTI: TIM Input 3 is selected to +* be connected to IC4. +* @arg TIM_ICSelection_TRC: TIM Input 3 is selected to be +* connected to TRC. +* @param TIM_ICFilter: Specifies the Input Capture Filter. +* This parameter must be a value between 0x00 and 0x0F. +* @retval : None +*/ +static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr2 = 0, tmpccer = 0, tmp = 0; + /* Disable the Channel 3: Reset the CC3E Bit */ + TIMx->CCER &= CCER_CC3E_Reset; + tmpccmr2 = TIMx->CCMR2; + tmpccer = TIMx->CCER; + tmp = (uint16_t)(TIM_ICPolarity << 8); + /* Select the Input and set the filter */ + tmpccmr2 &= CCMR_CC13S_Mask & CCMR_IC13F_Mask; + tmpccmr2 |= TIM_ICSelection | (uint16_t)(TIM_ICFilter << 4); + /* Select the Polarity and set the CC3E Bit */ + tmpccer &= CCER_CC3P_Reset; + tmpccer |= tmp | CCER_CC3E_Set; + /* Write to TIMx CCMR2 and CCER registers */ + TIMx->CCMR2 = tmpccmr2; + TIMx->CCER = tmpccer; +} + +/** +* @brief Configure the TI1 as Input. +* @param TIMx: where x can be 1, 2, 3, 4 to select the TIM +* peripheral. +* @param TIM_ICPolarity : The Input Polarity. +* This parameter can be one of the following values: +* @arg TIM_ICPolarity_Rising +* @arg TIM_ICPolarity_Falling +* @param TIM_ICSelection: specifies the input to be used. +* This parameter can be one of the following values: +* @arg TIM_ICSelection_DirectTI: TIM Input 4 is selected to +* be connected to IC4. +* @arg TIM_ICSelection_IndirectTI: TIM Input 4 is selected to +* be connected to IC3. +* @arg TIM_ICSelection_TRC: TIM Input 4 is selected to be +* connected to TRC. +* @param TIM_ICFilter: Specifies the Input Capture Filter. +* This parameter must be a value between 0x00 and 0x0F. +* @retval : None +*/ +static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection, + uint16_t TIM_ICFilter) +{ + uint16_t tmpccmr2 = 0, tmpccer = 0, tmp = 0; + /* Disable the Channel 4: Reset the CC4E Bit */ + TIMx->CCER &= CCER_CC4E_Reset; + tmpccmr2 = TIMx->CCMR2; + tmpccer = TIMx->CCER; + tmp = (uint16_t)(TIM_ICPolarity << 12); + /* Select the Input and set the filter */ + tmpccmr2 &= CCMR_CC24S_Mask & CCMR_IC24F_Mask; + tmpccmr2 |= (uint16_t)(TIM_ICSelection << 8) | (uint16_t)(TIM_ICFilter << 12); + /* Select the Polarity and set the CC4E Bit */ + tmpccer &= CCER_CC4P_Reset; + tmpccer |= tmp | CCER_CC4E_Set; + /* Write to TIMx CCMR2 and CCER registers */ + TIMx->CCMR2 = tmpccmr2; + TIMx->CCER = tmpccer ; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_uart.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_uart.c new file mode 100644 index 000000000..7a8101dc1 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_uart.c @@ -0,0 +1,463 @@ +/** +****************************************************************************** +* @file HAL_UART.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the UART firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_uart.h" +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup UART +* @brief UART driver modules +* @{ +*/ + +/** @defgroup UART_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup UART_Private_Defines +* @{ +*/ + + + +/* UART UE Mask */ +#define GCR_UE_Set ((uint16_t)0x0001) /* UART Enable Mask */ +#define GCR_UE_Reset ((uint16_t)0xFFFE) /* UART Disable Mask */ + +//#define CCR_CLEAR_Mask ((uint32_t)0xFFFFFF30) /* UART CCR Mask */ +#define CCR_CLEAR_Mask ((uint32_t)0xFFFFFFC9) /* UART CCR Mask */ +#define GCR_CLEAR_Mask ((uint32_t)0xFFFFFFE0) /* UART GCR Mask */ +/** +* @} +*/ + +/** @defgroup UART_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup UART_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup UART_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup UART_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the UARTx peripheral registers to their +* default reset values. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @retval : None +*/ +void UART_DeInit(UART_TypeDef* UARTx) +{ + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + switch (*(uint32_t*)&UARTx) + { + case UART1_BASE: + RCC_APB2PeriphResetCmd(RCC_APB2Periph_UART1, ENABLE); + RCC_APB2PeriphResetCmd(RCC_APB2Periph_UART1, DISABLE); + break; + case UART2_BASE: + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART2, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART2, DISABLE); + break; + case UART3_BASE: + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART3, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART3, DISABLE); + break; + default: + break; + } +} + +/** +* @brief Initializes the UARTx peripheral according to the specified +* parameters in the UART_InitStruct . +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @param UART_InitStruct: pointer to a UART_InitTypeDef structure +* that contains the configuration information for the +* specified UART peripheral. +* @retval : None +*/ +void UART_Init(UART_TypeDef* UARTx, UART_InitTypeDef* UART_InitStruct) +{ + uint32_t tmpreg = 0x00, apbclock = 0x00; + uint32_t tmpreg1 = 0x00; + uint32_t UARTxbase = 0; + RCC_ClocksTypeDef RCC_ClocksStatus; + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + assert_param(IS_UART_BAUDRATE(UART_InitStruct->UART_BaudRate)); + assert_param(IS_UART_WORD_LENGTH(UART_InitStruct->UART_WordLength)); + assert_param(IS_UART_STOPBITS(UART_InitStruct->UART_StopBits)); + assert_param(IS_UART_PARITY(UART_InitStruct->UART_Parity)); + assert_param(IS_UART_MODE(UART_InitStruct->UART_Mode)); + assert_param(IS_UART_HARDWARE_FLOW_CONTROL(UART_InitStruct->UART_HardwareFlowControl)); + + UARTxbase = (*(uint32_t*)&UARTx); + /*---------------------------- UART CCR Configuration -----------------------*/ + /* get UART CCR values */ + tmpreg = UARTx->CCR; + /* Clear spb,psel,pen bits */ + tmpreg &= CCR_CLEAR_Mask; + /* Configure the UART Word Length,the UART Stop Bits,Parity ------------*/ + /* Set the char bits according to UART_WordLength value */ + /* Set spb bit according to UART_StopBits value */ + /* Set PEN bit according to UART_Parity value */ + tmpreg |= (uint32_t)UART_InitStruct->UART_WordLength | (uint32_t)UART_InitStruct->UART_StopBits | UART_InitStruct->UART_Parity; + + /* Write to UART CCR */ + UARTx->CCR = tmpreg; + + /*---------------------------- UART GCR Configuration -----------------------*/ + /* get UART GCR values */ + tmpreg = UARTx->GCR; + /* Clear TXEN and RXEN ,autoflowen, mode ,uarten bits */ + tmpreg &= GCR_CLEAR_Mask; + /* Set autorlowen bit according to UART_HardwareFlowControl value */ + /* Set rxen,txen bits according to UART_Mode value */ + tmpreg |= UART_InitStruct->UART_HardwareFlowControl | UART_InitStruct->UART_Mode ; + /* Write to UART GCR */ + UARTx->GCR = tmpreg; + /*---------------------------- UART BRR Configuration -----------------------*/ + /* Configure the UART Baud Rate -------------------------------------------*/ + RCC_GetClocksFreq(&RCC_ClocksStatus); + if (UARTxbase == UART1_BASE) + { + + apbclock = RCC_ClocksStatus.PCLK2_Frequency; + + } + else + { + + apbclock = RCC_ClocksStatus.PCLK1_Frequency; + } + /* Determine the UART_baud*/ + + tmpreg = (apbclock / UART_InitStruct->UART_BaudRate) / 16; + tmpreg1 = (apbclock / UART_InitStruct->UART_BaudRate) % 16; + UARTx->BRR = tmpreg; + UARTx->FRA = tmpreg1; +} + +/** +* @brief Fills each UART_InitStruct member with its default value. +* @param UART_InitStruct: pointer to a UART_InitTypeDef structure +* which will be initialized. +* @retval : None +*/ +void UART_StructInit(UART_InitTypeDef* UART_InitStruct) +{ + /* UART_InitStruct members default value */ + UART_InitStruct->UART_BaudRate = 9600; + UART_InitStruct->UART_WordLength = UART_WordLength_8b; + UART_InitStruct->UART_StopBits = UART_StopBits_1; + UART_InitStruct->UART_Parity = UART_Parity_No ; + UART_InitStruct->UART_Mode = UART_Mode_Rx | UART_Mode_Tx; + UART_InitStruct->UART_HardwareFlowControl = UART_HardwareFlowControl_None; +} + + +/** +* @brief Enables or disables the specified UART peripheral. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @param NewState: new state of the UARTx peripheral. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void UART_Cmd(UART_TypeDef* UARTx, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + /* Enable the selected UART by setting the uarten bit in the GCR register */ + UARTx->GCR |= GCR_UE_Set; + } + else + { + /* Disable the selected UART by clearing the uarten bit in the GCR register */ + UARTx->GCR &= GCR_UE_Reset; + } +} + +/** +* @brief Enables or disables the specified UART interrupts. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @param UART_IT: specifies the UART interrupt sources to be +* enabled or disabled. +* This parameter can be one of the following values: +* +* @arg UART_IT_ERR: Error interrupt(Frame error,) +* @arg UART_IT_PE: Parity Error interrupt +* @arg UART_OVER_ERR: overrun Error interrupt +* @arg UART_TIMEOUT_ERR: timeout Error interrupt +* @arg UART_IT_RXIEN: Receive Data register interrupt +* @arg UART_IT_TXIEN: Tansmit Data Register empty interrupt +* @param NewState: new state of the specified UARTx interrupts. +* This parameter can be: ENABLE or DISABLE. +* @retval : None +*/ +void UART_ITConfig(UART_TypeDef* UARTx, uint16_t UART_IT, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + assert_param(IS_UART_CONFIG_IT(UART_IT)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + + if (NewState != DISABLE) + { + /* Enable the UART_IT interrupt */ + UARTx->IER |= UART_IT; + } + else + { + /* Disable the UART_IT interrupt */ + UARTx->IER &= ~ UART_IT; + } +} + +/** +* @brief Enables or disables the UART’s DMA interface. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3 . +* @param UART_DMAReq: specifies the DMA request. +* This parameter can be any combination of the following values: +* @arg UART_DMAReq_EN: UART DMA transmit request +* +* @param NewState: new state of the DMA Request sources. +* This parameter can be: ENABLE or DISABLE. +* @note The DMA mode is not available for UART5. +* @retval : None +*/ +void UART_DMACmd(UART_TypeDef* UARTx, uint16_t UART_DMAReq, FunctionalState NewState) +{ + /* Check the parameters */ + assert_param(IS_UART_1234_PERIPH(UARTx)); + assert_param(IS_UART_DMAREQ(UART_DMAReq)); + assert_param(IS_FUNCTIONAL_STATE(NewState)); + if (NewState != DISABLE) + { + /* Enable the DMA transfer */ + UARTx->GCR |= UART_DMAReq; + } + else + { + /* Disable the DMA transfer */ + UARTx->GCR &= ~UART_DMAReq; + } +} + + +/** +* @brief Transmits single data through the UARTx peripheral. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @param Data: the data to transmit. +* @retval : None +*/ +void UART_SendData(UART_TypeDef* UARTx, uint16_t Data) +{ + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + assert_param(IS_UART_DATA(Data)); + + /* Transmit Data */ + UARTx->TDR = (Data & (uint16_t)0x00FF); +} + +/** +* @brief Returns the most recent received data by the UARTx peripheral. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @retval : The received data. +*/ +uint16_t UART_ReceiveData(UART_TypeDef* UARTx) +{ + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + + /* Receive Data */ + return (uint16_t)(UARTx->RDR & (uint16_t)0x00FF); +} + + +/** +* @brief Checks whether the specified UART flag is set or not. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @param UART_FLAG: specifies the flag to check. +* This parameter can be one of the following values: +* @arg UART_FLAG_TXEMPTY:Transmit data register empty flag +* @arg UART_FLAG_TXFULL:Transmit data buffer full +* @arg UART_FLAG_RXAVL:RX Buffer has a byte flag +* @arg UART_FLAG_OVER:OverRun Error flag +* @arg UART_FLAG_TXEPT: tx and shifter are emptys flag +* @retval : The new state of UART_FLAG (SET or RESET). +*/ +FlagStatus UART_GetFlagStatus(UART_TypeDef* UARTx, uint16_t UART_FLAG) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + assert_param(IS_UART_FLAG(UART_FLAG)); + if ((UARTx->CSR & UART_FLAG) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @brief Clears the UARTx's pending flags. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3, UART4 or UART5. +* @param UART_FLAG: specifies the flag to clear. +* This parameter can be any combination of the following values: +* @arg UART_FLAG_TXEMPTY:Transmit data register empty flag +* @arg UART_FLAG_TXFULL:Transmit data buffer full +* @arg UART_FLAG_RXAVL:RX Buffer has a byte flag +* @arg UART_FLAG_OVER:OverRun Error flag +* @arg UART_FLAG_TXEPT: tx and shifter are emptys flag +* @retval : None +*/ +void UART_ClearFlag(UART_TypeDef* UARTx, uint16_t UART_FLAG) +{ + +} + +/** +* @brief Checks whether the specified UART interrupt has occurred or not. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3. +* @param UART_IT: specifies the UART interrupt source to check. +* This parameter can be one of the following values: +* @arg UART_IT_ERR: Error interrupt(Frame error,) +* @arg UART_IT_PE: Parity Error interrupt +* @arg UART_OVER_ERR: overrun Error interrupt +* @arg UART_TIMEOUT_ERR: timeout Error interrupt +* @arg UART_IT_RXIEN: Receive Data register interrupt +* @arg UART_IT_TXIEN: Tansmit Data Register empty interrupt +* @retval : The new state of UART_IT (SET or RESET). +*/ +ITStatus UART_GetITStatus(UART_TypeDef* UARTx, uint16_t UART_IT) +{ + FlagStatus bitstatus = RESET; + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + assert_param(IS_UART_FLAG(UART_FLAG)); + assert_param(IS_UART_PERIPH_FLAG(UARTx, UART_FLAG)); /* The CTS flag is not available for UART4 and UART5 */ + if ((UARTx->ISR & UART_IT) != (uint16_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + return bitstatus; +} + +/** +* @brief Clears the UARTx’s interrupt pending bits. +* @param UARTx: Select the UART or the UART peripheral. +* This parameter can be one of the following values: +* UART1, UART2, UART3, UART4 or UART5. +* @param UART_IT: specifies the interrupt pending bit to clear. +* This parameter can be one of the following values: +* @arg UART_IT_ERR: Error interrupt(Frame error,) +* @arg UART_IT_PE: Parity Error interrupt +* @arg UART_OVER_ERR: overrun Error interrupt +* @arg UART_TIMEOUT_ERR: timeout Error interrupt +* @arg UART_IT_RXIEN: Receive Data register interrupt +* @arg UART_IT_TXIEN: Tansmit Data Register empty interrupt + +* @retval : None +*/ +void UART_ClearITPendingBit(UART_TypeDef* UARTx, uint16_t UART_IT) +{ + + /* Check the parameters */ + assert_param(IS_UART_ALL_PERIPH(UARTx)); + assert_param(IS_UART_CLEAR_IT(UART_IT)); + assert_param(IS_UART_PERIPH_IT(UARTx, UART_IT)); /* The CTS interrupt is not available for UART4 and UART5 */ + /*clear UART_IT pendings bit*/ + UARTx->ICR = UART_IT; +} +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_wwdg.c b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_wwdg.c new file mode 100644 index 000000000..ca4853362 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/HAL_lib/src/HAL_wwdg.c @@ -0,0 +1,221 @@ +/** +****************************************************************************** +* @file HAL_wwdg.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file provides all the WWDG firmware functions. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT,MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Includes ------------------------------------------------------------------*/ +#include "HAL_wwdg.h" +#include "HAL_rcc.h" + +/** @addtogroup StdPeriph_Driver +* @{ +*/ + +/** @defgroup WWDG +* @brief WWDG driver modules +* @{ +*/ + +/** @defgroup WWDG_Private_TypesDefinitions +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup WWDG_Private_Defines +* @{ +*/ + +/* ----------- WWDG registers bit address in the alias region ----------- */ +#define WWDG_OFFSET (WWDG_BASE - PERIPH_BASE) + +/* Alias word address of EWI bit */ +#define CFR_OFFSET (WWDG_OFFSET + 0x04) +#define EWI_BitNumber 0x09 +#define CFR_EWI_BB (PERIPH_BB_BASE + (CFR_OFFSET * 32) + (EWI_BitNumber * 4)) + +/* --------------------- WWDG registers bit mask ------------------------ */ + +/* CR register bit mask */ +#define CR_WDGA_Set ((uint32_t)0x00000080) + +/* CFR register bit mask */ +#define CFR_WDGTB_Mask ((uint32_t)0xFFFFFE7F) +#define CFR_W_Mask ((uint32_t)0xFFFFFF80) +#define BIT_Mask ((uint8_t)0x7F) + +/** +* @} +*/ + +/** @defgroup WWDG_Private_Macros +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup WWDG_Private_Variables +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup WWDG_Private_FunctionPrototypes +* @{ +*/ + +/** +* @} +*/ + +/** @defgroup WWDG_Private_Functions +* @{ +*/ + +/** +* @brief Deinitializes the WWDG peripheral registers to their default +* reset values. +* @param None +* @retval : None +*/ +void WWDG_DeInit(void) +{ + RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE); + RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, DISABLE); +} + +/** +* @brief Sets the WWDG Prescaler. +* @param WWDG_Prescaler: specifies the WWDG Prescaler. +* This parameter can be one of the following values: +* @arg WWDG_Prescaler_1: WWDG counter clock = (PCLK1/4096)/1 +* @arg WWDG_Prescaler_2: WWDG counter clock = (PCLK1/4096)/2 +* @arg WWDG_Prescaler_4: WWDG counter clock = (PCLK1/4096)/4 +* @arg WWDG_Prescaler_8: WWDG counter clock = (PCLK1/4096)/8 +* @retval : None +*/ +void WWDG_SetPrescaler(uint32_t WWDG_Prescaler) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_WWDG_PRESCALER(WWDG_Prescaler)); + /* Clear WDGTB[1:0] bits */ + tmpreg = WWDG->CFR & CFR_WDGTB_Mask; + /* Set WDGTB[1:0] bits according to WWDG_Prescaler value */ + tmpreg |= WWDG_Prescaler; + /* Store the new value */ + WWDG->CFR = tmpreg; +} + +/** +* @brief Sets the WWDG window value. +* @param WindowValue: specifies the window value to be compared to +* the downcounter. +* This parameter value must be lower than 0x80. +* @retval : None +*/ +void WWDG_SetWindowValue(uint8_t WindowValue) +{ + uint32_t tmpreg = 0; + /* Check the parameters */ + assert_param(IS_WWDG_WINDOW_VALUE(WindowValue)); + /* Clear W[6:0] bits */ + tmpreg = WWDG->CFR & CFR_W_Mask; + /* Set W[6:0] bits according to WindowValue value */ + tmpreg |= WindowValue & BIT_Mask; + /* Store the new value */ + WWDG->CFR = tmpreg; +} + +/** +* @brief Enables the WWDG Early Wakeup interrupt(EWI). +* @param None +* @retval : None +*/ +void WWDG_EnableIT(void) +{ + WWDG->CFR |= (uint32_t)0x200; +} + +/** +* @brief Sets the WWDG counter value. +* @param Counter: specifies the watchdog counter value. +* This parameter must be a number between 0x40 and 0x7F. +* @retval : None +*/ +void WWDG_SetCounter(uint8_t Counter) +{ + /* Check the parameters */ + assert_param(IS_WWDG_COUNTER(Counter)); + /* Write to T[6:0] bits to configure the counter value, no need to do + a read-modify-write; writing a 0 to WDGA bit does nothing */ + WWDG->CR = Counter & BIT_Mask; +} + +/** +* @brief Enables WWDG and load the counter value. +* @param Counter: specifies the watchdog counter value. +* This parameter must be a number between 0x40 and 0x7F. +* @retval : None +*/ +void WWDG_Enable(uint8_t Counter) +{ + /* Check the parameters */ + assert_param(IS_WWDG_COUNTER(Counter)); + WWDG->CR = CR_WDGA_Set | Counter; +} + +/** +* @brief Checks whether the Early Wakeup interrupt flag is set or not. +* @param None +* @retval : The new state of the Early Wakeup interrupt flag (SET or RESET) +*/ +FlagStatus WWDG_GetFlagStatus(void) +{ + return (FlagStatus)(WWDG->SR); +} + +/** +* @brief Clears Early Wakeup interrupt flag. +* @param None +* @retval : None +*/ +void WWDG_ClearFlag(void) +{ + WWDG->SR = (uint32_t)RESET; +} + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/MM32F103/Include/HAL_device.h b/bsp/mm32f103x/Libraries/MM32F103/Include/HAL_device.h new file mode 100644 index 000000000..bfb4e6bd8 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/Include/HAL_device.h @@ -0,0 +1,37 @@ +/** +****************************************************************************** +* @file HAL_device.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief This file contains all the Device inc file for the library. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ + +/* Define to prevent recursive inclusion -------------------------------------*/ + +#ifndef __HAL_device_H +#define __HAL_device_H + + +#define MM32F103 + +#if defined(MM32F103) +#include "MM32F103.h" +#include "SYSTEM_MM32F103.h" +#else +#error "HAL_device.h: PART NUMBER undefined" +#endif +#endif /* __HAL_device_H */ +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ + diff --git a/bsp/mm32f103x/Libraries/MM32F103/Include/MM32F103.h b/bsp/mm32f103x/Libraries/MM32F103/Include/MM32F103.h new file mode 100644 index 000000000..0bc29e254 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/Include/MM32F103.h @@ -0,0 +1,4404 @@ +/** +****************************************************************************** +* @file MM32F103.h +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @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 MM32F103 High Density, Medium +* Density and Low Density devices. +****************************************************************************** +* @copy +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+*/ +/** @addtogroup CMSIS +* @{ +*/ + +/** @addtogroup MM32F103 +* @{ +*/ + +#ifndef __MM32F103_H +#define __MM32F103_H + +/** @addtogroup Library_configuration_section +* @{ +*/ + + + +#if !defined USE_STDPERIPH_DRIVER +/** +* @brief Comment the line below if you will not use the peripherals drivers. +In this case, these drivers will not be included and the application code will +be based on direct access to peripherals registers +*/ +/*#define USE_STDPERIPH_DRIVER*/ +#endif + +/** +* @brief In the following line adjust the value of External High Speed oscillator (HSE) +used in your application +*/ +#define HSE_Value ((uint32_t)8000000) /*!< Value of the External oscillator in Hz*/ +#define HSE_VALUE HSE_Value +/** +* @brief In the following line adjust the External High Speed oscillator (HSE) Startup +Timeout value +*/ +#define HSEStartUp_TimeOut ((uint16_t)0x0500) /*!< Time out for HSE start up */ +#define HSE_STARTUP_TIMEOUT HSEStartUp_TimeOut + +#define HSI_Value_Pll_ON ((uint32_t)48000000/4) /*!< Value of the Internal oscillator in Hz*/ +#define HSI_VALUE_PLL_ON HSI_Value_Pll_ON + +#define HSI_Value_Pll_OFF ((uint32_t)48000000/6) /*!< Value of the Internal oscillator in Hz*/ +#define HSI_VALUE_PLL_OFF HSI_Value_Pll_OFF + +/*!< [31:16] MM32F103 Standard Peripheral Library main version */ +#define __MM32F103_STDPERIPH_VERSION_MAIN (0x01) +/*!< [15:8] MM32F103 Standard Peripheral Library sub1 version */ +#define __MM32F103_STDPERIPH_VERSION_SUB1 (0x00) +/*!< [7:0] MM32F103 Standard Peripheral Library sub2 version */ +#define __MM32F103_STDPERIPH_VERSION_SUB2 (0x00) +/*!< MM32F103 Standard Peripheral Library version number */ +#define __MM32F103_STDPERIPH_VERSION ((__MM32F103_STDPERIPH_VERSION_MAIN << 16)\ + | (__MM32F103_STDPERIPH_VERSION_SUB1 << 8)\ + | __MM32F103_STDPERIPH_VERSION_SUB2) + +/** +* @} +*/ + +/** @addtogroup Configuration_section_for_CMSIS +* @{ +*/ + +/** +* @brief Configuration of the Cortex-M3 Processor and Core Peripherals +*/ +#define __MPU_PRESENT 0 /*!< MM32F103 does not provide a MPU present or not */ +#define __NVIC_PRIO_BITS 4 /*!< MM32F103 uses 4 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/*!< Interrupt Number Definition */ +typedef enum IRQn +{ + /****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable 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 */ + + /****** MM32F103 CM3 specific Interrupt Numbers *********************************************************/ + + WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ + PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ + TAMPER_IRQn = 2, /*!< Tamper Interrupt */ + RTC_IRQn = 3, /*!< RTC global Interrupt */ + FLASH_IRQn = 4, /*!< FLASH global Interrupt */ + RCC_IRQn = 5, /*!< RCC global Interrupt */ + EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ + EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ + EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ + EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ + EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */ + DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */ + DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */ + DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */ + DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */ + DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */ + DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */ + DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt */ + ADC1_2_IRQn = 18, /*!< ADC1 et ADC2 global Interrupt */ + USB_HP_CAN1_TX_IRQn = 19, /*!< USB High Priority or CAN1 TX Interrupts */ + + CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */ + + EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ + TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */ + TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */ + TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */ + TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */ + TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ + TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ + TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ + I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ + + I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ + + SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ + SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ + UART1_IRQn = 37, /*!< UART1 global Interrupt */ + UART2_IRQn = 38, /*!< UART2 global Interrupt */ + UART3_IRQn = 39, /*!< UART3 global Interrupt */ + EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ + RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ + USBWakeUp_IRQn = 42, /*!< USB WakeUp from suspend through EXTI Line Interrupt */ + + +} IRQn_Type; + + + + +/** +* @} +*/ + +#include + +#include + +/** @addtogroup Exported_types +* @{ +*/ + +/*!< MM32F103 Standard Peripheral Library old types (maintained for legacy prupose) */ +typedef int32_t s32; +typedef int16_t s16; +typedef int8_t s8; + +typedef const int32_t sc32; /*!< Read Only */ +typedef const int16_t sc16; /*!< Read Only */ +typedef const int8_t sc8; /*!< Read Only */ + +typedef __IO int32_t vs32; +typedef __IO int16_t vs16; +typedef __IO int8_t vs8; + +typedef __I int32_t vsc32; /*!< Read Only */ +typedef __I int16_t vsc16; /*!< Read Only */ +typedef __I int8_t vsc8; /*!< Read Only */ + +typedef uint32_t u32; +typedef uint16_t u16; +typedef uint8_t u8; + +typedef const uint32_t uc32; /*!< Read Only */ +typedef const uint16_t uc16; /*!< Read Only */ +typedef const uint8_t uc8; /*!< Read Only */ + +typedef __IO uint32_t vu32; +typedef __IO uint16_t vu16; +typedef __IO uint8_t vu8; + +typedef __I uint32_t vuc32; /*!< Read Only */ +typedef __I uint16_t vuc16; /*!< Read Only */ +typedef __I uint8_t vuc8; /*!< Read Only */ + +typedef enum {FALSE = 0, TRUE = !FALSE} bool; + +typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; + +typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; +#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE)) + +typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; + +/** +* @} +*/ + +typedef struct +{ + __IO uint32_t SHCSR; //0XE000DE24 + __IO uint8_t MFSR; //0XE000DE28 + __IO uint8_t BFSR; //0XE000DE29 + __IO uint16_t UFSR; //0XE000DE2A + __IO uint32_t HFSR; //0XE000DE2C + __IO uint32_t DFSR; //0XE000DE30 + __IO uint32_t MMAR; //0XE000DE34 + __IO uint32_t BFAR; //0XE000DE38 +} HARD_FAULT_TypeDef; + + +/** @addtogroup Peripheral_registers_structures +* @{ +*/ + +/** +* @brief Analog to Digital Converter +*/ + +typedef struct +{ + __IO uint32_t ADDATA; + __IO uint32_t ADCFG; + __IO uint32_t ADCR; + __IO uint32_t ADCHS; + __IO uint32_t ADCMPR; + __IO uint32_t ADSTA; + __IO uint32_t ADDR0; + __IO uint32_t ADDR1; + __IO uint32_t ADDR2; + __IO uint32_t ADDR3; + __IO uint32_t ADDR4; + __IO uint32_t ADDR5; + __IO uint32_t ADDR6; + __IO uint32_t ADDR7; + __IO uint32_t ADDR8; +} ADC_TypeDef; + +/** +* @brief Backup Registers +*/ + +typedef struct +{ + uint32_t RESERVED0; + __IO uint16_t DR1; + uint16_t RESERVED1; + __IO uint16_t DR2; + uint16_t RESERVED2; + __IO uint16_t DR3; + uint16_t RESERVED3; + __IO uint16_t DR4; + uint16_t RESERVED4; + __IO uint16_t DR5; + uint16_t RESERVED5; + __IO uint16_t DR6; + uint16_t RESERVED6; + __IO uint16_t DR7; + uint16_t RESERVED7; + __IO uint16_t DR8; + uint16_t RESERVED8; + __IO uint16_t DR9; + uint16_t RESERVED9; + __IO uint16_t DR10; + uint16_t RESERVED10; + __IO uint16_t RTCCR; + uint16_t RESERVED11; + __IO uint16_t CR; + uint16_t RESERVED12; + __IO uint16_t CSR; +} BKP_TypeDef; + +/** +* @brief CAN basic +*/ +typedef struct +{ + __IO uint32_t CR; //0x00 + __IO uint32_t CMR; //0x04 + __IO uint32_t SR; //0x08 + __IO uint32_t IR; //0x0c + __IO uint32_t ACR; //0x10 + __IO uint32_t AMR; //0x14 + __IO uint32_t BTR0; //0x18 + __IO uint32_t BTR1; //0x1C + __IO uint32_t RESERVED0; //0x20 + uint32_t RESERVED1; //0x24 + __IO uint32_t TXID0; //0x28 + __IO uint32_t TXID1; //0x2c + __IO uint32_t TXDR0; //0x30 + __IO uint32_t TXDR1; //0x34 + __IO uint32_t TXDR2; //0x38 + __IO uint32_t TXDR3; //0x3c + __IO uint32_t TXDR4; //0x40 + __IO uint32_t TXDR5; //0x44 + __IO uint32_t TXDR6; //0x48 + __IO uint32_t TXDR7; //0x4c + __IO uint32_t RXID0; //0x50 + __IO uint32_t RXID1; //0x54 + __IO uint32_t RXDR0; //0x58 + __IO uint32_t RXDR1; //0x5C + __IO uint32_t RXDR2; //0x60 + __IO uint32_t RXDR3; + __IO uint32_t RXDR4; + __IO uint32_t RXDR5; //0x6c + __IO uint32_t RXDR6; //0x70 + __IO uint32_t RXDR7; //0x74 + uint32_t RESERVED2; + __IO uint32_t CDR; //0x7c +} CAN_TypeDef; + +/** +* @brief CAN Peli +*/ +typedef struct +{ + __IO uint32_t MOD; + __IO uint32_t CMR; + __IO uint32_t SR; + __IO uint32_t IR; + __IO uint32_t IER; //0x10h + uint32_t RESERVED0; + __IO uint32_t BTR0; + __IO uint32_t BTR1; + uint32_t RESERVED1; //0x20h + uint32_t RESERVED2; + uint32_t RESERVED3; + __IO uint32_t ALC; + __IO uint32_t ECC; //0x30h + __IO uint32_t EWLR; + __IO uint32_t RXERR; + __IO uint32_t TXERR; + __IO uint32_t FF; //0x40 + __IO uint32_t ID0; + __IO uint32_t ID1; + __IO uint32_t DATA0; + __IO uint32_t DATA1; //0x50 + __IO uint32_t DATA2; + __IO uint32_t DATA3; + __IO uint32_t DATA4; + __IO uint32_t DATA5; //0x60 + __IO uint32_t DATA6; + __IO uint32_t DATA7; + __IO uint32_t DATA8; + __IO uint32_t DATA9; //0x70 + __IO uint32_t RMC; + __IO uint32_t RBSA; + __IO uint32_t CDR; +} CAN_Peli_TypeDef; + + +/** +* @brief CRC calculation unit +*/ + +typedef struct +{ + __IO uint32_t DR; + __IO uint8_t IDR; + uint8_t RESERVED0; + uint16_t RESERVED1; + __IO uint32_t CR; +} CRC_TypeDef; + +/** +* @brief Digital to Analog Converter +*/ + +typedef struct +{ + __IO uint32_t CR; + __IO uint32_t SWTRIGR; + __IO uint32_t DHR12R1; + __IO uint32_t DHR12L1; + __IO uint32_t DHR8R1; + __IO uint32_t DHR12R2; + __IO uint32_t DHR12L2; + __IO uint32_t DHR8R2; + __IO uint32_t DHR12RD; + __IO uint32_t DHR12LD; + __IO uint32_t DHR8RD; + __IO uint32_t DOR1; + __IO uint32_t DOR2; +} DAC_TypeDef; + + +/** +* @brief Debug MCU +*/ + +typedef struct +{ + __IO uint32_t IDCODE; + __IO uint32_t CR; +} DBGMCU_TypeDef; + +/** +* @brief DMA Controller +*/ + +typedef struct +{ + __IO uint32_t CCR; + __IO uint32_t CNDTR; + __IO uint32_t CPAR; + __IO uint32_t CMAR; +} DMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t ISR; + __IO uint32_t IFCR; +} DMA_TypeDef; + +/** +* @brief External Interrupt/Event Controller +*/ + +typedef struct +{ + __IO uint32_t IMR; + __IO uint32_t EMR; + __IO uint32_t RTSR; + __IO uint32_t FTSR; + __IO uint32_t SWIER; + __IO uint32_t PR; +} EXTI_TypeDef; + +/** +* @brief FLASH Registers +*/ + +typedef struct +{ + __IO uint32_t ACR; + __IO uint32_t KEYR; + __IO uint32_t OPTKEYR; + __IO uint32_t SR; + __IO uint32_t CR; + __IO uint32_t AR; + __IO uint32_t RESERVED; + __IO uint32_t OBR; + __IO uint32_t WRPR; +} FLASH_TypeDef; + +/** +* @brief Option Bytes Registers +*/ + +typedef struct +{ + __IO uint16_t RDP; + __IO uint16_t USER; + __IO uint16_t Data0; + __IO uint16_t Data1; + __IO uint16_t WRP0; + __IO uint16_t WRP1; + __IO uint16_t WRP2; + __IO uint16_t WRP3; +} OB_TypeDef; + + + +/** +* @brief General Purpose IO +*/ + +typedef struct +{ + __IO uint32_t CRL; + __IO uint32_t CRH; + __IO uint32_t IDR; + __IO uint32_t ODR; + __IO uint32_t BSRR; + __IO uint32_t BRR; + __IO uint32_t LCKR; +} GPIO_TypeDef; + +/** +* @brief Alternate Function IO +*/ + +typedef struct +{ + __IO uint32_t EVCR; + __IO uint32_t MAPR; + __IO uint32_t EXTICR[4]; +} AFIO_TypeDef; +/** +* @brief Inter-integrated Circuit Interface +*/ + +typedef struct +{ + __IO uint16_t IC_CON; + uint16_t RESERVED0; + __IO uint16_t IC_TAR; + uint16_t RESERVED1; + __IO uint16_t IC_SAR; + uint16_t RESERVED2; + __IO uint16_t IC_HS_MADDR; + uint16_t RESERVED3; + __IO uint16_t IC_DATA_CMD; + uint16_t RESERVED4; + __IO uint16_t IC_SS_SCL_HCNT; + uint16_t RESERVED5; + __IO uint16_t IC_SS_SCL_LCNT; + uint16_t RESERVED6; + __IO uint16_t IC_FS_SCL_HCNT; + uint16_t RESERVED7; + __IO uint16_t IC_FS_SCL_LCNT; + uint16_t RESERVED8; + __IO uint16_t IC_HS_SCL_HCNT; + uint16_t RESERVED9; + __IO uint16_t IC_HS_SCL_LCNT; + uint16_t RESERVED10; + __IO uint16_t IC_INTR_STAT; + uint16_t RESERVED11; + __IO uint16_t IC_INTR_MASK; + uint16_t RESERVED12; + __IO uint16_t IC_RAW_INTR_STAT; + uint16_t RESERVED13; + __IO uint16_t IC_RX_TL; + uint16_t RESERVED14; + __IO uint16_t IC_TX_TL; + uint16_t RESERVED15; + __IO uint16_t IC_CLR_INTR; + uint16_t RESERVED16; + __IO uint16_t IC_CLR_RX_UNDER; + uint16_t RESERVED17; + __IO uint16_t IC_CLR_RX_OVER; + uint16_t RESERVED18; + __IO uint16_t IC_CLR_TX_OVER; + uint16_t RESERVED19; + __IO uint16_t IC_CLR_RD_REQ; + uint16_t RESERVED20; + __IO uint16_t IC_CLR_TX_ABRT; + uint16_t RESERVED21; + __IO uint16_t IC_CLR_RX_DONE; + uint16_t RESERVED22; + __IO uint16_t IC_CLR_ACTIVITY; + uint16_t RESERVED23; + __IO uint16_t IC_CLR_STOP_DET; + uint16_t RESERVED24; + __IO uint16_t IC_CLR_START_DET; + uint16_t RESERVED25; + __IO uint16_t IC_CLR_GEN_CALL; + uint16_t RESERVED26; + __IO uint16_t IC_ENABLE; //RESERVED + uint16_t RESERVED27; + + __IO uint32_t IC_STATUS; + __IO uint32_t IC_TXFLR; //RESERVED + __IO uint32_t IC_RXFLR; //RESERVED + __IO uint32_t IC_SDA_HOLD; //RESERVED + __IO uint32_t IC_TX_ABRT_SOURCE; //RESERVED + __IO uint32_t IC_SLV_DATA_NACK_ONLY; //RESERVED + __IO uint32_t IC_DMA_CR; //RESERVED + __IO uint32_t IC_DMA_TDLR; //RESERVED + __IO uint32_t IC_DMA_RDLR; //RESERVED + __IO uint32_t IC_SDA_SETUP; //RESERVED + __IO uint32_t IC_ACK_GENERAL_CALL; //RESERVED + + __IO uint32_t IC_FS_SPKLEN; + __IO uint32_t IC_HS_SPKLEN; + + __IO uint16_t IC_CLR_RESTART_DET; + uint16_t RESERVED28; + __IO uint32_t IC_COMP_PARAM_1; + __IO uint32_t IC_COMP_VERSION; + __IO uint32_t IC_COMP_TYPE; + +} I2C_TypeDef; + +/** +* @brief Independent WATCHDOG +*/ + +typedef struct +{ + __IO uint32_t KR; + __IO uint32_t PR; + __IO uint32_t RLR; + __IO uint32_t SR; +} IWDG_TypeDef; + +/** +* @brief Power Control +*/ + +typedef struct +{ + __IO uint32_t CR; + __IO uint32_t CSR; +} PWR_TypeDef; + +/** +* @brief Reset and Clock Control +*/ + +typedef struct +{ + __IO uint32_t CR; + __IO uint32_t CFGR; + __IO uint32_t CIR; + __IO uint32_t APB2RSTR; + __IO uint32_t APB1RSTR; + __IO uint32_t AHBENR; + __IO uint32_t APB2ENR; + __IO uint32_t APB1ENR; + __IO uint32_t BDCR; + __IO uint32_t CSR; +} RCC_TypeDef; + +/** +* @brief Real-Time Clock +*/ + +typedef struct +{ + __IO uint16_t CRH; + uint16_t RESERVED0; + __IO uint16_t CRL; + uint16_t RESERVED1; + __IO uint16_t PRLH; + uint16_t RESERVED2; + __IO uint16_t PRLL; + uint16_t RESERVED3; + __IO uint16_t DIVH; + uint16_t RESERVED4; + __IO uint16_t DIVL; + uint16_t RESERVED5; + __IO uint16_t CNTH; + uint16_t RESERVED6; + __IO uint16_t CNTL; + uint16_t RESERVED7; + __IO uint16_t ALRH; + uint16_t RESERVED8; + __IO uint16_t ALRL; + uint16_t RESERVED9; +} RTC_TypeDef; + + +/** +* @brief Serial Peripheral Interface +*/ + + +typedef struct +{ + __IO uint32_t TXREG; + __IO uint32_t RXREG; + __IO uint16_t CSTAT; + uint16_t RESERVED0; + __IO uint16_t INTSTAT; + uint16_t RESERVED1; + __IO uint16_t INTEN; + uint16_t RESERVED2; + __IO uint16_t INTCLR; + uint16_t RESERVED3; + __IO uint16_t GCTL; + uint16_t RESERVED4; + __IO uint16_t CCTL; + uint16_t RESERVED5; + __IO uint16_t SPBRG; + uint16_t RESERVED6; + __IO uint16_t RXDNR; + uint16_t RESERVED7; + __IO uint16_t SCSR; + uint16_t RESERVED8; + __IO uint16_t EXTCTL; + uint16_t RESERVED9; +} SPI_TypeDef; + + + + +/** +* @brief TIM +*/ + +typedef struct +{ + __IO uint16_t CR1; + uint16_t RESERVED0; + __IO uint16_t CR2; + uint16_t RESERVED1; + __IO uint16_t SMCR; + uint16_t RESERVED2; + __IO uint16_t DIER; + uint16_t RESERVED3; + __IO uint16_t SR; + uint16_t RESERVED4; + __IO uint16_t EGR; + uint16_t RESERVED5; + __IO uint16_t CCMR1; + uint16_t RESERVED6; + __IO uint16_t CCMR2; + uint16_t RESERVED7; + __IO uint16_t CCER; + uint16_t RESERVED8; + __IO uint16_t CNT; + uint16_t RESERVED9; + __IO uint16_t PSC; + uint16_t RESERVED10; + __IO uint16_t ARR; + uint16_t RESERVED11; + __IO uint16_t RCR; + uint16_t RESERVED12; + __IO uint16_t CCR1; + uint16_t RESERVED13; + __IO uint16_t CCR2; + uint16_t RESERVED14; + __IO uint16_t CCR3; + uint16_t RESERVED15; + __IO uint16_t CCR4; + uint16_t RESERVED16; + __IO uint16_t BDTR; + uint16_t RESERVED17; + __IO uint16_t DCR; + uint16_t RESERVED18; + __IO uint16_t DMAR; + uint16_t RESERVED19; +} TIM_TypeDef; + +/** +* @brief Universal Synchronous Asynchronous Receiver Transmitter +*/ + +typedef struct +{ + __IO uint32_t TDR; + __IO uint32_t RDR; + __IO uint32_t CSR; + __IO uint32_t ISR; + __IO uint32_t IER; + __IO uint32_t ICR; + __IO uint32_t GCR; + __IO uint32_t CCR; + __IO uint32_t BRR; + __IO uint32_t FRA; + +} UART_TypeDef; + +/** +* @brief Window WATCHDOG +*/ + +typedef struct +{ + __IO uint32_t CR; + __IO uint32_t CFR; + __IO uint32_t SR; +} WWDG_TypeDef; + + +/** +* @brief USB +*/ +typedef struct +{ + __IO uint32_t rTOP; /*! Address offset: 0x00 */ + __IO uint32_t rINT_STATE; /*! Address offset: 0x04 */ + __IO uint32_t rEP_INT_STATE; /*! Address offset: 0x08 */ + __IO uint32_t rEP0_INT_STATE; /*! Address offset: 0x0C */ + __IO uint32_t rINT_EN; /*! Address offset: 0x10 */ + __IO uint32_t rEP_INT_EN; /*! Address offset: 0x14 */ + __IO uint32_t rEP0_INT_EN; /*! Address offset: 0x18 */ + + __IO uint32_t RESERVED0; + + //__IO uint32_t rEP1_4_INT_STATE[4]; /*! Address offset: 0x20 */ + + __IO uint32_t rEP1_INT_STATE; /*! Address offset: 0x20 */ + __IO uint32_t rEP2_INT_STATE; /*! Address offset: 0x24 */ + __IO uint32_t rEP3_INT_STATE; /*! Address offset: 0x28 */ + __IO uint32_t rEP4_INT_STATE; /*! Address offset: 0x2C */ + + __IO uint32_t RESERVED1; /*! Address offset: 0x30 */ + __IO uint32_t RESERVED2; /*! Address offset: 0x34 */ + __IO uint32_t RESERVED3; /*! Address offset: 0x38 */ + __IO uint32_t RESERVED4; /*! Address offset: 0x3C */ + + __IO uint32_t rEP1_INT_EN; /*! Address offset: 0x40 */ + __IO uint32_t rEP2_INT_EN; /*! Address offset: 0x44 */ + __IO uint32_t rEP3_INT_EN; /*! Address offset: 0x48 */ + __IO uint32_t rEP4_INT_EN; /*! Address offset: 0x4C */ + + __IO uint32_t RESERVED5; /*! Address offset: 0x50 */ + __IO uint32_t RESERVED6; /*! Address offset: 0x54 */ + __IO uint32_t RESERVED7; /*! Address offset: 0x58 */ + __IO uint32_t RESERVED8; /*! Address offset: 0x5C */ + + __IO uint32_t rADDR; /*! Address offset: 0x60 */ + __IO uint32_t rEP_EN; /*! Address offset: 0x64 */ + + __IO uint32_t RESERVED9; /*! Address offset: 0x68 */ + __IO uint32_t RESERVED10; /*! Address offset: 0x6C */ + __IO uint32_t RESERVED11; /*! Address offset: 0x70 */ + __IO uint32_t RESERVED12; /*! Address offset: 0x74 */ + + __IO uint32_t rTOG_CTRL1_4; /*! Address offset: 0x78 */ + + __IO uint32_t RESERVED13; /*! Address offset: 0x7C */ + + __IO uint32_t rSETUP[8]; /*! Address offset: 0x80 */ + //__IO uint32_t rSETUP0; /*! Address offset: 0x80 */ + //__IO uint32_t rSETUP1; /*! Address offset: 0x84 */ + //__IO uint32_t rSETUP2; /*! Address offset: 0x88 */ + //__IO uint32_t rSETUP3; /*! Address offset: 0x8C */ + //__IO uint32_t rSETUP4; /*! Address offset: 0x90 */ + //__IO uint32_t rSETUP5; /*! Address offset: 0x94 */ + //__IO uint32_t rSETUP6; /*! Address offset: 0x98 */ + //__IO uint32_t rSETUP7; /*! Address offset: 0x9C */ + __IO uint32_t rPAKET_SIZE0; /*! Address offset: 0xA0 */ + __IO uint32_t rPAKET_SIZE1; /*! Address offset: 0xA4 */ + + __IO uint32_t RESERVED14; /*! Address offset: 0xA8 */ + __IO uint32_t RESERVED15; /*! Address offset: 0xAC */ + + __IO uint32_t RESERVED16; /*! Address offset: 0xB0 */ + __IO uint32_t RESERVED17; /*! Address offset: 0xB4 */ + __IO uint32_t RESERVED18; /*! Address offset: 0xB8 */ + __IO uint32_t RESERVED19; /*! Address offset: 0xBC */ + + __IO uint32_t RESERVED20; /*! Address offset: 0xC0 */ + __IO uint32_t RESERVED21; /*! Address offset: 0xC4 */ + __IO uint32_t RESERVED22; /*! Address offset: 0xC8 */ + __IO uint32_t RESERVED23; /*! Address offset: 0xCC */ + + __IO uint32_t RESERVED24; /*! Address offset: 0xD0 */ + __IO uint32_t RESERVED25; /*! Address offset: 0xD4 */ + __IO uint32_t RESERVED26; /*! Address offset: 0xD8 */ + __IO uint32_t RESERVED27; /*! Address offset: 0xDC */ + + __IO uint32_t RESERVED28; /*! Address offset: 0xE0 */ + __IO uint32_t RESERVED29; /*! Address offset: 0xE4 */ + __IO uint32_t RESERVED30; /*! Address offset: 0xE8 */ + __IO uint32_t RESERVED31; /*! Address offset: 0xEC */ + + __IO uint32_t RESERVED32; /*! Address offset: 0xF0 */ + __IO uint32_t RESERVED33; /*! Address offset: 0xF4 */ + __IO uint32_t RESERVED34; /*! Address offset: 0xF8 */ + __IO uint32_t RESERVED35; /*! Address offset: 0xFC */ + + __IO uint32_t rEP0_AVIL; /*! Address offset: 0x100 */ + __IO uint32_t rEP1_AVIL; /*! Address offset: 0x104 */ + __IO uint32_t rEP2_AVIL; /*! Address offset: 0x108 */ + __IO uint32_t rEP3_AVIL; /*! Address offset: 0x10C */ + __IO uint32_t rEP4_AVIL; /*! Address offset: 0x110 */ + + __IO uint32_t RESERVED36; /*! Address offset: 0x114 */ + __IO uint32_t RESERVED37; /*! Address offset: 0x118 */ + __IO uint32_t RESERVED38; /*! Address offset: 0x11C */ + __IO uint32_t RESERVED39; /*! Address offset: 0x120 */ + + __IO uint32_t RESERVED40; /*! Address offset: 0x124 */ + __IO uint32_t RESERVED41; /*! Address offset: 0x128 */ + __IO uint32_t RESERVED42; /*! Address offset: 0x12C */ + __IO uint32_t RESERVED43; /*! Address offset: 0x130 */ + + __IO uint32_t RESERVED44; /*! Address offset: 0x134 */ + __IO uint32_t RESERVED45; /*! Address offset: 0x138 */ + __IO uint32_t RESERVED46; /*! Address offset: 0x13C */ + + __IO uint32_t rEP0_CTRL; /*! Address offset: 0x140 */ + __IO uint32_t rEP1_CTRL; /*! Address offset: 0x144 */ + __IO uint32_t rEP2_CTRL; /*! Address offset: 0x148 */ + __IO uint32_t rEP3_CTRL; /*! Address offset: 0x14C */ + __IO uint32_t rEP4_CTRL; /*! Address offset: 0x150 */ + + __IO uint32_t RESERVED47; /*! Address offset: 0x154 */ + __IO uint32_t RESERVED48; /*! Address offset: 0x158 */ + __IO uint32_t RESERVED49; /*! Address offset: 0x15C */ + //__IO uint32_t RESERVED50; /*! Address offset: 0x15C */ + + //__IO uint32_t rEPn_FIFO[5]; /*! Address offset: 0x160 */ + + __IO uint32_t rEP0_FIFO; /*! Address offset: 0x160 */ + __IO uint32_t rEP1_FIFO; /*! Address offset: 0x164 */ + __IO uint32_t rEP2_FIFO; /*! Address offset: 0x168 */ + __IO uint32_t rEP3_FIFO; /*! Address offset: 0x16C */ + __IO uint32_t rEP4_FIFO; /*! Address offset: 0x170 */ + + __IO uint32_t RESERVED51; /*! Address offset: 0x174 */ + __IO uint32_t RESERVED52; /*! Address offset: 0x178 */ + __IO uint32_t RESERVED53; /*! Address offset: 0x17C */ + + __IO uint32_t RESERVED54; /*! Address offset: 0x180 */ + + __IO uint32_t rEP_DMA; /*! Address offset: 0x184 */ + __IO uint32_t rEP_HALT; /*! Address offset: 0x188 */ + __IO uint32_t RESERVED55; /*! Address offset: 0x18C */ + + __IO uint32_t RESERVED56; /*! Address offset: 0x190 */ + __IO uint32_t RESERVED57; /*! Address offset: 0x194 */ + __IO uint32_t RESERVED58; /*! Address offset: 0x198 */ + __IO uint32_t RESERVED59; /*! Address offset: 0x19C */ + + __IO uint32_t RESERVED60; /*! Address offset: 0x1A0 */ + __IO uint32_t RESERVED61; /*! Address offset: 0x1A4 */ + __IO uint32_t RESERVED62; /*! Address offset: 0x1A8 */ + __IO uint32_t RESERVED63; /*! Address offset: 0x1AC */ + + __IO uint32_t RESERVED64; /*! Address offset: 0x1B0 */ + __IO uint32_t RESERVED65; /*! Address offset: 0x1B4 */ + __IO uint32_t RESERVED66; /*! Address offset: 0x1B8 */ + __IO uint32_t RESERVED67; /*! Address offset: 0x1BC */ + __IO uint32_t rPOWER; /*! Address offset: 0x1C0 */ +} USB_TypeDef; + +/** +* @} +*/ + +#define HARD_FAULT_MM ((HARD_FAULT_TypeDef*)0xE000DE24) + +/** @addtogroup Peripheral_memory_map +* @{ +*/ + +#define FLASH_BASE ((uint32_t)0x08000000) /*!< FLASH base address in the alias region */ +#define PERIPH_BB_BASE ((uint32_t)0x42000000) /*!< Peripheral base address in the alias region */ +#define SRAM_BB_BASE ((uint32_t)0x22000000) /*!< SRAM base address in the alias region */ + +#define SRAM_BASE ((uint32_t)0x20000000) /*!< Peripheral base address in the bit-band region */ +#define PERIPH_BASE ((uint32_t)0x40000000) /*!< SRAM base address in the bit-band region */ + + + +/*!< Peripheral memory map */ +#define APB1PERIPH_BASE PERIPH_BASE +#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) + + +#define TIM2_BASE (APB1PERIPH_BASE + 0x0000) +#define TIM3_BASE (APB1PERIPH_BASE + 0x0400) +#define TIM4_BASE (APB1PERIPH_BASE + 0x0800) + +#define RTC_BASE (APB1PERIPH_BASE + 0x2800) +#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00) +#define IWDG_BASE (APB1PERIPH_BASE + 0x3000) +#define SPI2_BASE (APB1PERIPH_BASE + 0x3800) + +#define UART2_BASE (APB1PERIPH_BASE + 0x4400) +#define UART3_BASE (APB1PERIPH_BASE + 0x4800) + +#define I2C1_BASE (APB1PERIPH_BASE + 0x5400) +#define I2C2_BASE (APB1PERIPH_BASE + 0x5800) +#define CAN1_BASE (APB1PERIPH_BASE + 0x6400) +#define BKP_BASE (APB1PERIPH_BASE + 0x6C00) +#define PWR_BASE (APB1PERIPH_BASE + 0x7000) +#define DAC_BASE (APB1PERIPH_BASE + 0x7400) + +#define AFIO_BASE (APB2PERIPH_BASE + 0x0000) +#define EXTI_BASE (APB2PERIPH_BASE + 0x0400) +#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800) +#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) +#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) +#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) +#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800) //RESERVED +#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00) //RESERVED +#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000) //RESERVED +#define ADC1_BASE (APB2PERIPH_BASE + 0x2400) +#define ADC2_BASE (APB2PERIPH_BASE + 0x2800) +#define TIM1_BASE (APB2PERIPH_BASE + 0x2C00) +#define SPI1_BASE (APB2PERIPH_BASE + 0x3000) + +#define UART1_BASE (APB2PERIPH_BASE + 0x3800) + +#define DMA1_BASE (AHBPERIPH_BASE + 0x0000) +#define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x0008) +#define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x001C) +#define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x0030) +#define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x0044) +#define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x0058) +#define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x006C) +#define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x0080) + +#define RCC_BASE (AHBPERIPH_BASE + 0x1000) +#define CRC_BASE (AHBPERIPH_BASE + 0x3000) + + + +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x2000) /*!< Flash registers base address */ +#define OB_BASE ((uint32_t)0x1FFFF800) /*!< Flash Option Bytes base address */ + + +#define DBGMCU_BASE ((uint32_t)0xE0042000) /*!< Debug MCU registers base address */ + +#define USB_BASE ((uint32_t)0x40005C00) + +/** +* @} +*/ + +/** @addtogroup Peripheral_declaration +* @{ +*/ + +#define TIM2 ((TIM_TypeDef *) TIM2_BASE) +#define TIM3 ((TIM_TypeDef *) TIM3_BASE) +#define TIM4 ((TIM_TypeDef *) TIM4_BASE) + +#define RTC ((RTC_TypeDef *) RTC_BASE) +#define WWDG ((WWDG_TypeDef *) WWDG_BASE) +#define IWDG ((IWDG_TypeDef *) IWDG_BASE) +#define SPI2 ((SPI_TypeDef *) SPI2_BASE) +#define UART2 ((UART_TypeDef *) UART2_BASE) +#define UART3 ((UART_TypeDef *) UART3_BASE) + +#define I2C1 ((I2C_TypeDef *) I2C1_BASE) +#define I2C2 ((I2C_TypeDef *) I2C2_BASE) +#define CAN1 ((CAN_TypeDef *) CAN1_BASE) +#define CAN1_PELI ((CAN_Peli_TypeDef *) CAN1_BASE) +#define BKP ((BKP_TypeDef *) BKP_BASE) +#define PWR ((PWR_TypeDef *) PWR_BASE) +#define DAC ((DAC_TypeDef *) DAC_BASE) +#define AFIO ((AFIO_TypeDef *) AFIO_BASE) +#define EXTI ((EXTI_TypeDef *) EXTI_BASE) +#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) +#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE) +#define GPIOE ((GPIO_TypeDef *) GPIOE_BASE)//RESERVED +#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE)//RESERVED +#define GPIOG ((GPIO_TypeDef *) GPIOG_BASE)//RESERVED +#define ADC1 ((ADC_TypeDef *) ADC1_BASE) +#define ADC2 ((ADC_TypeDef *) ADC2_BASE) +#define TIM1 ((TIM_TypeDef *) TIM1_BASE) +#define SPI1 ((SPI_TypeDef *) SPI1_BASE) +#define UART1 ((UART_TypeDef *) UART1_BASE) +#define DMA1 ((DMA_TypeDef *) DMA1_BASE) + +#define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE) +#define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE) +#define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) +#define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE) +#define DMA1_Channel5 ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE) +#define DMA1_Channel6 ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE) +#define DMA1_Channel7 ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE) + +#define RCC ((RCC_TypeDef *) RCC_BASE) +#define CRC ((CRC_TypeDef *) CRC_BASE) +#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) +#define OB ((OB_TypeDef *) OB_BASE) +#define DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) + + + +#define USB ((USB_TypeDef*) USB_BASE )//usb_base + +/** +* @} +*/ + +/** @addtogroup Exported_constants +* @{ +*/ + +/** @addtogroup Peripheral_Registers_Bits_Definition +* @{ +*/ + +/******************************************************************************/ +/* Peripheral Registers_Bits_Definition */ +/******************************************************************************/ + +/******************************************************************************/ +/* */ +/* CRC calculation unit */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for CRC_DR register *********************/ +#define CRC_DR_DR ((uint32_t)0xFFFFFFFF) /*!< Data register bits */ + + +/******************* Bit definition for CRC_IDR register ********************/ +#define CRC_IDR_IDR ((uint8_t)0xFF) /*!< General-purpose 8-bit data register bits */ + + +/******************** Bit definition for CRC_CR register ********************/ +#define CRC_CR_RESET ((uint8_t)0x01) /*!< RESET bit */ + +/******************************************************************************/ +/* */ +/* Power Control */ +/* */ +/******************************************************************************/ + +/******************** Bit definition for PWR_CR register ********************/ + +#define PWR_CR_PDDS ((uint16_t)0x0002) /*!< Power Down Deepsleep */ +#define PWR_CR_CWUF ((uint16_t)0x0004) /*!< Clear Wakeup Flag */ +#define PWR_CR_CSBF ((uint16_t)0x0008) /*!< Clear Standby Flag */ +#define PWR_CR_PVDE ((uint16_t)0x0010) /*!< Power Voltage Detector Enable */ + +#define PWR_CR_PLS ((uint16_t)0x1E00) /*!< PLS[3:0] bits (PVD Level Selection) */ +#define PWR_CR_PLS_0 ((uint16_t)0x0200) /*!< Bit 0 */ +#define PWR_CR_PLS_1 ((uint16_t)0x0400) /*!< Bit 1 */ +#define PWR_CR_PLS_2 ((uint16_t)0x0800) /*!< Bit 2 */ +#define PWR_CR_PLS_3 ((uint16_t)0x1000) /*!< Bit 3 */ + +/*!< PVD level configuration */ +#define PWR_CR_PLS_2V6 ((uint16_t)0x0000) /*!< PVD level 2.6V */ +#define PWR_CR_PLS_2V8 ((uint16_t)0x0200) /*!< PVD level 2.8V */ +#define PWR_CR_PLS_3V0 ((uint16_t)0x0400) /*!< PVD level 3.0V */ +#define PWR_CR_PLS_3V2 ((uint16_t)0x0600) /*!< PVD level 3.2V */ +#define PWR_CR_PLS_3V4 ((uint16_t)0x0800) /*!< PVD level 3.4V */ +#define PWR_CR_PLS_3V6 ((uint16_t)0x0A00) /*!< PVD level 3.6V */ +#define PWR_CR_PLS_3V8 ((uint16_t)0x0C00) /*!< PVD level 3.8V */ +#define PWR_CR_PLS_4V0 ((uint16_t)0x0E00) /*!< PVD level 4.0V */ +#define PWR_CR_PLS_4V2 ((uint16_t)0x1000) /*!< PVD level 4.2V */ +#define PWR_CR_PLS_4V4 ((uint16_t)0x1200) /*!< PVD level 4.4V */ +#define PWR_CR_PLS_4V6 ((uint16_t)0x1400) /*!< PVD level 4.6V */ + +#define PWR_CR_DBP ((uint16_t)0x0100) /*!< Disable Backup Domain write protection */ + + +/******************* Bit definition for PWR_CSR register ********************/ +#define PWR_CSR_WUF ((uint16_t)0x0001) /*!< Wakeup Flag */ +#define PWR_CSR_SBF ((uint16_t)0x0002) /*!< Standby Flag */ +#define PWR_CSR_PVDO ((uint16_t)0x0004) /*!< PVD Output */ +#define PWR_CSR_EWUP ((uint16_t)0x0100) /*!< Enable WKUP pin */ + +/******************************************************************************/ +/* */ +/* Backup registers */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for BKP_DR1 register ********************/ +#define BKP_DR1_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR2 register ********************/ +#define BKP_DR2_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR3 register ********************/ +#define BKP_DR3_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR4 register ********************/ +#define BKP_DR4_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR5 register ********************/ +#define BKP_DR5_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR6 register ********************/ +#define BKP_DR6_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR7 register ********************/ +#define BKP_DR7_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR8 register ********************/ +#define BKP_DR8_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR9 register ********************/ +#define BKP_DR9_D ((uint16_t)0xFFFF) /*!< Backup data */ + +/******************* Bit definition for BKP_DR10 register *******************/ +#define BKP_DR10_D ((uint16_t)0xFFFF) /*!< Backup data */ + + +/****************** Bit definition for BKP_RTCCR register *******************/ +#define BKP_RTCCR_CAL ((uint16_t)0x007F) /*!< Calibration value */ +#define BKP_RTCCR_CCO ((uint16_t)0x0080) /*!< Calibration Clock Output */ +#define BKP_RTCCR_ASOE ((uint16_t)0x0100) /*!< Alarm or Second Output Enable */ +#define BKP_RTCCR_ASOS ((uint16_t)0x0200) /*!< Alarm or Second Output Selection */ + +/******************** Bit definition for BKP_CR register ********************/ +#define BKP_CR_TPE ((uint8_t)0x01) /*!< TAMPER pin enable */ +#define BKP_CR_TPAL ((uint8_t)0x02) /*!< TAMPER pin active level */ + +/******************* Bit definition for BKP_CSR register ********************/ +#define BKP_CSR_CTE ((uint16_t)0x0001) /*!< Clear Tamper event */ +#define BKP_CSR_CTI ((uint16_t)0x0002) /*!< Clear Tamper Interrupt */ +#define BKP_CSR_TPIE ((uint16_t)0x0004) /*!< TAMPER Pin interrupt enable */ +#define BKP_CSR_TEF ((uint16_t)0x0100) /*!< Tamper Event Flag */ +#define BKP_CSR_TIF ((uint16_t)0x0200) /*!< Tamper Interrupt Flag */ + +/******************************************************************************/ +/* */ +/* Reset and Clock Control */ +/* */ +/******************************************************************************/ + +/******************** Bit definition for RCC_CR register ********************/ +#define RCC_CR_HSION ((uint32_t)0x00000001) /*!< Internal High Speed clock enable */ +#define RCC_CR_HSIRDY ((uint32_t)0x00000002) /*!< Internal High Speed clock ready flag */ +#define RCC_CR_HSITRIM ((uint32_t)0x000000F8) /*!< Internal High Speed clock trimming */ +#define RCC_CR_HSICAL ((uint32_t)0x0000FF00) /*!< Internal High Speed clock Calibration */ +#define RCC_CR_HSEON ((uint32_t)0x00010000) /*!< External High Speed clock enable */ +#define RCC_CR_HSERDY ((uint32_t)0x00020000) /*!< External High Speed clock ready flag */ +#define RCC_CR_HSEBYP ((uint32_t)0x00040000) /*!< External High Speed clock Bypass */ +#define RCC_CR_CSSON ((uint32_t)0x00080000) /*!< Clock Security System enable */ +#define RCC_CR_PLLON ((uint32_t)0x01000000) /*!< PLL enable */ +#define RCC_CR_PLLRDY ((uint32_t)0x02000000) /*!< PLL clock ready flag */ + +#define RCC_CR_PLLDN ((uint32_t)0xFC000000) /*!< PLLDN[5:0] bits */ +#define RCC_CR_PLLDN_0 ((uint32_t)0x04000000) /*!< Bit 0 */ +#define RCC_CR_PLLDN_1 ((uint32_t)0x08000000) /*!< Bit 1 */ +#define RCC_CR_PLLDN_2 ((uint32_t)0x10000000) /*!< Bit 2 */ +#define RCC_CR_PLLDN_3 ((uint32_t)0x20000000) /*!< Bit 3 */ +#define RCC_CR_PLLDN_4 ((uint32_t)0x40000000) /*!< Bit 4 */ +#define RCC_CR_PLLDN_5 ((uint32_t)0x80000000) /*!< Bit 5 */ + +#define RCC_CR_PLLDM ((uint32_t)0x00700000) /*!< PLLDM[2:0] bits */ +#define RCC_CR_PLLDM_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define RCC_CR_PLLDM_1 ((uint32_t)0x00200000) /*!< Bit 1 */ +#define RCC_CR_PLLDM_2 ((uint32_t)0x00400000) /*!< Bit 2 */ +/******************* Bit definition for RCC_CFGR register *******************/ +#define RCC_CFGR_SW ((uint32_t)0x00000003) /*!< SW[1:0] bits (System clock Switch) */ +#define RCC_CFGR_SW_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define RCC_CFGR_SW_1 ((uint32_t)0x00000002) /*!< Bit 1 */ + +/*!< SW configuration */ +#define RCC_CFGR_SW_HSI ((uint32_t)0x00000000) /*!< HSI selected as system clock */ +#define RCC_CFGR_SW_HSE ((uint32_t)0x00000001) /*!< HSE selected as system clock */ +#define RCC_CFGR_SW_PLL ((uint32_t)0x00000002) /*!< PLL selected as system clock */ + +#define RCC_CFGR_SWS ((uint32_t)0x0000000C) /*!< SWS[1:0] bits (System Clock Switch Status) */ +#define RCC_CFGR_SWS_0 ((uint32_t)0x00000004) /*!< Bit 0 */ +#define RCC_CFGR_SWS_1 ((uint32_t)0x00000008) /*!< Bit 1 */ + +/*!< SWS configuration */ +#define RCC_CFGR_SWS_HSI ((uint32_t)0x00000000) /*!< HSI oscillator used as system clock */ +#define RCC_CFGR_SWS_HSE ((uint32_t)0x00000004) /*!< HSE oscillator used as system clock */ +#define RCC_CFGR_SWS_PLL ((uint32_t)0x00000008) /*!< PLL used as system clock */ + +#define RCC_CFGR_HPRE ((uint32_t)0x000000F0) /*!< HPRE[3:0] bits (AHB prescaler) */ +#define RCC_CFGR_HPRE_0 ((uint32_t)0x00000010) /*!< Bit 0 */ +#define RCC_CFGR_HPRE_1 ((uint32_t)0x00000020) /*!< Bit 1 */ +#define RCC_CFGR_HPRE_2 ((uint32_t)0x00000040) /*!< Bit 2 */ +#define RCC_CFGR_HPRE_3 ((uint32_t)0x00000080) /*!< Bit 3 */ + +/*!< HPRE configuration */ +#define RCC_CFGR_HPRE_DIV1 ((uint32_t)0x00000000) /*!< SYSCLK not divided */ +#define RCC_CFGR_HPRE_DIV2 ((uint32_t)0x00000080) /*!< SYSCLK divided by 2 */ +#define RCC_CFGR_HPRE_DIV4 ((uint32_t)0x00000090) /*!< SYSCLK divided by 4 */ +#define RCC_CFGR_HPRE_DIV8 ((uint32_t)0x000000A0) /*!< SYSCLK divided by 8 */ +#define RCC_CFGR_HPRE_DIV16 ((uint32_t)0x000000B0) /*!< SYSCLK divided by 16 */ +#define RCC_CFGR_HPRE_DIV64 ((uint32_t)0x000000C0) /*!< SYSCLK divided by 64 */ +#define RCC_CFGR_HPRE_DIV128 ((uint32_t)0x000000D0) /*!< SYSCLK divided by 128 */ +#define RCC_CFGR_HPRE_DIV256 ((uint32_t)0x000000E0) /*!< SYSCLK divided by 256 */ +#define RCC_CFGR_HPRE_DIV512 ((uint32_t)0x000000F0) /*!< SYSCLK divided by 512 */ + +#define RCC_CFGR_PPRE1 ((uint32_t)0x00000700) /*!< PRE1[2:0] bits (APB1 prescaler) */ +#define RCC_CFGR_PPRE1_0 ((uint32_t)0x00000100) /*!< Bit 0 */ +#define RCC_CFGR_PPRE1_1 ((uint32_t)0x00000200) /*!< Bit 1 */ +#define RCC_CFGR_PPRE1_2 ((uint32_t)0x00000400) /*!< Bit 2 */ + +/*!< PPRE1 configuration */ +#define RCC_CFGR_PPRE1_DIV1 ((uint32_t)0x00000000) /*!< HCLK not divided */ +#define RCC_CFGR_PPRE1_DIV2 ((uint32_t)0x00000400) /*!< HCLK divided by 2 */ +#define RCC_CFGR_PPRE1_DIV4 ((uint32_t)0x00000500) /*!< HCLK divided by 4 */ +#define RCC_CFGR_PPRE1_DIV8 ((uint32_t)0x00000600) /*!< HCLK divided by 8 */ +#define RCC_CFGR_PPRE1_DIV16 ((uint32_t)0x00000700) /*!< HCLK divided by 16 */ + +#define RCC_CFGR_PPRE2 ((uint32_t)0x00003800) /*!< PRE2[2:0] bits (APB2 prescaler) */ +#define RCC_CFGR_PPRE2_0 ((uint32_t)0x00000800) /*!< Bit 0 */ +#define RCC_CFGR_PPRE2_1 ((uint32_t)0x00001000) /*!< Bit 1 */ +#define RCC_CFGR_PPRE2_2 ((uint32_t)0x00002000) /*!< Bit 2 */ + +/*!< PPRE2 configuration */ +#define RCC_CFGR_PPRE2_DIV1 ((uint32_t)0x00000000) /*!< HCLK not divided */ +#define RCC_CFGR_PPRE2_DIV2 ((uint32_t)0x00002000) /*!< HCLK divided by 2 */ +#define RCC_CFGR_PPRE2_DIV4 ((uint32_t)0x00002800) /*!< HCLK divided by 4 */ +#define RCC_CFGR_PPRE2_DIV8 ((uint32_t)0x00003000) /*!< HCLK divided by 8 */ +#define RCC_CFGR_PPRE2_DIV16 ((uint32_t)0x00003800) /*!< HCLK divided by 16 */ + +#define RCC_CFGR_PLLSRC ((uint32_t)0x00010000) /*!< PLL entry clock source */ +#define RCC_CFGR_PLLXTPRE ((uint32_t)0x00020000) /*!< HSE divider for PLL entry */ + +#define RCC_CFGR_USBPRE ((uint32_t)0x00C00000) /*!< USB prescaler BIT[1:0] */ +#define RCC_CFGR_USBPRE_0 ((uint32_t)0x00400000) /*!< Bit 0 */ +#define RCC_CFGR_USBPRE_1 ((uint32_t)0x00800000) /*!< Bit 1 */ + +#define RCC_CFGR_MCO ((uint32_t)0x07000000) /*!< MCO[2:0] bits (Microcontroller Clock Output) */ +#define RCC_CFGR_MCO_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define RCC_CFGR_MCO_1 ((uint32_t)0x02000000) /*!< Bit 1 */ +#define RCC_CFGR_MCO_2 ((uint32_t)0x04000000) /*!< Bit 2 */ + +/*!< MCO configuration */ +#define RCC_CFGR_MCO_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ +#define RCC_CFGR_MCO_LSI ((uint32_t)0x02000000) // +#define RCC_CFGR_MCO_LSE ((uint32_t)0x03000000) +#define RCC_CFGR_MCO_SYSCLK ((uint32_t)0x04000000) /*!< System clock selected */ +#define RCC_CFGR_MCO_HSI ((uint32_t)0x05000000) /*!< Internal 48 MHz RC oscillator clock selected */ +#define RCC_CFGR_MCO_HSE ((uint32_t)0x06000000) /*!< External 1-25 MHz oscillator clock selected */ +#define RCC_CFGR_MCO_PLL ((uint32_t)0x07000000) /*!< PLL clock divided by 2 selected*/ + +/*!<****************** Bit definition for RCC_CIR register ********************/ +#define RCC_CIR_LSIRDYF ((uint32_t)0x00000001) /*!< LSI Ready Interrupt flag */ +#define RCC_CIR_LSERDYF ((uint32_t)0x00000002) /*!< LSE Ready Interrupt flag */ +#define RCC_CIR_HSIRDYF ((uint32_t)0x00000004) /*!< HSI Ready Interrupt flag */ +#define RCC_CIR_HSERDYF ((uint32_t)0x00000008) /*!< HSE Ready Interrupt flag */ +#define RCC_CIR_PLLRDYF ((uint32_t)0x00000010) /*!< PLL Ready Interrupt flag */ +#define RCC_CIR_CSSF ((uint32_t)0x00000080) /*!< Clock Security System Interrupt flag */ +#define RCC_CIR_LSIRDYIE ((uint32_t)0x00000100) /*!< LSI Ready Interrupt Enable */ +#define RCC_CIR_LSERDYIE ((uint32_t)0x00000200) /*!< LSE Ready Interrupt Enable */ +#define RCC_CIR_HSIRDYIE ((uint32_t)0x00000400) /*!< HSI Ready Interrupt Enable */ +#define RCC_CIR_HSERDYIE ((uint32_t)0x00000800) /*!< HSE Ready Interrupt Enable */ +#define RCC_CIR_PLLRDYIE ((uint32_t)0x00001000) /*!< PLL Ready Interrupt Enable */ +#define RCC_CIR_LSIRDYC ((uint32_t)0x00010000) /*!< LSI Ready Interrupt Clear */ +#define RCC_CIR_LSERDYC ((uint32_t)0x00020000) /*!< LSE Ready Interrupt Clear */ +#define RCC_CIR_HSIRDYC ((uint32_t)0x00040000) /*!< HSI Ready Interrupt Clear */ +#define RCC_CIR_HSERDYC ((uint32_t)0x00080000) /*!< HSE Ready Interrupt Clear */ +#define RCC_CIR_PLLRDYC ((uint32_t)0x00100000) /*!< PLL Ready Interrupt Clear */ +#define RCC_CIR_CSSC ((uint32_t)0x00800000) /*!< Clock Security System Interrupt Clear */ + +/***************** Bit definition for RCC_APB2RSTR register *****************/ +#define RCC_APB2RSTR_AFIORST ((uint32_t)0x00000001) /*!< Alternate Function I/O reset */ +#define RCC_APB2RSTR_IOPARST ((uint32_t)0x00000004) /*!< I/O port A reset */ +#define RCC_APB2RSTR_IOPBRST ((uint32_t)0x00000008) /*!< IO port B reset */ +#define RCC_APB2RSTR_IOPCRST ((uint32_t)0x00000010) /*!< IO port C reset */ +#define RCC_APB2RSTR_IOPDRST ((uint32_t)0x00000020) /*!< IO port D reset */ +#define RCC_APB2RSTR_IOPERST ((uint32_t)0x00000040) /*!< IO port E reset *///RESERVED +#define RCC_APB2RSTR_IOPFRST ((uint32_t)0x00000080) /*!< IO port F reset *///RESERVED +#define RCC_APB2RSTR_IOPGRST ((uint32_t)0x00000100) /*!< IO port G reset *///RESERVED +#define RCC_APB2RSTR_ADC1RST ((uint32_t)0x00000200) /*!< ADC 1 interface reset */ +#define RCC_APB2RSTR_ADC2RST ((uint32_t)0x00000400) /*!< ADC 2 interface reset */ +#define RCC_APB2RSTR_TIM1RST ((uint32_t)0x00000800) /*!< TIM1 Timer reset */ +#define RCC_APB2RSTR_SPI1RST ((uint32_t)0x00001000) /*!< SPI 1 reset */ +#define RCC_APB2RSTR_UART1RST ((uint32_t)0x00004000) /*!< UART1 reset */ +#define RCC_APB2RSTR_CPTRST ((uint32_t)0x0008000) /*!< CPT interface reset */ + +/***************** Bit definition for RCC_APB1RSTR register *****************/ +#define RCC_APB1RSTR_TIM2RST ((uint32_t)0x00000001) /*!< Timer 2 reset */ +#define RCC_APB1RSTR_TIM3RST ((uint32_t)0x00000002) /*!< Timer 3 reset */ +#define RCC_APB1RSTR_WWDGRST ((uint32_t)0x00000800) /*!< Window Watchdog reset */ +#define RCC_APB1RSTR_SPI2RST ((uint32_t)0x00004000) /*!< SPI 2 reset */ +#define RCC_APB1RSTR_UART2RST ((uint32_t)0x00020000) /*!< UART 2 reset */ +#define RCC_APB1RSTR_UART3RST ((uint32_t)0x00040000) /*!< UART 3 reset */ +#define RCC_APB1RSTR_I2C1RST ((uint32_t)0x00200000) /*!< I2C 1 reset */ +#define RCC_APB1RSTR_I2C2RST ((uint32_t)0x00400000) /*!< I2C 2 reset */ +#define RCC_APB1RSTR_USBRST ((uint32_t)0x00800000) /*!< USB reset */ +#define RCC_APB1RSTR_CANRST ((uint32_t)0x02000000) /*!< CAN reset */ +#define RCC_APB1RSTR_BKPRST ((uint32_t)0x08000000) /*!< Backup interface reset */ +#define RCC_APB1RSTR_PWRRST ((uint32_t)0x10000000) /*!< Power interface reset */ +#define RCC_APB1RSTR_DACRST ((uint32_t)0x20000000) /*!< DAC interface reset */ + +/****************** Bit definition for RCC_AHBENR register ******************/ +#define RCC_AHBENR_DMAEN ((uint16_t)0x0001) /*!< DMA1 clock enable */ +#define RCC_AHBENR_SRAMEN ((uint16_t)0x0004) /*!< SRAM interface clock enable */ +#define RCC_AHBENR_FLITFEN ((uint16_t)0x0010) /*!< FLITF clock enable */ +#define RCC_AHBENR_CRCEN ((uint16_t)0x0040) /*!< CRC clock enable */ + +/****************** Bit definition for RCC_APB2ENR register *****************/ +#define RCC_APB2ENR_AFIOEN ((uint32_t)0x00000001) /*!< Alternate Function I/O clock enable */ +#define RCC_APB2ENR_IOPAEN ((uint32_t)0x00000004) /*!< I/O port A clock enable */ +#define RCC_APB2ENR_IOPBEN ((uint32_t)0x00000008) /*!< I/O port B clock enable */ +#define RCC_APB2ENR_IOPCEN ((uint32_t)0x00000010) /*!< I/O port C clock enable */ +#define RCC_APB2ENR_IOPDEN ((uint32_t)0x00000020) /*!< I/O port D clock enable */ +#define RCC_APB2ENR_IOPEEN ((uint32_t)0x00000040) /*!< I/O port E clock enable *///RESERVED +#define RCC_APB2ENR_IOPFEN ((uint32_t)0x00000080) /*!< I/O port F clock enable *///RESERVED +#define RCC_APB2ENR_IOPGEN ((uint32_t)0x00000100) /*!< I/O port G clock enable *///RESERVED +#define RCC_APB2ENR_ADC1EN ((uint32_t)0x00000200) /*!< ADC 1 interface clock enable */ +#define RCC_APB2ENR_ADC2EN ((uint32_t)0x00000400) /*!< ADC 2 interface clock enable */ +#define RCC_APB2ENR_TIM1EN ((uint32_t)0x00000800) /*!< TIM1 Timer clock enable */ +#define RCC_APB2ENR_SPI1EN ((uint32_t)0x00001000) /*!< SPI 1 clock enable */ +#define RCC_APB2ENR_UART1EN ((uint32_t)0x00004000) /*!< UART1 clock enable */ + +/***************** Bit definition for RCC_APB1ENR register ******************/ +#define RCC_APB1ENR_TIM2EN ((uint32_t)0x00000001) /*!< Timer 2 clock enabled*/ +#define RCC_APB1ENR_TIM3EN ((uint32_t)0x00000002) /*!< Timer 3 clock enable */ +#define RCC_APB1ENR_TIM4EN ((uint32_t)0x00000004) /*!< Timer 4 clock enable */ +#define RCC_APB1ENR_WWDGEN ((uint32_t)0x00000800) /*!< Window Watchdog clock enable */ +#define RCC_APB1ENR_SPI2EN ((uint32_t)0x00004000) /*!< SPI 2 clock enable */ +#define RCC_APB1ENR_UART2EN ((uint32_t)0x00020000) /*!< UART 2 clock enable */ +#define RCC_APB1ENR_UART3EN ((uint32_t)0x00040000) /*!< UART 3 clock enable */ +#define RCC_APB1ENR_I2C1EN ((uint32_t)0x00200000) /*!< I2C 1 clock enable */ +#define RCC_APB1ENR_I2C2EN ((uint32_t)0x00400000) /*!< I2C 2 clock enable */ +#define RCC_APB1ENR_USBEN ((uint32_t)0x00800000) /*!< USB clock enable */ +#define RCC_APB1ENR_CANEN ((uint32_t)0x02000000) /*!< CAN clock enable */ +#define RCC_APB1ENR_BKPEN ((uint32_t)0x08000000) /*!< Backup interface clock enable */ +#define RCC_APB1ENR_PWREN ((uint32_t)0x10000000) /*!< Power interface clock enable */ +#define RCC_APB1ENR_DACEN ((uint32_t)0x20000000) /*!< DAC interface clock enable */ + +/******************* Bit definition for RCC_BDCR register *******************/ +#define RCC_BDCR_LSEON ((uint32_t)0x00000001) /*!< External Low Speed oscillator enable */ +#define RCC_BDCR_LSERDY ((uint32_t)0x00000002) /*!< External Low Speed oscillator Ready */ +#define RCC_BDCR_LSEBYP ((uint32_t)0x00000004) /*!< External Low Speed oscillator Bypass */ + +#define RCC_BDCR_RTCSEL ((uint32_t)0x00000300) /*!< RTCSEL[1:0] bits (RTC clock source selection) */ +#define RCC_BDCR_RTCSEL_0 ((uint32_t)0x00000100) /*!< Bit 0 */ +#define RCC_BDCR_RTCSEL_1 ((uint32_t)0x00000200) /*!< Bit 1 */ + +/*!< RTC congiguration */ +#define RCC_BDCR_RTCSEL_NOCLOCK ((uint32_t)0x00000000) /*!< No clock */ +#define RCC_BDCR_RTCSEL_LSE ((uint32_t)0x00000100) /*!< LSE oscillator clock used as RTC clock */ +#define RCC_BDCR_RTCSEL_LSI ((uint32_t)0x00000200) /*!< LSI oscillator clock used as RTC clock */ +#define RCC_BDCR_RTCSEL_HSE ((uint32_t)0x00000300) /*!< HSE oscillator clock divided by 128 used as RTC clock */ + +#define RCC_BDCR_RTCEN ((uint32_t)0x00008000) /*!< RTC clock enable */ +#define RCC_BDCR_BDRST ((uint32_t)0x00010000) /*!< Backup domain software reset */ + +/******************* Bit definition for RCC_CSR register ********************/ +#define RCC_CSR_LSION ((uint32_t)0x00000001) /*!< Internal Low Speed oscillator enable */ +#define RCC_CSR_LSIRDY ((uint32_t)0x00000002) /*!< Internal Low Speed oscillator Ready */ +#define RCC_CSR_RMVF ((uint32_t)0x01000000) /*!< Remove reset flag */ +#define RCC_CSR_PINRSTF ((uint32_t)0x04000000) /*!< PIN reset flag */ +#define RCC_CSR_PORRSTF ((uint32_t)0x08000000) /*!< POR/PDR reset flag */ +#define RCC_CSR_SFTRSTF ((uint32_t)0x10000000) /*!< Software Reset flag */ +#define RCC_CSR_IWDGRSTF ((uint32_t)0x20000000) /*!< Independent Watchdog reset flag */ +#define RCC_CSR_WWDGRSTF ((uint32_t)0x40000000) /*!< Window watchdog reset flag */ +#define RCC_CSR_LPWRRSTF ((uint32_t)0x80000000) /*!< Low-Power reset flag */ + +/******************************************************************************/ +/* */ +/* General Purpose and Alternate Function IO */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for GPIO_CRL register *******************/ +#define GPIO_CRL_MODE ((uint32_t)0x33333333) /*!< Port x mode bits */ + +#define GPIO_CRL_MODE0 ((uint32_t)0x00000003) /*!< MODE0[1:0] bits (Port x mode bits, pin 0) */ +#define GPIO_CRL_MODE0_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define GPIO_CRL_MODE0_1 ((uint32_t)0x00000002) /*!< Bit 1 */ + +#define GPIO_CRL_MODE1 ((uint32_t)0x00000030) /*!< MODE1[1:0] bits (Port x mode bits, pin 1) */ +#define GPIO_CRL_MODE1_0 ((uint32_t)0x00000010) /*!< Bit 0 */ +#define GPIO_CRL_MODE1_1 ((uint32_t)0x00000020) /*!< Bit 1 */ + +#define GPIO_CRL_MODE2 ((uint32_t)0x00000300) /*!< MODE2[1:0] bits (Port x mode bits, pin 2) */ +#define GPIO_CRL_MODE2_0 ((uint32_t)0x00000100) /*!< Bit 0 */ +#define GPIO_CRL_MODE2_1 ((uint32_t)0x00000200) /*!< Bit 1 */ + +#define GPIO_CRL_MODE3 ((uint32_t)0x00003000) /*!< MODE3[1:0] bits (Port x mode bits, pin 3) */ +#define GPIO_CRL_MODE3_0 ((uint32_t)0x00001000) /*!< Bit 0 */ +#define GPIO_CRL_MODE3_1 ((uint32_t)0x00002000) /*!< Bit 1 */ + +#define GPIO_CRL_MODE4 ((uint32_t)0x00030000) /*!< MODE4[1:0] bits (Port x mode bits, pin 4) */ +#define GPIO_CRL_MODE4_0 ((uint32_t)0x00010000) /*!< Bit 0 */ +#define GPIO_CRL_MODE4_1 ((uint32_t)0x00020000) /*!< Bit 1 */ + +#define GPIO_CRL_MODE5 ((uint32_t)0x00300000) /*!< MODE5[1:0] bits (Port x mode bits, pin 5) */ +#define GPIO_CRL_MODE5_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define GPIO_CRL_MODE5_1 ((uint32_t)0x00200000) /*!< Bit 1 */ + +#define GPIO_CRL_MODE6 ((uint32_t)0x03000000) /*!< MODE6[1:0] bits (Port x mode bits, pin 6) */ +#define GPIO_CRL_MODE6_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define GPIO_CRL_MODE6_1 ((uint32_t)0x02000000) /*!< Bit 1 */ + +#define GPIO_CRL_MODE7 ((uint32_t)0x30000000) /*!< MODE7[1:0] bits (Port x mode bits, pin 7) */ +#define GPIO_CRL_MODE7_0 ((uint32_t)0x10000000) /*!< Bit 0 */ +#define GPIO_CRL_MODE7_1 ((uint32_t)0x20000000) /*!< Bit 1 */ + +#define GPIO_CRL_CNF ((uint32_t)0xCCCCCCCC) /*!< Port x configuration bits */ + +#define GPIO_CRL_CNF0 ((uint32_t)0x0000000C) /*!< CNF0[1:0] bits (Port x configuration bits, pin 0) */ +#define GPIO_CRL_CNF0_0 ((uint32_t)0x00000004) /*!< Bit 0 */ +#define GPIO_CRL_CNF0_1 ((uint32_t)0x00000008) /*!< Bit 1 */ + +#define GPIO_CRL_CNF1 ((uint32_t)0x000000C0) /*!< CNF1[1:0] bits (Port x configuration bits, pin 1) */ +#define GPIO_CRL_CNF1_0 ((uint32_t)0x00000040) /*!< Bit 0 */ +#define GPIO_CRL_CNF1_1 ((uint32_t)0x00000080) /*!< Bit 1 */ + +#define GPIO_CRL_CNF2 ((uint32_t)0x00000C00) /*!< CNF2[1:0] bits (Port x configuration bits, pin 2) */ +#define GPIO_CRL_CNF2_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define GPIO_CRL_CNF2_1 ((uint32_t)0x00000800) /*!< Bit 1 */ + +#define GPIO_CRL_CNF3 ((uint32_t)0x0000C000) /*!< CNF3[1:0] bits (Port x configuration bits, pin 3) */ +#define GPIO_CRL_CNF3_0 ((uint32_t)0x00004000) /*!< Bit 0 */ +#define GPIO_CRL_CNF3_1 ((uint32_t)0x00008000) /*!< Bit 1 */ + +#define GPIO_CRL_CNF4 ((uint32_t)0x000C0000) /*!< CNF4[1:0] bits (Port x configuration bits, pin 4) */ +#define GPIO_CRL_CNF4_0 ((uint32_t)0x00040000) /*!< Bit 0 */ +#define GPIO_CRL_CNF4_1 ((uint32_t)0x00080000) /*!< Bit 1 */ + +#define GPIO_CRL_CNF5 ((uint32_t)0x00C00000) /*!< CNF5[1:0] bits (Port x configuration bits, pin 5) */ +#define GPIO_CRL_CNF5_0 ((uint32_t)0x00400000) /*!< Bit 0 */ +#define GPIO_CRL_CNF5_1 ((uint32_t)0x00800000) /*!< Bit 1 */ + +#define GPIO_CRL_CNF6 ((uint32_t)0x0C000000) /*!< CNF6[1:0] bits (Port x configuration bits, pin 6) */ +#define GPIO_CRL_CNF6_0 ((uint32_t)0x04000000) /*!< Bit 0 */ +#define GPIO_CRL_CNF6_1 ((uint32_t)0x08000000) /*!< Bit 1 */ + +#define GPIO_CRL_CNF7 ((uint32_t)0xC0000000) /*!< CNF7[1:0] bits (Port x configuration bits, pin 7) */ +#define GPIO_CRL_CNF7_0 ((uint32_t)0x40000000) /*!< Bit 0 */ +#define GPIO_CRL_CNF7_1 ((uint32_t)0x80000000) /*!< Bit 1 */ + +/******************* Bit definition for GPIO_CRH register *******************/ +#define GPIO_CRH_MODE ((uint32_t)0x33333333) /*!< Port x mode bits */ + +#define GPIO_CRH_MODE8 ((uint32_t)0x00000003) /*!< MODE8[1:0] bits (Port x mode bits, pin 8) */ +#define GPIO_CRH_MODE8_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define GPIO_CRH_MODE8_1 ((uint32_t)0x00000002) /*!< Bit 1 */ + +#define GPIO_CRH_MODE9 ((uint32_t)0x00000030) /*!< MODE9[1:0] bits (Port x mode bits, pin 9) */ +#define GPIO_CRH_MODE9_0 ((uint32_t)0x00000010) /*!< Bit 0 */ +#define GPIO_CRH_MODE9_1 ((uint32_t)0x00000020) /*!< Bit 1 */ + +#define GPIO_CRH_MODE10 ((uint32_t)0x00000300) /*!< MODE10[1:0] bits (Port x mode bits, pin 10) */ +#define GPIO_CRH_MODE10_0 ((uint32_t)0x00000100) /*!< Bit 0 */ +#define GPIO_CRH_MODE10_1 ((uint32_t)0x00000200) /*!< Bit 1 */ + +#define GPIO_CRH_MODE11 ((uint32_t)0x00003000) /*!< MODE11[1:0] bits (Port x mode bits, pin 11) */ +#define GPIO_CRH_MODE11_0 ((uint32_t)0x00001000) /*!< Bit 0 */ +#define GPIO_CRH_MODE11_1 ((uint32_t)0x00002000) /*!< Bit 1 */ + +#define GPIO_CRH_MODE12 ((uint32_t)0x00030000) /*!< MODE12[1:0] bits (Port x mode bits, pin 12) */ +#define GPIO_CRH_MODE12_0 ((uint32_t)0x00010000) /*!< Bit 0 */ +#define GPIO_CRH_MODE12_1 ((uint32_t)0x00020000) /*!< Bit 1 */ + +#define GPIO_CRH_MODE13 ((uint32_t)0x00300000) /*!< MODE13[1:0] bits (Port x mode bits, pin 13) */ +#define GPIO_CRH_MODE13_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define GPIO_CRH_MODE13_1 ((uint32_t)0x00200000) /*!< Bit 1 */ + +#define GPIO_CRH_MODE14 ((uint32_t)0x03000000) /*!< MODE14[1:0] bits (Port x mode bits, pin 14) */ +#define GPIO_CRH_MODE14_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define GPIO_CRH_MODE14_1 ((uint32_t)0x02000000) /*!< Bit 1 */ + +#define GPIO_CRH_MODE15 ((uint32_t)0x30000000) /*!< MODE15[1:0] bits (Port x mode bits, pin 15) */ +#define GPIO_CRH_MODE15_0 ((uint32_t)0x10000000) /*!< Bit 0 */ +#define GPIO_CRH_MODE15_1 ((uint32_t)0x20000000) /*!< Bit 1 */ + +#define GPIO_CRH_CNF ((uint32_t)0xCCCCCCCC) /*!< Port x configuration bits */ + +#define GPIO_CRH_CNF8 ((uint32_t)0x0000000C) /*!< CNF8[1:0] bits (Port x configuration bits, pin 8) */ +#define GPIO_CRH_CNF8_0 ((uint32_t)0x00000004) /*!< Bit 0 */ +#define GPIO_CRH_CNF8_1 ((uint32_t)0x00000008) /*!< Bit 1 */ + +#define GPIO_CRH_CNF9 ((uint32_t)0x000000C0) /*!< CNF9[1:0] bits (Port x configuration bits, pin 9) */ +#define GPIO_CRH_CNF9_0 ((uint32_t)0x00000040) /*!< Bit 0 */ +#define GPIO_CRH_CNF9_1 ((uint32_t)0x00000080) /*!< Bit 1 */ + +#define GPIO_CRH_CNF10 ((uint32_t)0x00000C00) /*!< CNF10[1:0] bits (Port x configuration bits, pin 10) */ +#define GPIO_CRH_CNF10_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define GPIO_CRH_CNF10_1 ((uint32_t)0x00000800) /*!< Bit 1 */ + +#define GPIO_CRH_CNF11 ((uint32_t)0x0000C000) /*!< CNF11[1:0] bits (Port x configuration bits, pin 11) */ +#define GPIO_CRH_CNF11_0 ((uint32_t)0x00004000) /*!< Bit 0 */ +#define GPIO_CRH_CNF11_1 ((uint32_t)0x00008000) /*!< Bit 1 */ + +#define GPIO_CRH_CNF12 ((uint32_t)0x000C0000) /*!< CNF12[1:0] bits (Port x configuration bits, pin 12) */ +#define GPIO_CRH_CNF12_0 ((uint32_t)0x00040000) /*!< Bit 0 */ +#define GPIO_CRH_CNF12_1 ((uint32_t)0x00080000) /*!< Bit 1 */ + +#define GPIO_CRH_CNF13 ((uint32_t)0x00C00000) /*!< CNF13[1:0] bits (Port x configuration bits, pin 13) */ +#define GPIO_CRH_CNF13_0 ((uint32_t)0x00400000) /*!< Bit 0 */ +#define GPIO_CRH_CNF13_1 ((uint32_t)0x00800000) /*!< Bit 1 */ + +#define GPIO_CRH_CNF14 ((uint32_t)0x0C000000) /*!< CNF14[1:0] bits (Port x configuration bits, pin 14) */ +#define GPIO_CRH_CNF14_0 ((uint32_t)0x04000000) /*!< Bit 0 */ +#define GPIO_CRH_CNF14_1 ((uint32_t)0x08000000) /*!< Bit 1 */ + +#define GPIO_CRH_CNF15 ((uint32_t)0xC0000000) /*!< CNF15[1:0] bits (Port x configuration bits, pin 15) */ +#define GPIO_CRH_CNF15_0 ((uint32_t)0x40000000) /*!< Bit 0 */ +#define GPIO_CRH_CNF15_1 ((uint32_t)0x80000000) /*!< Bit 1 */ + +/*!<****************** Bit definition for GPIO_IDR register *******************/ +#define GPIO_IDR_IDR0 ((uint16_t)0x0001) /*!< Port input data, bit 0 */ +#define GPIO_IDR_IDR1 ((uint16_t)0x0002) /*!< Port input data, bit 1 */ +#define GPIO_IDR_IDR2 ((uint16_t)0x0004) /*!< Port input data, bit 2 */ +#define GPIO_IDR_IDR3 ((uint16_t)0x0008) /*!< Port input data, bit 3 */ +#define GPIO_IDR_IDR4 ((uint16_t)0x0010) /*!< Port input data, bit 4 */ +#define GPIO_IDR_IDR5 ((uint16_t)0x0020) /*!< Port input data, bit 5 */ +#define GPIO_IDR_IDR6 ((uint16_t)0x0040) /*!< Port input data, bit 6 */ +#define GPIO_IDR_IDR7 ((uint16_t)0x0080) /*!< Port input data, bit 7 */ +#define GPIO_IDR_IDR8 ((uint16_t)0x0100) /*!< Port input data, bit 8 */ +#define GPIO_IDR_IDR9 ((uint16_t)0x0200) /*!< Port input data, bit 9 */ +#define GPIO_IDR_IDR10 ((uint16_t)0x0400) /*!< Port input data, bit 10 */ +#define GPIO_IDR_IDR11 ((uint16_t)0x0800) /*!< Port input data, bit 11 */ +#define GPIO_IDR_IDR12 ((uint16_t)0x1000) /*!< Port input data, bit 12 */ +#define GPIO_IDR_IDR13 ((uint16_t)0x2000) /*!< Port input data, bit 13 */ +#define GPIO_IDR_IDR14 ((uint16_t)0x4000) /*!< Port input data, bit 14 */ +#define GPIO_IDR_IDR15 ((uint16_t)0x8000) /*!< Port input data, bit 15 */ + +/******************* Bit definition for GPIO_ODR register *******************/ +#define GPIO_ODR_ODR0 ((uint16_t)0x0001) /*!< Port output data, bit 0 */ +#define GPIO_ODR_ODR1 ((uint16_t)0x0002) /*!< Port output data, bit 1 */ +#define GPIO_ODR_ODR2 ((uint16_t)0x0004) /*!< Port output data, bit 2 */ +#define GPIO_ODR_ODR3 ((uint16_t)0x0008) /*!< Port output data, bit 3 */ +#define GPIO_ODR_ODR4 ((uint16_t)0x0010) /*!< Port output data, bit 4 */ +#define GPIO_ODR_ODR5 ((uint16_t)0x0020) /*!< Port output data, bit 5 */ +#define GPIO_ODR_ODR6 ((uint16_t)0x0040) /*!< Port output data, bit 6 */ +#define GPIO_ODR_ODR7 ((uint16_t)0x0080) /*!< Port output data, bit 7 */ +#define GPIO_ODR_ODR8 ((uint16_t)0x0100) /*!< Port output data, bit 8 */ +#define GPIO_ODR_ODR9 ((uint16_t)0x0200) /*!< Port output data, bit 9 */ +#define GPIO_ODR_ODR10 ((uint16_t)0x0400) /*!< Port output data, bit 10 */ +#define GPIO_ODR_ODR11 ((uint16_t)0x0800) /*!< Port output data, bit 11 */ +#define GPIO_ODR_ODR12 ((uint16_t)0x1000) /*!< Port output data, bit 12 */ +#define GPIO_ODR_ODR13 ((uint16_t)0x2000) /*!< Port output data, bit 13 */ +#define GPIO_ODR_ODR14 ((uint16_t)0x4000) /*!< Port output data, bit 14 */ +#define GPIO_ODR_ODR15 ((uint16_t)0x8000) /*!< Port output data, bit 15 */ + +/****************** Bit definition for GPIO_BSRR register *******************/ +#define GPIO_BSRR_BS0 ((uint32_t)0x00000001) /*!< Port x Set bit 0 */ +#define GPIO_BSRR_BS1 ((uint32_t)0x00000002) /*!< Port x Set bit 1 */ +#define GPIO_BSRR_BS2 ((uint32_t)0x00000004) /*!< Port x Set bit 2 */ +#define GPIO_BSRR_BS3 ((uint32_t)0x00000008) /*!< Port x Set bit 3 */ +#define GPIO_BSRR_BS4 ((uint32_t)0x00000010) /*!< Port x Set bit 4 */ +#define GPIO_BSRR_BS5 ((uint32_t)0x00000020) /*!< Port x Set bit 5 */ +#define GPIO_BSRR_BS6 ((uint32_t)0x00000040) /*!< Port x Set bit 6 */ +#define GPIO_BSRR_BS7 ((uint32_t)0x00000080) /*!< Port x Set bit 7 */ +#define GPIO_BSRR_BS8 ((uint32_t)0x00000100) /*!< Port x Set bit 8 */ +#define GPIO_BSRR_BS9 ((uint32_t)0x00000200) /*!< Port x Set bit 9 */ +#define GPIO_BSRR_BS10 ((uint32_t)0x00000400) /*!< Port x Set bit 10 */ +#define GPIO_BSRR_BS11 ((uint32_t)0x00000800) /*!< Port x Set bit 11 */ +#define GPIO_BSRR_BS12 ((uint32_t)0x00001000) /*!< Port x Set bit 12 */ +#define GPIO_BSRR_BS13 ((uint32_t)0x00002000) /*!< Port x Set bit 13 */ +#define GPIO_BSRR_BS14 ((uint32_t)0x00004000) /*!< Port x Set bit 14 */ +#define GPIO_BSRR_BS15 ((uint32_t)0x00008000) /*!< Port x Set bit 15 */ + +#define GPIO_BSRR_BR0 ((uint32_t)0x00010000) /*!< Port x Reset bit 0 */ +#define GPIO_BSRR_BR1 ((uint32_t)0x00020000) /*!< Port x Reset bit 1 */ +#define GPIO_BSRR_BR2 ((uint32_t)0x00040000) /*!< Port x Reset bit 2 */ +#define GPIO_BSRR_BR3 ((uint32_t)0x00080000) /*!< Port x Reset bit 3 */ +#define GPIO_BSRR_BR4 ((uint32_t)0x00100000) /*!< Port x Reset bit 4 */ +#define GPIO_BSRR_BR5 ((uint32_t)0x00200000) /*!< Port x Reset bit 5 */ +#define GPIO_BSRR_BR6 ((uint32_t)0x00400000) /*!< Port x Reset bit 6 */ +#define GPIO_BSRR_BR7 ((uint32_t)0x00800000) /*!< Port x Reset bit 7 */ +#define GPIO_BSRR_BR8 ((uint32_t)0x01000000) /*!< Port x Reset bit 8 */ +#define GPIO_BSRR_BR9 ((uint32_t)0x02000000) /*!< Port x Reset bit 9 */ +#define GPIO_BSRR_BR10 ((uint32_t)0x04000000) /*!< Port x Reset bit 10 */ +#define GPIO_BSRR_BR11 ((uint32_t)0x08000000) /*!< Port x Reset bit 11 */ +#define GPIO_BSRR_BR12 ((uint32_t)0x10000000) /*!< Port x Reset bit 12 */ +#define GPIO_BSRR_BR13 ((uint32_t)0x20000000) /*!< Port x Reset bit 13 */ +#define GPIO_BSRR_BR14 ((uint32_t)0x40000000) /*!< Port x Reset bit 14 */ +#define GPIO_BSRR_BR15 ((uint32_t)0x80000000) /*!< Port x Reset bit 15 */ + +/******************* Bit definition for GPIO_BRR register *******************/ +#define GPIO_BRR_BR0 ((uint16_t)0x0001) /*!< Port x Reset bit 0 */ +#define GPIO_BRR_BR1 ((uint16_t)0x0002) /*!< Port x Reset bit 1 */ +#define GPIO_BRR_BR2 ((uint16_t)0x0004) /*!< Port x Reset bit 2 */ +#define GPIO_BRR_BR3 ((uint16_t)0x0008) /*!< Port x Reset bit 3 */ +#define GPIO_BRR_BR4 ((uint16_t)0x0010) /*!< Port x Reset bit 4 */ +#define GPIO_BRR_BR5 ((uint16_t)0x0020) /*!< Port x Reset bit 5 */ +#define GPIO_BRR_BR6 ((uint16_t)0x0040) /*!< Port x Reset bit 6 */ +#define GPIO_BRR_BR7 ((uint16_t)0x0080) /*!< Port x Reset bit 7 */ +#define GPIO_BRR_BR8 ((uint16_t)0x0100) /*!< Port x Reset bit 8 */ +#define GPIO_BRR_BR9 ((uint16_t)0x0200) /*!< Port x Reset bit 9 */ +#define GPIO_BRR_BR10 ((uint16_t)0x0400) /*!< Port x Reset bit 10 */ +#define GPIO_BRR_BR11 ((uint16_t)0x0800) /*!< Port x Reset bit 11 */ +#define GPIO_BRR_BR12 ((uint16_t)0x1000) /*!< Port x Reset bit 12 */ +#define GPIO_BRR_BR13 ((uint16_t)0x2000) /*!< Port x Reset bit 13 */ +#define GPIO_BRR_BR14 ((uint16_t)0x4000) /*!< Port x Reset bit 14 */ +#define GPIO_BRR_BR15 ((uint16_t)0x8000) /*!< Port x Reset bit 15 */ + +/****************** Bit definition for GPIO_LCKR register *******************/ +#define GPIO_LCKR_LCK0 ((uint32_t)0x00000001) /*!< Port x Lock bit 0 */ +#define GPIO_LCKR_LCK1 ((uint32_t)0x00000002) /*!< Port x Lock bit 1 */ +#define GPIO_LCKR_LCK2 ((uint32_t)0x00000004) /*!< Port x Lock bit 2 */ +#define GPIO_LCKR_LCK3 ((uint32_t)0x00000008) /*!< Port x Lock bit 3 */ +#define GPIO_LCKR_LCK4 ((uint32_t)0x00000010) /*!< Port x Lock bit 4 */ +#define GPIO_LCKR_LCK5 ((uint32_t)0x00000020) /*!< Port x Lock bit 5 */ +#define GPIO_LCKR_LCK6 ((uint32_t)0x00000040) /*!< Port x Lock bit 6 */ +#define GPIO_LCKR_LCK7 ((uint32_t)0x00000080) /*!< Port x Lock bit 7 */ +#define GPIO_LCKR_LCK8 ((uint32_t)0x00000100) /*!< Port x Lock bit 8 */ +#define GPIO_LCKR_LCK9 ((uint32_t)0x00000200) /*!< Port x Lock bit 9 */ +#define GPIO_LCKR_LCK10 ((uint32_t)0x00000400) /*!< Port x Lock bit 10 */ +#define GPIO_LCKR_LCK11 ((uint32_t)0x00000800) /*!< Port x Lock bit 11 */ +#define GPIO_LCKR_LCK12 ((uint32_t)0x00001000) /*!< Port x Lock bit 12 */ +#define GPIO_LCKR_LCK13 ((uint32_t)0x00002000) /*!< Port x Lock bit 13 */ +#define GPIO_LCKR_LCK14 ((uint32_t)0x00004000) /*!< Port x Lock bit 14 */ +#define GPIO_LCKR_LCK15 ((uint32_t)0x00008000) /*!< Port x Lock bit 15 */ +#define GPIO_LCKR_LCKK ((uint32_t)0x00010000) /*!< Lock key */ + +/*----------------------------------------------------------------------------*/ + + + +/****************** Bit definition for AFIO_MAPR register *******************/ +#define AFIO_MAPR_SPI1 _REMAP ((uint32_t)0x00000001) /*!< SPI1 remapping */ +#define AFIO_MAPR_I2C1_REMAP ((uint32_t)0x00000002) /*!< I2C1 remapping */ +#define AFIO_MAPR_UART1_REMAP ((uint32_t)0x00000004) /*!< UART1 remapping */ + +#define AFIO_MAPR_UART3_REMAP ((uint32_t)0x00000030) /*!< UART3_REMAP[1:0] bits (UART3 remapping) */ +#define AFIO_MAPR_UART3_REMAP_0 ((uint32_t)0x00000010) /*!< Bit 0 */ + +/* UART3_REMAP configuration */ +#define AFIO_MAPR_UART3_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (TX/PB10, RX/PB11, CK/PB12, CTS/PB13, RTS/PB14) */ +#define AFIO_MAPR_UART3_REMAP_PARTIALREMAP ((uint32_t)0x00000010) /*!< Partial remap (TX/PC10, RX/PC11, CK/PC12, CTS/PB13, RTS/PB14) */ + +#define AFIO_MAPR_TIM1_REMAP ((uint32_t)0x000000C0) /*!< TIM1_REMAP[1:0] bits (TIM1 remapping) */ +#define AFIO_MAPR_TIM1_REMAP_0 ((uint32_t)0x00000040) /*!< Bit 0 */ +#define AFIO_MAPR_TIM1_REMAP_1 ((uint32_t)0x00000080) /*!< Bit 1 */ + +/*!< TIM1_REMAP configuration */ +#define AFIO_MAPR_TIM1_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PB12, CH1N/PB13, CH2N/PB14, CH3N/PB15) */ +#define AFIO_MAPR_TIM1_REMAP_PARTIALREMAP ((uint32_t)0x00000040) /*!< Partial remap (ETR/PA12, CH1/PA8, CH2/PA9, CH3/PA10, CH4/PA11, BKIN/PA6, CH1N/PA7, CH2N/PB0, CH3N/PB1) */ + +#define AFIO_MAPR_TIM2_REMAP ((uint32_t)0x00000300) /*!< TIM2_REMAP[1:0] bits (TIM2 remapping) */ +#define AFIO_MAPR_TIM2_REMAP_0 ((uint32_t)0x00000100) /*!< Bit 0 */ +#define AFIO_MAPR_TIM2_REMAP_1 ((uint32_t)0x00000200) /*!< Bit 1 */ + +/*!< TIM2_REMAP configuration */ +#define AFIO_MAPR_TIM2_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (CH1/ETR/PA0, CH2/PA1, CH3/PA2, CH4/PA3) */ +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1 ((uint32_t)0x00000100) /*!< Partial remap (CH1/ETR/PA15, CH2/PB3, CH3/PA2, CH4/PA3) */ +#define AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2 ((uint32_t)0x00000200) /*!< Partial remap (CH1/ETR/PA0, CH2/PA1, CH3/PB10, CH4/PB11) */ +#define AFIO_MAPR_TIM2_REMAP_FULLREMAP ((uint32_t)0x00000300) /*!< Full remap (CH1/ETR/PA15, CH2/PB3, CH3/PB10, CH4/PB11) */ + + +#define AFIO_MAPR_TIM3_REMAP ((uint32_t)0x00000C00) /*!< TIM3_REMAP[1:0] bits (TIM3 remapping) */ +#define AFIO_MAPR_TIM3_REMAP_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define AFIO_MAPR_TIM3_REMAP_1 ((uint32_t)0x00000800) /*!< Bit 1 */ + +/*!< TIM3_REMAP configuration */ +#define AFIO_MAPR_TIM3_REMAP_NOREMAP ((uint32_t)0x00000000) /*!< No remap (CH1/PA6, CH2/PA7, CH3/PB0, CH4/PB1) */ +#define AFIO_MAPR_TIM3_REMAP_PARTIALREMAP ((uint32_t)0x00000800) /*!< Partial remap (CH1/PB4, CH2/PB5, CH3/PB0, CH4/PB1) */ +#define AFIO_MAPR_TIM3_REMAP_FULLREMAP ((uint32_t)0x00000C00) /*!< Full remap (CH1/PC6, CH2/PC7, CH3/PC8, CH4/PC9) */ + + +#define AFIO_MAPR_CAN_REMAP ((uint32_t)0x00006000) /*!< CAN_REMAP[1:0] bits (CAN Alternate function remapping) */ +#define AFIO_MAPR_CAN_REMAP_0 ((uint32_t)0x00002000) /*!< Bit 0 */ +#define AFIO_MAPR_CAN_REMAP_1 ((uint32_t)0x00004000) /*!< Bit 1 */ + +/*!< CAN_REMAP configuration */ +#define AFIO_MAPR_CAN_REMAP_REMAP1 ((uint32_t)0x00000000) /*!< CANRX mapped to PA11, CANTX mapped to PA12 */ +#define AFIO_MAPR_CAN_REMAP_REMAP2 ((uint32_t)0x00004000) /*!< CANRX mapped to PB8, CANTX mapped to PB9 */ +#define AFIO_MAPR_CAN_REMAP_REMAP3 ((uint32_t)0x00006000) /*!< CANRX mapped to PD0, CANTX mapped to PD1 */ + +#define AFIO_MAPR_PD01_REMAP ((uint32_t)0x00008000) /*!< Port D0/Port D1 mapping on OSC_IN/OSC_OUT */ + +#define AFIO_MAPR_SWJ_CFG ((uint32_t)0x07000000) /*!< SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */ +#define AFIO_MAPR_SWJ_CFG_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define AFIO_MAPR_SWJ_CFG_1 ((uint32_t)0x02000000) /*!< Bit 1 */ +#define AFIO_MAPR_SWJ_CFG_2 ((uint32_t)0x04000000) /*!< Bit 2 */ + +/*!< SWJ_CFG configuration */ +#define AFIO_MAPR_SWJ_CFG_RESET ((uint32_t)0x00000000) /*!< Full SWJ (JTAG-DP + SW-DP) : Reset State */ +#define AFIO_MAPR_SWJ_CFG_NOJNTRST ((uint32_t)0x01000000) /*!< Full SWJ (JTAG-DP + SW-DP) but without JNTRST */ +#define AFIO_MAPR_SWJ_CFG_JTAGDISABLE ((uint32_t)0x02000000) /*!< JTAG-DP Disabled and SW-DP Enabled */ +#define AFIO_MAPR_SWJ_CFG_DISABLE ((uint32_t)0x04000000) /*!< JTAG-DP Disabled and SW-DP Disabled */ + +/***************** Bit definition for AFIO_EXTICR1 register *****************/ +#define AFIO_EXTICR1_EXTI0 ((uint16_t)0x000F) /*!< EXTI 0 configuration */ +#define AFIO_EXTICR1_EXTI1 ((uint16_t)0x00F0) /*!< EXTI 1 configuration */ +#define AFIO_EXTICR1_EXTI2 ((uint16_t)0x0F00) /*!< EXTI 2 configuration */ +#define AFIO_EXTICR1_EXTI3 ((uint16_t)0xF000) /*!< EXTI 3 configuration */ + +/*!< EXTI0 configuration */ +#define AFIO_EXTICR1_EXTI0_PA ((uint16_t)0x0000) /*!< PA[0] pin */ +#define AFIO_EXTICR1_EXTI0_PB ((uint16_t)0x0001) /*!< PB[0] pin */ +#define AFIO_EXTICR1_EXTI0_PC ((uint16_t)0x0002) /*!< PC[0] pin */ +#define AFIO_EXTICR1_EXTI0_PD ((uint16_t)0x0003) /*!< PD[0] pin */ +#define AFIO_EXTICR1_EXTI0_PE ((uint16_t)0x0004) /*!< PE[0] pin *///RESERVED +#define AFIO_EXTICR1_EXTI0_PF ((uint16_t)0x0005) /*!< PF[0] pin *///RESERVED +#define AFIO_EXTICR1_EXTI0_PG ((uint16_t)0x0006) /*!< PG[0] pin *///RESERVED + +/*!< EXTI1 configuration */ +#define AFIO_EXTICR1_EXTI1_PA ((uint16_t)0x0000) /*!< PA[1] pin */ +#define AFIO_EXTICR1_EXTI1_PB ((uint16_t)0x0010) /*!< PB[1] pin */ +#define AFIO_EXTICR1_EXTI1_PC ((uint16_t)0x0020) /*!< PC[1] pin */ +#define AFIO_EXTICR1_EXTI1_PD ((uint16_t)0x0030) /*!< PD[1] pin */ +#define AFIO_EXTICR1_EXTI1_PE ((uint16_t)0x0040) /*!< PE[1] pin *///RESERVED +#define AFIO_EXTICR1_EXTI1_PF ((uint16_t)0x0050) /*!< PF[1] pin *///RESERVED +#define AFIO_EXTICR1_EXTI1_PG ((uint16_t)0x0060) /*!< PG[1] pin *///RESERVED + +/*!< EXTI2 configuration */ +#define AFIO_EXTICR1_EXTI2_PA ((uint16_t)0x0000) /*!< PA[2] pin */ +#define AFIO_EXTICR1_EXTI2_PB ((uint16_t)0x0100) /*!< PB[2] pin */ +#define AFIO_EXTICR1_EXTI2_PC ((uint16_t)0x0200) /*!< PC[2] pin */ +#define AFIO_EXTICR1_EXTI2_PD ((uint16_t)0x0300) /*!< PD[2] pin */ +#define AFIO_EXTICR1_EXTI2_PE ((uint16_t)0x0400) /*!< PE[2] pin *///RESERVED +#define AFIO_EXTICR1_EXTI2_PF ((uint16_t)0x0500) /*!< PF[2] pin *///RESERVED +#define AFIO_EXTICR1_EXTI2_PG ((uint16_t)0x0600) /*!< PG[2] pin *///RESERVED + +/*!< EXTI3 configuration */ +#define AFIO_EXTICR1_EXTI3_PA ((uint16_t)0x0000) /*!< PA[3] pin */ +#define AFIO_EXTICR1_EXTI3_PB ((uint16_t)0x1000) /*!< PB[3] pin */ +#define AFIO_EXTICR1_EXTI3_PC ((uint16_t)0x2000) /*!< PC[3] pin */ +#define AFIO_EXTICR1_EXTI3_PD ((uint16_t)0x3000) /*!< PD[3] pin */ +#define AFIO_EXTICR1_EXTI3_PE ((uint16_t)0x4000) /*!< PE[3] pin *///RESERVED +#define AFIO_EXTICR1_EXTI3_PF ((uint16_t)0x5000) /*!< PF[3] pin *///RESERVED +#define AFIO_EXTICR1_EXTI3_PG ((uint16_t)0x6000) /*!< PG[3] pin *///RESERVED + +/***************** Bit definition for AFIO_EXTICR2 register *****************/ +#define AFIO_EXTICR2_EXTI4 ((uint16_t)0x000F) /*!< EXTI 4 configuration */ +#define AFIO_EXTICR2_EXTI5 ((uint16_t)0x00F0) /*!< EXTI 5 configuration */ +#define AFIO_EXTICR2_EXTI6 ((uint16_t)0x0F00) /*!< EXTI 6 configuration */ +#define AFIO_EXTICR2_EXTI7 ((uint16_t)0xF000) /*!< EXTI 7 configuration */ + +/*!< EXTI4 configuration */ +#define AFIO_EXTICR2_EXTI4_PA ((uint16_t)0x0000) /*!< PA[4] pin */ +#define AFIO_EXTICR2_EXTI4_PB ((uint16_t)0x0001) /*!< PB[4] pin */ +#define AFIO_EXTICR2_EXTI4_PC ((uint16_t)0x0002) /*!< PC[4] pin */ +#define AFIO_EXTICR2_EXTI4_PD ((uint16_t)0x0003) /*!< PD[4] pin */ +#define AFIO_EXTICR2_EXTI4_PE ((uint16_t)0x0004) /*!< PE[4] pin *///RESERVED +#define AFIO_EXTICR2_EXTI4_PF ((uint16_t)0x0005) /*!< PF[4] pin *///RESERVED +#define AFIO_EXTICR2_EXTI4_PG ((uint16_t)0x0006) /*!< PG[4] pin *///RESERVED + +/* EXTI5 configuration */ +#define AFIO_EXTICR2_EXTI5_PA ((uint16_t)0x0000) /*!< PA[5] pin */ +#define AFIO_EXTICR2_EXTI5_PB ((uint16_t)0x0010) /*!< PB[5] pin */ +#define AFIO_EXTICR2_EXTI5_PC ((uint16_t)0x0020) /*!< PC[5] pin */ +#define AFIO_EXTICR2_EXTI5_PD ((uint16_t)0x0030) /*!< PD[5] pin */ +#define AFIO_EXTICR2_EXTI5_PE ((uint16_t)0x0040) /*!< PE[5] pin *///RESERVED +#define AFIO_EXTICR2_EXTI5_PF ((uint16_t)0x0050) /*!< PF[5] pin *///RESERVED +#define AFIO_EXTICR2_EXTI5_PG ((uint16_t)0x0060) /*!< PG[5] pin *///RESERVED + +/*!< EXTI6 configuration */ +#define AFIO_EXTICR2_EXTI6_PA ((uint16_t)0x0000) /*!< PA[6] pin */ +#define AFIO_EXTICR2_EXTI6_PB ((uint16_t)0x0100) /*!< PB[6] pin */ +#define AFIO_EXTICR2_EXTI6_PC ((uint16_t)0x0200) /*!< PC[6] pin */ +#define AFIO_EXTICR2_EXTI6_PD ((uint16_t)0x0300) /*!< PD[6] pin */ +#define AFIO_EXTICR2_EXTI6_PE ((uint16_t)0x0400) /*!< PE[6] pin *///RESERVED +#define AFIO_EXTICR2_EXTI6_PF ((uint16_t)0x0500) /*!< PF[6] pin *///RESERVED +#define AFIO_EXTICR2_EXTI6_PG ((uint16_t)0x0600) /*!< PG[6] pin *///RESERVED + +/*!< EXTI7 configuration */ +#define AFIO_EXTICR2_EXTI7_PA ((uint16_t)0x0000) /*!< PA[7] pin */ +#define AFIO_EXTICR2_EXTI7_PB ((uint16_t)0x1000) /*!< PB[7] pin */ +#define AFIO_EXTICR2_EXTI7_PC ((uint16_t)0x2000) /*!< PC[7] pin */ +#define AFIO_EXTICR2_EXTI7_PD ((uint16_t)0x3000) /*!< PD[7] pin */ +#define AFIO_EXTICR2_EXTI7_PE ((uint16_t)0x4000) /*!< PE[7] pin *///RESERVED +#define AFIO_EXTICR2_EXTI7_PF ((uint16_t)0x5000) /*!< PF[7] pin *///RESERVED +#define AFIO_EXTICR2_EXTI7_PG ((uint16_t)0x6000) /*!< PG[7] pin *///RESERVED + +/***************** Bit definition for AFIO_EXTICR3 register *****************/ +#define AFIO_EXTICR3_EXTI8 ((uint16_t)0x000F) /*!< EXTI 8 configuration */ +#define AFIO_EXTICR3_EXTI9 ((uint16_t)0x00F0) /*!< EXTI 9 configuration */ +#define AFIO_EXTICR3_EXTI10 ((uint16_t)0x0F00) /*!< EXTI 10 configuration */ +#define AFIO_EXTICR3_EXTI11 ((uint16_t)0xF000) /*!< EXTI 11 configuration */ + +/*!< EXTI8 configuration */ +#define AFIO_EXTICR3_EXTI8_PA ((uint16_t)0x0000) /*!< PA[8] pin */ +#define AFIO_EXTICR3_EXTI8_PB ((uint16_t)0x0001) /*!< PB[8] pin */ +#define AFIO_EXTICR3_EXTI8_PC ((uint16_t)0x0002) /*!< PC[8] pin */ +#define AFIO_EXTICR3_EXTI8_PD ((uint16_t)0x0003) /*!< PD[8] pin */ +#define AFIO_EXTICR3_EXTI8_PE ((uint16_t)0x0004) /*!< PE[8] pin *///RESERVED +#define AFIO_EXTICR3_EXTI8_PF ((uint16_t)0x0005) /*!< PF[8] pin *///RESERVED +#define AFIO_EXTICR3_EXTI8_PG ((uint16_t)0x0006) /*!< PG[8] pin *///RESERVED + +/*!< EXTI9 configuration */ +#define AFIO_EXTICR3_EXTI9_PA ((uint16_t)0x0000) /*!< PA[9] pin */ +#define AFIO_EXTICR3_EXTI9_PB ((uint16_t)0x0010) /*!< PB[9] pin */ +#define AFIO_EXTICR3_EXTI9_PC ((uint16_t)0x0020) /*!< PC[9] pin */ +#define AFIO_EXTICR3_EXTI9_PD ((uint16_t)0x0030) /*!< PD[9] pin */ +#define AFIO_EXTICR3_EXTI9_PE ((uint16_t)0x0040) /*!< PE[9] pin *///RESERVED +#define AFIO_EXTICR3_EXTI9_PF ((uint16_t)0x0050) /*!< PF[9] pin *///RESERVED +#define AFIO_EXTICR3_EXTI9_PG ((uint16_t)0x0060) /*!< PG[9] pin *///RESERVED + +/*!< EXTI10 configuration */ +#define AFIO_EXTICR3_EXTI10_PA ((uint16_t)0x0000) /*!< PA[10] pin */ +#define AFIO_EXTICR3_EXTI10_PB ((uint16_t)0x0100) /*!< PB[10] pin */ +#define AFIO_EXTICR3_EXTI10_PC ((uint16_t)0x0200) /*!< PC[10] pin */ +#define AFIO_EXTICR3_EXTI10_PD ((uint16_t)0x0300) /*!< PD[10] pin */ +#define AFIO_EXTICR3_EXTI10_PE ((uint16_t)0x0400) /*!< PE[10] pin *///RESERVED +#define AFIO_EXTICR3_EXTI10_PF ((uint16_t)0x0500) /*!< PF[10] pin *///RESERVED +#define AFIO_EXTICR3_EXTI10_PG ((uint16_t)0x0600) /*!< PG[10] pin *///RESERVED + +/*!< EXTI11 configuration */ +#define AFIO_EXTICR3_EXTI11_PA ((uint16_t)0x0000) /*!< PA[11] pin */ +#define AFIO_EXTICR3_EXTI11_PB ((uint16_t)0x1000) /*!< PB[11] pin */ +#define AFIO_EXTICR3_EXTI11_PC ((uint16_t)0x2000) /*!< PC[11] pin */ +#define AFIO_EXTICR3_EXTI11_PD ((uint16_t)0x3000) /*!< PD[11] pin */ +#define AFIO_EXTICR3_EXTI11_PE ((uint16_t)0x4000) /*!< PE[11] pin *///RESERVED +#define AFIO_EXTICR3_EXTI11_PF ((uint16_t)0x5000) /*!< PF[11] pin *///RESERVED +#define AFIO_EXTICR3_EXTI11_PG ((uint16_t)0x6000) /*!< PG[11] pin *///RESERVED + +/***************** Bit definition for AFIO_EXTICR4 register *****************/ +#define AFIO_EXTICR4_EXTI12 ((uint16_t)0x000F) /*!< EXTI 12 configuration */ +#define AFIO_EXTICR4_EXTI13 ((uint16_t)0x00F0) /*!< EXTI 13 configuration */ +#define AFIO_EXTICR4_EXTI14 ((uint16_t)0x0F00) /*!< EXTI 14 configuration */ +#define AFIO_EXTICR4_EXTI15 ((uint16_t)0xF000) /*!< EXTI 15 configuration */ + +/* EXTI12 configuration */ +#define AFIO_EXTICR4_EXTI12_PA ((uint16_t)0x0000) /*!< PA[12] pin */ +#define AFIO_EXTICR4_EXTI12_PB ((uint16_t)0x0001) /*!< PB[12] pin */ +#define AFIO_EXTICR4_EXTI12_PC ((uint16_t)0x0002) /*!< PC[12] pin */ +#define AFIO_EXTICR4_EXTI12_PD ((uint16_t)0x0003) /*!< PD[12] pin */ +#define AFIO_EXTICR4_EXTI12_PE ((uint16_t)0x0004) /*!< PE[12] pin *///RESERVED +#define AFIO_EXTICR4_EXTI12_PF ((uint16_t)0x0005) /*!< PF[12] pin *///RESERVED +#define AFIO_EXTICR4_EXTI12_PG ((uint16_t)0x0006) /*!< PG[12] pin *///RESERVED + +/* EXTI13 configuration */ +#define AFIO_EXTICR4_EXTI13_PA ((uint16_t)0x0000) /*!< PA[13] pin */ +#define AFIO_EXTICR4_EXTI13_PB ((uint16_t)0x0010) /*!< PB[13] pin */ +#define AFIO_EXTICR4_EXTI13_PC ((uint16_t)0x0020) /*!< PC[13] pin */ +#define AFIO_EXTICR4_EXTI13_PD ((uint16_t)0x0030) /*!< PD[13] pin */ +#define AFIO_EXTICR4_EXTI13_PE ((uint16_t)0x0040) /*!< PE[13] pin *///RESERVED +#define AFIO_EXTICR4_EXTI13_PF ((uint16_t)0x0050) /*!< PF[13] pin *///RESERVED +#define AFIO_EXTICR4_EXTI13_PG ((uint16_t)0x0060) /*!< PG[13] pin *///RESERVED + +/*!< EXTI14 configuration */ +#define AFIO_EXTICR4_EXTI14_PA ((uint16_t)0x0000) /*!< PA[14] pin */ +#define AFIO_EXTICR4_EXTI14_PB ((uint16_t)0x0100) /*!< PB[14] pin */ +#define AFIO_EXTICR4_EXTI14_PC ((uint16_t)0x0200) /*!< PC[14] pin */ +#define AFIO_EXTICR4_EXTI14_PD ((uint16_t)0x0300) /*!< PD[14] pin */ +#define AFIO_EXTICR4_EXTI14_PE ((uint16_t)0x0400) /*!< PE[14] pin *///RESERVED +#define AFIO_EXTICR4_EXTI14_PF ((uint16_t)0x0500) /*!< PF[14] pin *///RESERVED +#define AFIO_EXTICR4_EXTI14_PG ((uint16_t)0x0600) /*!< PG[14] pin *///RESERVED + +/*!< EXTI15 configuration */ +#define AFIO_EXTICR4_EXTI15_PA ((uint16_t)0x0000) /*!< PA[15] pin */ +#define AFIO_EXTICR4_EXTI15_PB ((uint16_t)0x1000) /*!< PB[15] pin */ +#define AFIO_EXTICR4_EXTI15_PC ((uint16_t)0x2000) /*!< PC[15] pin */ +#define AFIO_EXTICR4_EXTI15_PD ((uint16_t)0x3000) /*!< PD[15] pin */ +#define AFIO_EXTICR4_EXTI15_PE ((uint16_t)0x4000) /*!< PE[15] pin *///RESERVED +#define AFIO_EXTICR4_EXTI15_PF ((uint16_t)0x5000) /*!< PF[15] pin *///RESERVED +#define AFIO_EXTICR4_EXTI15_PG ((uint16_t)0x6000) /*!< PG[15] pin *///RESERVED + +/******************************************************************************/ +/* */ +/* SystemTick */ +/* */ +/******************************************************************************/ + +/***************** Bit definition for SysTick_CTRL register *****************/ +#define SysTick_CTRL_ENABLE ((uint32_t)0x00000001) /*!< Counter enable */ +#define SysTick_CTRL_TICKINT ((uint32_t)0x00000002) /*!< Counting down to 0 pends the SysTick handler */ +#define SysTick_CTRL_CLKSOURCE ((uint32_t)0x00000004) /*!< Clock source */ +#define SysTick_CTRL_COUNTFLAG ((uint32_t)0x00010000) /*!< Count Flag */ + +/***************** Bit definition for SysTick_LOAD register *****************/ +#define SysTick_LOAD_RELOAD ((uint32_t)0x00FFFFFF) /*!< Value to load into the SysTick Current Value Register when the counter reaches 0 */ + +/***************** Bit definition for SysTick_VAL register ******************/ +#define SysTick_VAL_CURRENT ((uint32_t)0x00FFFFFF) /*!< Current value at the time the register is accessed */ + +/***************** Bit definition for SysTick_CALIB register ****************/ +#define SysTick_CALIB_TENMS ((uint32_t)0x00FFFFFF) /*!< Reload value to use for 10ms timing */ +#define SysTick_CALIB_SKEW ((uint32_t)0x40000000) /*!< Calibration value is not exactly 10 ms */ +#define SysTick_CALIB_NOREF ((uint32_t)0x80000000) /*!< The reference clock is not provided */ + +/******************************************************************************/ +/* */ +/* Nested Vectored Interrupt Controller */ +/* */ +/******************************************************************************/ + +/****************** Bit definition for NVIC_ISER register *******************/ +#define NVIC_ISER_SETENA ((uint32_t)0xFFFFFFFF) /*!< Interrupt set enable bits */ +#define NVIC_ISER_SETENA_0 ((uint32_t)0x00000001) /*!< bit 0 */ +#define NVIC_ISER_SETENA_1 ((uint32_t)0x00000002) /*!< bit 1 */ +#define NVIC_ISER_SETENA_2 ((uint32_t)0x00000004) /*!< bit 2 */ +#define NVIC_ISER_SETENA_3 ((uint32_t)0x00000008) /*!< bit 3 */ +#define NVIC_ISER_SETENA_4 ((uint32_t)0x00000010) /*!< bit 4 */ +#define NVIC_ISER_SETENA_5 ((uint32_t)0x00000020) /*!< bit 5 */ +#define NVIC_ISER_SETENA_6 ((uint32_t)0x00000040) /*!< bit 6 */ +#define NVIC_ISER_SETENA_7 ((uint32_t)0x00000080) /*!< bit 7 */ +#define NVIC_ISER_SETENA_8 ((uint32_t)0x00000100) /*!< bit 8 */ +#define NVIC_ISER_SETENA_9 ((uint32_t)0x00000200) /*!< bit 9 */ +#define NVIC_ISER_SETENA_10 ((uint32_t)0x00000400) /*!< bit 10 */ +#define NVIC_ISER_SETENA_11 ((uint32_t)0x00000800) /*!< bit 11 */ +#define NVIC_ISER_SETENA_12 ((uint32_t)0x00001000) /*!< bit 12 */ +#define NVIC_ISER_SETENA_13 ((uint32_t)0x00002000) /*!< bit 13 */ +#define NVIC_ISER_SETENA_14 ((uint32_t)0x00004000) /*!< bit 14 */ +#define NVIC_ISER_SETENA_15 ((uint32_t)0x00008000) /*!< bit 15 */ +#define NVIC_ISER_SETENA_16 ((uint32_t)0x00010000) /*!< bit 16 */ +#define NVIC_ISER_SETENA_17 ((uint32_t)0x00020000) /*!< bit 17 */ +#define NVIC_ISER_SETENA_18 ((uint32_t)0x00040000) /*!< bit 18 */ +#define NVIC_ISER_SETENA_19 ((uint32_t)0x00080000) /*!< bit 19 */ +#define NVIC_ISER_SETENA_20 ((uint32_t)0x00100000) /*!< bit 20 */ +#define NVIC_ISER_SETENA_21 ((uint32_t)0x00200000) /*!< bit 21 */ +#define NVIC_ISER_SETENA_22 ((uint32_t)0x00400000) /*!< bit 22 */ +#define NVIC_ISER_SETENA_23 ((uint32_t)0x00800000) /*!< bit 23 */ +#define NVIC_ISER_SETENA_24 ((uint32_t)0x01000000) /*!< bit 24 */ +#define NVIC_ISER_SETENA_25 ((uint32_t)0x02000000) /*!< bit 25 */ +#define NVIC_ISER_SETENA_26 ((uint32_t)0x04000000) /*!< bit 26 */ +#define NVIC_ISER_SETENA_27 ((uint32_t)0x08000000) /*!< bit 27 */ +#define NVIC_ISER_SETENA_28 ((uint32_t)0x10000000) /*!< bit 28 */ +#define NVIC_ISER_SETENA_29 ((uint32_t)0x20000000) /*!< bit 29 */ +#define NVIC_ISER_SETENA_30 ((uint32_t)0x40000000) /*!< bit 30 */ +#define NVIC_ISER_SETENA_31 ((uint32_t)0x80000000) /*!< bit 31 */ + +/****************** Bit definition for NVIC_ICER register *******************/ +#define NVIC_ICER_CLRENA ((uint32_t)0xFFFFFFFF) /*!< Interrupt clear-enable bits */ +#define NVIC_ICER_CLRENA_0 ((uint32_t)0x00000001) /*!< bit 0 */ +#define NVIC_ICER_CLRENA_1 ((uint32_t)0x00000002) /*!< bit 1 */ +#define NVIC_ICER_CLRENA_2 ((uint32_t)0x00000004) /*!< bit 2 */ +#define NVIC_ICER_CLRENA_3 ((uint32_t)0x00000008) /*!< bit 3 */ +#define NVIC_ICER_CLRENA_4 ((uint32_t)0x00000010) /*!< bit 4 */ +#define NVIC_ICER_CLRENA_5 ((uint32_t)0x00000020) /*!< bit 5 */ +#define NVIC_ICER_CLRENA_6 ((uint32_t)0x00000040) /*!< bit 6 */ +#define NVIC_ICER_CLRENA_7 ((uint32_t)0x00000080) /*!< bit 7 */ +#define NVIC_ICER_CLRENA_8 ((uint32_t)0x00000100) /*!< bit 8 */ +#define NVIC_ICER_CLRENA_9 ((uint32_t)0x00000200) /*!< bit 9 */ +#define NVIC_ICER_CLRENA_10 ((uint32_t)0x00000400) /*!< bit 10 */ +#define NVIC_ICER_CLRENA_11 ((uint32_t)0x00000800) /*!< bit 11 */ +#define NVIC_ICER_CLRENA_12 ((uint32_t)0x00001000) /*!< bit 12 */ +#define NVIC_ICER_CLRENA_13 ((uint32_t)0x00002000) /*!< bit 13 */ +#define NVIC_ICER_CLRENA_14 ((uint32_t)0x00004000) /*!< bit 14 */ +#define NVIC_ICER_CLRENA_15 ((uint32_t)0x00008000) /*!< bit 15 */ +#define NVIC_ICER_CLRENA_16 ((uint32_t)0x00010000) /*!< bit 16 */ +#define NVIC_ICER_CLRENA_17 ((uint32_t)0x00020000) /*!< bit 17 */ +#define NVIC_ICER_CLRENA_18 ((uint32_t)0x00040000) /*!< bit 18 */ +#define NVIC_ICER_CLRENA_19 ((uint32_t)0x00080000) /*!< bit 19 */ +#define NVIC_ICER_CLRENA_20 ((uint32_t)0x00100000) /*!< bit 20 */ +#define NVIC_ICER_CLRENA_21 ((uint32_t)0x00200000) /*!< bit 21 */ +#define NVIC_ICER_CLRENA_22 ((uint32_t)0x00400000) /*!< bit 22 */ +#define NVIC_ICER_CLRENA_23 ((uint32_t)0x00800000) /*!< bit 23 */ +#define NVIC_ICER_CLRENA_24 ((uint32_t)0x01000000) /*!< bit 24 */ +#define NVIC_ICER_CLRENA_25 ((uint32_t)0x02000000) /*!< bit 25 */ +#define NVIC_ICER_CLRENA_26 ((uint32_t)0x04000000) /*!< bit 26 */ +#define NVIC_ICER_CLRENA_27 ((uint32_t)0x08000000) /*!< bit 27 */ +#define NVIC_ICER_CLRENA_28 ((uint32_t)0x10000000) /*!< bit 28 */ +#define NVIC_ICER_CLRENA_29 ((uint32_t)0x20000000) /*!< bit 29 */ +#define NVIC_ICER_CLRENA_30 ((uint32_t)0x40000000) /*!< bit 30 */ +#define NVIC_ICER_CLRENA_31 ((uint32_t)0x80000000) /*!< bit 31 */ + +/****************** Bit definition for NVIC_ISPR register *******************/ +#define NVIC_ISPR_SETPEND ((uint32_t)0xFFFFFFFF) /*!< Interrupt set-pending bits */ +#define NVIC_ISPR_SETPEND_0 ((uint32_t)0x00000001) /*!< bit 0 */ +#define NVIC_ISPR_SETPEND_1 ((uint32_t)0x00000002) /*!< bit 1 */ +#define NVIC_ISPR_SETPEND_2 ((uint32_t)0x00000004) /*!< bit 2 */ +#define NVIC_ISPR_SETPEND_3 ((uint32_t)0x00000008) /*!< bit 3 */ +#define NVIC_ISPR_SETPEND_4 ((uint32_t)0x00000010) /*!< bit 4 */ +#define NVIC_ISPR_SETPEND_5 ((uint32_t)0x00000020) /*!< bit 5 */ +#define NVIC_ISPR_SETPEND_6 ((uint32_t)0x00000040) /*!< bit 6 */ +#define NVIC_ISPR_SETPEND_7 ((uint32_t)0x00000080) /*!< bit 7 */ +#define NVIC_ISPR_SETPEND_8 ((uint32_t)0x00000100) /*!< bit 8 */ +#define NVIC_ISPR_SETPEND_9 ((uint32_t)0x00000200) /*!< bit 9 */ +#define NVIC_ISPR_SETPEND_10 ((uint32_t)0x00000400) /*!< bit 10 */ +#define NVIC_ISPR_SETPEND_11 ((uint32_t)0x00000800) /*!< bit 11 */ +#define NVIC_ISPR_SETPEND_12 ((uint32_t)0x00001000) /*!< bit 12 */ +#define NVIC_ISPR_SETPEND_13 ((uint32_t)0x00002000) /*!< bit 13 */ +#define NVIC_ISPR_SETPEND_14 ((uint32_t)0x00004000) /*!< bit 14 */ +#define NVIC_ISPR_SETPEND_15 ((uint32_t)0x00008000) /*!< bit 15 */ +#define NVIC_ISPR_SETPEND_16 ((uint32_t)0x00010000) /*!< bit 16 */ +#define NVIC_ISPR_SETPEND_17 ((uint32_t)0x00020000) /*!< bit 17 */ +#define NVIC_ISPR_SETPEND_18 ((uint32_t)0x00040000) /*!< bit 18 */ +#define NVIC_ISPR_SETPEND_19 ((uint32_t)0x00080000) /*!< bit 19 */ +#define NVIC_ISPR_SETPEND_20 ((uint32_t)0x00100000) /*!< bit 20 */ +#define NVIC_ISPR_SETPEND_21 ((uint32_t)0x00200000) /*!< bit 21 */ +#define NVIC_ISPR_SETPEND_22 ((uint32_t)0x00400000) /*!< bit 22 */ +#define NVIC_ISPR_SETPEND_23 ((uint32_t)0x00800000) /*!< bit 23 */ +#define NVIC_ISPR_SETPEND_24 ((uint32_t)0x01000000) /*!< bit 24 */ +#define NVIC_ISPR_SETPEND_25 ((uint32_t)0x02000000) /*!< bit 25 */ +#define NVIC_ISPR_SETPEND_26 ((uint32_t)0x04000000) /*!< bit 26 */ +#define NVIC_ISPR_SETPEND_27 ((uint32_t)0x08000000) /*!< bit 27 */ +#define NVIC_ISPR_SETPEND_28 ((uint32_t)0x10000000) /*!< bit 28 */ +#define NVIC_ISPR_SETPEND_29 ((uint32_t)0x20000000) /*!< bit 29 */ +#define NVIC_ISPR_SETPEND_30 ((uint32_t)0x40000000) /*!< bit 30 */ +#define NVIC_ISPR_SETPEND_31 ((uint32_t)0x80000000) /*!< bit 31 */ + +/****************** Bit definition for NVIC_ICPR register *******************/ +#define NVIC_ICPR_CLRPEND ((uint32_t)0xFFFFFFFF) /*!< Interrupt clear-pending bits */ +#define NVIC_ICPR_CLRPEND_0 ((uint32_t)0x00000001) /*!< bit 0 */ +#define NVIC_ICPR_CLRPEND_1 ((uint32_t)0x00000002) /*!< bit 1 */ +#define NVIC_ICPR_CLRPEND_2 ((uint32_t)0x00000004) /*!< bit 2 */ +#define NVIC_ICPR_CLRPEND_3 ((uint32_t)0x00000008) /*!< bit 3 */ +#define NVIC_ICPR_CLRPEND_4 ((uint32_t)0x00000010) /*!< bit 4 */ +#define NVIC_ICPR_CLRPEND_5 ((uint32_t)0x00000020) /*!< bit 5 */ +#define NVIC_ICPR_CLRPEND_6 ((uint32_t)0x00000040) /*!< bit 6 */ +#define NVIC_ICPR_CLRPEND_7 ((uint32_t)0x00000080) /*!< bit 7 */ +#define NVIC_ICPR_CLRPEND_8 ((uint32_t)0x00000100) /*!< bit 8 */ +#define NVIC_ICPR_CLRPEND_9 ((uint32_t)0x00000200) /*!< bit 9 */ +#define NVIC_ICPR_CLRPEND_10 ((uint32_t)0x00000400) /*!< bit 10 */ +#define NVIC_ICPR_CLRPEND_11 ((uint32_t)0x00000800) /*!< bit 11 */ +#define NVIC_ICPR_CLRPEND_12 ((uint32_t)0x00001000) /*!< bit 12 */ +#define NVIC_ICPR_CLRPEND_13 ((uint32_t)0x00002000) /*!< bit 13 */ +#define NVIC_ICPR_CLRPEND_14 ((uint32_t)0x00004000) /*!< bit 14 */ +#define NVIC_ICPR_CLRPEND_15 ((uint32_t)0x00008000) /*!< bit 15 */ +#define NVIC_ICPR_CLRPEND_16 ((uint32_t)0x00010000) /*!< bit 16 */ +#define NVIC_ICPR_CLRPEND_17 ((uint32_t)0x00020000) /*!< bit 17 */ +#define NVIC_ICPR_CLRPEND_18 ((uint32_t)0x00040000) /*!< bit 18 */ +#define NVIC_ICPR_CLRPEND_19 ((uint32_t)0x00080000) /*!< bit 19 */ +#define NVIC_ICPR_CLRPEND_20 ((uint32_t)0x00100000) /*!< bit 20 */ +#define NVIC_ICPR_CLRPEND_21 ((uint32_t)0x00200000) /*!< bit 21 */ +#define NVIC_ICPR_CLRPEND_22 ((uint32_t)0x00400000) /*!< bit 22 */ +#define NVIC_ICPR_CLRPEND_23 ((uint32_t)0x00800000) /*!< bit 23 */ +#define NVIC_ICPR_CLRPEND_24 ((uint32_t)0x01000000) /*!< bit 24 */ +#define NVIC_ICPR_CLRPEND_25 ((uint32_t)0x02000000) /*!< bit 25 */ +#define NVIC_ICPR_CLRPEND_26 ((uint32_t)0x04000000) /*!< bit 26 */ +#define NVIC_ICPR_CLRPEND_27 ((uint32_t)0x08000000) /*!< bit 27 */ +#define NVIC_ICPR_CLRPEND_28 ((uint32_t)0x10000000) /*!< bit 28 */ +#define NVIC_ICPR_CLRPEND_29 ((uint32_t)0x20000000) /*!< bit 29 */ +#define NVIC_ICPR_CLRPEND_30 ((uint32_t)0x40000000) /*!< bit 30 */ +#define NVIC_ICPR_CLRPEND_31 ((uint32_t)0x80000000) /*!< bit 31 */ + +/****************** Bit definition for NVIC_IABR register *******************/ +#define NVIC_IABR_ACTIVE ((uint32_t)0xFFFFFFFF) /*!< Interrupt active flags */ +#define NVIC_IABR_ACTIVE_0 ((uint32_t)0x00000001) /*!< bit 0 */ +#define NVIC_IABR_ACTIVE_1 ((uint32_t)0x00000002) /*!< bit 1 */ +#define NVIC_IABR_ACTIVE_2 ((uint32_t)0x00000004) /*!< bit 2 */ +#define NVIC_IABR_ACTIVE_3 ((uint32_t)0x00000008) /*!< bit 3 */ +#define NVIC_IABR_ACTIVE_4 ((uint32_t)0x00000010) /*!< bit 4 */ +#define NVIC_IABR_ACTIVE_5 ((uint32_t)0x00000020) /*!< bit 5 */ +#define NVIC_IABR_ACTIVE_6 ((uint32_t)0x00000040) /*!< bit 6 */ +#define NVIC_IABR_ACTIVE_7 ((uint32_t)0x00000080) /*!< bit 7 */ +#define NVIC_IABR_ACTIVE_8 ((uint32_t)0x00000100) /*!< bit 8 */ +#define NVIC_IABR_ACTIVE_9 ((uint32_t)0x00000200) /*!< bit 9 */ +#define NVIC_IABR_ACTIVE_10 ((uint32_t)0x00000400) /*!< bit 10 */ +#define NVIC_IABR_ACTIVE_11 ((uint32_t)0x00000800) /*!< bit 11 */ +#define NVIC_IABR_ACTIVE_12 ((uint32_t)0x00001000) /*!< bit 12 */ +#define NVIC_IABR_ACTIVE_13 ((uint32_t)0x00002000) /*!< bit 13 */ +#define NVIC_IABR_ACTIVE_14 ((uint32_t)0x00004000) /*!< bit 14 */ +#define NVIC_IABR_ACTIVE_15 ((uint32_t)0x00008000) /*!< bit 15 */ +#define NVIC_IABR_ACTIVE_16 ((uint32_t)0x00010000) /*!< bit 16 */ +#define NVIC_IABR_ACTIVE_17 ((uint32_t)0x00020000) /*!< bit 17 */ +#define NVIC_IABR_ACTIVE_18 ((uint32_t)0x00040000) /*!< bit 18 */ +#define NVIC_IABR_ACTIVE_19 ((uint32_t)0x00080000) /*!< bit 19 */ +#define NVIC_IABR_ACTIVE_20 ((uint32_t)0x00100000) /*!< bit 20 */ +#define NVIC_IABR_ACTIVE_21 ((uint32_t)0x00200000) /*!< bit 21 */ +#define NVIC_IABR_ACTIVE_22 ((uint32_t)0x00400000) /*!< bit 22 */ +#define NVIC_IABR_ACTIVE_23 ((uint32_t)0x00800000) /*!< bit 23 */ +#define NVIC_IABR_ACTIVE_24 ((uint32_t)0x01000000) /*!< bit 24 */ +#define NVIC_IABR_ACTIVE_25 ((uint32_t)0x02000000) /*!< bit 25 */ +#define NVIC_IABR_ACTIVE_26 ((uint32_t)0x04000000) /*!< bit 26 */ +#define NVIC_IABR_ACTIVE_27 ((uint32_t)0x08000000) /*!< bit 27 */ +#define NVIC_IABR_ACTIVE_28 ((uint32_t)0x10000000) /*!< bit 28 */ +#define NVIC_IABR_ACTIVE_29 ((uint32_t)0x20000000) /*!< bit 29 */ +#define NVIC_IABR_ACTIVE_30 ((uint32_t)0x40000000) /*!< bit 30 */ +#define NVIC_IABR_ACTIVE_31 ((uint32_t)0x80000000) /*!< bit 31 */ + +/****************** Bit definition for NVIC_PRI0 register *******************/ +#define NVIC_IPR0_PRI_0 ((uint32_t)0x000000FF) /*!< Priority of interrupt 0 */ +#define NVIC_IPR0_PRI_1 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 1 */ +#define NVIC_IPR0_PRI_2 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 2 */ +#define NVIC_IPR0_PRI_3 ((uint32_t)0xFF000000) /*!< Priority of interrupt 3 */ + +/****************** Bit definition for NVIC_PRI1 register *******************/ +#define NVIC_IPR1_PRI_4 ((uint32_t)0x000000FF) /*!< Priority of interrupt 4 */ +#define NVIC_IPR1_PRI_5 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 5 */ +#define NVIC_IPR1_PRI_6 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 6 */ +#define NVIC_IPR1_PRI_7 ((uint32_t)0xFF000000) /*!< Priority of interrupt 7 */ + +/****************** Bit definition for NVIC_PRI2 register *******************/ +#define NVIC_IPR2_PRI_8 ((uint32_t)0x000000FF) /*!< Priority of interrupt 8 */ +#define NVIC_IPR2_PRI_9 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 9 */ +#define NVIC_IPR2_PRI_10 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 10 */ +#define NVIC_IPR2_PRI_11 ((uint32_t)0xFF000000) /*!< Priority of interrupt 11 */ + +/****************** Bit definition for NVIC_PRI3 register *******************/ +#define NVIC_IPR3_PRI_12 ((uint32_t)0x000000FF) /*!< Priority of interrupt 12 */ +#define NVIC_IPR3_PRI_13 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 13 */ +#define NVIC_IPR3_PRI_14 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 14 */ +#define NVIC_IPR3_PRI_15 ((uint32_t)0xFF000000) /*!< Priority of interrupt 15 */ + +/****************** Bit definition for NVIC_PRI4 register *******************/ +#define NVIC_IPR4_PRI_16 ((uint32_t)0x000000FF) /*!< Priority of interrupt 16 */ +#define NVIC_IPR4_PRI_17 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 17 */ +#define NVIC_IPR4_PRI_18 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 18 */ +#define NVIC_IPR4_PRI_19 ((uint32_t)0xFF000000) /*!< Priority of interrupt 19 */ + +/****************** Bit definition for NVIC_PRI5 register *******************/ +#define NVIC_IPR5_PRI_20 ((uint32_t)0x000000FF) /*!< Priority of interrupt 20 */ +#define NVIC_IPR5_PRI_21 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 21 */ +#define NVIC_IPR5_PRI_22 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 22 */ +#define NVIC_IPR5_PRI_23 ((uint32_t)0xFF000000) /*!< Priority of interrupt 23 */ + +/****************** Bit definition for NVIC_PRI6 register *******************/ +#define NVIC_IPR6_PRI_24 ((uint32_t)0x000000FF) /*!< Priority of interrupt 24 */ +#define NVIC_IPR6_PRI_25 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 25 */ +#define NVIC_IPR6_PRI_26 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 26 */ +#define NVIC_IPR6_PRI_27 ((uint32_t)0xFF000000) /*!< Priority of interrupt 27 */ + +/****************** Bit definition for NVIC_PRI7 register *******************/ +#define NVIC_IPR7_PRI_28 ((uint32_t)0x000000FF) /*!< Priority of interrupt 28 */ +#define NVIC_IPR7_PRI_29 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 29 */ +#define NVIC_IPR7_PRI_30 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 30 */ +#define NVIC_IPR7_PRI_31 ((uint32_t)0xFF000000) /*!< Priority of interrupt 31 */ + +/****************** Bit definition for NVIC_PRI8 register *******************/ +#define NVIC_IPR7_PRI_32 ((uint32_t)0x000000FF) /*!< Priority of interrupt 32 */ +#define NVIC_IPR7_PRI_33 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 33 */ +#define NVIC_IPR7_PRI_34 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 34 */ +#define NVIC_IPR7_PRI_35 ((uint32_t)0xFF000000) /*!< Priority of interrupt 35 */ + +/****************** Bit definition for NVIC_PRI9 register *******************/ +#define NVIC_IPR7_PRI_36 ((uint32_t)0x000000FF) /*!< Priority of interrupt 36 */ +#define NVIC_IPR7_PRI_37 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 37 */ +#define NVIC_IPR7_PRI_38 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 38 */ +#define NVIC_IPR7_PRI_39 ((uint32_t)0xFF000000) /*!< Priority of interrupt 39 */ + +/****************** Bit definition for NVIC_PRI10 register *******************/ +#define NVIC_IPR7_PRI_40 ((uint32_t)0x000000FF) /*!< Priority of interrupt 40 */ +#define NVIC_IPR7_PRI_41 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 41 */ +#define NVIC_IPR7_PRI_42 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 42 */ +#define NVIC_IPR7_PRI_43 ((uint32_t)0xFF000000) /*!< Priority of interrupt 43 */ + +/****************** Bit definition for NVIC_PRI11 register *******************/ +#define NVIC_IPR7_PRI_44 ((uint32_t)0x000000FF) /*!< Priority of interrupt 44 */ +#define NVIC_IPR7_PRI_45 ((uint32_t)0x0000FF00) /*!< Priority of interrupt 45 */ +#define NVIC_IPR7_PRI_46 ((uint32_t)0x00FF0000) /*!< Priority of interrupt 46 */ +#define NVIC_IPR7_PRI_47 ((uint32_t)0xFF000000) /*!< Priority of interrupt 47 */ + +/****************** Bit definition for SCB_CPUID register *******************/ +#define SCB_CPUID_REVISION ((uint32_t)0x0000000F) /*!< Implementation defined revision number */ +#define SCB_CPUID_PARTNO ((uint32_t)0x0000FFF0) /*!< Number of processor within family */ +#define SCB_CPUID_Constant ((uint32_t)0x000F0000) /*!< Reads as 0x0F */ +#define SCB_CPUID_VARIANT ((uint32_t)0x00F00000) /*!< Implementation defined variant number */ +#define SCB_CPUID_IMPLEMENTER ((uint32_t)0xFF000000) /*!< Implementer code. ARM is 0x41 */ + +/******************* Bit definition for SCB_ICSR register *******************/ +#define SCB_ICSR_VECTACTIVE ((uint32_t)0x000001FF) /*!< Active ISR number field */ +#define SCB_ICSR_RETTOBASE ((uint32_t)0x00000800) /*!< All active exceptions minus the IPSR_current_exception yields the empty set */ +#define SCB_ICSR_VECTPENDING ((uint32_t)0x003FF000) /*!< Pending ISR number field */ +#define SCB_ICSR_ISRPENDING ((uint32_t)0x00400000) /*!< Interrupt pending flag */ +#define SCB_ICSR_ISRPREEMPT ((uint32_t)0x00800000) /*!< It indicates that a pending interrupt becomes active in the next running cycle */ +#define SCB_ICSR_PENDSTCLR ((uint32_t)0x02000000) /*!< Clear pending SysTick bit */ +#define SCB_ICSR_PENDSTSET ((uint32_t)0x04000000) /*!< Set pending SysTick bit */ +#define SCB_ICSR_PENDSVCLR ((uint32_t)0x08000000) /*!< Clear pending pendSV bit */ +#define SCB_ICSR_PENDSVSET ((uint32_t)0x10000000) /*!< Set pending pendSV bit */ +#define SCB_ICSR_NMIPENDSET ((uint32_t)0x80000000) /*!< Set pending NMI bit */ + +/******************* Bit definition for SCB_VTOR register *******************/ +#define SCB_VTOR_TBLOFF ((uint32_t)0x1FFFFF80) /*!< Vector table base offset field */ +#define SCB_VTOR_TBLBASE ((uint32_t)0x20000000) /*!< Table base in code(0) or RAM(1) */ + +/*!<***************** Bit definition for SCB_AIRCR register *******************/ +#define SCB_AIRCR_VECTRESET ((uint32_t)0x00000001) /*!< System Reset bit */ +#define SCB_AIRCR_VECTCLRACTIVE ((uint32_t)0x00000002) /*!< Clear active vector bit */ +#define SCB_AIRCR_SYSRESETREQ ((uint32_t)0x00000004) /*!< Requests chip control logic to generate a reset */ + +#define SCB_AIRCR_PRIGROUP ((uint32_t)0x00000700) /*!< PRIGROUP[2:0] bits (Priority group) */ +#define SCB_AIRCR_PRIGROUP_0 ((uint32_t)0x00000100) /*!< Bit 0 */ +#define SCB_AIRCR_PRIGROUP_1 ((uint32_t)0x00000200) /*!< Bit 1 */ +#define SCB_AIRCR_PRIGROUP_2 ((uint32_t)0x00000400) /*!< Bit 2 */ + +/* prority group configuration */ +#define SCB_AIRCR_PRIGROUP0 ((uint32_t)0x00000000) /*!< Priority group=0 (7 bits of pre-emption priority, 1 bit of subpriority) */ +#define SCB_AIRCR_PRIGROUP1 ((uint32_t)0x00000100) /*!< Priority group=1 (6 bits of pre-emption priority, 2 bits of subpriority) */ +#define SCB_AIRCR_PRIGROUP2 ((uint32_t)0x00000200) /*!< Priority group=2 (5 bits of pre-emption priority, 3 bits of subpriority) */ +#define SCB_AIRCR_PRIGROUP3 ((uint32_t)0x00000300) /*!< Priority group=3 (4 bits of pre-emption priority, 4 bits of subpriority) */ +#define SCB_AIRCR_PRIGROUP4 ((uint32_t)0x00000400) /*!< Priority group=4 (3 bits of pre-emption priority, 5 bits of subpriority) */ +#define SCB_AIRCR_PRIGROUP5 ((uint32_t)0x00000500) /*!< Priority group=5 (2 bits of pre-emption priority, 6 bits of subpriority) */ +#define SCB_AIRCR_PRIGROUP6 ((uint32_t)0x00000600) /*!< Priority group=6 (1 bit of pre-emption priority, 7 bits of subpriority) */ +#define SCB_AIRCR_PRIGROUP7 ((uint32_t)0x00000700) /*!< Priority group=7 (no pre-emption priority, 8 bits of subpriority) */ + +#define SCB_AIRCR_ENDIANESS ((uint32_t)0x00008000) /*!< Data endianness bit */ +#define SCB_AIRCR_VECTKEY ((uint32_t)0xFFFF0000) /*!< Register key (VECTKEY) - Reads as 0xFA05 (VECTKEYSTAT) */ + +/******************* Bit definition for SCB_SCR register ********************/ +#define SCB_SCR_SLEEPONEXIT ((uint8_t)0x02) /*!< Sleep on exit bit */ +#define SCB_SCR_SLEEPDEEP ((uint8_t)0x04) /*!< Sleep deep bit */ +#define SCB_SCR_SEVONPEND ((uint8_t)0x10) /*!< Wake up from WFE */ + +/******************** Bit definition for SCB_CCR register *******************/ +#define SCB_CCR_NONBASETHRDENA ((uint16_t)0x0001) /*!< Thread mode can be entered from any level in Handler mode by controlled return value */ +#define SCB_CCR_USERSETMPEND ((uint16_t)0x0002) /*!< Enables user code to write the Software Trigger Interrupt register to trigger (pend) a Main exception */ +#define SCB_CCR_UNALIGN_TRP ((uint16_t)0x0008) /*!< Trap for unaligned access */ +#define SCB_CCR_DIV_0_TRP ((uint16_t)0x0010) /*!< Trap on Divide by 0 */ +#define SCB_CCR_BFHFNMIGN ((uint16_t)0x0100) /*!< Handlers running at priority -1 and -2 */ +#define SCB_CCR_STKALIGN ((uint16_t)0x0200) /*!< On exception entry, the SP used prior to the exception is adjusted to be 8-byte aligned */ + +/******************* Bit definition for SCB_SHPR register ********************/ +#define SCB_SHPR_PRI_N ((uint32_t)0x000000FF) /*!< Priority of system handler 4,8, and 12. Mem Manage, reserved and Debug Monitor */ +#define SCB_SHPR_PRI_N1 ((uint32_t)0x0000FF00) /*!< Priority of system handler 5,9, and 13. Bus Fault, reserved and reserved */ +#define SCB_SHPR_PRI_N2 ((uint32_t)0x00FF0000) /*!< Priority of system handler 6,10, and 14. Usage Fault, reserved and PendSV */ +#define SCB_SHPR_PRI_N3 ((uint32_t)0xFF000000) /*!< Priority of system handler 7,11, and 15. Reserved, SVCall and SysTick */ + +/****************** Bit definition for SCB_SHCSR register *******************/ +#define SCB_SHCSR_MEMFAULTACT ((uint32_t)0x00000001) /*!< MemManage is active */ +#define SCB_SHCSR_BUSFAULTACT ((uint32_t)0x00000002) /*!< BusFault is active */ +#define SCB_SHCSR_USGFAULTACT ((uint32_t)0x00000008) /*!< UsageFault is active */ +#define SCB_SHCSR_SVCALLACT ((uint32_t)0x00000080) /*!< SVCall is active */ +#define SCB_SHCSR_MONITORACT ((uint32_t)0x00000100) /*!< Monitor is active */ +#define SCB_SHCSR_PENDSVACT ((uint32_t)0x00000400) /*!< PendSV is active */ +#define SCB_SHCSR_SYSTICKACT ((uint32_t)0x00000800) /*!< SysTick is active */ +#define SCB_SHCSR_USGFAULTPENDED ((uint32_t)0x00001000) /*!< Usage Fault is pended */ +#define SCB_SHCSR_MEMFAULTPENDED ((uint32_t)0x00002000) /*!< MemManage is pended */ +#define SCB_SHCSR_BUSFAULTPENDED ((uint32_t)0x00004000) /*!< Bus Fault is pended */ +#define SCB_SHCSR_SVCALLPENDED ((uint32_t)0x00008000) /*!< SVCall is pended */ +#define SCB_SHCSR_MEMFAULTENA ((uint32_t)0x00010000) /*!< MemManage enable */ +#define SCB_SHCSR_BUSFAULTENA ((uint32_t)0x00020000) /*!< Bus Fault enable */ +#define SCB_SHCSR_USGFAULTENA ((uint32_t)0x00040000) /*!< UsageFault enable */ + +/******************* Bit definition for SCB_CFSR register *******************/ +/*!< MFSR */ +#define SCB_CFSR_IACCVIOL ((uint32_t)0x00000001) /*!< Instruction access violation */ +#define SCB_CFSR_DACCVIOL ((uint32_t)0x00000002) /*!< Data access violation */ +#define SCB_CFSR_MUNSTKERR ((uint32_t)0x00000008) /*!< Unstacking error */ +#define SCB_CFSR_MSTKERR ((uint32_t)0x00000010) /*!< Stacking error */ +#define SCB_CFSR_MMARVALID ((uint32_t)0x00000080) /*!< Memory Manage Address Register address valid flag */ +/*!< BFSR */ +#define SCB_CFSR_IBUSERR ((uint32_t)0x00000100) /*!< Instruction bus error flag */ +#define SCB_CFSR_PRECISERR ((uint32_t)0x00000200) /*!< Precise data bus error */ +#define SCB_CFSR_IMPRECISERR ((uint32_t)0x00000400) /*!< Imprecise data bus error */ +#define SCB_CFSR_UNSTKERR ((uint32_t)0x00000800) /*!< Unstacking error */ +#define SCB_CFSR_STKERR ((uint32_t)0x00001000) /*!< Stacking error */ +#define SCB_CFSR_BFARVALID ((uint32_t)0x00008000) /*!< Bus Fault Address Register address valid flag */ +/*!< UFSR */ +#define SCB_CFSR_UNDEFINSTR ((uint32_t)0x00010000) /*!< The processor attempt to excecute an undefined instruction */ +#define SCB_CFSR_INVSTATE ((uint32_t)0x00020000) /*!< Invalid combination of EPSR and instruction */ +#define SCB_CFSR_INVPC ((uint32_t)0x00040000) /*!< Attempt to load EXC_RETURN into pc illegally */ +#define SCB_CFSR_NOCP ((uint32_t)0x00080000) /*!< Attempt to use a coprocessor instruction */ +#define SCB_CFSR_UNALIGNED ((uint32_t)0x01000000) /*!< Fault occurs when there is an attempt to make an unaligned memory access */ +#define SCB_CFSR_DIVBYZERO ((uint32_t)0x02000000) /*!< Fault occurs when SDIV or DIV instruction is used with a divisor of 0 */ + +/******************* Bit definition for SCB_HFSR register *******************/ +#define SCB_HFSR_VECTTBL ((uint32_t)0x00000002) /*!< Fault occures because of vector table read on exception processing */ +#define SCB_HFSR_FORCED ((uint32_t)0x40000000) /*!< Hard Fault activated when a configurable Fault was received and cannot activate */ +#define SCB_HFSR_DEBUGEVT ((uint32_t)0x80000000) /*!< Fault related to debug */ + +/******************* Bit definition for SCB_DFSR register *******************/ +#define SCB_DFSR_HALTED ((uint8_t)0x01) /*!< Halt request flag */ +#define SCB_DFSR_BKPT ((uint8_t)0x02) /*!< BKPT flag */ +#define SCB_DFSR_DWTTRAP ((uint8_t)0x04) /*!< Data Watchpoint and Trace (DWT) flag */ +#define SCB_DFSR_VCATCH ((uint8_t)0x08) /*!< Vector catch flag */ +#define SCB_DFSR_EXTERNAL ((uint8_t)0x10) /*!< External debug request flag */ + +/******************* Bit definition for SCB_MMFAR register ******************/ +#define SCB_MMFAR_ADDRESS ((uint32_t)0xFFFFFFFF) /*!< Mem Manage fault address field */ + +/******************* Bit definition for SCB_BFAR register *******************/ +#define SCB_BFAR_ADDRESS ((uint32_t)0xFFFFFFFF) /*!< Bus fault address field */ + +/******************* Bit definition for SCB_afsr register *******************/ +#define SCB_AFSR_IMPDEF ((uint32_t)0xFFFFFFFF) /*!< Implementation defined */ + +/******************************************************************************/ +/* */ +/* External Interrupt/Event Controller */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for EXTI_IMR register *******************/ +#define EXTI_IMR_MR0 ((uint32_t)0x00000001) /*!< Interrupt Mask on line 0 */ +#define EXTI_IMR_MR1 ((uint32_t)0x00000002) /*!< Interrupt Mask on line 1 */ +#define EXTI_IMR_MR2 ((uint32_t)0x00000004) /*!< Interrupt Mask on line 2 */ +#define EXTI_IMR_MR3 ((uint32_t)0x00000008) /*!< Interrupt Mask on line 3 */ +#define EXTI_IMR_MR4 ((uint32_t)0x00000010) /*!< Interrupt Mask on line 4 */ +#define EXTI_IMR_MR5 ((uint32_t)0x00000020) /*!< Interrupt Mask on line 5 */ +#define EXTI_IMR_MR6 ((uint32_t)0x00000040) /*!< Interrupt Mask on line 6 */ +#define EXTI_IMR_MR7 ((uint32_t)0x00000080) /*!< Interrupt Mask on line 7 */ +#define EXTI_IMR_MR8 ((uint32_t)0x00000100) /*!< Interrupt Mask on line 8 */ +#define EXTI_IMR_MR9 ((uint32_t)0x00000200) /*!< Interrupt Mask on line 9 */ +#define EXTI_IMR_MR10 ((uint32_t)0x00000400) /*!< Interrupt Mask on line 10 */ +#define EXTI_IMR_MR11 ((uint32_t)0x00000800) /*!< Interrupt Mask on line 11 */ +#define EXTI_IMR_MR12 ((uint32_t)0x00001000) /*!< Interrupt Mask on line 12 */ +#define EXTI_IMR_MR13 ((uint32_t)0x00002000) /*!< Interrupt Mask on line 13 */ +#define EXTI_IMR_MR14 ((uint32_t)0x00004000) /*!< Interrupt Mask on line 14 */ +#define EXTI_IMR_MR15 ((uint32_t)0x00008000) /*!< Interrupt Mask on line 15 */ +#define EXTI_IMR_MR16 ((uint32_t)0x00010000) /*!< Interrupt Mask on line 16 */ +#define EXTI_IMR_MR17 ((uint32_t)0x00020000) /*!< Interrupt Mask on line 17 */ +#define EXTI_IMR_MR18 ((uint32_t)0x00040000) /*!< Interrupt Mask on line 18 */ +#define EXTI_IMR_MR19 ((uint32_t)0x00080000) /*!< Interrupt Mask on line 19 */ +#define EXTI_IMR_MR20 ((uint32_t)0x00100000) /*!< Interrupt Mask on line 20 */ + +/******************* Bit definition for EXTI_EMR register *******************/ +#define EXTI_EMR_MR0 ((uint32_t)0x00000001) /*!< Event Mask on line 0 */ +#define EXTI_EMR_MR1 ((uint32_t)0x00000002) /*!< Event Mask on line 1 */ +#define EXTI_EMR_MR2 ((uint32_t)0x00000004) /*!< Event Mask on line 2 */ +#define EXTI_EMR_MR3 ((uint32_t)0x00000008) /*!< Event Mask on line 3 */ +#define EXTI_EMR_MR4 ((uint32_t)0x00000010) /*!< Event Mask on line 4 */ +#define EXTI_EMR_MR5 ((uint32_t)0x00000020) /*!< Event Mask on line 5 */ +#define EXTI_EMR_MR6 ((uint32_t)0x00000040) /*!< Event Mask on line 6 */ +#define EXTI_EMR_MR7 ((uint32_t)0x00000080) /*!< Event Mask on line 7 */ +#define EXTI_EMR_MR8 ((uint32_t)0x00000100) /*!< Event Mask on line 8 */ +#define EXTI_EMR_MR9 ((uint32_t)0x00000200) /*!< Event Mask on line 9 */ +#define EXTI_EMR_MR10 ((uint32_t)0x00000400) /*!< Event Mask on line 10 */ +#define EXTI_EMR_MR11 ((uint32_t)0x00000800) /*!< Event Mask on line 11 */ +#define EXTI_EMR_MR12 ((uint32_t)0x00001000) /*!< Event Mask on line 12 */ +#define EXTI_EMR_MR13 ((uint32_t)0x00002000) /*!< Event Mask on line 13 */ +#define EXTI_EMR_MR14 ((uint32_t)0x00004000) /*!< Event Mask on line 14 */ +#define EXTI_EMR_MR15 ((uint32_t)0x00008000) /*!< Event Mask on line 15 */ +#define EXTI_EMR_MR16 ((uint32_t)0x00010000) /*!< Event Mask on line 16 */ +#define EXTI_EMR_MR17 ((uint32_t)0x00020000) /*!< Event Mask on line 17 */ +#define EXTI_EMR_MR18 ((uint32_t)0x00040000) /*!< Event Mask on line 18 */ +#define EXTI_EMR_MR19 ((uint32_t)0x00080000) /*!< Event Mask on line 19 */ +#define EXTI_EMR_MR20 ((uint32_t)0x00100000) /*!< Event Mask on line 20 */ + +/****************** Bit definition for EXTI_RTSR register *******************/ +#define EXTI_RTSR_TR0 ((uint32_t)0x00000001) /*!< Rising trigger event configuration bit of line 0 */ +#define EXTI_RTSR_TR1 ((uint32_t)0x00000002) /*!< Rising trigger event configuration bit of line 1 */ +#define EXTI_RTSR_TR2 ((uint32_t)0x00000004) /*!< Rising trigger event configuration bit of line 2 */ +#define EXTI_RTSR_TR3 ((uint32_t)0x00000008) /*!< Rising trigger event configuration bit of line 3 */ +#define EXTI_RTSR_TR4 ((uint32_t)0x00000010) /*!< Rising trigger event configuration bit of line 4 */ +#define EXTI_RTSR_TR5 ((uint32_t)0x00000020) /*!< Rising trigger event configuration bit of line 5 */ +#define EXTI_RTSR_TR6 ((uint32_t)0x00000040) /*!< Rising trigger event configuration bit of line 6 */ +#define EXTI_RTSR_TR7 ((uint32_t)0x00000080) /*!< Rising trigger event configuration bit of line 7 */ +#define EXTI_RTSR_TR8 ((uint32_t)0x00000100) /*!< Rising trigger event configuration bit of line 8 */ +#define EXTI_RTSR_TR9 ((uint32_t)0x00000200) /*!< Rising trigger event configuration bit of line 9 */ +#define EXTI_RTSR_TR10 ((uint32_t)0x00000400) /*!< Rising trigger event configuration bit of line 10 */ +#define EXTI_RTSR_TR11 ((uint32_t)0x00000800) /*!< Rising trigger event configuration bit of line 11 */ +#define EXTI_RTSR_TR12 ((uint32_t)0x00001000) /*!< Rising trigger event configuration bit of line 12 */ +#define EXTI_RTSR_TR13 ((uint32_t)0x00002000) /*!< Rising trigger event configuration bit of line 13 */ +#define EXTI_RTSR_TR14 ((uint32_t)0x00004000) /*!< Rising trigger event configuration bit of line 14 */ +#define EXTI_RTSR_TR15 ((uint32_t)0x00008000) /*!< Rising trigger event configuration bit of line 15 */ +#define EXTI_RTSR_TR16 ((uint32_t)0x00010000) /*!< Rising trigger event configuration bit of line 16 */ +#define EXTI_RTSR_TR17 ((uint32_t)0x00020000) /*!< Rising trigger event configuration bit of line 17 */ +#define EXTI_RTSR_TR18 ((uint32_t)0x00040000) /*!< Rising trigger event configuration bit of line 18 */ +#define EXTI_RTSR_TR19 ((uint32_t)0x00080000) /*!< Rising trigger event configuration bit of line 19 */ +#define EXTI_RTSR_TR20 ((uint32_t)0x00100000) /*!< Rising trigger event configuration bit of line 20 */ +/****************** Bit definition for EXTI_FTSR register *******************/ +#define EXTI_FTSR_TR0 ((uint32_t)0x00000001) /*!< Falling trigger event configuration bit of line 0 */ +#define EXTI_FTSR_TR1 ((uint32_t)0x00000002) /*!< Falling trigger event configuration bit of line 1 */ +#define EXTI_FTSR_TR2 ((uint32_t)0x00000004) /*!< Falling trigger event configuration bit of line 2 */ +#define EXTI_FTSR_TR3 ((uint32_t)0x00000008) /*!< Falling trigger event configuration bit of line 3 */ +#define EXTI_FTSR_TR4 ((uint32_t)0x00000010) /*!< Falling trigger event configuration bit of line 4 */ +#define EXTI_FTSR_TR5 ((uint32_t)0x00000020) /*!< Falling trigger event configuration bit of line 5 */ +#define EXTI_FTSR_TR6 ((uint32_t)0x00000040) /*!< Falling trigger event configuration bit of line 6 */ +#define EXTI_FTSR_TR7 ((uint32_t)0x00000080) /*!< Falling trigger event configuration bit of line 7 */ +#define EXTI_FTSR_TR8 ((uint32_t)0x00000100) /*!< Falling trigger event configuration bit of line 8 */ +#define EXTI_FTSR_TR9 ((uint32_t)0x00000200) /*!< Falling trigger event configuration bit of line 9 */ +#define EXTI_FTSR_TR10 ((uint32_t)0x00000400) /*!< Falling trigger event configuration bit of line 10 */ +#define EXTI_FTSR_TR11 ((uint32_t)0x00000800) /*!< Falling trigger event configuration bit of line 11 */ +#define EXTI_FTSR_TR12 ((uint32_t)0x00001000) /*!< Falling trigger event configuration bit of line 12 */ +#define EXTI_FTSR_TR13 ((uint32_t)0x00002000) /*!< Falling trigger event configuration bit of line 13 */ +#define EXTI_FTSR_TR14 ((uint32_t)0x00004000) /*!< Falling trigger event configuration bit of line 14 */ +#define EXTI_FTSR_TR15 ((uint32_t)0x00008000) /*!< Falling trigger event configuration bit of line 15 */ +#define EXTI_FTSR_TR16 ((uint32_t)0x00010000) /*!< Falling trigger event configuration bit of line 16 */ +#define EXTI_FTSR_TR17 ((uint32_t)0x00020000) /*!< Falling trigger event configuration bit of line 17 */ +#define EXTI_FTSR_TR18 ((uint32_t)0x00040000) /*!< Falling trigger event configuration bit of line 18 */ +#define EXTI_FTSR_TR19 ((uint32_t)0x00080000) /*!< Falling trigger event configuration bit of line 19 */ +#define EXTI_FTSR_TR20 ((uint32_t)0x00100000) /*!< Falling trigger event configuration bit of line 20 */ +/****************** Bit definition for EXTI_SWIER register ******************/ +#define EXTI_SWIER_SWIER0 ((uint32_t)0x00000001) /*!< Software Interrupt on line 0 */ +#define EXTI_SWIER_SWIER1 ((uint32_t)0x00000002) /*!< Software Interrupt on line 1 */ +#define EXTI_SWIER_SWIER2 ((uint32_t)0x00000004) /*!< Software Interrupt on line 2 */ +#define EXTI_SWIER_SWIER3 ((uint32_t)0x00000008) /*!< Software Interrupt on line 3 */ +#define EXTI_SWIER_SWIER4 ((uint32_t)0x00000010) /*!< Software Interrupt on line 4 */ +#define EXTI_SWIER_SWIER5 ((uint32_t)0x00000020) /*!< Software Interrupt on line 5 */ +#define EXTI_SWIER_SWIER6 ((uint32_t)0x00000040) /*!< Software Interrupt on line 6 */ +#define EXTI_SWIER_SWIER7 ((uint32_t)0x00000080) /*!< Software Interrupt on line 7 */ +#define EXTI_SWIER_SWIER8 ((uint32_t)0x00000100) /*!< Software Interrupt on line 8 */ +#define EXTI_SWIER_SWIER9 ((uint32_t)0x00000200) /*!< Software Interrupt on line 9 */ +#define EXTI_SWIER_SWIER10 ((uint32_t)0x00000400) /*!< Software Interrupt on line 10 */ +#define EXTI_SWIER_SWIER11 ((uint32_t)0x00000800) /*!< Software Interrupt on line 11 */ +#define EXTI_SWIER_SWIER12 ((uint32_t)0x00001000) /*!< Software Interrupt on line 12 */ +#define EXTI_SWIER_SWIER13 ((uint32_t)0x00002000) /*!< Software Interrupt on line 13 */ +#define EXTI_SWIER_SWIER14 ((uint32_t)0x00004000) /*!< Software Interrupt on line 14 */ +#define EXTI_SWIER_SWIER15 ((uint32_t)0x00008000) /*!< Software Interrupt on line 15 */ +#define EXTI_SWIER_SWIER16 ((uint32_t)0x00010000) /*!< Software Interrupt on line 16 */ +#define EXTI_SWIER_SWIER17 ((uint32_t)0x00020000) /*!< Software Interrupt on line 17 */ +#define EXTI_SWIER_SWIER18 ((uint32_t)0x00040000) /*!< Software Interrupt on line 18 */ +#define EXTI_SWIER_SWIER19 ((uint32_t)0x00080000) /*!< Software Interrupt on line 19 */ +#define EXTI_SWIER_SWIER20 ((uint32_t)0x00100000) /*!< Software Interrupt on line 20 */ +/******************* Bit definition for EXTI_PR register ********************/ +#define EXTI_PR_PR0 ((uint32_t)0x00000001) /*!< Pending bit 0 */ +#define EXTI_PR_PR1 ((uint32_t)0x00000002) /*!< Pending bit 1 */ +#define EXTI_PR_PR2 ((uint32_t)0x00000004) /*!< Pending bit 2 */ +#define EXTI_PR_PR3 ((uint32_t)0x00000008) /*!< Pending bit 3 */ +#define EXTI_PR_PR4 ((uint32_t)0x00000010) /*!< Pending bit 4 */ +#define EXTI_PR_PR5 ((uint32_t)0x00000020) /*!< Pending bit 5 */ +#define EXTI_PR_PR6 ((uint32_t)0x00000040) /*!< Pending bit 6 */ +#define EXTI_PR_PR7 ((uint32_t)0x00000080) /*!< Pending bit 7 */ +#define EXTI_PR_PR8 ((uint32_t)0x00000100) /*!< Pending bit 8 */ +#define EXTI_PR_PR9 ((uint32_t)0x00000200) /*!< Pending bit 9 */ +#define EXTI_PR_PR10 ((uint32_t)0x00000400) /*!< Pending bit 10 */ +#define EXTI_PR_PR11 ((uint32_t)0x00000800) /*!< Pending bit 11 */ +#define EXTI_PR_PR12 ((uint32_t)0x00001000) /*!< Pending bit 12 */ +#define EXTI_PR_PR13 ((uint32_t)0x00002000) /*!< Pending bit 13 */ +#define EXTI_PR_PR14 ((uint32_t)0x00004000) /*!< Pending bit 14 */ +#define EXTI_PR_PR15 ((uint32_t)0x00008000) /*!< Pending bit 15 */ +#define EXTI_PR_PR16 ((uint32_t)0x00010000) /*!< Pending bit 16 */ +#define EXTI_PR_PR17 ((uint32_t)0x00020000) /*!< Pending bit 17 */ +#define EXTI_PR_PR18 ((uint32_t)0x00040000) /*!< Trigger request occurred on the external interrupt line 18 */ +#define EXTI_PR_PR19 ((uint32_t)0x00080000) +#define EXTI_PR_PR20 ((uint32_t)0x00100000) +/******************************************************************************/ +/* */ +/* DMA Controller */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for DMA_ISR register ********************/ +#define DMA_ISR_GIF1 ((uint32_t)0x00000001) /*!< Channel 1 Global interrupt flag */ +#define DMA_ISR_TCIF1 ((uint32_t)0x00000002) /*!< Channel 1 Transfer Complete flag */ +#define DMA_ISR_HTIF1 ((uint32_t)0x00000004) /*!< Channel 1 Half Transfer flag */ +#define DMA_ISR_TEIF1 ((uint32_t)0x00000008) /*!< Channel 1 Transfer Error flag */ +#define DMA_ISR_GIF2 ((uint32_t)0x00000010) /*!< Channel 2 Global interrupt flag */ +#define DMA_ISR_TCIF2 ((uint32_t)0x00000020) /*!< Channel 2 Transfer Complete flag */ +#define DMA_ISR_HTIF2 ((uint32_t)0x00000040) /*!< Channel 2 Half Transfer flag */ +#define DMA_ISR_TEIF2 ((uint32_t)0x00000080) /*!< Channel 2 Transfer Error flag */ +#define DMA_ISR_GIF3 ((uint32_t)0x00000100) /*!< Channel 3 Global interrupt flag */ +#define DMA_ISR_TCIF3 ((uint32_t)0x00000200) /*!< Channel 3 Transfer Complete flag */ +#define DMA_ISR_HTIF3 ((uint32_t)0x00000400) /*!< Channel 3 Half Transfer flag */ +#define DMA_ISR_TEIF3 ((uint32_t)0x00000800) /*!< Channel 3 Transfer Error flag */ +#define DMA_ISR_GIF4 ((uint32_t)0x00001000) /*!< Channel 4 Global interrupt flag */ +#define DMA_ISR_TCIF4 ((uint32_t)0x00002000) /*!< Channel 4 Transfer Complete flag */ +#define DMA_ISR_HTIF4 ((uint32_t)0x00004000) /*!< Channel 4 Half Transfer flag */ +#define DMA_ISR_TEIF4 ((uint32_t)0x00008000) /*!< Channel 4 Transfer Error flag */ +#define DMA_ISR_GIF5 ((uint32_t)0x00010000) /*!< Channel 5 Global interrupt flag */ +#define DMA_ISR_TCIF5 ((uint32_t)0x00020000) /*!< Channel 5 Transfer Complete flag */ +#define DMA_ISR_HTIF5 ((uint32_t)0x00040000) /*!< Channel 5 Half Transfer flag */ +#define DMA_ISR_TEIF5 ((uint32_t)0x00080000) /*!< Channel 5 Transfer Error flag */ +#define DMA_ISR_GIF6 ((uint32_t)0x00100000) /*!< Channel 6 Global interrupt flag */ +#define DMA_ISR_TCIF6 ((uint32_t)0x00200000) /*!< Channel 6 Transfer Complete flag */ +#define DMA_ISR_HTIF6 ((uint32_t)0x00400000) /*!< Channel 6 Half Transfer flag */ +#define DMA_ISR_TEIF6 ((uint32_t)0x00800000) /*!< Channel 6 Transfer Error flag */ +#define DMA_ISR_GIF7 ((uint32_t)0x01000000) /*!< Channel 7 Global interrupt flag */ +#define DMA_ISR_TCIF7 ((uint32_t)0x02000000) /*!< Channel 7 Transfer Complete flag */ +#define DMA_ISR_HTIF7 ((uint32_t)0x04000000) /*!< Channel 7 Half Transfer flag */ +#define DMA_ISR_TEIF7 ((uint32_t)0x08000000) /*!< Channel 7 Transfer Error flag */ + +/******************* Bit definition for DMA_IFCR register *******************/ +#define DMA_IFCR_CGIF1 ((uint32_t)0x00000001) /*!< Channel 1 Global interrupt clearr */ +#define DMA_IFCR_CTCIF1 ((uint32_t)0x00000002) /*!< Channel 1 Transfer Complete clear */ +#define DMA_IFCR_CHTIF1 ((uint32_t)0x00000004) /*!< Channel 1 Half Transfer clear */ +#define DMA_IFCR_CTEIF1 ((uint32_t)0x00000008) /*!< Channel 1 Transfer Error clear */ +#define DMA_IFCR_CGIF2 ((uint32_t)0x00000010) /*!< Channel 2 Global interrupt clear */ +#define DMA_IFCR_CTCIF2 ((uint32_t)0x00000020) /*!< Channel 2 Transfer Complete clear */ +#define DMA_IFCR_CHTIF2 ((uint32_t)0x00000040) /*!< Channel 2 Half Transfer clear */ +#define DMA_IFCR_CTEIF2 ((uint32_t)0x00000080) /*!< Channel 2 Transfer Error clear */ +#define DMA_IFCR_CGIF3 ((uint32_t)0x00000100) /*!< Channel 3 Global interrupt clear */ +#define DMA_IFCR_CTCIF3 ((uint32_t)0x00000200) /*!< Channel 3 Transfer Complete clear */ +#define DMA_IFCR_CHTIF3 ((uint32_t)0x00000400) /*!< Channel 3 Half Transfer clear */ +#define DMA_IFCR_CTEIF3 ((uint32_t)0x00000800) /*!< Channel 3 Transfer Error clear */ +#define DMA_IFCR_CGIF4 ((uint32_t)0x00001000) /*!< Channel 4 Global interrupt clear */ +#define DMA_IFCR_CTCIF4 ((uint32_t)0x00002000) /*!< Channel 4 Transfer Complete clear */ +#define DMA_IFCR_CHTIF4 ((uint32_t)0x00004000) /*!< Channel 4 Half Transfer clear */ +#define DMA_IFCR_CTEIF4 ((uint32_t)0x00008000) /*!< Channel 4 Transfer Error clear */ +#define DMA_IFCR_CGIF5 ((uint32_t)0x00010000) /*!< Channel 5 Global interrupt clear */ +#define DMA_IFCR_CTCIF5 ((uint32_t)0x00020000) /*!< Channel 5 Transfer Complete clear */ +#define DMA_IFCR_CHTIF5 ((uint32_t)0x00040000) /*!< Channel 5 Half Transfer clear */ +#define DMA_IFCR_CTEIF5 ((uint32_t)0x00080000) /*!< Channel 5 Transfer Error clear */ +#define DMA_IFCR_CGIF6 ((uint32_t)0x00100000) /*!< Channel 6 Global interrupt clear */ +#define DMA_IFCR_CTCIF6 ((uint32_t)0x00200000) /*!< Channel 6 Transfer Complete clear */ +#define DMA_IFCR_CHTIF6 ((uint32_t)0x00400000) /*!< Channel 6 Half Transfer clear */ +#define DMA_IFCR_CTEIF6 ((uint32_t)0x00800000) /*!< Channel 6 Transfer Error clear */ +#define DMA_IFCR_CGIF7 ((uint32_t)0x01000000) /*!< Channel 7 Global interrupt clear */ +#define DMA_IFCR_CTCIF7 ((uint32_t)0x02000000) /*!< Channel 7 Transfer Complete clear */ +#define DMA_IFCR_CHTIF7 ((uint32_t)0x04000000) /*!< Channel 7 Half Transfer clear */ +#define DMA_IFCR_CTEIF7 ((uint32_t)0x08000000) /*!< Channel 7 Transfer Error clear */ + +/******************* Bit definition for DMA_CCR1 register *******************/ +#define DMA_CCR1_EN ((uint16_t)0x0001) /*!< Channel enable*/ +#define DMA_CCR1_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ +#define DMA_CCR1_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ +#define DMA_CCR1_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ +#define DMA_CCR1_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ +#define DMA_CCR1_CIRC ((uint16_t)0x0020) /*!< Circular mode */ +#define DMA_CCR1_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ +#define DMA_CCR1_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ + +#define DMA_CCR1_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CCR1_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ +#define DMA_CCR1_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ + +#define DMA_CCR1_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ +#define DMA_CCR1_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ +#define DMA_CCR1_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ + +#define DMA_CCR1_PL ((uint16_t)0x3000) /*!< PL[1:0] bits(Channel Priority level) */ +#define DMA_CCR1_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ +#define DMA_CCR1_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ + +#define DMA_CCR1_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ + +/******************* Bit definition for DMA_CCR2 register *******************/ +#define DMA_CCR2_EN ((uint16_t)0x0001) /*!< Channel enable */ +#define DMA_CCR2_TCIE ((uint16_t)0x0002) /*!< ransfer complete interrupt enable */ +#define DMA_CCR2_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ +#define DMA_CCR2_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ +#define DMA_CCR2_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ +#define DMA_CCR2_CIRC ((uint16_t)0x0020) /*!< Circular mode */ +#define DMA_CCR2_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ +#define DMA_CCR2_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ + +#define DMA_CCR2_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CCR2_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ +#define DMA_CCR2_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ + +#define DMA_CCR2_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ +#define DMA_CCR2_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ +#define DMA_CCR2_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ + +#define DMA_CCR2_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ +#define DMA_CCR2_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ +#define DMA_CCR2_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ + +#define DMA_CCR2_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ + +/******************* Bit definition for DMA_CCR3 register *******************/ +#define DMA_CCR3_EN ((uint16_t)0x0001) /*!< Channel enable */ +#define DMA_CCR3_TCIE ((uint16_t)0x0002) /*!< Transfer complete interrupt enable */ +#define DMA_CCR3_HTIE ((uint16_t)0x0004) /*!< Half Transfer interrupt enable */ +#define DMA_CCR3_TEIE ((uint16_t)0x0008) /*!< Transfer error interrupt enable */ +#define DMA_CCR3_DIR ((uint16_t)0x0010) /*!< Data transfer direction */ +#define DMA_CCR3_CIRC ((uint16_t)0x0020) /*!< Circular mode */ +#define DMA_CCR3_PINC ((uint16_t)0x0040) /*!< Peripheral increment mode */ +#define DMA_CCR3_MINC ((uint16_t)0x0080) /*!< Memory increment mode */ + +#define DMA_CCR3_PSIZE ((uint16_t)0x0300) /*!< PSIZE[1:0] bits (Peripheral size) */ +#define DMA_CCR3_PSIZE_0 ((uint16_t)0x0100) /*!< Bit 0 */ +#define DMA_CCR3_PSIZE_1 ((uint16_t)0x0200) /*!< Bit 1 */ + +#define DMA_CCR3_MSIZE ((uint16_t)0x0C00) /*!< MSIZE[1:0] bits (Memory size) */ +#define DMA_CCR3_MSIZE_0 ((uint16_t)0x0400) /*!< Bit 0 */ +#define DMA_CCR3_MSIZE_1 ((uint16_t)0x0800) /*!< Bit 1 */ + +#define DMA_CCR3_PL ((uint16_t)0x3000) /*!< PL[1:0] bits (Channel Priority level) */ +#define DMA_CCR3_PL_0 ((uint16_t)0x1000) /*!< Bit 0 */ +#define DMA_CCR3_PL_1 ((uint16_t)0x2000) /*!< Bit 1 */ + +#define DMA_CCR3_MEM2MEM ((uint16_t)0x4000) /*!< Memory to memory mode */ + +/*!<****************** Bit definition for DMA_CCR4 register *******************/ +#define DMA_CCR4_EN ((uint16_t)0x0001) /*!
© COPYRIGHT 2019 MindMotion
+*/ +#ifndef __SYSTEM_MM32F103_H__ +#define __SYSTEM_MM32F103_H__ + + +extern uint32_t SystemCoreClock; +void SystemInit (void); + +#endif /* __SYSTEM_MM32F103_H__ */ +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ + diff --git a/bsp/mm32f103x/Libraries/MM32F103/Source/IAR_StartAsm/startup_MM32F103.s b/bsp/mm32f103x/Libraries/MM32F103/Source/IAR_StartAsm/startup_MM32F103.s new file mode 100644 index 000000000..385be18a4 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/Source/IAR_StartAsm/startup_MM32F103.s @@ -0,0 +1,333 @@ +;******************** (C) COPYRIGHT 2019 MindMotion ******************** +;* File Name : startup_MM32F103.s +;* Author : AE Team +;* Version : V1.1.0 +;* Date : 28/08/2019 +;* Description : MM32F103 Medium-density devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start, +;* - Set the vector table entries with the exceptions ISR +;* address +;* - Configure the system clock +;* - 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. +;******************************************************************************* +; +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Tamper + DCD RTC_IRQHandler ; RTC + DCD FLASH_IRQHandler ; Flash + DCD RCC_IRQHandler ; RCC + DCD EXTI0_IRQHandler ; EXTI Line 0 + DCD EXTI1_IRQHandler ; EXTI Line 1 + DCD EXTI2_IRQHandler ; EXTI Line 2 + DCD EXTI3_IRQHandler ; EXTI Line 3 + DCD EXTI4_IRQHandler ; EXTI Line 4 + DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 + DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 + DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 + DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 + DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 + DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 + DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 + DCD ADC1_2_IRQHandler ; ADC1 & ADC2 + DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX + DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; CAN1 RX1 + DCD CAN1_SCE_IRQHandler ; CAN1 SCE + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD TIM1_BRK_IRQHandler ; TIM1 Break + DCD TIM1_UP_IRQHandler ; TIM1 Update + DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation + DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare + DCD TIM2_IRQHandler ; TIM2 + DCD TIM3_IRQHandler ; TIM3 + DCD TIM4_IRQHandler ; TIM4 + DCD I2C1_EV_IRQHandler ; I2C1 Event + DCD I2C1_ER_IRQHandler ; I2C1 Error + DCD I2C2_EV_IRQHandler ; I2C2 Event + DCD I2C2_ER_IRQHandler ; I2C2 Error + DCD SPI1_IRQHandler ; SPI1 + DCD SPI2_IRQHandler ; SPI2 + DCD UART1_IRQHandler ; UART1 + DCD UART2_IRQHandler ; UART2 + DCD UART3_IRQHandler ; UART3 + DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 + DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line + DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:NOROOT:REORDER(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + PUBWEAK NMI_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +NMI_Handler + B NMI_Handler + PUBWEAK HardFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +HardFault_Handler + B HardFault_Handler + PUBWEAK MemManage_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +MemManage_Handler + B MemManage_Handler + PUBWEAK BusFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +BusFault_Handler + B BusFault_Handler + PUBWEAK UsageFault_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + PUBWEAK SVC_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SVC_Handler + B SVC_Handler + PUBWEAK DebugMon_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + PUBWEAK PendSV_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +PendSV_Handler + B PendSV_Handler + PUBWEAK SysTick_Handler + SECTION .text:CODE:NOROOT:REORDER(1) +SysTick_Handler + B SysTick_Handler + PUBWEAK WWDG_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +WWDG_IRQHandler + B WWDG_IRQHandler + PUBWEAK PVD_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +PVD_IRQHandler + B PVD_IRQHandler + PUBWEAK TAMPER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TAMPER_IRQHandler + B TAMPER_IRQHandler + PUBWEAK RTC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTC_IRQHandler + B RTC_IRQHandler + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +FLASH_IRQHandler + B FLASH_IRQHandler + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RCC_IRQHandler + B RCC_IRQHandler + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + PUBWEAK DMA1_Channel1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel1_IRQHandler + B DMA1_Channel1_IRQHandler + PUBWEAK DMA1_Channel2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel2_IRQHandler + B DMA1_Channel2_IRQHandler + PUBWEAK DMA1_Channel3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel3_IRQHandler + B DMA1_Channel3_IRQHandler + PUBWEAK DMA1_Channel4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel4_IRQHandler + B DMA1_Channel4_IRQHandler + PUBWEAK DMA1_Channel5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel5_IRQHandler + B DMA1_Channel5_IRQHandler + PUBWEAK DMA1_Channel6_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel6_IRQHandler + B DMA1_Channel6_IRQHandler + PUBWEAK DMA1_Channel7_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +DMA1_Channel7_IRQHandler + B DMA1_Channel7_IRQHandler + PUBWEAK ADC1_2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +ADC1_2_IRQHandler + B ADC1_2_IRQHandler + PUBWEAK USB_HP_CAN1_TX_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USB_HP_CAN1_TX_IRQHandler + B USB_HP_CAN1_TX_IRQHandler + PUBWEAK USB_LP_CAN1_RX0_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USB_LP_CAN1_RX0_IRQHandler + B USB_LP_CAN1_RX0_IRQHandler + PUBWEAK CAN1_RX1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN1_RX1_IRQHandler + B CAN1_RX1_IRQHandler + PUBWEAK CAN1_SCE_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +CAN1_SCE_IRQHandler + B CAN1_SCE_IRQHandler + PUBWEAK EXTI9_5_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI9_5_IRQHandler + B EXTI9_5_IRQHandler + PUBWEAK TIM1_BRK_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIM1_BRK_IRQHandler + B TIM1_BRK_IRQHandler + PUBWEAK TIM1_UP_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIM1_UP_IRQHandler + B TIM1_UP_IRQHandler + PUBWEAK TIM1_TRG_COM_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIM1_TRG_COM_IRQHandler + B TIM1_TRG_COM_IRQHandler + PUBWEAK TIM1_CC_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIM1_CC_IRQHandler + B TIM1_CC_IRQHandler + PUBWEAK TIM2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIM2_IRQHandler + B TIM2_IRQHandler + PUBWEAK TIM3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIM3_IRQHandler + B TIM3_IRQHandler + PUBWEAK TIM4_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +TIM4_IRQHandler + B TIM4_IRQHandler + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + PUBWEAK I2C2_EV_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C2_EV_IRQHandler + B I2C2_EV_IRQHandler + PUBWEAK I2C2_ER_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +I2C2_ER_IRQHandler + B I2C2_ER_IRQHandler + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + PUBWEAK SPI2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +SPI2_IRQHandler + B SPI2_IRQHandler + PUBWEAK UART1_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART1_IRQHandler + B UART1_IRQHandler + PUBWEAK UART2_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART2_IRQHandler + B UART2_IRQHandler + PUBWEAK UART3_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +UART3_IRQHandler + B UART3_IRQHandler + PUBWEAK EXTI15_10_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +EXTI15_10_IRQHandler + B EXTI15_10_IRQHandler + PUBWEAK RTCAlarm_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +RTCAlarm_IRQHandler + B RTCAlarm_IRQHandler + PUBWEAK USBWakeUp_IRQHandler + SECTION .text:CODE:NOROOT:REORDER(1) +USBWakeUp_IRQHandler + B USBWakeUp_IRQHandler + + END +;******************** (C) COPYRIGHT 2019 MindMotion ******************** diff --git a/bsp/mm32f103x/Libraries/MM32F103/Source/KEIL_StartAsm/startup_MM32F103.s b/bsp/mm32f103x/Libraries/MM32F103/Source/KEIL_StartAsm/startup_MM32F103.s new file mode 100644 index 000000000..e9b9c0af6 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/Source/KEIL_StartAsm/startup_MM32F103.s @@ -0,0 +1,299 @@ +;******************** (C) COPYRIGHT 2019 MindMotion ******************** +;* File Name : startup_MM32F103.s +;* Author : AE Team +;* Version : V1.1.0 +;* Date : 28/08/2019 +;* Description : MM32F103 Medium-density devices vector table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start, +;* - Set the vector table entries with the exceptions ISR +;* address +;* - Configure the system clock +;* - 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. +;******************************************************************************* +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Tamper + DCD RTC_IRQHandler ; RTC + DCD FLASH_IRQHandler ; Flash + DCD RCC_IRQHandler ; RCC + DCD EXTI0_IRQHandler ; EXTI Line 0 + DCD EXTI1_IRQHandler ; EXTI Line 1 + DCD EXTI2_IRQHandler ; EXTI Line 2 + DCD EXTI3_IRQHandler ; EXTI Line 3 + DCD EXTI4_IRQHandler ; EXTI Line 4 + DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 + DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 + DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 + DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 + DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 + DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 + DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 + DCD ADC1_2_IRQHandler ; ADC1_2 + DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX + DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; CAN1 RX1 + DCD CAN1_SCE_IRQHandler ; CAN1 SCE + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD TIM1_BRK_IRQHandler ; TIM1 Break + DCD TIM1_UP_IRQHandler ; TIM1 Update + DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation + DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare + DCD TIM2_IRQHandler ; TIM2 + DCD TIM3_IRQHandler ; TIM3 + DCD TIM4_IRQHandler ; TIM4 + DCD I2C1_EV_IRQHandler ; I2C1 Event + DCD I2C1_ER_IRQHandler ; I2C1 Error + DCD I2C2_EV_IRQHandler ; I2C2 Event + DCD I2C2_ER_IRQHandler ; I2C2 Error + DCD SPI1_IRQHandler ; SPI1 + DCD SPI2_IRQHandler ; SPI2 + DCD UART1_IRQHandler ; UART1 + DCD UART2_IRQHandler ; UART2 + DCD UART3_IRQHandler ; UART3 + DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 + DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line 17 + DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + IMPORT SystemInit + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WWDG_IRQHandler [WEAK] + EXPORT PVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_IRQHandler [WEAK] + EXPORT DMA1_Channel4_IRQHandler [WEAK] + EXPORT DMA1_Channel5_IRQHandler [WEAK] + EXPORT DMA1_Channel6_IRQHandler [WEAK] + EXPORT DMA1_Channel7_IRQHandler [WEAK] + EXPORT ADC1_2_IRQHandler [WEAK] + EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK] + EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK] + EXPORT CAN1_RX1_IRQHandler [WEAK] + EXPORT CAN1_SCE_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT TIM1_BRK_IRQHandler [WEAK] + EXPORT TIM1_UP_IRQHandler [WEAK] + EXPORT TIM1_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT TIM2_IRQHandler [WEAK] + EXPORT TIM3_IRQHandler [WEAK] + EXPORT TIM4_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT I2C2_EV_IRQHandler [WEAK] + EXPORT I2C2_ER_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT UART1_IRQHandler [WEAK] + EXPORT UART2_IRQHandler [WEAK] + EXPORT UART3_IRQHandler [WEAK] + EXPORT EXTI15_10_IRQHandler [WEAK] + EXPORT RTCAlarm_IRQHandler [WEAK] + EXPORT USBWakeUp_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_IRQHandler +DMA1_Channel4_IRQHandler +DMA1_Channel5_IRQHandler +DMA1_Channel6_IRQHandler +DMA1_Channel7_IRQHandler +ADC1_2_IRQHandler +USB_HP_CAN1_TX_IRQHandler +USB_LP_CAN1_RX0_IRQHandler +CAN1_RX1_IRQHandler +CAN1_SCE_IRQHandler +EXTI9_5_IRQHandler +TIM1_BRK_IRQHandler +TIM1_UP_IRQHandler +TIM1_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +TIM2_IRQHandler +TIM3_IRQHandler +TIM4_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +I2C2_EV_IRQHandler +I2C2_ER_IRQHandler +SPI1_IRQHandler +SPI2_IRQHandler +UART1_IRQHandler +UART2_IRQHandler +UART3_IRQHandler +EXTI15_10_IRQHandler +RTCAlarm_IRQHandler +USBWakeUp_IRQHandler + + B . + + ENDP + + ALIGN + +;******************************************************************************* +; User Stack and Heap initialization +;******************************************************************************* + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;******************** (C) COPYRIGHT 2019 MindMotion ******************** diff --git a/bsp/mm32f103x/Libraries/MM32F103/Source/system_MM32F103.c b/bsp/mm32f103x/Libraries/MM32F103/Source/system_MM32F103.c new file mode 100644 index 000000000..3b3312b51 --- /dev/null +++ b/bsp/mm32f103x/Libraries/MM32F103/Source/system_MM32F103.c @@ -0,0 +1,965 @@ +/** +****************************************************************************** +* @file system_MM32F103.c +* @author AE Team +* @version V1.1.0 +* @date 28/08/2019 +* @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. +* +* 1. This file provides two functions and one global variable to be called from +* user application: +* - SystemInit(): Setups the system clock (System clock source, PLL Multiplier +* factors, AHB/APBx prescalers and Flash settings). +* This function is called at startup just after reset and +* before branch to main program. This call is made inside +* the "startup_MM32F103.s" file. +* +* - SystemCoreClock variable: Contains the core clock (HCLK), it can be used +* by the user application to setup the SysTick +* timer or configure other parameters. +* +* - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must +* be called whenever the core clock is changed +* during program execution. +* +* 2. After each device reset the HSI (8 MHz) is used as system clock source. +* Then SystemInit() function is casslled, in "startup_MM32F103.s" file, to +* configure the system clock before to branch to main program. +* +* 3. If the system clock source selected by user fails to startup, the SystemInit() +* function will do nothing and HSI still used as system clock source. User can +* add some code to deal with this issue inside the SetSysClock() function. +* +* 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depedning on +* the product used), refer to "HSE_VALUE" define in "MM32F103.h" file. +* When HSE is used as system clock source, directly or through PLL, and you +* are using different crystal you have to adapt the HSE value to your own +* configuration. +* +****************************************************************************** +* +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE +* TIME. AS A RESULT, MindMotion SHALL NOT BE HELD LIABLE FOR ANY +* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING +* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE +* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. +* +*

© COPYRIGHT 2019 MindMotion

+****************************************************************************** +*/ + +/** @addtogroup CMSIS +* @{ +*/ +#include "HAL_device.h" + + +/** +* @} +*/ + +/** +* @} +*/ + +/*!< Uncomment the line corresponding to the desired System clock (SYSCLK) +frequency (after reset the HSI is used as SYSCLK source) + +IMPORTANT NOTE: +============== +1. After each device reset the HSI is used as System clock source. + +2. Please make sure that the selected System clock doesn't exceed your device's +maximum frequency. + +3. If none of the define below is enabled, the HSI is used as System clock +source. + +4. The System clock configuration functions provided within this file assume that: +- For Low, Medium and High density Value line devices an external 8MHz +crystal is used to drive the System clock. +- For Low, Medium and High density devices an external 8MHz crystal is +used to drive the System clock. +- For Connectivity line devices an external 25MHz crystal is used to drive +the System clock. +If you are using different crystal you have to adapt those functions accordingly. +*/ + +//#define SYSCLK_FREQ_HSE HSE_VALUE +//#define SYSCLK_FREQ_24MHz 24000000 +//#define SYSCLK_FREQ_36MHz 36000000 +//#define SYSCLK_FREQ_48MHz 48000000 +//#define SYSCLK_FREQ_56MHz 56000000 +//#define SYSCLK_FREQ_72MHz 72000000 +//#define SYSCLK_FREQ_96MHz 96000000 + +//#define SYSCLK_HSI_48MHz 48000000 +//#define SYSCLK_HSI_72MHz 72000000 +#define SYSCLK_HSI_96MHz 96000000 + +/*!< Uncomment the following line if you need to relocate your vector Table in +Internal SRAM. */ +//#define VECT_TAB_SRAM +#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. +This value must be a multiple of 0x200. */ + +/** +* @} +*/ + +/******************************************************************************* +* Clock Definitions +*******************************************************************************/ +#ifdef SYSCLK_FREQ_HSE +uint32_t SystemCoreClock = SYSCLK_FREQ_HSE; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_24MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_36MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_36MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_48MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_56MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_56MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_72MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_96MHz +uint32_t SystemCoreClock = SYSCLK_FREQ_96MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_HSI_48MHz +uint32_t SystemCoreClock = SYSCLK_HSI_48MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_HSI_72MHz +uint32_t SystemCoreClock = SYSCLK_HSI_72MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_HSI_96MHz +uint32_t SystemCoreClock = SYSCLK_HSI_96MHz; /*!< System Clock Frequency (Core Clock) */ +#else /*!< HSI Selected as System Clock source */ +uint32_t SystemCoreClock = HSI_VALUE_PLL_OFF; /*!< System Clock Frequency (Core Clock) */ +#endif + +__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +/** +* @} +*/ + +static void SetSysClock(void); + +#ifdef SYSCLK_FREQ_HSE +static void SetSysClockToHSE(void); +#elif defined SYSCLK_FREQ_24MHz +static void SetSysClockTo24(void); +#elif defined SYSCLK_FREQ_36MHz +static void SetSysClockTo36(void); +#elif defined SYSCLK_FREQ_48MHz +static void SetSysClockTo48(void); +#elif defined SYSCLK_FREQ_56MHz +static void SetSysClockTo56(void); +#elif defined SYSCLK_FREQ_72MHz +static void SetSysClockTo72(void); +#elif defined SYSCLK_FREQ_96MHz +static void SetSysClockTo96(void); + +#elif defined SYSCLK_HSI_48MHz +static void SetSysClockTo48_HSI(void); +#elif defined SYSCLK_HSI_72MHz +static void SetSysClockTo72_HSI(void); +#elif defined SYSCLK_HSI_96MHz +static void SetSysClockTo96_HSI(void); +#endif + +#ifdef DATA_IN_ExtSRAM +static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ + +/** +* @} +*/ + +/** +* @brief Setup the microcontroller system +* Initialize the Embedded Flash Interface, the PLL and update the +* SystemCoreClock variable. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +void SystemInit (void) +{ + /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + + /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ + RCC->CFGR &= (uint32_t)0xF8FF000C; + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ + RCC->CFGR &= (uint32_t)0xFF80FFFF; + RCC->CR &= (uint32_t)0x000FFFFF; + + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x009F0000; + + /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */ + /* Configure the Flash Latency cycles and enable prefetch buffer */ + SetSysClock(); + +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ +#endif +} + +/** +* @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers. +* @param None +* @retval None +*/ +static void SetSysClock(void) +{ +#ifdef SYSCLK_FREQ_HSE + SetSysClockToHSE(); +#elif defined SYSCLK_FREQ_24MHz + SetSysClockTo24(); +#elif defined SYSCLK_FREQ_36MHz + SetSysClockTo36(); +#elif defined SYSCLK_FREQ_48MHz + SetSysClockTo48(); +#elif defined SYSCLK_FREQ_56MHz + SetSysClockTo56(); +#elif defined SYSCLK_FREQ_72MHz + SetSysClockTo72(); +#elif defined SYSCLK_FREQ_96MHz + SetSysClockTo96(); + +#elif defined SYSCLK_HSI_48MHz + SetSysClockTo48_HSI(); +#elif defined SYSCLK_HSI_72MHz + SetSysClockTo72_HSI(); +#elif defined SYSCLK_HSI_96MHz + SetSysClockTo96_HSI(); +#endif + + /* If none of the define above is enabled, the HSI is used as System clock + source (default after reset) */ +} + +#ifdef SYSCLK_FREQ_HSE +/** +* @brief Selects HSE as System clock source and configure HCLK, PCLK2 +* and PCLK1 prescalers. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +static void SetSysClockToHSE(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + u16 i = 0; + int nTime = 2; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } + while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + /*delay more than 2ms*/ + while(nTime--) + { + i = 750; + while(i--); + } + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 0 wait state ,bit0~2*/ + FLASH->ACR &= ~0x07; + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + + /* Select HSE as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_HSE; + + /* Wait till HSE is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x04) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} +#elif defined SYSCLK_FREQ_24MHz +/** +* @brief Sets System clock frequency to 24MHz and configure HCLK, PCLK2 +* and PCLK1 prescalers. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +static void SetSysClockTo24(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + u16 i = 0; + int nTime = 2; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } + while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + /*delay more than 2ms*/ + while(nTime--) + { + i = 750; + while(i--); + } + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + /* Flash 0 wait state ,bit0~2*/ + FLASH->ACR &= ~0x07; + FLASH->ACR |= 0x01; + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + + /* PLL configuration: = (HSE ) * (2+1) = 24 MHz */ + RCC->CFGR &= (uint32_t)0xFFFCFFFF; + RCC->CR &= (uint32_t)0x000FFFFF; + + RCC->CFGR |= (uint32_t)RCC_CFGR_PLLSRC ; + RCC->CR |= 0x08000000;//pll=3/1 + //RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + //RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} +#elif defined SYSCLK_FREQ_36MHz +/** +* @brief Sets System clock frequency to 36MHz and configure HCLK, PCLK2 +* and PCLK1 prescalers. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +static void SetSysClockTo36(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + u16 i = 0; + int nTime = 2; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } + while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + /*delay more than 2ms*/ + while(nTime--) + { + i = 750; + while(i--); + } + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 0 wait state ,bit0~2*/ + FLASH->ACR &= ~0x07; + FLASH->ACR |= 0x01; + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + + /* PLL configuration: = (HSE ) * (8+1)/(1+1) = 36 MHz */ + RCC->CFGR &= (uint32_t)0xFFFCFFFF; + RCC->CR &= (uint32_t)0x000FFFFF; + + RCC->CFGR |= (uint32_t)RCC_CFGR_PLLSRC ; + RCC->CR |= 0x20100000;//pll = 9/2 + //RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + //RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} +#elif defined SYSCLK_FREQ_48MHz +/** +* @brief Sets System clock frequency to 48MHz and configure HCLK, PCLK2 +* and PCLK1 prescalers. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +static void SetSysClockTo48(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + u16 i = 0; + int nTime = 2; + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } + while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + /*delay more than 2ms*/ + while(nTime--) + { + i = 750; + while(i--); + } + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + /* Flash 0 wait state ,bit0~2*/ + FLASH->ACR &= ~0x07; + FLASH->ACR |= 0x01; + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + /* PLL configuration: = (HSE ) * (5+1) = 48MHz */ + RCC->CFGR &= (uint32_t)0xFFFCFFFF; + RCC->CR &= (uint32_t)0x000FFFFF; + + RCC->CFGR |= (uint32_t ) RCC_CFGR_PLLSRC ; + RCC->CR |= 0x14000000;//pll = 6/1 + //RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + //RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +#elif defined SYSCLK_FREQ_56MHz +/** +* @brief Sets System clock frequency to 56MHz and configure HCLK, PCLK2 +* and PCLK1 prescalers. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +static void SetSysClockTo56(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + u16 i = 0; + int nTime = 2; + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } + while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + /*delay more than 2ms*/ + while(nTime--) + { + i = 750; + while(i--); + } + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 0 wait state ,bit0~2*/ + FLASH->ACR &= ~0x07; + FLASH->ACR |= 0x02; + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + /* PLL configuration: = (HSE ) * (6+1) = 56 MHz */ + RCC->CFGR &= (uint32_t)0xFFFCFFFF; + RCC->CR &= (uint32_t)0x000FFFFF; + + RCC->CFGR |= (uint32_t)RCC_CFGR_PLLSRC ; + RCC->CR |= 0x18000000;//pll = 7/1 + //RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + //RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +#elif defined SYSCLK_FREQ_72MHz +/** +* @brief Sets System clock frequency to 72MHz and configure HCLK, PCLK2 +* and PCLK1 prescalers. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +static void SetSysClockTo72(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + u16 i = 0; + int nTime = 2; + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } + while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + /*delay more than 2ms*/ + while(nTime--) + { + i = 750; + while(i--); + } + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + /* Flash 0 wait state ,bit0~2*/ + FLASH->ACR &= ~0x07; + FLASH->ACR |= 0x03; + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + /* PLL configuration: = (HSE ) * (8+1) = 72 MHz */ + RCC->CFGR &= (uint32_t)0xFFFCFFFF; + RCC->CR &= (uint32_t)0x000FFFFF; + + RCC->CFGR |= (uint32_t)RCC_CFGR_PLLSRC ; + // RCC->CR |= 0x20000000;//pll = 9/1 + RCC->CR |= (1 << 20) | (17 << 26); //pll = 9/1 + //RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + //RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +#elif defined SYSCLK_FREQ_96MHz +/** +* @brief Sets System clock frequency to 72MHz and configure HCLK, PCLK2 +* and PCLK1 prescalers. +* @note This function should be used only after reset. +* @param None +* @retval None +*/ +static void SetSysClockTo96(void) +{ + int i = 100000; + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + int nTime = 2; + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } + while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + /*delay more than 2ms*/ + while(nTime--) + { + i = 1500; + while(i--); + } + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + i = 10000; while(i--); + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + /* Flash 0 wait state ,bit0~2*/ + FLASH->ACR &= ~0x07; + FLASH->ACR |= 0x03; + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + /* PLL configuration: = (HSE ) * (11+1) = 96 MHz */ + RCC->CFGR &= (uint32_t)0xFFFCFFFF; + RCC->CR &= (uint32_t)0x000FFFFF; + + RCC->CFGR |= (uint32_t)RCC_CFGR_PLLSRC ; + RCC->CR |= 0x2C000000;//pll = 12/1 + //RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + //RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + + + +#elif defined SYSCLK_HSI_48MHz +void SetSysClockTo48_HSI() +{ + unsigned char temp = 0; + + RCC->CR |= RCC_CR_HSION; + while(!(RCC->CR & RCC_CR_HSIRDY)); + RCC->CFGR = RCC_CFGR_PPRE1_2; //APB1=DIV2;APB2=DIV1;AHB=DIV1; + + RCC->CFGR &= ~RCC_CFGR_PLLSRC; //PLLSRC ON + + RCC->CR &= ~(RCC_CR_PLLON); //ÇåPLL// RCC->CR &=~(7<<20); //ÇåPLL + + RCC->CR &= ~(0x1f << 26); + RCC->CR |= (4 - 1) << 26; //ÉèÖÃPLLÖµ 2~16 + + FLASH->ACR = FLASH_ACR_LATENCY_1 | FLASH_ACR_PRFTBE; //FLASH 2¸öÑÓʱÖÜÆÚ + + RCC->CR |= RCC_CR_PLLON; //PLLON + while(!(RCC->CR & RCC_CR_PLLRDY)); //µÈ´ýPLLËø¶¨ + RCC->CFGR &= ~RCC_CFGR_SW; + RCC->CFGR |= RCC_CFGR_SW_PLL; //PLL×÷ΪϵͳʱÖÓ + while(temp != 0x02) //µÈ´ýPLL×÷ΪϵͳʱÖÓÉèÖóɹ¦ + { + temp = RCC->CFGR >> 2; + temp &= 0x03; + } +} +#elif defined SYSCLK_HSI_72MHz +void SetSysClockTo72_HSI() +{ + unsigned char temp = 0; + RCC->CR |= RCC_CR_HSION; + while(!(RCC->CR & RCC_CR_HSIRDY)); + RCC->CFGR = RCC_CFGR_PPRE1_2; //APB1=DIV2;APB2=DIV1;AHB=DIV1; + + RCC->CFGR &= ~RCC_CFGR_PLLSRC; //PLLSRC ON + + RCC->CR &= ~(RCC_CR_PLLON); //ÇåPLL// RCC->CR &=~(7<<20); //ÇåPLL + + RCC->CR &= ~(0x1f << 26); + RCC->CR |= (6 - 1) << 26; //ÉèÖÃPLLÖµ 2~16 + + FLASH->ACR = FLASH_ACR_LATENCY_1 | FLASH_ACR_PRFTBE; //FLASH 2¸öÑÓʱÖÜÆÚ + + RCC->CR |= RCC_CR_PLLON; //PLLON + while(!(RCC->CR & RCC_CR_PLLRDY)); //µÈ´ýPLLËø¶¨ + RCC->CFGR &= ~RCC_CFGR_SW; + RCC->CFGR |= RCC_CFGR_SW_PLL; //PLL×÷ΪϵͳʱÖÓ + while(temp != 0x02) //µÈ´ýPLL×÷ΪϵͳʱÖÓÉèÖóɹ¦ + { + temp = RCC->CFGR >> 2; + temp &= 0x03; + } +} +#elif defined SYSCLK_HSI_96MHz +void SetSysClockTo96_HSI() +{ + unsigned char temp = 0; + RCC->CR |= RCC_CR_HSION; + while(!(RCC->CR & RCC_CR_HSIRDY)); + RCC->CFGR = RCC_CFGR_PPRE1_2; //APB1=DIV2;APB2=DIV1;AHB=DIV1; + + RCC->CFGR &= ~RCC_CFGR_PLLSRC; //PLLSRC ON + + RCC->CR &= ~(RCC_CR_PLLON); //ÇåPLL// RCC->CR &=~(7<<20); //ÇåPLL + + RCC->CR &= ~(0x1f << 26); + RCC->CR |= (8 - 1) << 26; //ÉèÖÃPLLÖµ 2~16 + + FLASH->ACR = FLASH_ACR_LATENCY_1 | FLASH_ACR_LATENCY_0 | FLASH_ACR_PRFTBE; //FLASH 2¸öÑÓʱÖÜÆÚ + + RCC->CR |= RCC_CR_PLLON; //PLLON + while(!(RCC->CR & RCC_CR_PLLRDY)); //µÈ´ýPLLËø¶¨ + RCC->CFGR &= ~RCC_CFGR_SW; + RCC->CFGR |= RCC_CFGR_SW_PLL; //PLL×÷ΪϵͳʱÖÓ + while(temp != 0x02) //µÈ´ýPLL×÷ΪϵͳʱÖÓÉèÖóɹ¦ + { + temp = RCC->CFGR >> 2; + temp &= 0x03; + } +} +#endif + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ +/*-------------------------(C) COPYRIGHT 2019 MindMotion ----------------------*/ diff --git a/bsp/mm32f103x/Libraries/SConscript b/bsp/mm32f103x/Libraries/SConscript new file mode 100644 index 000000000..507afb073 --- /dev/null +++ b/bsp/mm32f103x/Libraries/SConscript @@ -0,0 +1,16 @@ +from building import * +import rtconfig +cwd = GetCurrentDir() +src = ['MM32F103/Source/system_MM32F103.c'] +CPPPATH = [cwd + '/CMSIS/KEIL_CORE', cwd + '/MM32F103/Include', cwd + '/MM32F103/Source', cwd + '/MM32F103/HAL_lib/inc'] + +src += Glob('MM32F103/HAL_lib/src/*.c') +CPPDEFINES = ['USE_STDPERIPH_DRIVER'] + +if rtconfig.CROSS_TOOL == 'keil': + src += ['MM32F103/Source/KEIL_StartAsm/startup_MM32F103.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += ['MM32F103/Source/IAR_StartAsm/startup_MM32F103.s'] +group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES) + +Return('group') diff --git a/bsp/mm32f103x/README.md b/bsp/mm32f103x/README.md new file mode 100644 index 000000000..a0330fb27 --- /dev/null +++ b/bsp/mm32f103x/README.md @@ -0,0 +1,112 @@ +# MM32F103xx 芯片BSP 说明 + +标签: MM32ã€Cortex-M3ã€MM32F103ã€å›½äº§MCU + +--- + +## 1. 简介 + +本文档使用 MM32 MiniBoard å¼€å‘æ¿æä¾›BSP(æ¿çº§æ”¯æŒåŒ…) 支æŒã€‚通过阅读本文档,开å‘者å¯ä»¥å¿«é€Ÿåœ°ä¸Šæ‰‹è¯¥ BSP,将 RT-Thread è¿è¡Œåœ¨å¼€å‘æ¿ä¸Šã€‚ + +### 1.1 å¼€å‘æ¿ä»‹ç» + +MM32 MiniBoard 是为了用户快速上手ã€äº†è§£å­¦ä¹ MM32系列MCU的一å—入门级开å‘æ¿ï¼Œå¯æ»¡è¶³åŸºç¡€æµ‹è¯•åŠé«˜ç«¯å¼€å‘需求。 + +å¼€å‘æ¿å¤–观如下图所示: + +MM32 MiniBoard + +![MM32 MiniBoard Rev.D2](figures/MM32%20MiniBoard%20Rev.D2_1.jpg) + +MM32 MiniBoard å¼€å‘æ¿æ¿è½½èµ„æºå¦‚下: + +- MCU:MM32F103RB ARM 32-bit Cortex-M3,主频 96MHz,128KB FLASH ,20KB SRAM +- 常用外设 + - LED:4个4色LED,å¯ç”¨äºŽæµ‹è¯•GPIO功能 + - 按键:1个å¤ä½æŒ‰é”®ã€ 1个WakeUp按键ã€ä¸¤ä¸ªæ™®é€šæŒ‰é”® + - SPI Flash W25P80,容é‡8M bit,速度50MHz + - I2C接å£EEPROM芯片,AT24C02,容é‡256字节 + - 1个旋转å¼ç”µä½è®¡ï¼ˆå˜é˜»å™¨ï¼‰ï¼Œç”¨äºŽADC测试 + - 能耗测试开关:待机模å¼å’Œè¿è¡Œæ¨¡å¼ +- 常用接å£ï¼šMicro-USB接å£ï¼ŒRS-232接å£ï¼ŒUARTæŽ¥å£ +- 调试接å£ï¼šSWD,支æŒJ-Linkã€U-LINK2ã€MM32-LINK调试器 + +更多信æ¯å¯ä»¥è®¿é—®ï¼š[çµåŠ¨å¾®ç”µå­å®˜æ–¹ç½‘ç«™][https://www.mindmotion.com.cn] + +### 1.2 MCU 简介 + +MM32F103RB 是上海çµåŠ¨å¾®ç”µå­è‚¡ä»½æœ‰é™å…¬å¸çš„一款é¢å‘电机驱动ã€å·¥ä¸šåº”用ã€æ¶ˆè´¹ç”µå­ã€ç™½è‰²å®¶ç”µç­‰é¢†åŸŸçš„低功耗芯片。包括如下硬件特性: + +| 硬件 | æè¿° | +| -- | -- | +|芯片型å·| MM32F103RB | +|CPU| ARM Cortex-M3 | +|主频| 96MHz | +|片内SRAM| 20KB | +|片内Flash| 128KB | + +## 2. 编译说明 + +本 BSP 为开å‘者æä¾› MDK5 工程。下é¢ä»¥ MDK5 å¼€å‘环境为例,介ç»å¦‚何将系统è¿è¡Œèµ·æ¥ã€‚ + +åŒå‡» project.uvprojx 文件,打开 MDK5 工程,编译并下载程åºåˆ°å¼€å‘æ¿ã€‚ + +> 工程默认é…置使用 Jlink 仿真器下载程åºï¼Œåœ¨é€šè¿‡ Jlink 连接开å‘æ¿åˆ° PC 的基础上,点击下载按钮å³å¯ä¸‹è½½ç¨‹åºåˆ°å¼€å‘æ¿ + +推è熟悉 RT_Thread 的用户使用[env工具](https://www.rt-thread.org/page/download.html),å¯ä»¥åœ¨console下进入到 `bsp/mm32f103` 目录中,è¿è¡Œä»¥ä¸‹å‘½ä»¤ï¼š + +`scons` + +æ¥ç¼–译这个æ¿çº§æ”¯æŒåŒ…。如果编译正确无误,会产生rtthread.elfã€rtthread.bin文件。其中 rtthread.bin å¯ä»¥çƒ§å†™åˆ°è®¾å¤‡ä¸­è¿è¡Œã€‚ + +## 3. 烧写åŠæ‰§è¡Œ + +### 3.1 硬件连接 + +使用MM32-LINK或Jlink等调试工具连接开å‘æ¿åˆ°PC,通过调试调试工具供电或使用Micro-USB供电。若使用Jlink等调试工具,还需è¦å°†UART1_TX(PA9)ã€UART1_RX(PA10)ã€GND接到串å£å·¥å…·ä¸Šã€‚ + +使用MM32-LINK连接开å‘æ¿å¦‚下图所示: + +MM32-LINK+MiniBoard + +![MM32-LINK+MiniBoard Rev.D2](figures/MM32%20MiniBoard%20Rev.D2_2.jpg) + +*你也å¯ä»¥ä½¿ç”¨ J-Link 或者 DAP-Link 实现下载调试。 + +### 3.2 è¿è¡Œç»“æžœ + +如果编译 & 烧写无误,当å¤ä½è®¾å¤‡åŽï¼Œä¼šçœ‹åˆ°æ¿å­ä¸Šçš„1个LEDé—ªçƒã€‚串å£æ‰“å°RT-Threadçš„å¯åŠ¨logoä¿¡æ¯ï¼š + +``` + \ | / +- RT - Thread Operating System + / | \ 4.0.0 build Dec 11 2018 + 2006 - 2018 Copyright by rt-thread team +msh /> +``` + +## 4. 驱动支æŒæƒ…况åŠè®¡åˆ’ + +| 驱动 | 支æŒæƒ…况 | 备注 | +| ---------- | :------: | :--------------------------: | +| UART | æ”¯æŒ | UART1/2 | +| GPIO | æ”¯æŒ | / | + +## 5. è”ç³»äººä¿¡æ¯ + +维护人: + +-[StackRyan](https://github.com/StackRyan) email: yuanjyjyj@outlook.com + +## 6. å‚考 + +- [MM32F103xx 系列数æ®æ‰‹å†Œ](https://www.mindmotion.com.cn/userfiles/images/MM32F103XiLieWenDang/DS_MM32F103xx_n_V1.09_SC.pdf) + +- [MM32F103xx 系列用户手册](https://www.mindmotion.com.cn/userfiles/images/MM32F103XiLieWenDang/UM_MM32F103xx_n_V1.69_SC.pdf) + +- [MiniBoardStartKit资料包](https://www.mindmotion.com.cn/download.aspx?cid=2545) + +- [keil pack安装包](https://www.mindmotion.com.cn/download.aspx?cid=2546) + +- [MM32 支æŒå·¥å…·åŒ…](https://www.mindmotion.com.cn/download.aspx?cid=2547) + diff --git a/bsp/mm32f103x/SConscript b/bsp/mm32f103x/SConscript new file mode 100644 index 000000000..1b1c7506a --- /dev/null +++ b/bsp/mm32f103x/SConscript @@ -0,0 +1,11 @@ +from building import * + +cwd = GetCurrentDir() + +objs = [] +list = os.listdir(cwd) +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) +Return('objs') diff --git a/bsp/mm32f103x/SConstruct b/bsp/mm32f103x/SConstruct new file mode 100644 index 000000000..8418d596c --- /dev/null +++ b/bsp/mm32f103x/SConstruct @@ -0,0 +1,40 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map project.map') + +Export('RTT_ROOT') +Export('rtconfig') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/mm32f103x/applications/SConscript b/bsp/mm32f103x/applications/SConscript new file mode 100644 index 000000000..6452d3914 --- /dev/null +++ b/bsp/mm32f103x/applications/SConscript @@ -0,0 +1,9 @@ +from building import * + +cwd = GetCurrentDir() +CPPPATH = [cwd, str(Dir('#'))] +src = Glob('*.c') + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/mm32f103x/drivers/Kconfig b/bsp/mm32f103x/drivers/Kconfig new file mode 100644 index 000000000..ae70f1800 --- /dev/null +++ b/bsp/mm32f103x/drivers/Kconfig @@ -0,0 +1,23 @@ +menu "Hardware Drivers Config" + + menu "On-chip Peripheral Drivers" + menu "GPIO Drivers" + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default n + endmenu + menu "UART Drivers" + config BSP_USING_UART1 + bool "Enable UART1 PA9/10(T/R)" + select RT_USING_SERIAL + default n + + config BSP_USING_UART2 + bool "Enable UART2 PA2/3(T/R)" + select RT_USING_SERIAL + default y + endmenu + endmenu + +endmenu diff --git a/bsp/mm32f103x/drivers/SConscript b/bsp/mm32f103x/drivers/SConscript new file mode 100644 index 000000000..e7e064caf --- /dev/null +++ b/bsp/mm32f103x/drivers/SConscript @@ -0,0 +1,24 @@ +# RT-Thread building script for component + +from building import * + +cwd = GetCurrentDir() + +# add the general drivers. +src = Split(""" +board.c +""") + +# add serial driver code +if GetDepend('BSP_USING_UART1') or GetDepend('BSP_USING_UART2'): + src += ['drv_uart.c'] + +# add gpio driver code +if GetDepend(['BSP_USING_GPIO']): + src += ['drv_gpio.c'] + +CPPPATH = [cwd] + +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/mm32f103x/drivers/board.c b/bsp/mm32f103x/drivers/board.c new file mode 100644 index 000000000..89c3c47ba --- /dev/null +++ b/bsp/mm32f103x/drivers/board.c @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2017-2019, MindMotion AE Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-08-04 stackRyan first version + */ +#include +#include +#include +#include +extern uint32_t SystemCoreClock; +extern void SystemInit(void); + +#ifdef RT_USING_FINSH +#include +static void reboot(uint8_t argc, char **argv) +{ + rt_hw_cpu_reset(); +} +MSH_CMD_EXPORT(reboot, Reboot System); +#endif /* RT_USING_FINSH */ + +static void bsp_clock_config(void) +{ + SystemInit(); + SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); + SysTick->CTRL |= 0x00000004UL; +} +void SysTick_Handler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + + rt_tick_increase(); + + /* leave interrupt */ + rt_interrupt_leave(); +} + +void rt_hw_board_init() +{ + bsp_clock_config(); +#if defined(RT_USING_HEAP) + rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END); +#endif + volatile uint16_t i=0; + rt_hw_uart_init(); + i = UINT16_MAX; + while(i--); //wait for a while after uart initiated. +#ifdef RT_USING_COMPONENTS_INIT + rt_components_board_init(); +#endif +#ifdef RT_USING_CONSOLE + rt_console_set_device(RT_CONSOLE_DEVICE_NAME); +#endif +} diff --git a/bsp/mm32f103x/drivers/board.h b/bsp/mm32f103x/drivers/board.h new file mode 100644 index 000000000..60c0f4ff6 --- /dev/null +++ b/bsp/mm32f103x/drivers/board.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2017-2019, MindMotion AE Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-03-13 henryhuang first version + */ + +#ifndef BOARD_H__ +#define BOARD_H__ +#include +#include + +#define SRAM_SIZE 0x5000 + +#define SRAM_END (SRAM_BASE + SRAM_SIZE) +#ifdef __CC_ARM + extern int Image$$RW_IRAM1$$ZI$$Limit; + #define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ + #pragma section = "HEAP" + #define HEAP_BEGIN (__segment_end("HEAP")) +#else + extern int __bss_end; + #define HEAP_BEGIN ((void *)&__bss_end) +#endif +#define HEAP_END SRAM_END +#define HEAP_SIZE (HEAP_END - (rt_uint32_t)HEAP_BEGIN) +extern void rt_hw_board_init(void); +#endif diff --git a/bsp/mm32f103x/drivers/drv_gpio.c b/bsp/mm32f103x/drivers/drv_gpio.c new file mode 100644 index 000000000..4f87ee3f5 --- /dev/null +++ b/bsp/mm32f103x/drivers/drv_gpio.c @@ -0,0 +1,544 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-08-04 stackRyan first version + */ +#include +#include +#include +#include + +#define MM32_PIN(index, rcc, gpio, gpio_index) { 0, RCC_##rcc##Periph_GPIO##gpio, GPIO##gpio, GPIO_Pin_##gpio_index, GPIO_PortSourceGPIO##gpio, GPIO_PinSource##gpio_index} +#define MM32_PIN_DEFAULT {-1, 0, 0, 0, 0, 0} +/* MM32 GPIO driver */ +struct pin_index +{ + int index; + uint32_t rcc; + GPIO_TypeDef *gpio; + uint32_t pin; + uint8_t port_source; + uint8_t pin_source; +}; +static const struct pin_index mm32_pin_map[] = +{ + MM32_PIN_DEFAULT, + MM32_PIN(1, APB2, A, 0), + MM32_PIN(2, APB2, A, 1), + MM32_PIN(3, APB2, A, 2), + MM32_PIN(4, APB2, A, 3), + MM32_PIN(5, APB2, A, 4), + MM32_PIN(6, APB2, A, 5), + MM32_PIN(7, APB2, A, 6), + MM32_PIN(8, APB2, A, 7), + MM32_PIN(9, APB2, A, 8), + MM32_PIN(10, APB2, A, 9), + MM32_PIN(11, APB2, A, 10), + MM32_PIN(12, APB2, A, 11), + MM32_PIN(13, APB2, A, 12), + MM32_PIN(14, APB2, A, 13), + MM32_PIN(15, APB2, A, 14), + MM32_PIN(16, APB2, A, 15), + MM32_PIN(17, APB2, B, 0), + MM32_PIN(18, APB2, B, 1), + MM32_PIN(19, APB2, B, 2), + MM32_PIN(20, APB2, B, 3), + MM32_PIN(21, APB2, B, 4), + MM32_PIN(22, APB2, B, 5), + MM32_PIN(23, APB2, B, 6), + MM32_PIN(24, APB2, B, 7), + MM32_PIN(25, APB2, B, 8), + MM32_PIN(26, APB2, B, 9), + MM32_PIN(27, APB2, B, 10), + MM32_PIN(28, APB2, B, 11), + MM32_PIN(29, APB2, B, 12), + MM32_PIN(30, APB2, B, 13), + MM32_PIN(31, APB2, B, 14), + MM32_PIN(32, APB2, B, 15), + MM32_PIN(33, APB2, C, 0), + MM32_PIN(34, APB2, C, 1), + MM32_PIN(35, APB2, C, 2), + MM32_PIN(36, APB2, C, 3), + MM32_PIN(37, APB2, C, 4), + MM32_PIN(38, APB2, C, 5), + MM32_PIN(39, APB2, C, 6), + MM32_PIN(40, APB2, C, 7), + MM32_PIN(41, APB2, C, 8), + MM32_PIN(42, APB2, C, 9), + MM32_PIN(43, APB2, C, 10), + MM32_PIN(44, APB2, C, 11), + MM32_PIN(45, APB2, C, 12), + MM32_PIN(46, APB2, C, 13), + MM32_PIN(47, APB2, C, 14), + MM32_PIN(48, APB2, C, 15), + MM32_PIN(49, APB2, D, 0), + MM32_PIN(50, APB2, D, 1), + MM32_PIN(51, APB2, D, 2), + MM32_PIN(52, APB2, D, 3), + MM32_PIN(53, APB2, D, 4), + MM32_PIN(54, APB2, D, 5), + MM32_PIN(55, APB2, D, 6), + MM32_PIN(56, APB2, D, 7), + MM32_PIN(57, APB2, D, 8), + MM32_PIN(58, APB2, D, 9), + MM32_PIN(59, APB2, D, 10), + MM32_PIN(60, APB2, D, 11), + MM32_PIN(61, APB2, D, 12), + MM32_PIN(62, APB2, D, 13), + MM32_PIN(63, APB2, D, 14), + MM32_PIN(64, APB2, D, 15), +}; + +struct pin_irq_map +{ + rt_uint16_t pinbit; + rt_uint32_t irqbit; + enum IRQn irqno; +}; +const struct pin_irq_map mm32_pin_irq_map[] = +{ + {GPIO_Pin_0, EXTI_Line0, EXTI0_IRQn }, + {GPIO_Pin_1, EXTI_Line1, EXTI1_IRQn }, + {GPIO_Pin_2, EXTI_Line2, EXTI2_IRQn }, + {GPIO_Pin_3, EXTI_Line3, EXTI3_IRQn }, + {GPIO_Pin_4, EXTI_Line4, EXTI4_IRQn }, + {GPIO_Pin_5, EXTI_Line5, EXTI9_5_IRQn }, + {GPIO_Pin_6, EXTI_Line6, EXTI9_5_IRQn }, + {GPIO_Pin_7, EXTI_Line7, EXTI9_5_IRQn }, + {GPIO_Pin_8, EXTI_Line8, EXTI9_5_IRQn }, + {GPIO_Pin_9, EXTI_Line9, EXTI9_5_IRQn }, + {GPIO_Pin_10, EXTI_Line10, EXTI15_10_IRQn}, + {GPIO_Pin_11, EXTI_Line11, EXTI15_10_IRQn}, + {GPIO_Pin_12, EXTI_Line12, EXTI15_10_IRQn}, + {GPIO_Pin_13, EXTI_Line13, EXTI15_10_IRQn}, + {GPIO_Pin_14, EXTI_Line14, EXTI15_10_IRQn}, + {GPIO_Pin_15, EXTI_Line15, EXTI15_10_IRQn}, +}; +struct rt_pin_irq_hdr mm32_pin_irq_hdr_tab[] = +{ + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, + {-1, 0, RT_NULL, RT_NULL}, +}; +#define ITEM_NUM(items) sizeof(items) / sizeof(items[0]) +const struct pin_index *get_pin(uint8_t pin) +{ + const struct pin_index *index; + + if (pin < ITEM_NUM(mm32_pin_map)) + { + index = &mm32_pin_map[pin]; + if (index->gpio == 0) + index = RT_NULL; + } + else + { + index = RT_NULL; + } + + return index; +}; + +void mm32_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value) +{ + const struct pin_index *index; + + index = get_pin(pin); + if (index == RT_NULL) + { + return; + } + if (value == PIN_LOW) + { + GPIO_ResetBits(index->gpio, index->pin); + } + else + { + GPIO_SetBits(index->gpio, index->pin); + } +} + +int mm32_pin_read(rt_device_t dev, rt_base_t pin) +{ + int value; + const struct pin_index *index; + + value = PIN_LOW; + index = get_pin(pin); + if (index == RT_NULL) + { + return PIN_LOW; + } + if (GPIO_ReadInputDataBit(index->gpio, index->pin) == Bit_RESET) + { + value = PIN_LOW; + } + else + { + value = PIN_HIGH; + } + return value; +} + +void mm32_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode) +{ + const struct pin_index *index; + GPIO_InitTypeDef GPIO_InitStructure; + + index = get_pin(pin); + if (index == RT_NULL) + { + return; + } + /* GPIO Periph clock enable */ + RCC_APB2PeriphClockCmd(index->rcc, ENABLE); + /* Configure GPIO_InitStructure */ + GPIO_InitStructure.GPIO_Pin = index->pin; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + if (mode == PIN_MODE_OUTPUT) + { + /* output setting */ + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; + } + else if (mode == PIN_MODE_OUTPUT_OD) + { + /* output setting: od. */ + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; + } + else if (mode == PIN_MODE_INPUT) + { + /* input setting: not pull. */ + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; + } + else if (mode == PIN_MODE_INPUT_PULLUP) + { + /* input setting: pull up. */ + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; + } + else + { + /* input setting:default. */ + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; + } + GPIO_Init( index->gpio, &GPIO_InitStructure); +} +rt_inline rt_int32_t bit2bitno(rt_uint32_t bit) +{ + int i; + for (i = 0; i < 32; i++) + { + if ((0x01 << i) == bit) + { + return i; + } + } + return -1; +} +rt_inline const struct pin_irq_map *get_pin_irq_map(uint32_t pinbit) +{ + rt_int32_t mapindex = bit2bitno(pinbit); + if (mapindex < 0 || mapindex >= ITEM_NUM(mm32_pin_irq_map)) + { + return RT_NULL; + } + return &mm32_pin_irq_map[mapindex]; +}; +rt_err_t mm32_pin_attach_irq(struct rt_device *device, rt_int32_t pin, + rt_uint32_t mode, void (*hdr)(void *args), void *args) +{ + const struct pin_index *index; + rt_base_t level; + rt_int32_t irqindex = -1; + + index = get_pin(pin); + if (index == RT_NULL) + { + return -RT_ENOSYS; + } + irqindex = bit2bitno(index->pin); + if (irqindex < 0 || irqindex >= ITEM_NUM(mm32_pin_irq_map)) + { + return -RT_ENOSYS; + } + + level = rt_hw_interrupt_disable(); + if (mm32_pin_irq_hdr_tab[irqindex].pin == pin && + mm32_pin_irq_hdr_tab[irqindex].hdr == hdr && + mm32_pin_irq_hdr_tab[irqindex].mode == mode && + mm32_pin_irq_hdr_tab[irqindex].args == args + ) + { + rt_hw_interrupt_enable(level); + return RT_EOK; + } + if (mm32_pin_irq_hdr_tab[irqindex].pin != -1) + { + rt_hw_interrupt_enable(level); + return -RT_EBUSY; + } + mm32_pin_irq_hdr_tab[irqindex].pin = pin; + mm32_pin_irq_hdr_tab[irqindex].hdr = hdr; + mm32_pin_irq_hdr_tab[irqindex].mode = mode; + mm32_pin_irq_hdr_tab[irqindex].args = args; + rt_hw_interrupt_enable(level); + + return RT_EOK; +} +rt_err_t mm32_pin_detach_irq(struct rt_device *device, rt_int32_t pin) +{ + const struct pin_index *index; + rt_base_t level; + rt_int32_t irqindex = -1; + + index = get_pin(pin); + if (index == RT_NULL) + { + return RT_ENOSYS; + } + irqindex = bit2bitno(index->pin); + if (irqindex < 0 || irqindex >= ITEM_NUM(mm32_pin_irq_map)) + { + return RT_ENOSYS; + } + + level = rt_hw_interrupt_disable(); + if (mm32_pin_irq_hdr_tab[irqindex].pin == -1) + { + rt_hw_interrupt_enable(level); + return RT_EOK; + } + mm32_pin_irq_hdr_tab[irqindex].pin = -1; + mm32_pin_irq_hdr_tab[irqindex].hdr = RT_NULL; + mm32_pin_irq_hdr_tab[irqindex].mode = 0; + mm32_pin_irq_hdr_tab[irqindex].args = RT_NULL; + rt_hw_interrupt_enable(level); + + return RT_EOK; +} +rt_err_t mm32_pin_irq_enable(struct rt_device *device, rt_base_t pin, + rt_uint32_t enabled) +{ + const struct pin_index *index; + const struct pin_irq_map *irqmap; + rt_base_t level; + rt_int32_t irqindex = -1; + GPIO_InitTypeDef GPIO_InitStructure; + NVIC_InitTypeDef NVIC_InitStructure; + EXTI_InitTypeDef EXTI_InitStructure; + + index = get_pin(pin); + if (index == RT_NULL) + { + return -RT_ENOSYS; + } + if (enabled == PIN_IRQ_ENABLE) + { + irqindex = bit2bitno(index->pin); + if (irqindex < 0 || irqindex >= ITEM_NUM(mm32_pin_irq_map)) + { + return -RT_ENOSYS; + } + level = rt_hw_interrupt_disable(); + if (mm32_pin_irq_hdr_tab[irqindex].pin == -1) + { + rt_hw_interrupt_enable(level); + return -RT_ENOSYS; + } + irqmap = &mm32_pin_irq_map[irqindex]; + /* GPIO Periph clock enable */ + RCC_APB2PeriphClockCmd(index->rcc, ENABLE); + /* Configure GPIO_InitStructure */ + GPIO_InitStructure.GPIO_Pin = index->pin; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_Init(index->gpio, &GPIO_InitStructure); + + NVIC_InitStructure.NVIC_IRQChannel = irqmap->irqno; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + + GPIO_EXTILineConfig(index->port_source, index->pin_source); + EXTI_InitStructure.EXTI_Line = irqmap->irqbit; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + switch (mm32_pin_irq_hdr_tab[irqindex].mode) + { + case PIN_IRQ_MODE_RISING: + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; + break; + case PIN_IRQ_MODE_FALLING: + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; + break; + case PIN_IRQ_MODE_RISING_FALLING: + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; + break; + } + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + EXTI_Init(&EXTI_InitStructure); + rt_hw_interrupt_enable(level); + } + else if (enabled == PIN_IRQ_DISABLE) + { + irqmap = get_pin_irq_map(index->pin); + if (irqmap == RT_NULL) + { + return -RT_ENOSYS; + } + EXTI_InitStructure.EXTI_Line = irqmap->irqbit; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; + EXTI_InitStructure.EXTI_LineCmd = DISABLE; + EXTI_Init(&EXTI_InitStructure); + } + else + { + return -RT_ENOSYS; + } + + return RT_EOK; +} +const static struct rt_pin_ops _mm32_pin_ops = +{ + mm32_pin_mode, + mm32_pin_write, + mm32_pin_read, + mm32_pin_attach_irq, + mm32_pin_detach_irq, + mm32_pin_irq_enable, + RT_NULL, +}; + +int rt_hw_pin_init(void) +{ + int result; + + result = rt_device_pin_register("pin", &_mm32_pin_ops, RT_NULL); + return result; +} +INIT_BOARD_EXPORT(rt_hw_pin_init); + +rt_inline void pin_irq_hdr(int irqno) +{ + EXTI_ClearITPendingBit(mm32_pin_irq_map[irqno].irqbit); + if (mm32_pin_irq_hdr_tab[irqno].hdr) + { + mm32_pin_irq_hdr_tab[irqno].hdr(mm32_pin_irq_hdr_tab[irqno].args); + } +} +void EXTI0_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + pin_irq_hdr(0); + /* leave interrupt */ + rt_interrupt_leave(); +} +void EXTI1_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + pin_irq_hdr(1); + /* leave interrupt */ + rt_interrupt_leave(); +} +void EXTI2_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + pin_irq_hdr(2); + /* leave interrupt */ + rt_interrupt_leave(); +} +void EXTI3_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + pin_irq_hdr(3); + /* leave interrupt */ + rt_interrupt_leave(); +} +void EXTI4_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + pin_irq_hdr(4); + /* leave interrupt */ + rt_interrupt_leave(); +} +void EXTI9_5_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + if (EXTI_GetITStatus(EXTI_Line5) != RESET) + { + pin_irq_hdr(5); + } + if (EXTI_GetITStatus(EXTI_Line6) != RESET) + { + pin_irq_hdr(6); + } + if (EXTI_GetITStatus(EXTI_Line7) != RESET) + { + pin_irq_hdr(7); + } + if (EXTI_GetITStatus(EXTI_Line8) != RESET) + { + pin_irq_hdr(8); + } + if (EXTI_GetITStatus(EXTI_Line9) != RESET) + { + pin_irq_hdr(9); + } + /* leave interrupt */ + rt_interrupt_leave(); +} +void EXTI15_10_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + if (EXTI_GetITStatus(EXTI_Line10) != RESET) + { + pin_irq_hdr(10); + } + if (EXTI_GetITStatus(EXTI_Line11) != RESET) + { + pin_irq_hdr(11); + } + if (EXTI_GetITStatus(EXTI_Line12) != RESET) + { + pin_irq_hdr(12); + } + if (EXTI_GetITStatus(EXTI_Line13) != RESET) + { + pin_irq_hdr(13); + } + if (EXTI_GetITStatus(EXTI_Line14) != RESET) + { + pin_irq_hdr(14); + } + if (EXTI_GetITStatus(EXTI_Line15) != RESET) + { + pin_irq_hdr(15); + } + /* leave interrupt */ + rt_interrupt_leave(); +} diff --git a/bsp/mm32f103x/drivers/drv_gpio.h b/bsp/mm32f103x/drivers/drv_gpio.h new file mode 100644 index 000000000..09de5d6e9 --- /dev/null +++ b/bsp/mm32f103x/drivers/drv_gpio.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-04-02 henryhuang the first version + */ +#ifndef DRV_GPIO_H__ +#define DRV_GPIO_H__ + +int rt_hw_pin_init(void); + +#endif diff --git a/bsp/mm32f103x/drivers/drv_uart.c b/bsp/mm32f103x/drivers/drv_uart.c new file mode 100644 index 000000000..22a80a1b3 --- /dev/null +++ b/bsp/mm32f103x/drivers/drv_uart.c @@ -0,0 +1,248 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-08-04 stackRyan first version + */ +#include +#include +#include "drv_uart.h" + +/* UART1 */ +#define UART1_GPIO_TX GPIO_Pin_9 +#define UART1_GPIO_TX_SOURCE GPIO_PinSource9 +#define UART1_GPIO_RX GPIO_Pin_10 +#define UART1_GPIO_RX_SOURCE GPIO_PinSource10 +#define UART1_GPIO_AF GPIO_AF_1 +#define UART1_GPIO GPIOA + +/* UART2 */ +#define UART2_GPIO_TX GPIO_Pin_2 +#define UART2_GPIO_TX_SOURCE GPIO_PinSource2 +#define UART2_GPIO_RX GPIO_Pin_3 +#define UART2_GPIO_RX_SOURCE GPIO_PinSource3 +#define UART2_GPIO_AF GPIO_AF_1 +#define UART2_GPIO GPIOA + +/* uart driver */ +struct mm32_uart +{ + UART_TypeDef *uart; + IRQn_Type irq; +}; + +static rt_err_t mm32_uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg) +{ + struct mm32_uart *uart; + UART_InitTypeDef UART_InitStructure; + RT_ASSERT(serial != RT_NULL); + RT_ASSERT(cfg != RT_NULL); + uart = (struct mm32_uart *)serial->parent.user_data; + UART_InitStructure.UART_BaudRate = cfg->baud_rate; + if (cfg->data_bits == DATA_BITS_8) + UART_InitStructure.UART_WordLength = UART_WordLength_8b; + if (cfg->stop_bits == STOP_BITS_1) + UART_InitStructure.UART_StopBits = UART_StopBits_1; + else if (cfg->stop_bits == STOP_BITS_2) + UART_InitStructure.UART_StopBits = UART_StopBits_2; + UART_InitStructure.UART_Parity = UART_Parity_No; + UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None; + UART_InitStructure.UART_Mode = UART_Mode_Rx | UART_Mode_Tx; + UART_Init(uart->uart, &UART_InitStructure); + /* Enable UART */ + UART_Cmd(uart->uart, ENABLE); + return RT_EOK; +} + +static rt_err_t mm32_uart_control(struct rt_serial_device *serial, int cmd, void *arg) +{ + struct mm32_uart *uart; + RT_ASSERT(serial != RT_NULL); + uart = (struct mm32_uart *)serial->parent.user_data; + switch (cmd) + { + case RT_DEVICE_CTRL_CLR_INT: + /* disable rx irq */ + NVIC_DisableIRQ(uart->irq); + UART_ITConfig(uart->uart, UART_IT_RXIEN, DISABLE); + break; + case RT_DEVICE_CTRL_SET_INT: + /* enable rx irq */ + NVIC_EnableIRQ(uart->irq); + /* enable interrupt */ + UART_ITConfig(uart->uart, UART_IT_RXIEN, ENABLE); + break; + } + return RT_EOK; +} + +static int mm32_uart_putc(struct rt_serial_device *serial, char c) +{ + struct mm32_uart *uart; + RT_ASSERT(serial != RT_NULL); + uart = (struct mm32_uart *)serial->parent.user_data; + while ((uart->uart->CSR & UART_IT_TXIEN) == 0); + uart->uart->TDR = (c & (uint16_t)0x00FF); + return 1; +} + +static int mm32_uart_getc(struct rt_serial_device *serial) +{ + int ch; + struct mm32_uart *uart; + RT_ASSERT(serial != RT_NULL); + uart = (struct mm32_uart *)serial->parent.user_data; + ch = -1; + if (uart->uart->CSR & UART_FLAG_RXAVL) + { + ch = uart->uart->RDR & 0xff; + } + return ch; +} + +static const struct rt_uart_ops mm32_uart_ops = +{ + mm32_uart_configure, + mm32_uart_control, + mm32_uart_putc, + mm32_uart_getc, +}; + +#if defined(BSP_USING_UART1) +/* UART1 device driver structure */ +static struct mm32_uart uart1; +struct rt_serial_device serial1; +void UART1_IRQHandler(void) +{ + struct mm32_uart *uart; + uart = &uart1; + /* enter interrupt */ + rt_interrupt_enter(); + if (UART_GetITStatus(uart->uart, UART_IT_RXIEN) != RESET) + { + UART_ClearITPendingBit(uart->uart, UART_IT_RXIEN); + rt_hw_serial_isr(&serial1, RT_SERIAL_EVENT_RX_IND); + } + if (UART_GetITStatus(uart->uart, UART_IT_TXIEN) != RESET) + { + /* clear interrupt */ + UART_ClearITPendingBit(uart->uart, UART_IT_TXIEN); + } + /* leave interrupt */ + rt_interrupt_leave(); +} +#endif /* BSP_USING_UART1 */ + +#if defined(BSP_USING_UART2) +/* UART2 device driver structure */ +static struct mm32_uart uart2; +struct rt_serial_device serial2; +void UART2_IRQHandler(void) +{ + struct mm32_uart *uart; + uart = &uart2; + /* enter interrupt */ + rt_interrupt_enter(); + if (UART_GetITStatus(uart->uart, UART_IT_RXIEN) != RESET) + { + UART_ClearITPendingBit(uart->uart, UART_IT_RXIEN); + rt_hw_serial_isr(&serial2, RT_SERIAL_EVENT_RX_IND); + } + if (UART_GetITStatus(uart->uart, UART_IT_TXIEN) != RESET) + { + /* clear interrupt */ + UART_ClearITPendingBit(uart->uart, UART_IT_TXIEN); + } + /* leave interrupt */ + rt_interrupt_leave(); +} +#endif /* BSP_USING_UART2 */ + +#ifdef BSP_USING_UART1 +static void UART1PINconfigStepA(void) +{ + /* Enable UART clock */ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_UART1 | RCC_APB2Periph_GPIOA, ENABLE); +} + +static void UART1PINconfigStepB(void) +{ + + GPIO_InitTypeDef GPIO_InitStructure; + /* Configure USART Rx/tx PIN */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_Init(GPIOA, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; + GPIO_Init(GPIOA, &GPIO_InitStructure); + +} +#endif + +#ifdef BSP_USING_UART2 +static void UART2PINconfigStepA(void) +{ + /* Enable UART clock */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART2, ENABLE); + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); +} + +static void UART2PINconfigStepB(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + /* Configure USART Rx/tx PIN */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_Init(GPIOA, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; + GPIO_Init(GPIOA, &GPIO_InitStructure); + +} +#endif + +int rt_hw_uart_init(void) +{ + struct mm32_uart *uart; + struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; +#ifdef BSP_USING_UART1 + UART1PINconfigStepA(); + uart = &uart1; + uart->uart = UART1; + uart->irq = UART1_IRQn; + config.baud_rate = BAUD_RATE_115200; + serial1.ops = &mm32_uart_ops; + serial1.config = config; + /* register UART1 device */ + rt_hw_serial_register(&serial1, "uart1", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + uart); + UART1PINconfigStepB(); +#endif /* BSP_USING_UART1 */ + +#ifdef BSP_USING_UART2 + UART2PINconfigStepA(); + uart = &uart2; + uart->uart = UART2; + uart->irq = UART2_IRQn; + config.baud_rate = BAUD_RATE_115200; + serial2.ops = &mm32_uart_ops; + serial2.config = config; + /* register UART2 device */ + rt_hw_serial_register(&serial2, "uart2", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + uart); + UART2PINconfigStepB(); +#endif /* BSP_USING_UART2 */ + return 0; +} +//INIT_BOARD_EXPORT(rt_hw_uart_init); +//attention: uart init hardware problems occure on mm32f103 +//recommand manually initialize uart in rt_hw_board_init() +//see in rt_hw_board_init() learn more on rt_hw_uart_init() detials. diff --git a/bsp/mm32f103x/drivers/drv_uart.h b/bsp/mm32f103x/drivers/drv_uart.h new file mode 100644 index 000000000..5f0d14b48 --- /dev/null +++ b/bsp/mm32f103x/drivers/drv_uart.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2017-2019, MindMotion AE Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-03-13 henryhuang first version + */ + +#ifndef DRV_UART_H__ +#define DRV_UART_H__ + +int rt_hw_uart_init(void); + +#endif diff --git a/bsp/mm32f103x/drivers/linker_scripts/link.icf b/bsp/mm32f103x/drivers/linker_scripts/link.icf new file mode 100644 index 000000000..a2e05e53a --- /dev/null +++ b/bsp/mm32f103x/drivers/linker_scripts/link.icf @@ -0,0 +1,34 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_4.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_IROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_IROM_end__ = 0x0001FFFF; +define symbol __ICFEDIT_region_IRAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_IRAM_end__ = 0x20004FFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0800; +define symbol __ICFEDIT_size_proc_stack__ = 0x0; +define symbol __ICFEDIT_size_heap__ = 0x0800; +/**** End of ICF editor section. ###ICF###*/ +define memory mem with size = 4G; +define region IROM_region = mem:[from __ICFEDIT_region_IROM_start__ to __ICFEDIT_region_IROM_end__]; +define region IRAM_region = mem:[from __ICFEDIT_region_IRAM_start__ to __ICFEDIT_region_IRAM_end__]; +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block PROC_STACK with alignment = 8, size = __ICFEDIT_size_proc_stack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +do not initialize { section .noinit }; +initialize by copy { readwrite }; +if (isdefinedsymbol(__USE_DLIB_PERTHREAD)) +{ + // Required in a multi-threaded application + initialize by copy with packing = none { section __DLIB_PERTHREAD }; +} + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in IROM_region { readonly }; +place in IRAM_region { readwrite, block CSTACK, block PROC_STACK, block HEAP }; diff --git a/bsp/mm32f103x/drivers/linker_scripts/link.lds b/bsp/mm32f103x/drivers/linker_scripts/link.lds new file mode 100644 index 000000000..aad42bdb3 --- /dev/null +++ b/bsp/mm32f103x/drivers/linker_scripts/link.lds @@ -0,0 +1,137 @@ +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + CODE (rx) : ORIGIN = 0x08000000, LENGTH = 128k /* 128KB flash */ + DATA (rw) : ORIGIN = 0x20000000, LENGTH = 20k /* 8K sram */ +} +ENTRY(Reset_Handler) +_system_stack_size = 0x200; + +SECTIONS +{ + .text : + { + . = ALIGN(4); + _stext = .; + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) /* remaining code */ + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t*) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + . = ALIGN(4); + + /* section information for initial. */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + . = ALIGN(4); + + . = ALIGN(4); + _etext = .; + } > CODE = 0 + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + /* This is used by the startup in order to initialize the .data secion */ + _sidata = .; + } > CODE + __exidx_end = .; + + /* .data section which is used for initialized data */ + + .data : AT (_sidata) + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _sdata = . ; + + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _edata = . ; + } >DATA + + .stack : + { + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >DATA + + __bss_start = .; + .bss : + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; + + *(.bss) + *(.bss.*) + *(COMMON) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _ebss = . ; + + *(.bss.init) + } > DATA + __bss_end = .; + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/mm32f103x/drivers/linker_scripts/link.sct b/bsp/mm32f103x/drivers/linker_scripts/link.sct new file mode 100644 index 000000000..f67cd6876 --- /dev/null +++ b/bsp/mm32f103x/drivers/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00020000 { ; load region size_region + ER_IROM1 0x08000000 0x00020000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00005000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/mm32f103x/figures/MM32 MiniBoard Rev.D2_1.jpg b/bsp/mm32f103x/figures/MM32 MiniBoard Rev.D2_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8251e219645bc70367ba0d254c419bab882c9a8b GIT binary patch literal 1945862 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
N(vTLva?CHo8DHp9 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ⅅU0jCu|1XcJ#u#kSsv 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

xnSZ;que^b&zQ<*GQ=>a-T&`iTQ!d ztgbAoOuZvg;qInK0{+#1hj^cdP=UB)wBM-W_ zuLW>MSHrNVNCnkGsZp}k@%%|feB>u6wW9w3gqBGW35b!{_Z3`{5QHk*eeX>aVmR!j zY&udthAF5K*7fv`L-b-t?RrK@Y!$6)V!-rXl_Drb)W>gX0W6`^D=o-9sC93(?R}~A zsE}A28YK(Sjjh^%NRawbKe(r9LXoenwicvxbO4KQPSGs(RX(o0C;&Pf z5~_YpGL1m&eIsK<`gtR>h1=lJvl$7wupNy6iXmX+jk+2*WkIlA$3s!Bmmpl&d{mLD zsU=6?ngUH>u3bUDZ)z3825l4_o+ZZvv1s3^r-p*Trmh(5I3WZk}?6g z7ouwzz%B)kdSxi`2Qv*LW3^xvE99`XwzW*95-_Tw#;GHSNB;oDy(gtkwsHohuZDkmd;6(i7n0-%PuBYI4lK{2u1{{Tuvs*NSA4|-tB zsH&6GuWF?D1MXr9cH8EULaoKG@k+$orrqh#>uuYo#R|F{FHN@gq6?&p4ZV#rOBpr* z(}D@o4bAqf?ttrYw@<*P2*7*O*@3f@ze`iGKWM#G&?0o#tDye?YGsB%LV^hQsU0rh zi3s=tn(fdIhjM$;(J2GuqLRwi_orm^G6o?0ijVa%uAmmc8=uV#b9u~2H>xy(U>sRb zPNtnbU=T?I=8*FVAH&q1&!J35eb+;_DQk;uBWfcU3o-o>`RwIZNg+<|&h6vl5@ z(`#+kh6v+#Cs`Khzj~9c{{XS5#n$21Zq}gLE9n4>daboU7&iUMwHjVX!&=upXu^_g zZ9vtKyoDI9zLct8HUY7SACf6lvjaAk1b;(GKqkxpC!hwMm0x4Ex_rDpl+fle5 zG-}?W2OO!&S9?=}ZMfc${Lrym>9x&8 z&>vCi=9SHfwKcVRi0Rs#4Zk%y*aS)#0K(TD=^GzS>FgU|M&A^TyMtQ-DQ4UO?Y~+E z)D)oD^)y9+0J!PUQ|KU)0O>#oC4mHV*cw_xeXY~I5~x0}dSe-w=Ls@atvxNSMxam~YeO^^Niqm)WLfgEGV;Mxt$V zjRMPV!1t`LoW~etk5U4z;&A?5Z_E(DxbQy7`Y-*30#sD~{f!#9|c09&nrKkHfaDQMJa?b3=& zG*WKM(!D;5lC+OMs%z}qfTM~9X<|OEq;{-FHQ@XzW=kaLViwl7QCqJa3{8ZQT|og! z-nE`|^5e61Sg_FpYfxgvvxI422;mi}IlSev(7RzZ#7tR7I_R)Ec>`7Qs;Q+WLV>oy+-7Yma5YwIx<`qUk(xw5pG9HhcLn!33MxSw&H^a zovhJ;BIznUS3PQ?8KTBn)vh~NH%~@Y$6#f+A%}xWQF1o`P-3vLm1HZi_p5*a4TV$A ztj9`&f5m1?K}oh)F+4k#%)~YcOE*?ES%To)tuV?wuy*Teu3Wp!-bEnaVk)*MglHoJ zpzB-32}zPtqK^&3nNArrj4&kiHoYJC7FGp@4R`$2Z7TJwQAp>_lnIb!h?-XjwjcUx zQRK*Qa7re{b*%%U$}v4=Qu_tl$%Ak@Xk-=x*Qs|wIJ#pD^&9@mN<2edGd@i z^(R8xdfcFf7Y5+f9%q$c@pxxhqX%M6)#u5LO&f%%(>aE21CD$aoW}>J-_2|9`K;%c zJe6-=T@`>(L}+-2T<$ zQO6n6Iy<{YL&H41%`*9dW{_QsfSIF^02Fotvdq&A23<6J5FlY|d{tahtg(p`p%mDnXNbnd{ z2wU|V?b7;oHOst|W_MVvzx1A%yBmvLeTn~ns?tL~vq{{X#tFT+`UiH*bI1}KSc5;XF! z>K#e=uS)*_;vdeFAI|O)%aT#24~2G=vuvd4{{Xdl-H_ws!toXkGU|%hkPO8yq+hLm z!~HK9#u+7j$oal|_0=WdmT^4d(RC*hUM;)xYyZBk6HZ#LU)?NwO5DU0<|<8W~@MgS_Kb_9Pl``*7# zHFDAMFJ{Wbaef0C6d7&_L6=iUiH#WPKrj5=Du5K5F-%HCibP}~NdeF|1eTQlfEE%5Jx4zmt#GR$@uA84>FeuxH($`1K5#gP)R{*()>+6FFniT zo%OtHJ7@*X&5u$mwiRr{X2juMA&qdeVp0V^ZygK zA8TIyYe4eP6^KdG0hi3v#}vVyB5!;4KNYq4afigmj+Zcan+@g6+q9P7;@zuRlv*)+ zHy1f$!eP@7p`%$+P{^_%(h&Z8n&zHk;ximhB2nb1W^Dux$PZuXTPK@2?t6&9>z5WE zLaRd~Nqc;Lde*AN$v$CUbeBQ(Af8`zdJdVSa|%lvjM$k z+`YsIvn)G$Zn6S3bTxxvT$uoC+uT-Vz|3RKpwLN2>JL#~?-l#bb4%p!p9HUs#OC;1 z77Gh+F+b`t^oyPC{cE=JY-oxV$wl3;qe+pvGM}FH#2y0kDDd*biFkEMC@5L(KwH>a zyK{x(haHOiutA#Cb&~@It{{T^c)keH{#+$J7tWS`#%%p`ZHHGPKn!@nez9}cf zHY9-0RToVpbqA&G2k%L;ujHy zj4QN$t3AR00OVEpW6ocethi~{(tt9oW7a*bN7yQGFNVru{VU=Catkk~U;wK0&D27# z1Tsq_M|ZN?!}4m|78A@xidmsX#70W%2I_ul^MK2xo+y{kic~3JW7rD~>X~cgx8Wzu z@fUV)E<-2qkc)bDtDZJ?l@l%!ynt>^w!J`RxzRLb2=oSv$E>MV4s zF#1%7D#Rlx`>Jw9RARWio$#(5EM!i%JrA&~FFwk1ylOnyTrf;iF)kzofa2FBO1stnTufQJlQ6)}yZA9{;w+oe?7WRtU5{ekV@8s0Kf~DziQ2RYY!F{0|ass8uD587WTb$ zNaWoxhFOS_q$;l&2X!XIUah(QQ<%I7Cb=FMTE;b9Hz%g5%`j7C>mQSgF}2N-Ne@k` z)5JK)6`BUd$2@krly9`#YTE2Rj22uTV%dvJ1Wr950IhNT1ytiQ9Kw7%MTo-2Re%fW z-2VVdyJ0mfzD4vmRs;?I0D7yB8J7o(4T;6Dc57|Z@mu0yXu-4Wh8zwnL>NiDw!_`h z{YX7;Q6zJrTVQwln^W6Rx3z4D@;nwfBoA#@^pcl0t0xfU8CC-v3EbRRp6l^hXsxzd zGW^m3gVflF%dCS^i0!F+(#~ay2&BU*N2g+hCCF2~?@t79#fqB*sS;}kNe1jsV11}F zEH*C^k+^${d1rBO)taVmEmq407lKm*S#TFRT%8K9GKc2G8-F{a7DeT^6VTcgh;EV=Tlm^ zc6C~1w-nOj+2fIP1|W_01Fw3t$Z=|aPTJ0=ESJ9f+x_ccEB$jB%umS0sgfm+aBL+H zYyQ<=lglKSVQ_za5gvlEg+kLcw{puXTXLScaxHeLKsuxsK z;q+X@#I4@oDE|OjtHWi^vFa|W4ck~3{jFB)B}*psmBS9irMAH!)F?e|bB zvYchsK3hAFW$jY`0E9viD=4+c@Y%+Ozz6!jP75KlFlYTk|J0gAWs=I-1R|{{W2@ zA4Xjxm^@S9@_fX~Q5mC5DHw7_8D7LkvnU0Cm3{B-EylW#`0=k6|6%M%ZFUnm`K@9|p8 zme85=bEj9T!_vSJ@-JH>#6}wtfWe6-l>Y$cO@ae`t5@(7ESZBxt(2Pqqo}W3dq$%D zjM%xhTZMBj9~A+R1tA9eZCGw=!v2NEVPpy~>0aRc)^7_Hi9@uT*cR$-^HIKDxYX#e z>b;Z?y1TV!oldk`_%oP!p9?4H@dhB{Vytce{8q>12Q#swJf3#MiDS$pQ8M1bH5*t8 z)I39xHVK|+Q%~tXnt-1q#l~uxAW0zyNektL^M&7UzHtV?QRQ!9GCLaYV zmL6PihH%GlFaH30)-IXnij-c=LoUHanO4_6V;?jB07v4ha1)FWhsb6?WB{>KXYEuu zHaRgkLyM5vRkksox~gM&5_OVsDUJ34*Z{ZaK&?M<-EA2xxV$4wkC-%Z1#rG(wz09j zuU!Y=Hv%%=Xw1-QTs~)p^BT#2ErAwdeXU$&&2B1LFl&L9O-O>s0k^9Ce`@NlrJpge z97l?iD$MW#c_6Z3@sc&RKg(+8C`m*3D(vpOSFU!NHrB@BoVAn+rNxGp10n)rI~6;U zMO-9-q8b@B7F|rFSXCY{6vBm+vK!w@n-RTujG$8QZA=cWJF8p^gMF$U`YzE8G1wDx+=|C}tH+sFF8DJM#QF1> z@NoYC^i+h{EN5a(WKdYdF4ctipW$o=7;+PcGK_R_O&Gw)(nm1#umbiy`%$FYMYTq$ z@G+WlcRTR|oaY>r%tj+G%`k5ylE){Yuw#9@8AY_ih`x+#l$wl(zAf3&RN(mjjtDBqDR<_qay=f%SDrd~`GaXV$ZZ-z> zVB^jQ$vJ_SN0;XaBvgXO8}HZJwHu4k8?{Wd@NX%2JBBgqnq?Vm zcr6i?D*}a54_$>_aZas>a~jwy8xM+ik=SW0ZSZYT8`!nCy;(|9cF7pVDv-s7ttD(| zF&L?<;an6^A0@E@duL znd1hG9u7HKP9&fHCPMWD9`)t!d70(>AIz)@LlkhNj?9S!qRL6W=l!dy{=eLf;t3B6 zbF(AEVr9YMF)fD2Ivb=+_9=gEmaa4BF92}|{DqKlv}5%+v4#fGgLhk4k?uvRyb;rH zvPUQE_DAX2<4ciG%2+sWj5yx~m1cM}($V8FD;e9So1O1lZTv`ZzZU0G;xaBM!sC3q znBaz0H&NdAubkL({PPx{rvCsQ#=|A<(U~m6C9Qvw2YPvYVDnEA7nLS(@vXm* z?hSr_$^QUO`MGlPjUAVj3Z{DHn&h!zv5%je#}DL{3@80s`di?BD4t zo+8e$>jp3X04$h+D(uAA6Y=x&UNGXkR`Y8a5RQH*#`-r_ix}vCdmZX*FNvN!%`uTr zn&%Rij13Zbt$X&~^}iSWIp*TY8M-qsFA`d3(|0iW&ynyPcx>Y^;+!Z90Y!O7L%0Cn z*w&Kzjq}rjIOo9zf0p4hxLY5Ic%+6QC_bRV!>xFO#6B$fy~a6K9|el$USjN#s;H9` z>=XgFQ?*6Hyw&5(Ml`Pxai%{pfxuV7%ZXy6=ET~*$Nf9Wo2hhR`54;K(D+U#!sYmg zr-p8kk1&FLE&l*&=no1UZvyd-A1hok2(d@b#Y$)NC>GK*_9WLD#XcAT{Yl)hp}8q#nR)X#WB&LR}Not>fqcDYWh*aqf~t6{mAsEj`RGxCFJbc_Yvj| zgTi4jVq9d3+af5rC*sw^9sv3O0L%VyeM@+gjJZji&5Fq5$mEVDn4i293|9S#7ayAK zZxcKh9~5{=;|z!fid<(5Vo_{JD&A9C_2hrhYlXP4De;>B0H?x8Fh8N0G0r0;P;X#Q zYmr{>7Y{g2PvI9V>PYtqvxoBv`Cyw|k+m1=W0`JOe{oUCf`#3tQ+wN`Nd!p4?b!6M zJBmkbh9sJ6T$8@Qo|P&>sUGCq_1mQ!aVjX%!0khJZq+FxECQh2NH+JOB;Tj>qH+)) zO|EDSfY^b4?<+e-?m!(^F+r9n}+`+>bi(llG% zCS|y7?fq(#F~BU5GRd~xD*Z1HW)K|@5IybM! z3{KyQ!?TRNF!D%t=ae|8v8!?QMPoCp(GU zDL>Y?9I>O5frsbWP74#3O%(C^S97)N%de~t2W9*jpMQj4Jhm*WF>(nkS z;#_7Qf^mFL!kJvzylRBPFhDVob-1q^zN5U`;?8CB7ck6tw}!E~bcS6K3}Thisx50$ z8Kde_Wb~Wa$V^+zI)`2CYie?ziL)*q;dX-!h|;n-EQDY86{{HQkdyCO?*U=Vm|>`s zU;$C>?_QnJS7rMjnm#)mWe}0K^L0NpQGvw4h9}MR>lW2|h49hg*>y$<2WB*;j7@8R zKh6bl=d-Of+Ao=YCR{eGR0J-7G%~l{R$Sj6)8Zt=SyiNK$zk55!X_?A4iIY5airRZ z7lLsml?SiAbmeATFQP0aXNi_IgY?CTJ2IWcR$$C#FDhr)-qz|VqQVR&A4B1o`JG#( zjT9MtOmv339=dx0QRviTNK-|w<;KN*BKuOoWrGzIj$fs%rj7SSUp#JoCe(5Hv0=kP zNpaMB*FJ8?CR643oNil>StDx|xH`R$=9pur#%3oKEP7%Df=5&BN+`x`J@e=Nq zQ5sm@v&^#w&|#KYl&$&?YPe68%LGPg7ftK}kz@TSA`354Exp#bOD8mYBLxj0j@w%I z9Vx?rz=gFIkW|P}k#3++v0t__PTPVz)(z0$l6PP0Qz9uEi0x3t=6%dAFTICqsEN?6 z!LS_#4M(!4FG3#Si1q|kMm9!^5G0AWBHb!12v?j1*mbIm!V?tsJ;uhkN&Akm=)$<` z!~Xyzd7FZhFXPTxWSNRiq&daqvAN%=xn8xd`CIhF@K?$nD_%6muZu zFcvmXF~$3L2A*T80E%|`??E`y~{V;NJB!*nxj~hGGj4Tej378twLgPkpJh>KZoO_NA#*Y;UzXx{-TW zd{D|rhGdaZ^mRS$dd0Ydh8G+BN#MBtYm45p@)U!$#R0=Yz`G^S%~a^ijhc@<;dH^d zk`*W|VeMF+b;J2qY8o8I5h`BYPRH?En~8F0nN661d+aL(&N8>cVp~QX0ChU`jxYLrN zac2!qx@6K%f9pW1H3cWF9wmTs0JW+(*tCMSQzgi-?ASdj-8){SX#BYeVd|jCT1fDK z#?}|9aV4FZkM1`&E;M z^LN1EB*O_p2`(70=q*v<^Rt!X1|laVKbSDsiutp}mF03rrZa+yD>8t%3FJ&n7t`;x zs^OerA(t+n83XAG6_rQLQ^$|W^L1&90@{BT{{X#I;`GOan0aGMAkqoyD~r2Uc1>{6 zV8a_?V+7o@?tkrBrZ*?Zu-E{B)H48gJKWY8mOOA~Nb|3yUgu9xJ}V~AG0;tfX|U1s z-3_{f?_2UyZBscyld{^`HZS!KnRx*~xo~#1T{7%W6Z|wmn5j~B3|C@m)s^PorI;os zblhBbtD0hR`O+j@TwwWv;hUv#l6^C*97=5WERH-Wod604+DBToWsyR0Dkm0B{jvmD2GoYSeUQ@hkHXpxw=Z;Ximt}EvqPr~3 zF!+eCD6#0vR_xL!)3FKdq|_;T&qk zox<}XGWmd&Jpk`pf56WZ7HDRR*yuo9#!F> zonX62gpVyFUC<9>YR`CA!{qtAvB+>Qp_=XHF693JO3b-y!w_dUsOM`mE))$QUG3ht z#zDiFXjCj96p27mQ**U;mPHhJvEY=Q$i(?g$^4&%Fw2T;5(%`}5}hk!$A!bhs*%Q_ zZNA-Tp}-6{^r^MB092+X)4O!9G^NR&sK5y~j9s&Wbv4_c*(zw-bJ z0NzJX%%;^%5ejX7y=r-Fp@)0bKSlubp&p5}BmKhu+tj*AjH_5%Z~zqwyPGLdw|bF% zO{Bf3Qkycs#f^#9Xw`+f5Gz{q3zoS)ER1U4Vb<5w3`2j-Z7D!KdfVHrTeDoTacOJZ z^|h+48IrVfwsXn;6UE`)EM7vAtK3MI2d}~DSRWJkJLP8<;oM`mdkhhVk~9O;p#0ZQ zW}G=1&eBI6!53vC+N>FlP?&P-g~F<*Rv+dy(h_Ot<0za3&u^x83M)QmlVCi+;OR+% zkf*iCu0-Z3)P?=D8`wJ)IP!dEdr3 zx6N@&h>&i_`&Em`5aT1TxGXPQH^g5A!@yj?{{WZPAhE0?OIq56&5diULJv6*o`%Qz z*RBmX=*#TL@hgai7}iMbadiatrg`RAfQzXXAR4L6v2jU)hA87u5eKi|YNWx-2(gg$ z7PYIUh)f+`JuC|E{Klt>C>cqKjoezssHM`eH=7`_K7uMNE8^B=Ws#eIK+{q6W3u-b z5B{eJaWPGDr*&a#R3G8785SMO>$QVzYN{~ejuaqkM{QRJtx~~+#Yrm3gEuS=p=#mD zom3SW1`~tu_{_6gGB8{DfJtpNVaE&}9La=?lc3p2s_1gu=MjaHHI`p7ED4NlZ*Q8T z&EsfS$(9n5DD_{hBK9V!6c3_Ew;@8E$Gt=)4g-KlQ(&g4n+q;4)RKtJ_HTNuI7y+x zDq=yo9edY)k;uMaBp6&4s4Qe4U*J%}xSU3%-PhQjl|zsmMkh`cA$QQ%FKvMQ)z*AO zm@=`QAReTSyVsKV%-LgEju%)-f~nGfHP_sy`h9S`6DBJ;$#8{bhy|8Z1ymm5{p((R zHl*RT%`w>~K0yhVRApyiby(bwiu8AbxPJkhtWIM|gon@{Wl%kjR})@ zN#zy~3Np+W4|z`z(s4@)>OVh<%Q7zxd@F;K4Tt{#mY``Fz=l@C0L^dPYUr%9mia~| zKxD$L-05o#t1ZeoWtZTHOgt*eSZoDymPPwCu}WQ-wLUIG}09>BS1E_ zZj7sgxPJy#Ts~iiANocdSbTJ-_7AjCMHIs) z%7U2V%V8HggQ}9EpJw7s zja$yzM?==AWVXBSRrsrFW+43447+XL*wkGbv6V`#$m>Ykzr8r=(vj3nlvW7(3IH{* zl-YEhOnL!o5ntSBf4g z8=RSMh;AawcuzTT#%dlPjY{l$AcY+j~0o^12s$NZk><~&D|&BKsmf5l)i zIs%R+79!Pv@rOP+U%**(nXY%m_()x3^WUW#e8)_`2rqbo>{O!bG5#n52m<&!L6m5ES zE}>#ni~e`6Rr+iF8#rsj?r(zT-ydeLj?W4P2=RJizgu6WdM|{-Ven9{7Y>0VL;*mq zGsw9o4}(#P-F%pDAUOlT9vwIW4hG=7wIeEk;;{jJQoXk%{{ZmmS>6&!&LAXCKvD@k zECojzGXf*E$*}pYZQ`fIuL5{u<&I&+JWrj)1j~kSq__t5*a28dQu3pBK75`fz!tR zK73c>Ijf%uPY&d`!!#aXBuMwVjqBFjmn=-X0~Q)3(h&evUW4&nbJS#``Z;1!ZL+fu z5{3C28`Pon8!`M)4X(PkrjiUsB0nw?Rl6{*C!mnbw!Ot9UqQ#{VA{Gh7Kqb1FUM9N0mIzn$+(!q{Cq?$ z97GH52qSOFHNN>!*q7l9GUCxxh!KfVZOE;4;{FVpUSQ-BW_U!GK@vn5bl%_XTYHBt za;!Qm0d+>Cf$d%L$x0DN9CoJ5tU#0jx&g7Rb>jW-v2toz@iK)f>83X})#|lui2Sup zl>QBAU#J$iIW-<)7_4y4hC%PYdd3@h6&*4(pzO%}JVAzom-t`ON99JNQL^a<_B$T+ zv0%i;QA)|EUu$-*Wbm8JE-&N$0g5aPMWMsV3y z#!k#(l5kX6d{A(f7mWEgm@N2VB=|KGVdN?cBPj$}{?)JiFmtmh&ZABblQ0cB##_p6 zsKVO6YntACPlAIH!1tZAh`0*x72 z_35y`K~iFIcnqThE^V4lBZ3t!S(?BBS#y(0_I395P;ti?V7Y(77``gZrdVUc!pwo5 z*EZW~>dfD!D3QJ#ROX-wd}taAPUyLKR%%I@pmw=yrkuXf3APk z2*w^JC(I!9Hm;lSY09iu408Sq-#E$F36IAhn--vYl%4e6x=t$&I+EKw@A{cF@NWzh zOv*JL!>4+>K(g@8j4jfpWBVFG1&XzW>cxrTY+K^Igupt+ zTFOeB)!z*y&Vy2&$9go=3Q3Y)=eJ#{!j?84){q4Pivzy*RZdyT5s!}4jz5~9Z9)pO4z zR((mZ0;In(mOMg+WezQ8*c!_qMNFj`dbE3k+Ob(s$s&=zsBc+p3I;|SPT*UuNxdLr zd4L{K+~4HwSf3hmFM{|Z246nT;DvPBQtz+>{p&8rF2zqnd)BMwkA}Vn=2j)~ne@|= zL9|IBwd>Q3LBDf3O6x`&#a=f&I^?lkxSk1Qy^<^GJ9pl(GxZPT_GvTWa;(Xe+h;M@ zermeSIuod3!Vq@yaD>0+cV3|__kkBSr4RjuXms2VR&i= zA&RGL4jjob@!}<$6NLUO&8R3ARNHEYjPSx0*NH657Qlcv_^sE)Jh;K|_ENDsrh+YG z2U#}hdeWTGnBmu64kUPtZ5l4Lg zxJMMCsWa0VwvPKx7Fgvm;APGhQr?p;_e*^K)ij(U5P!$)L62urdN@CozuiVD2%v&J_%Ce z?<&{*uiCAdcZ!_15g+Mf#6+{k`VJm<-c`3zTw?sn#y%g(!8D3A+})3;k9vS}H_Kr7 zf((ej`H#38c0H*)Sz5Nqr?a|nz9w+^;~pRQYN#wkq#FV3Z+lhRKN0vtgkt!p)HkLk zS?#~#xH3L(t|C7&Jke0x1qF$)??o3i@RLX-fXGaS?;^c{{f$Kom7*-0syp&86O&_b zi;|4(2qXA$j7O;3ui~Yf#P(bE987Q&0afFhRlh&pxE?-bVo_01kXc!U-p&1QRPyt; za|^2g%h4Zio7YTn&e^ozZ5{pp0Lv|tG(#BkPVu2X#x5*<_Y@L%q{^i7r^4oMB89k( zWg~0s56y5C9P@UE^rhtyv-(6cdO`er(ZkLhV$AbI%#PbHnKgj7dkWQN`DISeLnHAa z1o>om+-@XjcQ@CFu}$iZZxYZ+A#A@pa~`2_3*5KGaD06Amk$ZUzAYxw2~y5(tZI@@ zdt#Wb8F6w#qppVBerZ`Atc`0&e*XaS%ix`DHYmEGEuu#{ukCs{yiH~85t%bIh*%P> zF5~(d^Sd|k4T{1!12CD`dVI(JQBfy79o_uA-b8&u!MC{XFI!7Aeoj1^dq<+@#I{i| zSerNuUd~7-O}(yZ;qfJvv}7)DMakYNcLVy@omhT+;=IF!mRZ=V{{RivKt;YqRpB}G zY*CQ4op>ueb!9e0%E`2=Fos_V(RQ~|-&Eatl5`4@>5~a17 zcP6~F5=XM{RNYE}KEcnRe+2Rrs0UzsEP8a81eU9TSvm=8Y43c88384W!FTE1Vmf3ly z@OqKTgo_`A{d%ZjDJI3Qaa&U*$#4QR4~HAJr)B=ts<{z@RN(9YW2RPwYXfmxeGx34*T`5x#MpdY{S`k!QoRuf$eME4Y#Vrjx`6%i%Gq@>}sAF9E~^W{i>iaatR&% z>(D@m2FtjjM6*~8k6Lwzk#4r4iXc|!YfuSPl^`{TN^$~=2fyt`K;1|eq0}6OB+v`e zeI$CjQ>v-43%$3d0O_+@_S%@Wn@}We?La2J%tgKhIvGyDozB$dx)ZslM+%+(Xa{vC zuUcUVlI*HQy55{fz!lNdZ$_n=R1t0OMbINLd4FRIcQlc#;>L6a#ENT2ZB8!uH3_AiqCfbEgi26Z@Y6GqIssLtN z4KdjCz32#4Qnx*QH6g>hUBZw(uS!UWMbdk3b6Joj!=otF&8u#g=xU{2;Xz;NR8g7U zO)*&8wd$%8);Esc`_@Q_OCW89?s`%hS%?6NQLu6>w%fR-)B@NZ{b;%<5};rKBdseE z+Dh8PV?@NO0Neib-~dTr2jtYUQUx^tQsb{-OF_S>fc%Ou@!L=xJ?Kka^@ZtFptL}G zg}-4+B`8hQ*tJWbbiYa+Dx~fY?@QR|5jLN=?R~0MH``ZAr*%@=Lf^jqD4}L|DtjMl zjaUq;Y6LL9%?kophTKu^JyzcR>4C92$RCP}utMS_8kIIX5${o{SlEP*@<8cT1due7 zd-S-d#A_{&RrvR<5vv5q&O~8P{{SAnDOyD)MQ^~P5ym#v`&yGI8!@oAY7=9Aph#^Q z2i$v8v#yXqzr8?UiQCKrPWupg(GNp?u_0t8LkTtttyc-$@@d ziA!n#Q;p8%g}obrdz$8sg0Kx@H#8_Uz16$eiXrx}zuRriIa?4HuTp3Rk!58C8(?=7 z1UNcT4T;>En$Aw0Lc^%{p?$BtsxSwsoN8+U?cSV*Q*w75K4}*nuhV_0E2m4;TLT$O zGkIp_omlOux((^ng(Zg6!I7HE#^b210I7=(!t~{obu`CwC0dGK9F#unt z;?(C-lVB`*&<=JUU_X&hrCo1(ZE-*fma!xr*P$cPk&2RwQy*Rkq!>@W`%p?jEYa5y^=nm!BjU)1DnE`tpi0?>lp{SL* z-n0gA?Qn;$dsC<)%l&quu^y5w@+nvlE>6?~Y)!63slZ@22lo^V%w)3wM_bZXW>2*K z4FGl_zTkcZM<+pU>)_n-nb(H@6xpET@2x#$ORNUGmsd-kB( zMJ0g*dr%bkw=4yK0{8sXGvgqL2~``?cOdksF%GZyt*z9bYM{(nObq1uSNqmw__h~j zH^ms}-#LzKZd$md^VOLj?K{@x!ZI#LAL-*%4Gqyi*aA9NK4$psJXr{uZz)8hc|O+P zrEcyW$4!jD>uEhYMwRXRSHPZ2$j@Sfa7>E_mNMe}*FLb?%RT4tR<&vWU|S zt?j6fNVQvMnh@lysu!-S)a%6fa3jMBZpZy9xjF)!S{Ta!TejV5e2W&buwOJ-?_*L< z(Y71_qt<%Ws}lHpsl;=!P;X{6o=A3PF}k{ft$nwrvflmb!;xpWcfwt9L62j4u7^2@ zwc5mAsI6MHXD0?-0QO(&Pf-aa{m<`ezw;*+nWq)XxSb~F(Jk&( zZ(u*MsPQ;VE)Ok8#3;-NC4%ky*T%`td2aN26(nyCQ1MoK#CcSQK6qK9Yeex2YaZsR zdBevzZd`KLHsahwsI7&c1#=CMvz<8XOSSeSSwZ6t>THO2dn#aMi0;}eLv zA&$u~)1Nj*S1LQGzTe)xUQe4WKTn#DNZ}xlkr`X_3O-pUM8c%VgM#=A~LZ%Sd-egw}7I==KN6x8ClxwL||^Fzgzy7jd<<< z04(`_bn216xO+FoONPT`Z8MBCYz(0u;a1l=e|pI>7S2{=#7Bva6k%^n;wUd{ zsdgj}d)7Ob4&5z!)i^8?<1tzz z#4>4gcUv0}H`tHbv%IowTjl}@VOTYV^2Bah_x#s6m?$}?jd>dn`eMTl^J{o~&Dn2b zw{5Ef#!DO$Ot^hfM3R<>Huqm+dd#_*HXZYImk`ez_lr%yTUz(+xU6Fv1Eehm9d0Fz zt=Wg9pUrcsI>6?xeyhzalRR2yZ%S={wvSt$;&b| zfz(-$=A1)_MUoSZ3mHZ8H1%Ov{&~b{n6z<3q{XZkQp7P9>uR-d{%aQ!L9GrbZ+qDcy~>74y=g(4>kSMk-kyU!2ba7?^M%ACMOU2 zQ~-XLxg0Q>&{aZylii{JQ!LJ@~JK>q+JYzEb8;tnaFFM(jQu#&(9A84sv@dg`V z-$@4NSG7>)cqyk>e7_d5DO2X79)jIPD$H3;m*-7+B92)#I|F%6{{S^zipR$BvBR{5 zn!pQLNvvlPB*^LJNTF3PVBuS>P~te9u;G<4VePPtcDKDaY?h1LW|@Xus<=>H<&cJr zTrdmnD%Uo3oZ@8jF$&C}kb(OP)ua4Z7Fk{v5kpPPu#x8 z``2jW;zr8sE+aO@$QuiaNZDlqV259-CCtVvwqxWx+RRJAwzbbV|+*w#)V}juiF)8&bUn1Xd`S#NDS^dhj<`ZlJdj596GGeyJ*FnA?W zvRut0ecPXUzF=Q5nIkhG4DuEhJ$`B&uPVahvBMAg)m9S`axG#0^_b+`KY*2%X-ddc zX+!{nZ+gu5nvEkE!sPQ~W|tKta$T6QMH}sJ`_+589fdxl=X{3y2kb zxBXm&T`i<7#g9`}$)85{*CML`6-X6e;mo>epjq2!6$v2jSN5u`R8m7UW&?MpI`S#3yEl_Pq`@~$h6CS;Qk zj7wdtKhmo4yibCS6{nfhu{LctH}rJBD02KK~Q>+YR2$+_5ouvVpuWUqXzHoRl_%q4Klonq3r8%ad0G`^Z??pXehnN2 z(UE4-yG^0waCP1%LZ#E6BCSRTr+Aqt`EJv z?^hd_Dn~4qYmX2HS@10s_lzt`@sYjB?0u_K@FpqZ&6U&=Z*gIMm9aUs##n66BZmzi z-7oz?s1j6O$KtiG3afs+k#b8NI&0k?(Ib2fsf3NDlIu~QmtZD_94W!W5-WL^1(N>&wR#!mO3ZgT%A&D>@T4KQ z48y3ceZ*W8_%sWF*waTaaE3fL2=VQURU?f(GDtkp`+l2MYgY;blL6f!r$8G}FAk?{O;u++!fNjjcpvR!Gf3D`LEiwM=IRM3ItLt#>6*T+Id5keNAFQ zZ}VLL0J!ugXuaXoXet1(6>H{xQ3i9$-0v-sK{$*Qk)8TodeznmRZv)N!+NC8Gc2wQ z6J^=(bqT^R{t0R8A63l@+VYQIo#wK^%lKT{rh^3nM_%EptDfbkFDJBDQ99Iq_S@wsZqxv-EgorI7%)qCzX zvG%Q%^)dQH@V}2N(<PunGqdl%W)yIc^jyxeOrb!)isRrMtAV_{UxT08pVopoo^2>&}KaR23^uS=U zN!{ddp;b?M-<-YhbI)EP!o`jM00G2d@P<87NpI!uYtybr0MxP(zv7FP9u)qx1rrg5=8jL4fnxBT0B%gr^M(QiiUoNur~&_ z4;1}A{-hk-;YP{1pW=HjmN{4WxFwO*8{m}!{{Y^$$J74+z&>f<&j*}m9ACze=9#8) z6I^&D(-H;z^{%jR#pB62TYm+YDP&HLiMdy63or7~VcTF^wJT~QmFjM4t0}-7ek?={ zz3*NpB}ab1^7If#^KL1C(hi^Au37qEFesRODGeub4@$GPCBf9LKNXd7MB<5jkmGhD z^#*6d55#$7xfT;MY#t*SXrRRf)#a1lPkLm#Km08{Znb#>icw=(8+!n*-_>7|P2J8vfu=%xd7dLoM z>pRJgH^y*J6!?|QFmpgPVe!~ll1MR0duvA02^(%YiuVTF+r74}TjI(tR%N`r{{Wi# zlbK-fKjHJEVKKO;RUwJpZcgBexwd*G zjw_^a4>f!VQ1ULLbdzl*se%&Z#ad9%Xnmt!DO@#3D}ZO29*(ztF;Yw#{l z#IQCiHo~-6OqmTK#qv!zO7p?QG=Z6!v;4;lChm8sHoTRPhG}E1^-TL`2`c zd8_sH$+GMx5E<7k!@(m<8${6{1;Nxiek->5U-dfhdCOi|rZ41we} zA84`bUSIuGJace&jBX`tPY7XEa9Bd$q<-N+HowWM<4Sol!A9)UP*HSn>umZMTYB2O zsp0r$;hA&HcAx@T0BY4wyKZ(Tt!++RlP-(od)Wpe`>0m69#KDJL_eL zSwlZj?N%&GMA*yW!vzP?bGp}fbYga0Cd)B+hipXX?g2JpcC}RHIGAwKlx7Anwq?Is zr^92hGGPuAq80SNzr9jVHX;&TVn8jq_pYXNNyHY98RlDN`$hXyn0zif$W{>&thZYZ z)kJm8B4TEYT%CY76@9~FmkR`sBXv=wbpHTq1X~(6%imO}F3-3=)ojmN2%Cs{CW{yjApjv%U*qDjeEo~Qkik@LEm};=FZ{3J$TR*l$*>sV=0S+eqDG93jo4g& zLtgm!H}K2KY4{f{o*omyf*?jL(15^;SI@@>ah@NBb6m4J#3M=iEPQh`N^Dpuy?dA7 zE9yDnvp?m&ShI1K9|eg>Q74BJCYC|~*zaFA&z4BZS4Vs_byqyOS-|-(0hzLVz9^Mr zI-W6Nqe=di=avt~*F8KsaZVyG6G-@n1uXBQ0g6&eSe?TIwR#E6K5laNh`Do!&3Jo> zFu2S#gO&!<~pFw#jRtOv(x$#CCOZyR|uo^~g|&My#`^(qMi{{V4Y8^I4L zxF?2ltm`+yt{Qwo;dLfG>{yNOYnt6$t>Qehi8!3(SjnQ1r;)t7fNrDO{cEq>ON}E- z8fOl3JL}`j?pI>s%lQ8Q!Io))osXqt#pqM}l&dZe{v)i%5T#`BmyKWr$Xvv1Kl+OA zUUK+BU)qYR}5EQ8$M_Oo@4}WS`+VqjGO|9`-1G{KThP`XQ z5&j~$Q^O|)#m78hl4e-=B#^4ZmSMctxEJU;R>6?mSaqnfJhv&$`Ja{GbNnP2h$PDK z0U*T28CmYVj@<#LB_6|#oMrz2+1v1^91S*W%ib!%0C$pXu!SFz4N{M<_kwtJXvp}3 z6{Og%7c6%Ero9Z8k^G&XA$}Oda>pZ^0U{Nb2{u_9qptf9RNQY|72}iXhs$i2o4h~7 zT#w-_n0D;eIH9 z$eMySQpDQ!y@vH$FV|DR;>s}6U^sx2w%J?Uero;TyXobecv10DHgn7vvTWZ0oN%nM zVdjb*YYdAbl7(D)ZVBJLzAJX~Q^8*#`1gtzi5Hf+Dm+dknd87lJkmOYVZZNRG5J%J z+Fu7r;KLbGc60tq^@#AB$5`dcID0G3<(^MUFZgqRdZ6Y%jSLJp_>%|1(nE#BvaEAW z)B?a8j@@d17Cg4)2LVAoCx!S^Cd&>RNRjaHq;8!}_O5Tl&Hn&8XSr@u43bW`w*gJI z3|&CIXD^qLCXwfO)7j~VE;(Jxjxyl94B3`j=A6$4tY$23bq<5tyt4YneHpkXmUygp zJUMB^bHg4!R+?N6CQWJ|*k5~BuH2i;BFK0LBf?_S{)PfIJM6=}tdW0T z4u}9_6plCCT#vvey5aINrD=&Iqeso(5ajdZxum&%Bzoa(EIw-9fNHokm~*at7BiVy zrXwtqR3{SJ8r?-=DlYa0+t=HSn~GCf#Ne$gB#5-MWb5~Xp%avWEXSnO_@l)b+v6|u}W5|+hak<$p4UW}x!sVEh3M0PzT<>0tu#BT@khWFgV!%l;d^CZzZS87HlX;Q? z(&}a#0(FadE0g_%GG-3@pp zDSlrkqLCA>D=CI(qI03_7t_+QT*Ct*%HDm73zA8(teR}k&d(kUX)Xb{vshKDi*ZELTnWqUBhSWo85u7alrgh*uYbOk(B-mnBPPb-TU3b>qc1|OUXLp? z#U)Jh;);En`TRTZr!KfoKkzLPJ{t|FJc8taH?32{zAd>ikmK>W4;=A~cmsl(-fkdS z55OevT_?;)WPTi-bzP;vy59Y6zuLUE<6aKSbDl8A*WXG~y7j(|)47%gLO7 zBTpQD4$z0kPlHxr9NhBCRjpvJi$VVNEZ#D_AG?H;pBW5h`(H7SfA3nOmOn`U01Eut z<(lVN-vlNf98RN;!_3IU+uHW5qlZ3u|zXIX%hrO2z znr2p&g|B-kVP3p>u*+^nqlLeeccur%SA^{AGlM6}IrEWXF&LQwK#^mkA=va6)$dy~ z1w44DmEe^mMq8_^ToLeVg8UZ!7da@L`ph_goE!&=cyc@snItC?>Ww)gLn|o}& zEVqKPZe7NB7l+zL!ewD$!}+q8Wk3a#l1V#!n%l{WPuk2&6N4`}5CmWY+NabG!>vPt zu}kT&8v%NlkLJHl)yiF!bVB-sw?6yYsu8_DkyPZbnWPPkP5}V#P^1`wOITcfDln(9 zJ$uxXo%-A4RA9eiO&3PAI@xx<{`DkHs9BE3+M>4B2Yb}9iwY6YnUhIhZq-i>-fp{h zu&LxC&3cCowELa=(1Xki7O~o(!zIZla4KncBp!pgs7#W^3qk=sg#n3pfam`JFMKod z@@{1F7I#b}P8Cu$yD|13HOnLG{oukJPw6okcMujWr0L79ztnZDz2mQ!*gkG>mP5_;wf6fN$EZ_+JNp6}Uf!)BJ0Z*%P`%s~Wyso11ODx2$B#hZ@^5B_=#q>c4FZKG-qpT1vyfad%Z^_~#GJUxu-JSCA{CxUpovApC^y@$ zTJpat5|u^tZdjT$XF9&Fz7_dP#4p1fSowrgp!KimNVoJAu5lk*p9dJJNWx|roUY!O zql*Oner_u-<|l=ISaTjcPaWqR5rxMQwB~43sRVVsw&`5m#$1);hYRN9<-EJgM50Tq zK0x%Zy~T2VXC97j6t;AZN8^8%Jbjc!o#a>13Zs*rV7+Q9zR$1+CWs6>wBmlv%FiqV#7GVC2MQvCVUEgQ)9JD3evJI#}PeR}9pyTOJxH8B@!?{mns_gF7n)0QcIx zNu1g#3|NVVg1{$cwOsOCEK$v>XVRk9I%*6+(IYA*l21woX=8-yZryLvtG1}BlP`Jl z&pI#ZVs9;n@W!5^r^_<-!o-g>{#q5Y7b9ausIeG) zMiM|KTZY|8?Ni`pjiL+|)@|)xiB%jIW&0$IVQ?)pPp8$otABc>#*AdLmzCAU>`3S; zd@ctN`8#8y^c_SgJsO86np{llgAsNorLP_Dw)dvuC;d28 zfO^v_@;8(QVpyZ|-E8r+`c>K_u zLqe`3b7cbF-K)lbr$%Fq!Sf1y8kpjU&XXTlR#gY6C;cne-WcYVN;oxevgZuTENVZC zCh4_)d&$i>`Heo0Od}abWx=!TRu3|eU~sNuMzC#Omi$v?o+ffWAL0>^@d_>)EsU6k zH&OfcsyqgBg3gl6tWi?Il=S)etxL^L9>U@?EKC@M*9`j=Cvv?v`Kc`JM(o!W@O0)M z#h-@Uy;dCSnwdNjsJvj~V;B63(_?&S_+87Q^Ko3<$<;?!{c4@RV_bd1KT5t!^D_xA z7-kY?o=nVlhZsVsKbzJ60EGUByoAkg7`*CECeGS8L1c_$hz8w{y>y0UCE2BmM^ogU zFT6MLYLml!(#kOb4T)S(tiy-+_k*~kl;O<(01b?=^?5RCxAd+h;BTjQB=}1^^7v~P znj9)h1~N6ou`Yn_2eGc?<;Ns>P0G#=!q3Xgu|^hn!I9*YyoyI#-nAbga-w>6RFzgs zi=WL21-(^MF)!lep z*E7XnBg125x}fxeD;(!9EAmcv^2apgw-I4ul`*(xSXtKP9@`P^xD|YC?+bjoV?Hld z8q-EI$*yv6H#T@X2cK|WZ5}2Tfkc8nsz3mOJ63y#FE|5GX4>Bs#2y8*J}vP3%^dH; z?-^iahY=nrn*|}hiQ~UedUUS0=ASciPEK}ZxbK#zCnn@;5aV@ ziq(q5E};~0Tq{U)oA~>TLB-m|pYXW*+ zySKx~iLa(-f({Ogfp{mFnMy7iAk*S7@8(H}U_Rzy)Sk8Mo+sktq^?i@0D~O)$myR6 z{t|g(;Y*fyJ_q0|nIlM|Upo-X>y@p!C%tV{3Rd8L039oqcz5eF;A@Pti1I9tn>cvq zk%GpUh>9sEYg~(0K=7wBGHyG|V$L{!8x|uEDuW!6Fe=0IUp`7{+>Y^-Iz~sSwF9Sb zdX^c{9^3xaPZWiXzB*A@4^Zn=*-fhpklUk|V z_31~30p+mlYCD43m~`z$8=o@jZF5D~ITyxf7iKu$5?L1x;_n6<4uBJ@??yYf?P}>h z43Q+^%qqg{>Z@gux|Qu**YzXF@mx2?SvNAU**+$C5gIwo%uXP%a>dzB$&~x#C&w#wGY%2>ch>S5_}wZ zH-I=>G0U>IK)AeSOHQ_E-}&pu9|FHp&RckR@V)xUxL+AB62XWmjlhxvOhDOz?kWyC{{V;+#1?$= zVYmmCl3{IiQ6xq8?b4FLmRT7wdt*nY-Zi{TaNi_(Ta3ZOoxvVsjEtrpGUHYI+j_)4 zm$GrUFu5g~^HYjr(H3Q$Kj>21yh~sk_cyO7xHp$yQ9r3yIN{?g`V7Mff)j>!oeWS$ zpZZq4*zlFgLCIeY`423ykt*Uc%p7rI41FFzJx%+YpWeA-tVu`YN0XU*k+Qs-0QshO zj!ZTlB`qVnTEJJFzf$k1#y^O$GV&M0OfzF~n3+x)@pw>9w!N&j{MOj|u5)jTcuyca zFT;8J;UmQ_mpn+;F1`2dT!rChogNr@DU~l7@sAF+WyKI;9pz~hFlPOb z5mZhsqa}{1b_K3tbfT^t0^D?HU_eM1K)?V0dT9m zW=5mgW5$JN^)}wts8&=ShXbXrYMT&*uHN-X<8#w`>V;br(BX8F2BXv+tSAXl*SPK4 zg+S;j&ij$n{{Tv*N`UWIxOYg`?_H7-;X=7<$Z1Pkv} z)3IO@GtZ znEEz94wX5HOWNH*tDbISP!+cpHmgQWBSV=hs00-|)x$KEoLbwrOZKfaxq{P(I+!4B z7GQ5#j#__FlIb1SYgQehgqkF7tSz->88W!Zt^nCh{wos(KaV$&l|{GOt$2dlsq1dF zbH~2qKE!)g3(an8@P8|^88faR%u!Y~BrWbw#jDW>N^X(LZAWan<`|f;*k(AH5n@0~ zGaFYV_}2Q8^5c%XP;EZ`N<-Ada#5_9|5`Y`=b6!mT zT=J^v9pMJYBLt-g9!I`f~2PLMDAl3*d|Xy=W0pxCUM^c^^W?PHd{aJg zfkrI@ok^?{VmqGKtQVbp$)7OdDX=(c(Is1}#}$AI4Z8c)cP6s~!+e)q&o<1O39)L- zjsOIUSYP^etwqHd%y`^PtsIVGm7B~HvOm||5!084B|79%m0wIWQ+plof_*R6QC z&b*RFV7z#wh4aeYY~Y&)KZ>4iWn!PpjWJQ614@u~8~gUHeJsx2rd?~npGuqlh|8& zBPk}zbgJ!k8;U<08#+c!BRQLoW>gbJi?V}u2m#Y-1?Ex2D`CbWK&N&ktU>nzu)~NN zzl4_-*qV2Bj2Q|5_qL!ddPl~_i0QjVe;+U<{SWE1YxIU!klC1C#;Eb!aJaOG1emr# z70#H2@9}!W{{UMnsWVPak4gjWKqg~$9-!OXrK#w_8n;_AwBv+lXosA-LAhx<9@|vo zm{^#bQcoq?#JioB@mNuje9$6YI>%wu{%WBx?)YC$EUN=>gzf$6JUHx@*37K)A2HO- zlSy`Kyon*-`q9P5c-e6b;~G)i+!ndm4)utiHaOK*KuA(p5mI58$O&sEk$b4UX<^1< zQ)TxV#kjm~C8i9I8!6LfwcFmK99^Hr79)v_M{QRNazO2Rv&Qk1*F1$*#DWIbsIfY( zMjA_yKwvr$M)kFe9TM!wM;zuc+BR()Y95<|e)U(Eah4V2Sm&9;h0-?aYZm=9O^6EHWQX`SLF9%ABT zD(uHWdxaOPMh*yNP^<`MpQpWCh6f1@WsWA``cYHg-lrI%mkb7NHfW5FgrFOey@e;m z$s9nu`d3iU4Y#X%V`YO7teAruTF5rB_q|m!oN`>itf~n%>r;w3OKhx*GZ5kY!z#1% z2&-fLD`faF%JZ&2=jH4)gKRV}j$~Js{*de~YVBX7=PROY z{{R`pc$h5;>3C;b-I(6-IYiOwR8mWyh!1T+}m+dJc+Q=V1K{pghi#jn@-sKiJG^#Feq zIuJInZ*jfo0(j7aaBfdp4GO2yZawc(g^J}banw^4L(#u=?NAXAPR#rFqw`UK0Xl7Z zcEhN0OJ4NJ3Lx*Kp11E*0<$&ru_xGjQ?Wt_2HW15Q%E2%8}+>lX}`GdKo@dI+>6qU zS54QcJ;ewvS#&LlzSS~-P%+xwr~%R#e-6UOdVLJUC>P(QF_CUfjp>FaH9A(nleuax zfh;P~v1KCQ+Sb@pw2upE1lz9F3gXlYGFTsKG{mf@N}c;&lz{&Ls*!fFup8c)AI(-J zh_?3kr!(jpUc?T^y+!(hJr5F#HpF+S#R9JldxurFuWGAJMD9mUqrF=&)3xq{ZuMS{ z02*6sR$8MkPQ&#UH#R+}gEo>@#QrD-AZoKIBe@h$HpbfNxU|&yB^2do5)LPwa;5xhJcq6V`WtU3spo@ppT#g z@6w_eR$@!r)6&M1;Z!A&tZ#m_1IvgTIV7kyYYIF&83_ei$~%gH85EsH!`{@N5#$d* zxxKG`^(dBBSvO{C4>43)*0;SiA9q1a z@);h*ZE>-rBN&1RQE~0wsg>9ZG?Lt~xgTQmy&_B4G7VO__^FTrSOnY;{uZR5TmG58 zlS4p~Yy+}y4@6&4$ zOjwo+&<^zO-A~O800x#|U!bI{!~$>qH>YL0Y90F1YC3g$cAyOyuST`~={u>|9gg=M z>KO;~qPiDAg$MX%KDdQ3wN7T@NgR8loaP4C~eNQ48X{r5i9=yoq9 zPUb>CYE>|iR9LP4X;iVr0p7s$rMB9y__Z+>{{VVdu({f>bsUQukLgWsRhV@4J!#te z8-8iaMpsa{J+`0(6MGx&-i6pU<*X>}cDBIxp&%QP@3^S?0JsId;(rv(%r;cN_Nfb- z+TXS6JsO>^_ZFh)4<@wO3*V@{1Wrm8^0e>v(H}s)j@@bZabiIhsM`SEOKhsQ>}ZFZ zr=SPgj4s0CwIXd=05V+Y2d4D)1nDIHDaD55_3uncVP(Hw)Bu!SL>pL*>4bW20XDY4 zQIlmh>(hD$k-z~!KfM52hMn8?y)zSg+Q9d{A_EJu+QRk}EhWG)f^XOg0L93??{1b9 z>?~}@w)8N{tS&a*q&fh-_wPUokfYLfw{c9qq`MBg?MJs;?MMTtG-^-10K-kLP5%Hi zE)f_IZGEjqRd+YRXn_uKwmaWO& z{e=q#vC(pUjTVqxH@8{=23KVk-iWr=CvU|#bqocpJNg{(=~Ov{um#e> z>Q{fwSK^&Q2VdT;nWiE*;CXa|Zlm6_Jwef9+BC-<=Q)J@ZZS8}6cVTwJ2Ko?LU7J$ z9w#h^6BXl$Py!E8u�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

1s9;XTi-UZIxM%9{s!`;oCn~l6UV>x|` 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%0D)B1ofmm6E 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%0A36+GQ^WAj%I z8}OUNJiq#Ho@?V{%ksEi2Dr_6f)LXOBHP<*gSBxhaXRIhiTy4$CXo%n!;&Ly?|+*7 z_l1+k`pl;+Yo|xi@~~v^(∓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

  • yM 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

    8J3c!Vs9zQam~G+B5w6m=Z;LACSkR4ys>KR2O@7 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⋘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℞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

    tuOT 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

    urJCdcP=%P?g!WJF1IV3wNo51-fgy04^=Hsx?3) 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

    ?kQVUshuS<6{j!O;{X{N}vNEQek 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 z%0DOmC*v>1!DNV@9P8e31b6y$ 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

    DoetKSM%qq!Wn@hpHl;o2~g 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≧ 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

    -TuhrTsC1*C0z0JfxBjgAy3Bm%^P+?-0%Sg{Ay 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%0DQ1od8`gIQ7 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%0DK3%C9-2Olf$ngr8PHZG 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

  • GYviXDp#dh@`~iq8Q)Ci!i6 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

    mhdF*D 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

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

    4dXgS#;W z&sw2`v@UII*!{inaA_qcMx`b}t&d9jVz*M!)NB}*JNtbwLL)2M=^&{GZ@w&97s(9F zO`XMd#TP2L9;;DpsO&LrU75=QTTlYNqXnMKBuO-&QUN<}fc2|Hh(Q#){c&cX>;nG) zD&3p}V9gwI0uG{Ch{3-~%7sQD^&8r-#Is9!LW5wN?RSTiM6GVYtFY^Y)TEXyt8coo zuiF624T3m0`CsKTq?&^6CURJV3urFGOI}* z)#@Jjuv7&VNC39t{qTt(Q*G&>Ygc?&BoandfCMNbQ1A4?n>1ZY)URu%^=*YxPL?&R z`PRDoVaYQ5&PLmc?TCd{glz0jbI@S8pe(9bn=M38>3wljstYKMQ%rUk6Sx>~`Gr!3 zIty1-((sIo3ypQ7W%u0R(HcS+$u7mmKsUixkf{8@(zZ7PcKZD=VMGH$6K>V1y@o8) zZX^JeAb<$zU2g=wl{GpUcMJx{_QVR>tg|+v0V8hR@oZ_PGUQu#18NvhN|PK!9UIec zcr$uQM1^cJ+b40b#c@W=tNcs#hNkERbjCzt7(s0(<@F22Y<%HNs+y>&`d0WM*-9wZ z;Obvk{{U=7jlc!TQL4aZutp}RiisITsG+@HB08AQo%0sn$3cO65*9|PCA9plw%7nZ zty*><3jY8p!w^lsvKqVh!C*i-tO^E(0mE3+s*iFzVOgGoAOg)2Pf>unN;4NWJ#TOQ49^H zpbnbfuJ|Y%g2L35uhS7z%p=W^sQ&;W?|-fssx^8~N*=5L19iT%cOzqmTVyIK?zX^G zRXRx68|#CqNFzz#p*RJSKo`)Y>OU=Qx7Ps~n283!ZKUC&4jh622c{s^dYFwj-vLo9 zpelv}$s`NBFh*?;tP%kvw_F-kj2PI}**AiQOFp4MSlaAh2^w7~3l;Se%z&R_bih#fax3&^Y%c7ASXHlbfiL8-l z(r)+u*jS?q-f1jBHbFJ|U?dK{SdwA`NVZM)#e&asg-BuqYCs5GhkxG|1XkRwP_ckk z3Pn1bEGQgB4sOQdp#!MHDu~XebH8G6)WA~R?g`V|0F03aEI_mT-q3}FPH)Ia@2zr5AozLllKxQOZv(l>&u)8jL^!wmD6$aZ#`iuhkXh}pNK{aFB z3i=riwgeDC`iv-*s4|VL*dwm^4J-PCm9RPy(*UfABqBFpwl)CP4wa&Y$UeiM9WajC z1M8JRR_r?cu*oi|Ji^StosCtBya9bI{%LmsO@$rC0BC}r<`sMP7z`cMhj6S`%ASI{ z8^SUe*#c22N%V9IM@$6O9$=H^kf4D;`{JzX0SA;iGVG_dZHwAD%!kaHkFXbDV!Y7) zD(XW@ok{6{;drt*n^GuVwsZTjQ4ad&UaxMl-UEE@WXG%?h; z+Jww5bj7RqP1OF!8pqhe%R?lYpeBu1*KQABIvjT{L}J{tBRB(Aa!aGsFQ@wLj-8fQ zk<-so$4O#H>DT_4?mU9!`B~VIQS;1KN!qH3{l(*R+dKO_@A#?lx8WZR+zu#}O3lw% zIHoPtKn)-x{{VqF^=A{!L7kEu{0t0vtdvrtAM)t{W6D2@W=<|6@a@5J*_9{%0H0io zlDlpeRX@_P>b%}o4iA&caCixLvfMu}3@+x*g^fTb_Plq$^5^$?u)p!LB+AJk1OaQP z8~W{qSwl$7s$Xr&w!;|w!^Qb`lsGi}+s^!UE*--n8|Eh=OCR#6>c{DhrNcfc{vSA; z`G^ylWXi>qWl6IWC6p&sdQ#bbQ}Y3ibGYqnj_q$P>{OuN^~I?U`iL4TtoOWiUS9Zv z_^0t%{N1$I}XZ>;9Gvo5^GT1f_FYU|eT3%qq!UEY;IL|j53 z6e}#JQ3Kg=n5W|(5?>OWGmFU>%}dRXBvG$;;-50MKXu2gxO!^h@R?2On(X!+ zG3D>Wo0Pa_N8&@`Q=OqAOvvXMGTCWEbc#u(XBE?OtNUZW7QZV$?BU68=3^e6k<8hW z%xSd$0Gp_*!B%FBDPdu%lwbA4k!17R%wJKeziQtA$E0bC`I}YagSzR3!izuxpqf6| zL#f)*wrw?iv1GwZZWqfo0SBko2pBV$pfyo7us91MV&I=i1ng?S#W|ajVi#gMZS=*t zU8%^7{13%<_xO>uqvq33JWCl?s4Q##C!1d%=~)fIah_}JYScVa$L10W=G4X4E)08 zq?91kZPWrZP}}*AJ;k2kX`De6uE3FHk$QoS6PP(|e3KxAlyFNcuR=Zl0MO!JdxPTF zGJXMBZVAm0aLK+Ufym9MtDam4=TD@KUT$uCB(C@ zl+DGM%lUFd`gJJ)b~M=g0rB79H#vB};D->(_;Jlp@P0STvi|^#3A1Y_mp)!4V$qos zab15vI%DQWYr`KJekJ*DBl-SV&Sv;T*@!dEo|W|*D0HgtZ+eY={+Q#BH$EKmd35D) zuRDA=d?tVIeBr!HnYgDke}Zt{9XdqQE=bPI{E2jcqX za(Vpv!=27g!9OlC$+>1Ntd5F6y4>U6{{RBN3x_Yt9NEgz@`B}){{S(@s}n{DW%3Y$ zJ;5a2{jup7J_>nc^1S?}c~>b4@g*_mGmuSlE0M7Vx({!zK94UhSN6F~GV*-n_?`SA zya4de;q#ApiQ#XGd`mOOI7bUP*z(*@JqspfQ`X^8BLtlQ*86SO9zFPG@Esa)+gI|T0 zz<&+!>mdh?JlFaDWiSQeua)L6DPfeFI%B&uO?2NML3s<|Eb^XCJ~1x?%85_$UpFIz zEDd%*v9R``zC3^UfqXh~u3YiwfMk3+<-E3kJI#DQGsNax{*bX4bZcXF0Jpt{Ied)y ze$>MqN6hYa@CPZ&{{RwPcfpQbY}DL8hVvY`cyp|wopOPRS7HDR+6w-)k414WfG-3x z@WsNod>qnq^Fo4_Z6ZfucHV*%Z;jEwz5#jfg65+5fbmcKF&8<^xmdu-XOdYnS%XZl z)O{2M8+$KIeE{SSg@@w#skx($@CJ=blaX21OwKe4V86&Zitmq39M>*6V;`4pPXT-} zdin^pF_dDXuTZfxQbWpiBX;>Qc(99tzEv*tJsQ-d=kBq#>hxT@Q6 zTjRwt%5(23^ka@b9ki!`-v@pWW_%^#yw~CngP-DgjPpsSJ^nG6fa(T~2+2)8#Efk} z0DcL+9=Qje+s3~Z{6GAkDDdo*iw;LPTR9A}HsV68rqxGIwp*abx4sL$7qk4);6Ekj zGYyx?L6Cw-nrIh!%1FV92KFU!vwk6dA2?qh@E@JHZxhMKD-Kr9&6jv%(#s-3?5wBn zTVv7kGS1mrxE~V9 z<)h3?lC&{8l0v4fn1SzIHpf4Sp0K#v+kCk1)Oll*z61GhnK_e!bDmd_crORxka1Le z#&0dcR!ID`veXI!&DeGa8@I&&0Eyp${x8aWUy~QZET0xf50RZyhA*0|RH-b$TF~q5 zV;=TT1F}3PE5q_xY0Noz85HG=N<)pRfaynkeBkD9gRTSO7mi*t_>ngjpCQ0c@~iA3hg3dz?NYzrs0lma|jv471Ic z$wfE~pcb$syAD)Xv(wuior~cfZxeGltfvC-CzRuhFCK)OGs0n&GY9;rR+tca?exa{ z@FU=#ll(sMf0FrYl&8cxb}Yo@E?Hi4gr_Q!^7Go z%PxfrEefOjyICIn&O7-_j*?+>yL|HH-x7H@;KP!m@H;c%z{+t*U~J32PbCy_$|Yk; z18xX3y*h!96MRT=9}MwN$N4yihy0#+CR>gl&hcVX(DUo2Di>`{wSm--dYpYO{6_v5 z@?I+ZQTQ*(5N6Inxc3C+1%<8qt{`3RdxE~N&YGx800fQ13c}-_*?=!&RTvP*=K*` zch5qEj^ol!JMv{NI*EoC8u3?%{wQ*{ja>f#z&VRC$-Yk<;e1Fz!}GIeZbXkzEJ;dI zG=?A@@$>`X;dq}nco)mrti;Kfo?p#*b4oR7iDz|NC+IQfp9}v05A44I=bZLinqbMl z2;o3xAk7I#Y{p|t0`8%U5G+!iyYG);d?EOJytDBC0Lverlg*Mg%_IV-1zDUe3LAIC z;>%cB8~nR6cHT(jx5NiJ@yzsD&kZG(ZWF^Y z(65)6l(MqBIoxSr4Gz0wcx5rqbUB174O53m$}D<<$fvt9ywzr!nwD@tjcEi zuLt4TRf;Y-lFP~@2i)u+|d8+$vLGiN2uybB^`3k<|0SRme@eZdDBf8o2}XTa}<4rAx; zJ;*t}Et}!KB4z}c?o{G$8}Qtq_3Buo(|d=~Y@LOBVRM;r{;TWJ<8il6@8IW)ejWJl z;ZF$hkCJ(pBbMR(OD3|(6udzgd_~*$q`s3m3A5gZ?QdR1NpJud|Lb!ehWNS%))pkbDKFoDkgW$WO-wY z6iMx_h?7uJ*PtD7w|)@*2Ywqq1$kG9^8WzC=PYKR%<-2~#dzNp%=!7u&|9TvpaP9X zlnUJU$35}Q*t*K=e`jaQd{Oud%pVZE$?(hn0Gk^j&AboFnq0RMRf-(YmNk)92Pf7- zy4cu@#*+M8z9>90@B`r=nfxZt@%*NHoH_f2$-+5zm*E0wq%(gE%297fP{f8kTCude zdH6E;X!xAsxn64VgOH?tFOvZW8Q}TH%4Q^09+2-D1*>W&7@ijXAAbhE7;{Ejp7|@l zT()zKHTQu!I3*4>DypQmy;g=?JpPV?y z4&>a7JVq?X{6ujI`Wx!KKTLPB0N5z`w!-IR%*mK}^VTFMazXz9vDW~|%DUJKV|GtW zV%^=7){fV(B%S+Un=SKQ)f@seir@6XO~4@4F5>Y7bv7Jt^cVzpJ#auf5PINh)J1LS zG;ja`u{&368nLI}>wq;9btcETJK&wx)vyGT7RJ;o3X1bdppDB?j0p-GkAJOUxO=j3 zCr91<1>q%t8piP>c|}5!Sln zS8$)kyWpFQ^A=l|pyjT8Nb@p;970ZCCL{#bq7jP`-(ig-_+EIA;pZ;=Zv0&HUy84h zla5c~qVSFbHfJod%u%zM$o!PmxD8PP0i&mUeHhL~z_~ksKN-t#E*X=_W#T29EWVdRuTS9hwe#mp20E zGW-B#p)06Op3W>~e&FqnH#~2qwQIFKgd~AL>~9KWgqsoyC$Ps+estm!4L{>t85vZ7 z8;B_ff1$@8nel^_vXu`J=N=6kg`y(NSij#AE;IftK*%KMS~I zx$M?y;Rl7x=2-NtwxsJ~z45>J?>X}?D{;O9!@0wjj!}7sKORpeTQa(Xww|g9AnrQj zwmD5}QH!fLw~~Bf{6s!FJ{vwF{50@m;w!^`N67H+5P6p^!?N5@mt&d4h-ZZ+RWdb# zqE#EOd&jx>u3kK!5t=n$O7;61$It%&#_A|%@!R1404Ea1{vnz1i4!XlqP;t^#yuMs&e9hc$Re=ICuyKFjDVAy3Onj@y&vEu#(`0jitbCzf)Dfk!So_{8`XW~$D`k0_z>`t<3 zx4e2w;lJX0!GDWBP|fpqf_!Rx&R-#zNHg$fA`0+3Z$w$gE61FhvA-#|dk?LFB#K(; zgPAr|3#Qy3V~rEz$Ko5|-+{bujc`~z0`VuB;pOdPi*arPz=LF=2%(tytiVtN-?d{~ z{3CudJ_~$qd_eG@0Q@2Fla4^#M<*#;xg1p0e2&Fj+pUsWsc-o zo--*c*YmwX5y`ST;$&G{c0R6v{@C;X0LM?_N8oqBa&Qh(=6(yD=FWBINtJjvCU93R znrO+O>;;i#lnV6|wb92;@cZ#{<+tLTAC>+h{u25B0K=Xo$1`gVKyfY=A&QxTtJ?)? zv%jR_j~^yj?nT_MSD@EtSMzQ3!!QSMYR1N~W^*qdPcqOmYEeZGdOMHqKU`Kyf&n6{ zrQ@H7sQUd(gb)u^!fp47;Ex>|>FaXf;)#iB=xZ;DKa9VJe}nvw42Q<!dBvmAcO;MHtWh+~x0r;0;b{|NckhhTn=!4%nwaVo z2VyaRGP6b+X@Er_d1?h6fa`ekZPmrk#<+;h7@Icq7=lw^N88&K%f>Sey^8?QvOm`g zn9IB7Whkbu(2_R1R@rjol7QIjcwHKh^6@O-6c~o>rdFZ)6O9w`^YB~A-yJ>_!ODC~ zj!VG#mx5+nH_JSBE2w9xA%H(CP`|J}vAq8PD(|^qpo5h@h-wr>C#s2_} z^B0Bw5Ae2>T#@liyi8N*!5OdmA!E+8f(N)4`s@62jT-G ztz=@Tkglr)S4P|a0B;%a=KOeCX!R2l$WWGeefRFNeMj?y||l=y4-{NmCMDL0C~96^{uSr;jgj45wsA|ZSGgO7S=xhVc)^7+0MBM_rR zaj^6PJJhhRt>itC1tmH3N6=1CgK4J~;i=O=3VW2fcMOnK*P$QjRpABg@pD`t7e z=OQ03gR`=MTX%;j^4LYGinajs7Re znNo`%5#pS3Jkw}VMJbRC{rgbIwHJftCZXkNKuKaOk&E)2B&3S6lHbaVN6Xv({`lXn zqFKLf8}JACc6>kl4|5k1=FbW^Takst2ep`<=1tP7fnW zLWwL3+uM9~P6xyMu&`wkf|0N4*S1ZNrvvOpl!f7cnx`G0otnsTwq^2JQo zcfH~5-G-+G=>TH9w7Cq{p_I*}j|*s(1%ijz;?|&Qw;h1TKTd#RL1ekB7+}C3mbTb- zKU@_h1+nTXiNSmG1@1Zn^uR*QicbFkN*INiMd}P_?_XRC3~yIzTEw>tV1uOA-S7|< zE#-nVlVF3m!(;>h0Ey*Fxv`i{{{Z)4iov2AVt%-{Crg}(%Wvia0PVg5=f}cEX?PF* zBmV%19udQ1)s*5~lN_0%IxLHq;q7PJa^JovnsDCy!KhsgP!5fmnyh~=u~%91xW1+Ulcap>~>eg6O&aPacOr-r;ne4h&O z7c;^*lc~(e$sviDuC*!(w);`B(_>hiuaM$-&NU8uq>;et6^6|zwNZVmt~OtWel2)M z@ps{82;~0&8Td3@vCn*{gCQPoGZ&X4It?uZ*S?d~6Ya4FY;)Y5@GrshoK_6a9r&f? zj#uUA*iAlSJo8PNkgr_<%7WVt_{8M#zBR`2-!7QGGxNs{${T_ZKP=*RTGrY<3vtc!Gs`8i$|@{c+X#5Xk%|mzhm8oF_FMj_R4o zvDrxnOE;%Y5w~6Oan_o~^z9tBgq1gCPX7R0cJ3ZQDv?pvZ)14r{JAqOsR#u5wif!S z8{@QaCPr}Z-7oN;4*ET-$Mx^`Tum4Y&+flJ0fVL^fYF^j{l0L=Lunuu7F(fZY3F0rdJw>(YiJl_{zBzWAE0Y#yHY7pGuq zy50a7<0Ks*fzti)8!VD-BO3Y~F)R+o$?6UZdRJIo{jdTOKviC!FX%C8P#7@#VInEj zRG)3|>SJnPU+N83Gm>42+*YolutK)sZ2iUvp8)7F*i!*y1MP^y_xfT60*L*N zC59bq-vvdY-}J<7EGqukl)<+@Yz9(0-)^4x0!bi%LH4X3_j^_oQC8Acmb%^|w1@QR z_P{w{M(1ooOHz?Sfa}u%wE;tG>sULHx$S_C3E$k+;abBMj1RBZ20{r7e|!z-k$os& z&$@tvRxoaWCXL`0(oGSyZG}xus4%b&+v9TDvu9#geLEZipzW;vHtT>*Y)QXs!?9We z_Qg^V2?2)vupM^}h%4)dr8;R%_P}ZhOxs^vOX)HISS{)PUV{RyjSAarMf8g;(D%S{ zx^@JQ>~Wd45$ugh$JlM(3P=KvQUI`ULy_uoPp}va0UD~Wr~Bht*nk~Aq6HnVt_ZLw zt?X;*fUHr5uTl4`Ii?oNUc_N$&WS}7>8ltDx<-*?>DXQxQp>m(tEM898-@fAanlqE zVuTazL*EMIpgS6~-wYh8-rE2-?}RIMEKu8i_y)bg)%`F@Ez-&CxKrsm!vUuNI3r%7 zKs`n#pleflK_Bml(Ze3YYQQu$JlRG_G?DWW^}(_f5Oy6txQEk3AGrer5CE_U=uR8#R?DeCS|ri4 zh*luf>ebj^d=@&CFzeV?LEjQVAIw18<;4)&6#$Z>`r;`HNE=s7Dzj-LP1m*yGJ&a0 z98SXkkJRmm$Q1|!_4dS7QCsx`RrbLJO#sL1wibm=_h!U3r~ohY!<8k0D?pz3k+9$F>yS#}Z8dS4dNP3pM)TD3WxY$?u0CgG^`+ z=L&iT9aQi2#R)|0NECL&AdpKatL`vlp{RkqirWFpC@)uMVOR=t2*xKwBEoDwxW&vn zGB$=%E`j>vE@rbz!q3Zi#-21w4MZR18&(4oF=ZodV%uYke8?I=AnnqRUGaSDB89Cg zN?zl?(-g5)B)GQd1$Dq+%;h2vsA^W<7@2|umdn+5vESPn`I4dA(t1-LY+z2MRdv`m zc6T`FFd<4uWQz|JdK>Jz2e=R{iW}Swjd*LCCRD#WF1%0u47OQ!L%dFq|J+Q-3uvF*{ zG!Ewou1k`Zb#&Vf>QY53DwP9k+~2++v&>S;-e1n$n{oH7Jb|N=PUV+i0qbWNqcURw zNMOdd3)g&Htif7TWwjP9cQ@GJFG8;>AZ63On(KAa@o5C24Hrx<`+adlQ8a6$pa4<7 zsm0-dhtzi)ez>ye7h<3kutm@v@C7cJiDBu|XbQXQiy2rFz*z>P`e06qBLR=5_p#p) zQ6i{18G@ZOqz&-NP?=c*U6Zw*r`sG3V=l3kjydSJ^xLK}pQBf59iwRsLvkEA z2;B!wCkYc~$C(-JF)CE_7<|c6&P2o$*>1Y^ya~L*J!%f2={H-}#~hUy9bQo)zs%Qv zU%mq=WdNg+R)&S{JClYXSSeWw(qE+Cs=8rU${}6$IyO4GlUNLluq+BVG#FO>PBP*_ zOw4Uc(6RFS;|D6j7FChHRx~&JS;lQ00yYGaKo#yV9M=UjtJL47^!40V_Qz((FxC*? z{6K24)wolb^7R`KRP9}{**IxB1iFhIAn)%(1+IG}0;;+&veb9$jF`&Cf;~j(Zn(wE zD>m^_0B&)Z6;%lU8tGWhUeI+mox1nH6rBYg*N7}wq78o7EJn;l*Ft^p@)ER)2fo+< z0DVMzVjI0gfN)qIwTmsGTEPrnfa)s~N~+s$M_@56gHcd-9Zms8T5F;@pL|_H_8^Ns zqHOFh5G`%ezPN_|U^g3LU!?9 z5Pxh1V#GIMdY^0-vP+KFLlK1y#fuoS=tbLNY?=cQJvx!S8b4eEc6}kX+OY!-h}&+M zbT5KN%g7{+w*(Q76aFi{4D$9{j<<<9zE_Jim*y@MQfbO>6!42e7!gNv_tTGQ#&oG7 z%`c>P$4B_9@S`u|XT$Fm<%Y|dGg%cGoS0Kb(rti0QDYx}@ZZ!g(|)VR$-PT^eDAA# zZ}XoEEF|sl`Y69I362H0$MUGH2KE(&ePGv=riZCZZbmT~aUuQ0@9-(I%Ob zVxnCFLVzB?4}1+Q29OTp=0Do-k;KtHy+DCOO?AT^2K6?ZHY>I&_W_E#DLdHp5Zj8Z z6t@~AW4P!~wi-1?CRG|q*aLv1dTBslw_3a4yG?p^4Pih_V0)5r3L@A5)mFo)#AoW| zuXQ7C)zblqXK2VI8ev1Hz6Ow0k1=cw&EjiOC~1<^)}T9Wwgaqzh;}By)ui@4Fd39C zqP7#}AaBzJD*1yT14+1cma)m~`)Dfa&$YLKvwaSYJ^4;H8Mvql+f=_pDpc zJ6D(u>WgX>cvB9A0ZW>U000%&d|9tVM3Pu;0P95I8N9H%bbvwF^~4gR3#fs2xF_GP zB8_fQN`)H=H>>Y}LObiQK>5@P>@XWz9c>>?^r+lk0wF+FKuZx|Q0ec5K4Q=@v*}w^ zuB4j7t%K_zSIu3ITEUKC8A7dLkmwAzchutVVz$y=?SNLM3Oe2aVqe!agz2e3tTO{7 zdPj8t*2EG1_>Ph@1wg7n{$c&=5DhBlQDy-2RTuz}+SW!ox&pgZVT_C%(7jviHmoRi z)R9WMT-VFEBJc%mp2CAqLwqu;B9Ws~s5AlUP9rRPMpXvnfI6S90CLhFH%O%=edrtl ze7C7LUY56bWgc5FWuO~t9ZB}X7loK^4xN~fV}&9#kIdDnL+(NPVts%yJc5!GuymByp$I9e!); zSe{y&D|ScB0R>O`;EPuzCf9AhZ-425J)Vodp@ymfm6LKkv0BE&7ZOq_^eU#?cf&5P zF<4!IE{-h#d3p}lu)gC3zSYdYCz*5$2CC?5bBgpCP)DeOPp5sx3ofQ-KnjoLuBPxp zR4l~U(#4kd*mS`swT&EU7%q*d9=EtSS*33=Q_Sn{iq*-ONRm0Vu}5#V4v86x87N+= zMZ6si8l5U-Bx)4HzAJTT*`(0RqtbN>+YS$wR52u{%;&Zd%jy#AI=29W*X}UwJ0;4& zb4#VP4*vkk4`03$L{PHA+V4;y)DHczYY=1}VBLjmHYU1Y$)HA|q1yidhNIuyoJ(}n zo2u8$^GfO(!L5f}85T+kLXrlh+j4L`zd?w@sX;8{9{8SIVJb2yh(AI0#cNOj)vT4! z3Y%N%dWyq&!M}||)=66%ZGhTB7St>`0=s)&B+5+I!K$qS>;b_++(|G%NC(tTwef1I;krnuJ7xn{jrO7BxX{A4K++bKU@XWv9!{m zT_<5!SshJAWYR-wVOUunPLVq@R-hQ&vDgekLPXL@m|+~H19hS7YZoC_Csy>^on1TQ z5va=3%G9XBn@th#i-wq^^CnA1QqmAQ<2P}uiy=yv)_^!zwGn&XGUP^uok&x-7Rzu`GS0eemw*%r?Ie3I|8fQr)DWrXYB>e_F zA5r-@{9lQmE?;Qv@i;R19Qffsm(l+KfnN^Og>cNL6wh$zqL+s77_w134X8LJM^Vv= z#-xmT-yn`aGR7!XDDAd2U&GfVj$GxaGHWb;Ok}((03a#?Pz&zVDBrd=&Q35R^9Z6& zxObQ}2kxRd?F}YK>MQA$K0wigdP}&2~6|`-AkcfHd6) zxWp&1-{>(lP&#+Pq8h>bU=*&Sq;2##if?c$ZSY3MukVH0=|vv@09*hkVA^iG3@`I4 zGgqpG_rsS!4x}It`Fi10hcs69wQK^5)#=-@+v|WBmex(M6}Nmbs@E6?VkxkrRCKDg zbnjaX0P@NCBMRZ{ds*xKF-)nZBHFKFqv_XtTFr70FM1(~{+LfGqL67davq1K0~S`Y zU0gRpLB?!EBz|Cw**cj|U;En_aydo{`HDJ-q7LU7urbgHW4Qo|yl#3Z256T{NIjH& zaS+Dzp{zR^v(Vw$i+qYevwyY~lT86&7WE%viYBi!LzJiI7R{C&`+r;yFfsDxOQC&EUw*MLe4Z=svgxcL0`oMv%u~JK;%EjuDUD zx(p+wgF2Egq`WpWDbsA&{G~Jz?b;T;o0al_#957~x z5{;w{uCD+>vrted1F3p`xDu$0Q9z&_$i&sG0zn&51W^DXLEgUWh772Lm)iOs_zFCk z!ScZyZ~9;|6kB$%%eUVa7F0kBIU;}q`y4`JG3X<;0o)t{v@C^}aJ_f!h=qZ;#^!~S zf>`SXP+3|eosJ+-306%$)H-5cLeDAGh>L<%tefxK7D|jg2}aj&rw9=W6hhxHqBbXU zhVuNmHK27;ED|>9wlE2dmkgzPP`;OfKp?9`)F1i2y>PZ;8c7T3)m{Gh1?6TE87L9D z19m>R3nWk+20}qLsHViL7_x?nY&^!X0-|# ztY~Y&VgnVbQ@Q)#4Vn$47G3K4;RtO77&l-?Z>|h>ZbwTS&=q}f&kU)yf+!KJoyjKv z&8o{Ys;y}z_a97BY!JG`F&aS~u?m7kq1|1^ofU-5R51XW(fQuit3cTn^6=ZB!4Y5QZw3>v3u&uiR ziz9gv9#DjAK{tDQ;@+sWWe7o*RAvNO2VxEi%(Or(bx;@6t}C?w7lBEt0D;?~#Aj7c zN+2f5_Z#916+~dG0tjLhAN9a@QddlRbnj$XI8QOaQz146s{;2pS7&x`W&pU}h3$Z5 z1~~vo!52eqi2GmZPeFh~rI$#0ZlwU~J@7#)Hvo^e7DBBVZA;LK!;+>(1pu?@>+OwrhEd#$ zvD6N@m#U>}=|^su1W3*pY9_@f>4@sd6FMN&YQpu#K#&Ap)IMW%Q&I%dPT=2M6C&AG zEKhK~aV@ZN3LWJLRVlXv?S>Bv5D87}09&R8kOFF=ZiRKM0*hrNj{RPqmIgSwCaB$m zGhJC%CWqVWirj$_Pz6^}wk%^AT}QiE)&5)tVr3{IRn|8(u*H*fQj@aXk+)J0TwASN zwB{3~fzl7(3hW#L)nN3}Fjg|*P_qI}@6!#1VDC=IP1zw%9el&yhs$K|Uu+^O1zU5f z`T^8o*2?UpmM2N`K29Bia0)ocB*XRWGKiHH-i zCWVTv@pCGpG+{^p3Io5>6-dq$5T&(?2C&9yfYPl%-M3pEFl(b}B&!vrZ%EQ`9hFqI zlErKSHv4_>=zTPjsuH78j87!Xa!RJCmN#Fv0*!AY1`wOr{V?d74yQ|UEQ9?=?TeZr zB6)GBLR48Jp!?#XrIy?hR9WAA1TKiIs~wUr42;H$ph2t(BYm+^m@v>30b6_CFNs(O z1Pam){`dhUx|6Aw*LDT%f~1$$Nw>Yu)$M|eSx|-@Z*kKE2OE${zgJF}F@2OEka?25 zIX0u|f<%%xk`DdYj+lc|b^_>#&rmO}ERce=b`M=$uqD$RqpGtrIR$qF`+YFpUZLiz z1uO{${V}Q(RMyxaCD600V_(Zytvtp}Y6&YS2LAxc1{yG2TY|Uh z1e_Tg(t%mj0(L(C0QXpebxcnV~ZiWk36L9iHT)%+X&R^kI^gO7%Bd%PR8K+l!MuGGq82U`mMgV4LNGN;G62c~m)sry z0AeuCjLkrR39vxl5lJ`Yg1Xs75!&~`K~NRA(2}NzCk;WripU1zO|}E1OhT1AgQQEs!m6usN6S4NiV_Kr2Hg#Ae^cXtg27oVT2N*iio!==5~K9amZGcc7l2wYS|HR0 zz>eb(Y71_{$INT42rd5r4@thGd>R0SiK0ftQyf4ZgG)r6tPa?3F=(ufM4f>Qn$PsOyMJEr3q_a8k;}S!`aW-1}g}K)YdN8@|H?Y1gFC+kHas1=(nY zJJ#!a3;()5Ga+ z&!~ZG?Sy!mP4=RvTKv#?WJgG1V zEMV%4fv9x$$5G;$c->6KLREb%g=<2skbiu3{v#x?JF1}tg{xn-I;Su%@!kY|A=sBX zyIDWi8pqhfiIJsgTFEFu9Y@n0yOR*d%hN^>B8lix+N#Zc@zb*YYD^fd>T9aKzwG}2 zOm{9wZCtyUa>Rq5VNJCtQI44VXD6Be02Z9+$ox9;zG6u;}pGoSPCO_yg>e=~& zf#vyoFV6gTJscc6E5M@8=B9V05v*aZ{it=vl|L1g$;~Fg)v!iZJ5(th&vA z?xXj{#r#G1zGIet2Yf=z^3d{?Iae>2%cOe*jkE(*{{SgC)_494uRas?-}ZRJ$G?tF zJL3NU8RFhO^KTL`^7jfdMamo!EApU?TS%S1%_E)fu=@4$Z!3I7c(dYvG-UWTOO57Y z9AAsa4p$;1K2(h>fCG?h4K~|Xe08sgjv)Lq!o0sPpUfsxA(hHV+En>6DcM2yCG_Ko z_+{dW!~ARI&Sc{YD9b^fif>DwE)W@@;<`(qpy<%U@`mNHklxMvH4gv%ES{{RK~_GNA-!z1&!e71jy5FcOD9!%j` zq@O!Cm7&y^WadSSV>y_ZW@aEAahQlIPp~5$IQcGE z+-ox(Ww`d7b2M4ZxhuFWt5@w<^1tC>kkZ;({qTXF%tg(3>yZ>J+B6?U;qtvtE&lx_7BXRyUnAa^A|1%w#1}cGB3bAW80{t;VOy|ucpD$7hZleH4Ov@z@;9lDjFxizJVJ&+K=nwt%z}(QQ zvDD&Ov0FyLL3S6`$4~|+&1G9MN)=Yr2qHmX{qd5)?^tE9Hy9J5l&hk8ka}YSp!mhX zpyD10c!9&>$*#BLjwB(C2I0Ji*nRQfkB9zx_)6itk>STN@h&5)jzh}%NHV#6taG$& zG%+k>x+wDX22;Ck4nBu?tD4MYJSpb<)V<%x2by?5|O z%DLVnKRk0+8{mzVO!phh<}xWFQCQj{Y!2R#F}&yCv1a&|T4o4tbsnVyp~p)2QSoz^ zJbUo-j`*Rt?;RO+o`YZtaUrx5rQ;r!>~r^GkKM>S_*k~z8S zDZ}!-7En?$AxyeUEQ|{2^i5!ft(x)ae+9gL@OQ;u81mi`_!Gg>4qW6;Sk5k6F#;;X zCa23F5evN{q#BRScV`}cDf+h?yfZ@lI0a9D!`MT+Y#jIYJMY^xS^9_AJq`CP2~Wt zPy^c@68JRyK)D~p7U3TXJdMgcy~|lVrxb%MnLbC+u^l|qvJ;S7x6vBzAZdQ=06I)9XuxDbMcw@bd&K(xW-{3%PQ#8TF^44qCGl_*~g;4 z60Z+9r;C3FTzkTv6T_v=XE}?QxIRxMm4-6rM>*KsiXTYv*780icwz7-&YZ*GXM)^~ z!v`1Dl2^=Swl2$;iHVd3ExB^KdllcV{{TMchJPc&UAo+C2F7W7h zZ!6_8c~(-4WN=RA+Cs$s=M{4-$0f>~#hla^%jN9b0(%h=Kk1KM^`|{*K1uvOd~$e= z%sw1=f8lS2o&)AN*P2s@wqJ$icxuTsu*VdJILx6&gixxc%}^WT-`@ki8+e__ylcc9 zr;Qx77Y*aN+~*I^XJCUcvc!)0a!6NN3<0gGfxLP9;VZ`ORQNaeaPVz;H-vCZryb^A zTIPv(w+@rjH1eF>V<|j^Lp1{n4al&>40_w)7n%5@f#dwE5@GPcQBx;eQ%dSBJF8-!?=8)G)Q`lq8%lVfqW)pjQIQZu# zTdv3Od*ElpwnL8c$HaHU=N-vpxr2=G+|(cW7c0SxE5YDnV0oriFChwrflxOzO>gNL zR2@M^z6Mf^GQFDSp4JdyKOTtAWK1qUez z`Fr)pO!#Ny?~IR%j#lCxDtN-n$lQ~V&Si6)4~KEyS`g376ze2%Lck3OzyYWh*@o0_ z9;flImpmcPd{OvK&7LxG2$LtuytT)({5LNyQRP{)j@f8|AwjJP<~X`Kg4axIjsxOn z#Sb>{en;iredX>0lHi=Y**vy)EtTf1rfV~v0z{1+p^jFN65WtIkCxzBuZDg;+}Fc%Ij$QI9^g5yC6vj>u30kB@ocQJg%bAWYh`C-r z#L;7r47@?pE)hu)*dnL{SL!5_wfR3QFALs5qW&_zIkJBU zJj3CyhTOT~oAYNjc%R4r0K@nv4sIa1Xn<0POGwri)huJ7>V2`ixR_PTfqRa(kDR}b zmlTtM_~r1U%seYLu<<454C>|IRT#+3WI%7wp1(|Qi^lSH##@+l_Ky_i{{W62C6xtImb_9jnt~{gR z-vZ$Y$-W!Sz<599v)RsEgFBy^86EXXP#G@T*ajr;WL7=R@W0|7bB*PAhb{47v%d%7 zk>-Ckt6p-{{WS4CoqhED!gzJx9^W+ys)Yk zE7zf}xZf@_9!nX^kAR<^EP*rUFaq9+E-5&ujvsyKYd9z+uXVjw3r+9VuESAFe&y@$K;q&b*Dtyur$Rm&{9- zpNVm#;rWG7UTC3zQ#kCl4Su5@K=?7`pAWdt;?eOB!2Cywd1c|gG0(;Md0RE*LH;2g ze>vqBKg|CC#PpAGjrH-h!*k#H!X7uD%PddEbE;*JUhOiXCkGGWnNWd{{ZDLC*%e;bd0RR&+c*0ip!ocu1l$Gc(38-#6OH*i#~tNcx~aIh#WhE z&%^jkoJ)#vE-S=li!YUd7y|4;W7UA555CypJYmm#L-;Y`2L|Nmz9M;7nfRA8&LW31 z%bZd3Fv4BY6w2<2q%%Im19Zo>IR5~E?;5-v@L!wx&VLx=ws_;c`o!Txjbf5guNInRi3ep2V|Ftg;O;#z#@n=PDyBvYkVaAc#k z>Qj%Q%dB~4U2FJxW_f=uM=Q)f9(mu0Nj?)ecN)p&`JXE~$Czy)pv%SOtfps`zF5^9 zF(e;g2_R#b@n@F4GCU9DX7Po*W91HK;E~VdXLzS5=LThRtVjb}ENT424T&Q6#?g{I zxcpAOB6yjFnetv0XJmw-rdR&}56FvBIvOV$7vYJe&Hf)B5gClc&m>t`d3Zw`NJ=9~ zou*(q0&82{kB(2Ra{J_Zms#y5o8M$OM07RWtsITeh4jJdT$ zyv?6h5vP?rW;wKr08y*@^u_tO%rcTXaa(x%d0X({;G7O0ie6;#qdwo0ejl7L%8WL- z+G5SO^C(ptW7gg$^PGMxc)82caFSag%iMP_CRWg^O5S1?eLXBb<+GO)|aWOEa`b$TEH{{XVbqP!yKN9V44;{4ykNL-Zs)dYDJ zBoe680ubrxNu=Y=!O50cYPGC&)68G^gShdr4H!>k%9}nl=A(<`>1u2^0tUsVX zvBjVGig>>%4-)jLvG_VQJ{{RTTzBo_(MII2pj$HBZz2TH9s=Rx|srVd|NKGQn z`6#y|a4Xw=vGlm@w+a2;OsBW7;P}q?58(W>{wa|7i17O-!C=XTIc4H`bajbSph9l8 zJ6CLZFYrg>Io}cdZ}^h&x5M5EoXGf9$N9ET{FN!nG&yX^^W-7mQlh_yq>;610=CB= z_^|#Ao)z2}p#$rGyh74+lzt;_8IJY-&D)B@C(NdRn79xh@5?3OoY642Fu8h#tS}IM1T}~V%@b5u*cU=3_0tQd}-uv9pZn4 zJjovy;M`IlG7QWT0($(c0oaP74?;2XC-Ii!{vC6F;&Jf%;O~Ll3niHGIu2yvvvUs= z$W5div*th$W{hJ{AymHLkc`$TfIH#3mkT|a$>rqpbblS3Kasy3Ul6_^{9WW;DbE?6 z56xU-m-#z{aHS76URWhLJhzmTLlGJ>&;r_0+nc|nJ{Ep4e2>ijGVsp_{wO{hd5^-` zILJ}KGyLU|p(NU^OL>YkE%ZBpdyIKA@XYvk<*$d|#?QrG9r0N=3(9kZ&BQpDA+BbO z8M*V>gFl@EKH9`CR1cb&$MTxppZJaW$B?)m!iOtzXAzey{vdIVb<003W#Nrv%?M)$ z^9%?!sp^eSyE2cq{{T*T&jB9I7c?_l9=O9Iz@ z#yZD=94DB#C&R~wTnn5Orx?j{PYs8QqkO`3%b;+6p|AGGXkx78%Mb?C4R^~znJe*-@Tp9~yhmVPDw01`ioE^6@~H^B2r7cAv@yEM%Qn5R(D zl}mR3fX2yFLc!Y}b>|LL_{sQy{BV44;9m&7Gv)bTJIa|nu6g9*S%>_z%N|!Kf&&_> zh6Utvy3pSp-{6Pg^Wu}^8}Sn74;23Z6Ymd46U%sQz#+?U-V?-CUxp0qfgGI76) zKLt5|A;^5q;r{@WnagH4Bx{t5IG$p!l*t%S9F`hL7j!yf*Ix}h@t*M?;akH001`N+ zVc$E<9D%}fxyhZaq?SyqZp_DWO_RPk@=P+~$1E+^t$$ZcZSu1(Zrahs0tHepxC8p* z6E&%+N|I}#_Qq47EN@9Y1)O8J@|Bpr!i82m?v5WZlZ?vJuc+Bl*RaP8%-lnX@O}j* zbAs^GnanJxg#y_`>RN}^vDq_`i+}L|^A1~sejQUja!FQ9-#hTUzE#p@0bEJv8w04*5$Z8l$M@oQ#kdmk zcfp^)iOcbS75qiWWimNFDV8J2;JJ5Q22t2O2d#)zQpcbNq?0K$$Ck3ydP9PIQv5yh zSH$*n;SZL%pE1OF%ZKo@n9oa+kIl+uT|u}cb-gYC@Ak)P;#|827!pM2s<9R`Jew?P zI<@_`#<2JZ_#5P}fiDTA<=m!p@xFTI89y=3eA$`x&7I8>ODHUCMx}@fPkScG#*6%3 zzB75_mKTHm9^VQe=X_D|GDXX0r^>n4!m?5l7?xWo#0EOQl@-|b!cQ#qkEHdE@@?M^ z{9O2Y_<-h4XXTFud9y9X<>eQT{AV?jaM3HdWeOcnuXH%VDC&3VWs;v5SvAf6555}vT`A@^|i+_a< zbmytOjv2xEhE5^HXLQuD<oK>m~8lF2Bm(h=1Zk$h>zrd`|cX;@R#G z4r^5Jl;HW5e70RcEQ=@%uduLAH`gkDDP9M2m%-ONd{^=}FUuZ#lYF@I+_A)SA!HJ~ zh>_VHiE0Pwj^pAN;+^<(a*kg!#wPfb$mg5}b>aCqB$(Y-$zWDh`#=INmpBFwB zej&a)cwD*u1ab+H8kINuwWen?EgQAEwG2Xrw{{R)d?9i#huqo2 zIht-@bYBX0s#P8d$ zTgQVx9uI{d1bH*y{{Wf1bmcz{xK2-+IG;Ua4;16cmb}(ryp-e2Cg_beHoCG7J^SI$ zD)8P=@TZgcTPZWxu=mvb~iAiA5}k=O5x=av_aY8cDsWq42G`|+RTe+_;k zc~{}b;nzGkj4*R%Q!CB<#t<|!29P7c5kEBs-Glz(5psBy*ifh z^8@kl@F&9m00%x3JUi!q3;7d<@F{X0Eaeh4;kiVL_2n}T%-Tlev`B2;;Co}~#ztu$ zhVa>BHqXN{%oS^L~0e#5B0`suxGO+gYu9& z`(n6ChS#fLPN7(`G6A+A5Oy?n$Da1=Hd#X`y6!t*D-~01>f3+U4O9aWzM;Mab!keT z^m^6+5Q;S(r=?&r5@=bohVsKv?d@1$8@A_SM?f$Y80kP&Cw`aL7v*x!v!?a@U@G^n zxV9JqGM6B*T2puZFu(}iTpyNEOb7SCcpt((U(YB0C65z0zEKLn{{Xy}3A1GMdy67~ zkAL`o(;oMVdEs$1Mw*6`)3!Vx;kPkn^1t|(IrD+>CaAMs5JQ&8f<9ysFteYcW3r<<7)35eh0o6{v!CP=1zU&F_q&a4SZjONOJSB9Sbs%ul2lj zj#K^JZG7>(n7(LDa5#-G3<5(1>AnP-)SqllvkkLwAEk?ewmVgyr)(nv z2ITeH&s;{d@}J|I7FYiOnMvY$=7pkWxK@+yf5dXsf2KVx@VA`c{6oOM54fiQSkobx zT%l(@Blp~Qi4=CzGu09#XRz&Il0N?Tff3e3r zT%zl7M@XPOvBUD{SIcl*(+wpPip3I+qO8B5&=~G~D6BcfDf1zqEA+=sI7>_4#kIGd}Iwlb#^;r7lb#Pl35EKi5vId8HAELbm_i1w>=ad ztyX^6a#p}@_**w@xNG+PFbKhamVmvn0SpNrZLnOgsG#UJ6^cx)x~dW@(Z5Usvk`7> ztn>o~_xr;aClbs>Vu+Vu1ZY#vlyR6m{PA zHSLV0U>l{<)#6*A`h|M8Jud;iria@QFg08K@d>k4j2nQetSbKiTmr67YVTtX2dEO7`l>Y!T3%#!b^q!M;I&{Pe1DftI4XDxu zd*Uk)D7E05qCp*B1x;*D_)?(Wt3PZJW7I$Puw8ZlU#Jbod>bsg?Rx`=yMspl_#hph zYWBsGWd2wKj_~K^2jz)1E?`0>j)u%T@9&Jo4Q7W%?lC_rm2AMx$(Bz!Ju5L$s1Luk zEC!8}xjxv`QogafbUm=dP$aKPtOpb|YCHXKL7)vC`r?7HYyG#yWU)SB2V+%>2~c#< zKG=syQ$oK?DqlomOBPiJZif(U&<%#*cfq>)4)!|WTQZV1H?<5H2BIu)?kfu502m#H zB-YWCEP8bqt3lELB+>W4Shi@lLTaxLpo8*(zT5T15+7YD>eLP`p?fu*J+Kh73n8e3 zwid&Oi|3`tNvgq$l=C_{Dquwp{7 z*-%C8iQ@qTs5SFZtPtU~&|{qc{O6-7g718X}2jLBmv3b-0n5)EzkykkfTN&!$-{UhH2iI|f~47F|7Y+_8x z&OvQKTdm_I>5*ExF%~h6IcULPnu7eb{75ploaU;~mhmI5CC+Xi@36_rPPx5{q9bH8oQ7VTxyw6^f?BZ$Nbz$kg!0x)!7Y z_d8Z8>n5~%rP2W%ac8khJEhT3)#&wf#Zd{_%P?m3il*2O_{&y_6q@u6td6I-!C;8! z!R-G4mrrbKeTt)0M-C<|s%@>W84ymeDAX9Xn&D$6m zG04U;thz;a8=PK+otY4NB>9Q|08C=WnSeaW^oMViLG6r~nc8A>?5ce?)Zi>>8R0G# znUm5!y)d#p>WfeSgKWmA))oX*VIZUFrX#4|rXU5|OsELI<^bZ^pe0mgQ6W~LWEQMq zW}%vSbx)-=x1~whfd1Iba9J36MNXO&D-=wUI0(^KmUrK6`{Lp;GcdH7W>A5TRgc>p zY)c?=O6neKC~%;Q2d+Czsv{+VECma_#^2i=XE>$_B+$yttO-IsZSL_h?K@%0s+oDE zU;!!oL?>fdEU>O#Hu99HTT*uE(|@)fGFQlu!n(tP0O_ccj7QJDPdAt0a==+y8(9Nx zrAFf%?^RbJkR+Nw+TBKfDkfb-5Wp&mQCL8W97?6ZW?-t_O_SdQscD>+0d;zn z4(7HSVhgg{&Q*|&5r9h`ruySKDG`@grEOXVQcf@w$25#1Qlt&6_w9_>SRER*Sozo7 z_Q7YjDZ-tU7d_YcdmMId9(G12b_e@otngAiz@_i71K#o3cw-45jD;7c)GK?s#P`zK z_jCL;-HD72srp_s03c~Sx`B)gp5sX0Skgz=8Oo(tDWC>3V;{Y<21Ru8N0I&mg0|Z|C_uCVy>}=ln3Dt`ew`@SW6R)ly0>KBi2?Jtq z0gs@N_IfI{vtjk)8*R_lt_8NxYFgS$R)HmFU z7_-=b*bWo{jLsE2appo!mlU9+i~j&A+ZdEUqSx(MWNj_CzS!LA?izfi{6l^jIG=*P zF!B7~FXUQ&8rj30ghqsZUMWQp^lyt^=~&~G-N&c$f5hJhAB*#@SkA9*tC~;(&F1bHgkgT08;nxL1t>P!jURkw z=2c@wkXf)blHXpxTw*%1&PK3q>qxDRKX*HRcNCHRBYGrmLgFiFH9Sr1bdJ8*K_Sz& zfGV+Qupib)v0Lx@V^^d0l0zJjx`hSMimrzD{qS|^CWgvr{@9PGs0T>0Lw$ei{@9CZ zfR~`Fb=;gqzK{q)%A4uY*06;^79(aLf)pO!_;zs|h0BG#!9DP@FjJ{Tuu@6Yf}mg* z)TGmNz0KiOSfYT0lDnl=_0tB`RI|~pyY#~|7V6dk8b|4ZT0#cPrkIcB9q|YR+>oi? zU>mo#9ks;~Sk$mXdO*TFY88sa!LMa*y>Pv%Dz)kfx%cgcq)=5>+$kc@d_}dp0>&7d z9$DJA1E~ApD*`YpR;_&j?SX2Nc`t0h9*tNiQbrmXfD6{B-_r~viIl6lgQ~zH$@<_C z3l5yT8_sG9HS_SA5GD%{`dx9<{vIr4X~rr z1@&prqQ_7ReK4%XFk3L-nxjI&2eH73VvgigRkA$FUZ3rPX&NVgQD6W7HT(9&jU+AR zB!~qHLVE4j5=IY1sqMA>P9(&sAS#6^T6_I*J5-lZq|s~!x}KUV}QDuh+>w?KbvuTpXrJWKqHlAZ&4&Ybi_#aQs+Z8*&XWuhe*^$g_sIcx&7-7 zi!pFi5kU33KWqg+#H`F^ASs|*z4gVubOJM^up5Fatqa2Il>-S-ZGCsV2Cw*P+L_q0 z5z_D>$pJ&c#A{uRZa%nOO<=a{h%bJi_rqo72QVXOiqQcm?e#WsGYYd8gK?+Rb=w8@ zMa#dHL1>2*b@lqDcY~~wZFLKvE9r?DFuza~gWm+6)iXp`6k;1!ses!T zBRM`;t903j*q^QdTa32n)#(J){l)_V-knUkO{E^A2E2+FN)+@hR!vO~ty-*(hyMU;2v`im1h$YZYSFTf zY&np#66w6A$vr)Q`{4oW=cSd>r%O;K&MRe^fJP2|YAJvKSto1(Ey?C7sst~usjm1W zw2EXXECZlw?{$Fj=wl?R1YmzC>UY2_(}?sLW4#0w3M$QCUibmEiBY0ceK(*mNN`ZI zF$_+CN6G-L@l1wBij-^e!75j+p5I(^1h%o}EUTasL=D>sumzNqt?vG8D224fQ2=1K zN4EH~67GDED2}GAeX*RH?iVi#&p6AONK%7xFV)uZc5Xc+C}tp^nFnBd<1>W}zYUQy zGa|l?^suli=x}p#EYJC+Skaj7k*#g^!`q*g+X;N(sQ^_v&XZMtQ}xA>#v{@hZ1-JO z7<=!CWQgi_eMB8X*0;rg+pf9WMfHg&y-h+Gnr-TEKuvY-|38;x|qYTYazWO z*y9-^1+*$Qp|AANn9!_v0zC8{`mB#;l0WY z#J|KimQ#fOb2Y^?W6u&OUm`t0R$cci=x{5z$D6awCVmW`1k1##+5FUbXo9G-t-vjh zq#uWuhB-bTmy3vGcz#i$k0|*Jw9JIFFmwZR*K;A*bvXPFchq{{k@!+@P8c|DUNU3yk~qKiD$H;0OCQ@Eru|xat?l)pj2;n}F}a6OaSAHx z0;#I2`~LXk08_Ocn`4jj##ec5{X%L@8E*7x*?aroHlVhzXV{D#0BSaO7;Tj9Hm}q3CUQd-S@x4|?)1*~68Kr7NH9@qvJM^2a^_a|a-tw!~C+YnG2o|po*$^cq7 zgVb%*Vo}_URbJijD{EieoB`};ZG{)An!0U<3TlIO7*9zcgFs!AfEFBB?0x#+u>+>S zcNhghVBO9jI|2=hzyPeQ1rkB*eweKyRnwtQUV_2t_rtZZQX5YGq6OXn08uAR6k&N2X+Ogvjp?uJhi^LmMgdPv&QRrsZ3$*8!uF zJ0X1_4fSEQX)GeJ4|<`14lP)+ioZ|Xbj5C&ePTc;umfRY@nH-OuzJ`7-ticexm6T; zR98SS6&1SDEHS1X{jk1KRv{g4vasA7Jfd9;pnwZ*N8ZLOaU_o9(;6S90w{2xMmjHB z`FGzIBI=T~_1F)5R$I^#I8B0yP7Cq}vk>jE<; zrXeV?VMrKh*ee}Nve5M#vDX1c{(wCTSMPoCCc=v(5;_Y6^(O%d^r`E9raiv6F4~wV z0D?PzTp@N(P+AlLC#EPSYGOe72YeJP@z%OJs)^j3Pc2xM3>b>&b|)5UKu& z(25+RZ>LKQ`i<}P!#iozTv=owDZ~d(ur^eTDPMdA1)PU5kO(`gcl~hdG+kE7I}i>U zK@d_RTL@p!NpKY2?0v9HT{5ow^&JSplys9zNww+KT?p@hD$)8v z=0jQeYO4(zlOYV`pSIt=D^!`(6?HUiNF7crNuA@=%ub_J2XWs4Br`!64EjhFzW9bv z%3}#+`avh<9{4w`Fe(a$qj*aUfQ|M9fO;FiMQK)mJM|U~lY%vZSr`IT8Y8{d6vHx) zC^xB2t1WvRRhSF_bz-K)pYMRkic=U87}k|(i8!OkaS3n$P%H-6{cx-^Yzr)-s5_1R z_-Nz+mL!w)I~)S8hyl5%G7n8|Fyd758OR2xwT?I0P?U ztY9O$*fIQqi(gY%2@8!T!QawvbArBDO-#h<`GM#$y}*3QN|j(m4UX7ZTT*IPq8FgV zY2YrUi3N7B4Pjf$I*KmLy-DhEnJ8IKnDzm*jlmXg5INRuD{Z!+hm5Etv<+8P^u*S# zLdlm_0ChOnsU0-5irZB$(BQO^p&^ct-90^jTsxRR44O%*qBk4%z|-nABO5ycb{L-E z=kk;3zZJufs_PlSu1m6=~#Hf7{fEJom=nI5rQ!C*zV8kUf^Im zerlFiBm?Pdsu%=$Aq9#TF0Vt|0iHeW*}YeZDp;elHsIkxs8Sq*exOIT0wJdbHa&>z zhYmk3E<#v;#M`yuJee4eBoH+XMUPB5fW}CTi6dwAY(^ak5K!aHYHs(2EU6gQNCbBl zaFP(mTWJ>5LH57_?VYUcy4UrqzuS_i#u+5aE}rzhnZVhqARuvxwc>}iS-;9zSdNlkOOB+6WaZTD+{k>mc@d=@6cek zmH}f0+0KM@NGN4?VK^0nXM0J(Y{WgA5PS}qui8t_+1E;Cj0x={&x|p>UAnbcq z6GDeVNnvERrs^vNp2dh_e~O1|KCRFFF%YwZ{2~hr0{eU6Q3F&Y*^e}B5BUTO~C!w-$ez=-Xsouytl_R%m#f=&=k_ko(G^swr3Z^tV<^=lA>~;gT z31-n!;sHqYIV3w)-=-|33ZN#GJCFs|0!?gXmMlb&Y1PmXxWrvj8LWW zz*|=G)dK2E2L-{>sHASf>|Ove2K8zyq|*X>V2~?88&_WV8__zoYJX6!gZ{<~BMJrB z+3ni~rpL@yazg{P16>E(4QOlErn_BU6wxFXHC1N{bhs?aboQ@o7WLY|@M;QKY>!Xd z0IMPx-atSU2AZLY%bwKcR}MN33b)A5DifO0I`U$6hT7E zZKRHvi8z&ihLoiGcij8n$F0M$W4n55+XVIjLRFD$Yf$Znfd!X;P5jH-?}lU=g{i$; zViq-hfxz?%0U?Tf-!UH8RasRFIXAru-mzjbY9i<^_1^>}LPe2_osQo4H#>w?Vyf~D z2e;c0`B65VO15u)xM8k9##Ga0tFgqKvVs?LU9eK>RW|L{-w7i5s><%aMKhqeSknPULyWAiHyVONK;Vk%VZb`{qUP@7Rw zOAS3X6}}31;s}7DuHcjVj6lh%fh(j}saM z*!tmx7Oh(m)MBXGNdPhcHyia8i#){uAYIt@9WYJJixH>|1duQqv@(so!NBtvs}6u1 z0d7vF2k3UeMWQT7Al-GmL%8)R_6G4ZGbW(5@4sv_ohVBh3M|;bDMHc$?m-(+_QH;Y zpd)(+z6g=e%7L$K_QO?=NdTUdHW&)EGp?xx5oU?)eQ+44az?;)EHLtEP^9f@W-#EkPxq&3MpKZb4vnu%}noavXHz&#g3FYRtI=#FmW-WlT$f*<)8i71;X%v_ZUm2zqI!$SW6 zVZJoS;(0d(kKxBJ{wo<0&&@eFvYJJxaN(N%lny;LoAOaIGi9P!;{N~+gUO8)X;2hU z1KS-llJQ94kMFkq6o{O1_@B~G{80YymU?} z_-1^1_;(&xn0Ob%hZ*K>2Po0QxQ77El*1kL2be+F#sW@VBPPWn$u zA7hUN;^pJNqV(ynF00C32KZg^Bg_0UJom&`B#ubo95X0JV>`@_shybx5gJCP<{(wI zez^3H;rYo~zY+XG&iq7XIetu^E$~dFnI2X-flZimL8bbN1b(>ZI1l0L%pCs!#)mU} zQFzmu<`d_KpNC{5c8*%#PPgbU*kjR|4jI5XSC;aep~{>ZJ|Dv}FsvCYj$J~eXgYtn z_c-+N%O`A1ZuCEzX*j$&fCY_+J;|YuCH@s$JBnm{Yxs=J=da0rZBT6QtIf=RzCBr% zV)?kk`U^-X^`bH5FT)$0^Bh;=7veXTxQe38yw@zuv8^pdnVCuJ^%(W>+xc1l0J9m% z`Ixw%;a8NpF@wfmdI-&+EUFl_`9Kc)##K~ALgZqT8RW-!Cl5CmX>xxZyGh8W7|3+zC`!P#*dR+)3e!Jl% znWJqnu>hX^u#DxYnqHpcp~B^A$*9tvH+&qYjgWC}P3E3@;&bvxF!LgDj$q`}kma)6 zNx~wsO+HDNc-J+RLha=?J3 zosKj#zkpu@zYg94@^>xxec`VwWpY^#U*j@yNpl%|vaV-|=D}|zvl7;}5s3{8s{>(G zjnzDcd5&U3r%}Bmeg6R882JdI^WDT?Q|(6vd0iwH2p8|y7cA~~cBZ6Z@y=i1+`@8g z#Ty$;$@Xg@=04s4`Yvbv`CCk@|up3WY**Bj9J;J94m)pIA;jT@SYI? ziz}0XV#}nG7iu2llYaM!oyldmhE{Bjaut>w%nuCExV4cO5Xwi?5-_Ur<=aWx$EL?z zWvN$)NDbKP4m4Jx;2#Cw3cQib*=}~_F9x#N4mFii9$z^gc4sjItL0Z>qjo1?D3Wop zxi^wIOT+$LPFm!CS<7(DmZKz*<;LdbnvB%j|I{6Gc)h%|RB1|KIpZoW$1pu1mu zS!_u)={$x(tPMMCR9$^>*LlOkK11g`yzuj1CGfs0lFa8L&gOC)ODMBJE@cLlougnw zN}vE9tN=Z++H4Y3iuw#un2MFDwE_vR*AjHpy|MTfPbtI4<}x`rA&})$Ev^`-tSB~1 z>qGY68I9%9RFH#X>wm5*$&~U~Yymab3bHJ0N?5Z%S6pY_LcIR~4dFagDdLyU7e@O1@S&Sog^&>Bh76#FufJb$g*u;O)DKtF3%YI znWaxBDI+etoIncLpgZ@krQ-EvU@3S0QP^UUDGFJb3*TKr zoytk6?)3J&Mifb9(raqyMgz4QHMqPel&X|O+<*ujF?&$rwAoe~w^;=MdW?L`{BC(- zJ}L31@V&(IIi?U#{xcAcN2u0Fj1G-mn6V%H3ghXY5*Gt1CEIQG$DRH<{{Rl(4L=YL z70MZ2c<25v%URA%&t@m#`Th?QypFPk)Sj(@xX^?2#<12mb&Tb>ynoKzD~NDU8rAb0 z8!;2F7)?A#k4t|H5C^#4ucr9&*Tx5kd>@cM7T*uNOy*8A4nrZ793L^nvy;oFI3s3t za?Q{H8*|VDzCM!jXW*^y@yqI#-#3zZ|#hJ>3`FQjEz^fXyP++mfD!%^!zB2jq z@M`!^@h_YQICGByhmB@aD4Be`oKH0~m5m0#jbJhQ);!qp_-Ark<#E+~eoq-Z8R2=a zir!Pr^R7+uyzQNmep8+XX(G?EXXlzVMnJ%Wt}+h5`{3~}i2ncubKi!xQ{nb*b>cir zo+Hmh*?t{9MT~hx8LekTplQ$|*b6P{s-cgt93${y_$lFYDNhGEaksWj6=y9mzyV>*Fyh7^&UxhA&N zx%wP+j&J-Y{t5ZhDU`_Zu2jzD6DumRe}d+lEM-KXBWk-{s)Z3)>>R21YJ3NBj#)C< zF9EXrKvtULTt_jP1RkKP$*1(JOni5`zpHII{{V;2g-Zv)k2&)LO{*!zJVed^0Eb8z z>5?@_eQWe2k$+5kf6GPfe?yK7kU1NWJSXJbr-$Ac@`giza1IjRka8mK2w4mUaP!TNzr7EzSusH54kJH$DUK>ZhGPT6!6a)2QXw};#q))KQ32@=442c_upEQMbNB!KjQJ$I z4HOJpNk&Nu9qXvaKaqx9n$vt)Mjyh55y^4?017#uA;Od{ zT=PQZ{KR`LAJ`UOh8>L8ZkPJ1r>Oo8lMXZ@xS3;3h`BM4VgCTb@yP}@c{$&lP=A^z;M4tamlysY-woA5FEI1IVUFfT z^1QM43mHGQJ(rta(4{oo+k!tn6unRI{As^5W2{Utj^}ODBD#5 zt7~h=vZ4O~!|madATveHas*N8hGiPRMgZO{KY)LQQ6N#vT=ezQM9v@s`XBF%PG67b z0Hv@LQBV7C9HfuL=1pi{?0nZ;0{8ABu5FLf(IL zX(weLEwNo7bWuj?@#20t%f15q68P`Jygl*hx%Zhfd|p}ju5fTJS3i`?`Hv)mIP|un zOqJb*5p|7=;|Jo~@ZaFK6yW^Z%wG*2G3FwMFDrme#rPnCFDV598Ft>b7mQ=^xijRM zV^7m7tAFA<&hd^1%|8rW%fjbm{Es_vCINbRhFqH~SGb}-Q;% zXPWtpg3%cXGCWJUR&A||F|DqN2h_<58ABU8^cZ~FqW}P=Ct@+$@@H|V69T6JHG;A9M0}!Q!VI zYYygz>(7;xcB=K^Dp)D;hdUCs7A}m5)x&N0X>fJ8y}VAQsd{*pru%W8*JL zamMx%%=0r%BYK#M+NchI3<9ioHDGUj@Su|HT$`h{bi~#WpH|-Z=dSkNklvu%(fL=f z!O%*whpoW8R$1(iFcI%{h|Cp<(m-Lb7^27vFp&EkR=JY~b#o;^0zgH33|SL;Pp7YJ zV@;|_G)4&Z1r_zg*JDF`HGUu5FTh`nj~6~PWbrI<9N&rRARH*=1W|DHE{(jbZHXwo zfEQcie{l%2zn3$k#UxEdrpvfs)wbjv$ollh&d-kCZt=t8zws*JpN2Pt9wzY)QRN;{ z;H$;?^NDblD=ds-Nk}x_vID}Z4#2r2Hj!Odg!tj&H{i4JU&FjE_>u8vj`J^rJj0O8 z%gfwbGYOJtId_eTTZ93PYUe<8{|zVkj$h2+;PlI9$|lGR(WJxM#0?~Z(% znB#@N?LYZ3?>leZl;)Iex%%TCc1KnOim}jQ)*h|ut88Ot$VCCRB=i{O=;Qc|r9nz1 zk9FFHFkeAJtk&T`zpgTKlH9t4gxVS)3akGBt}&#LSSZ(jH>Y+#>45Ps{vhrL{xA4x z@oeg;Kj8e~!gC`1+D|9{0P^F@+#~Rb@sHul;a`$IHT)yvIsPf*H!S9IoYBNMbo0EI zlL@c#k;mMk^}8?Y17Zd~mV9FTGjK1AKLB{IfPBNoqv82(C!WdXWS&Tw)HYu+9KlFZ z4ILDB#?9sa4;KjGoG+I$P3ET#;dy+DtcLu=jv%&g+zUJR#=N{|PI+PFm908vIsy}^)&AvhS5By*F7sp2&_||R}$tRl^ ziDw@vp5`tnvSo7#G;aV9#RC^b5jK?#q>Zn>Jxkz^fF1#SGX5kyd*TPe{{V6d$%)Scpe++}1e0+Lbik>wW3N86{p7+sbrD?~N{2%Ao8+|l^Bej7ZOn>;&+{7MY#*$mt_ zhEFPw{n=50`;2OjiC>Hl!oT8QiuiBhpD_GSeoHao-!vx~;Omy*(>`I?Y1IUa<=93j zg#Q5Sez;>Y{tI!|n=6vP2#>@2!wk@ihx{_|o+QY@A2G+XGUoTI2TZQYIvWFHcYO zk13SX)j#-;xE~tgpNFe)o&zu$ZW-cULp8+L{PDC>LO)M3R5g!Ycqzt5HT*vKcg^#F zr-^bO3(T^S(8-rpuj`MU{{R+$jPJn@#7BX=Pr#oOejdD0lY(*2B1Tce;mgQcDNwq?QN0Tn^~0io0@-2?_w~XFV|7qgmvW@_>(dZT zq#G5!+i$ixIxPkwEC#YVXuwFo1*L$JK2`&^D)U)%vyw)QfFEpM32ia3bH82i3mS%y zD;|;FqI;ZJhL(V@@{#_yX(L6CQveU9$rwTvP^&kphQ{u&6U-!rB#m1irXZA{B}v-0 zJ+Tsl+=>l0+hR;Xky1sXWTM|gfbkR_9cA-h_>H9J7WzB2RL`LN_zMZ-9Hun(Kev8d2ryH+}KPUgRe<%O8a?PrG1AW=B-wXH@A z0L}Io#h*ROoIYWa;vDtC^0R*|S&ZtdpVJ-{@n7RF#qJBpoI}JOcji{g@y;-Oo*lyS zECI_09+;vBpg~%jzC7)e=Z-JT8JPb7^N#~r+c}*HCSfzqB~staT#|eCHH(iGzS8sK zA76(K*OwXWo?<-A2XxG3qz;TfOk=P|9#aY=ioV$S(c$;RUy6SO50mjffO8gWjq)_v z$l>NL0iJTk1#$(1!8Zxxxj6GVHn3@>@Gwbg2Z{ssN5QDub&O!6MWw@sf$g+RI;v8;0z5f6?xAr*Z$~Tyi+1A=vxA}L+ z3!af*o+64dLM~(G1t5Q!a|*zJTys!Kt{^4q$-0wOiH+P@?acDztht$?Xtfm#pw-=- zSneDlkqOEdyB)gy@zi)AcrzcEWH+g353bnl{3|ZaKbo-63-c4y-ZPt|x^w&~T_F(z zYadGQc+RptME4Hjz3<*D`D^+EB2WtJW z#L)(?0Vt9$xx6bXjm_cCiqm(5Z7X|N_8o8&Nbbjem}7KCqJG#?`bVT#I{}6lc18j+ zjX;rfHaCkk1zoRmSV8k?zvab&K?i^4>5Sx=dQF2C2Jf~A1QKjwrICzf%9Ysl7_eOi zuB2Wv%$pS(eQ<1pSFs&12^3FoF&O%&bnSyuXh{HpfZL^!`e1F>t@Ocem3S@ertFd| zf721hq^|w2*1s*{F$Txe27F5sF*;th>@eFXz+wEu+X}>2O}($a1jx<*04eQ*LrtmZ zHoPv!eXHq)40O@P=ccEmByL;lu>0X%ski+GEGnk={SGQ-K452B1K$dk)NsjmY=N-t zf^@Lmwylcd3av;D9-y2}Ob8SK9{8#&saH_kd)^p;My)`QFcf-4bgjkWAOKMxd`q;w zfmHy5z4pLHRU3kI`(fCHK4#kufx?4zq>rfst{ta|BqK(%-1Hr=fB~r2*j5@sz>03& zF#?FqU4RXn#bgaF$D|RfZLt?puw@o2dc!CxC@|RfJ#ZUJgQODILwc+LRp-Ue4VgO<4v3)B55nBr1Yy{9KU06F- zAttsTOcX^V&;s_m#3fK&5=ZsK>=URDNf+!+AZ693r@i1CG(&Cefn+gFHY=_uVPtH; zkbis~Kn5(Nblck%O6-hJO)GVQ8<%p@Kd1RC-|LBH#kLC2Y6rFt@d8la-1{6(0bc!Sm#sMZ*P1Df+sqeYqgvOYU=g~*mO9x zSZO}q^@^m1Soa7H;;8n;*X6F7>A0bQfH11xZ)_D-2E+8}h#2Y~t0U=%ht#YAt@MM8 z?t(PX+Q#Sg!5Wm*U<(#+2XJ>6Uf5Bxng;asIMUvQT8QiZ_)-X_)wOiNVQdI(fa&js zT5(6A8(@TMX40m%vZP=!8p^M~zAPe$ujzpMi(h|i1tcp zqL3+oZT2_{Wd0HzQrYY)t`>D5F`UZ*I#^kwRyVw2=7=evp|jZRdtfjmi8Q93gQzEaykTY_)UBy|6SHnH zogxAQI?x?O;|fHP(1N#Px3)Ju3`r5ipFkA z1oarfQMRfh3IhW`>aDJ~ygL)>kxJ|UTmEapOD3ggw6hJi3yUvcks&|vgC5ETE$HgZ zf~?_SPbg~gzzU=T-p(CRf;AnGP(J713(zRup&Bm5_9yF$A(^z0v9kbn+rB9cOsd4% zY(VdLv13TsyM`_gplaI*>|`w~P;d&Uu%!F%c(q&jhs&xPk-gq2hGuP+Hmw`5Uih{) zWsH!gWdLd$-@YzFOB=MxuNW#Xt9QmeWQAY~+0(j>hB6W%JBDF&ppEN$>5B6sPF;XH znRW~}z4~D+7}BU%)npb4^y-tp(;aV!05dEaP1|C_w*4{KL=c%*&5^e?8j;e@I4(Dr z(ZnT^G+PWn+iuvm(ocGEnYkm8q(ziBl-9}x*4+*&gD(?g!buY=7p=Cliw;}M;w_wc z*e+lNXu^tS1Fen5CQN8S6rqVwN?!H7ck7N>DH4b`9Tj~lYR~W62TFl*NS7TFNF7P; za9A?VWTa5f(Y~Gb#4{p>WMEfsPL8Ji@sROJEvmR4qBXb|-x+|Eb4#pOb6aB$AfOo} zze}C3?TqMNC_?$6n1&+MbRDoGKZLu7KBTovP^asT(~)IF^7i>i)IH8Rw+3j@>t<+= z%Uhq<9gm00=fWlpv%M(4Zl@FdP2bw*@(rXHv(ykhjyWL2>^IxKILxDl1;W@S$8E96 zCg5&&0M;f<8ps-!wg(V~*RdLFU_I~+05|%6xMj2Q^{iw^-_oz#bi}c*P=2DT6Hpt2 zwb$PSs4Q%Dz$-S82^21d-S9{h4Pc8KAJY@l(6PWQwy0Qj)3uB&22BB&faH3#^ur#9 zsXc{aX$5QMvqWOcpm!-m@ASYn2h2~kV3yjHZS9D9g$i~(aP|Q^THjung-w9FgZ05? zwcK~@h{H{gHrltv*Fq1JP}~Y515$;p@IeYL`ukuK0Ru@Qv5^~fC0Dmh4Tq~v*S+E@ zoi{`hcEl#hZ_>T+14w4J8+-k5NU^Lx(`-XUi7mGMF*@&i-~$WZ`*g!4x%7K`;Cg|v zTYKOtfI|_#{?;`z6!T9gaQ^@i`4^0MdBxB)TvH5mHjE`9~BSDJW#irfc=t3%8g zcFX4+C1deMPk~oat&(Qx7!y$bU0~1`Tcr&^~G{T=~%cK=FLG94tnl-O1x6ljr#B@~z<{Ci2>?8O3-*0>q`T-;`6n9fV-~%Q6 z)GN{}`ra6jSTPn{Q2JmqIElzoQB;5{>(>`mq7N=MU=*>gx7P~}XlgOcRM52gj6147 z{5CYmNTWvZsS+h=Bxtb3h(Bt^wF7C^LDFf4o+#`qlu9nu#_Wg5+J`H<;Uj>LQkhTR3ec0<3ZnPe5oW{IC@p*8 zhP9@;V4;A!-wN)w@e^8!`J42_S3b2<$UpLnZp(NB9SR2>@*9zSX zF}XuqcQ=Aq#-y{08Q2>w47K}s*4`V2V6i?Q6^0a+80R#Q9t+o zm`PgwNnVkp06LIx(y4D$evzVp_atqEA!97(W1tgV17e5O5VlB((%Z-!?ewfcanSRN z7YA=)?S{~dJvKE_Upy; zF!_GiaWHTqBv>JJSATp7I|&ig>PE6Q2KG2DD@M*M=ob25y2fKJJ!Aq+ZDR={$t2p# zF0S6-eXw8B5<3c#HP*~ES?CT5YAfZkSt>ev;yiLwUX>R>{c#vLeL95z3BZ)IYt?Hy zuA|efZG>%L02OSw^7?N>79A>1q}5>94Oj1gBZ+i6NXCI9)v!G)6MeTmkg7s82u%ky zTknZ}TWOdQWN|=YqF{{MZ6MqqbKCmiTmXpAO2A!ppmA5rvVe-@%=@f_FQ@uo6$CO9UZS&DxaQ5n7hLxEaymmv~fp2+@4BkIPj-5)F{mAMKCeKjI(Nzs`M2@^QUj z{-5|~;AQc?9OTRH=JGI@Bl4Ad-`f`kan*0^FtL!oDY0Gf>;VLW&~zC7Zv8p{6z&hc z2-HAZ+;51a6W40*iD20ql6oHa2&HVU)<3Qq=u>sPFVLON;9eU2Bztr?2mtOs>4J9X z$MrZL&8VHLrC{twOCHz>@22SY!8S)vwc-{6hrdi6?yw7fld-G~x__n`sZNuLM2}GY zFcpgf)JI*un4X=zhh4Bm0k=SU`{1_r2Y;>sNU#RqOe4$Wg1QY3gbt?+?x#?$g15vW zn3XIBo}&RvYNH{bq+itG9d0I6LKHobUoIWkkP65a-(h?Gv0Ti`rHYnC)ICRbCl*bL zVNlYlDbyrxmySVWJxdTin83>c`KV6ihN7Sjg1^%oly9sCzqR+q#X%k`5vgrTPNI9^ zi?am+*1C{3I4#hyy9a7GM`57%1aD^mNubfH@812ejuAA9BoKBBWMTkFZ2$l(4!6@A zfJZ50S1W8mI%}>SCm|J5*lFBQ>-EJ_##K~;7MEf5#E?Li0{X0yZmSd-9zp8_1P9bR z-)vVz0T_L+)2Ma#!wC_cj=frkL9iH%Vo*cNzd#T5zy+Dx)#il*Vlf|Ep%K!M03nam z;xmNSq%FOR7$uQo5eK~@*z_N45)#Q8 zcROAHJWLUSrjpA*-&5Zevj!!V4@)Xfwi@I`y&wtz0DIqDDUiEdYC)hhlUv{*s=n4P zv1CetS5Hf-`e6v8r^;LG1Al+}?T1w$i4{oDMzuYUY)j}}4q=g3T7n50H|xJlT`Cex zjNx~p4fVWH5k8WnTW%Ll;}%3#Fr}x|WTMNbewe^IfqfAuCw;$ME18Puee1P!!5Scm89BaJq>ULW@6K7u2ihYv0fa z>3~IL)V9KrDNp>^VIGLpf|GwY-xhp?BLiev)B(g5<&ZU7A))PnSM!{SRR}b0zW(0z zh*YRF!G#0;FtQX3B=a{W^p4mHx~MYS4TWGVcZHAzeJoqnIuFwnpbYxkZ&jK4~FKayw;bcNUVn8ZuVT(b5lp+?~?@RvpSzd;XXTrCA~L zC?$%KVDEiz1Vlp^+EP0fICcuGLq=GIq7Q5l<%Q8?_Elf&i?LI}s5UgKyB_4=y0MQ_ zP$8>t^~1GMdMA6LwS{oOiXrtd-p<703fZPd46D@M{RqHGp?Jc8RgG!{;q^)it4DTr z1AIwVC6I+swb0NT;_qSA5YcikPS=9b#-WuCkO?Fcijl!21YKP$9m&Pofn9Ff3e*&C zKU^ z4e;J-InpHuwN+tcL}6kf=^NO_fHDtDRaV`5;;AKlKxr<&DAIS^zSy?(&{7X%TH62; zQ29kvQ0O`w2Pj@PHiOkb0e>#|u1QNHN9G101*sog1k!HJFgu(1uccxttU$X&O8_r^ z*x{+efhL-w4)xz`T80!sOhD7Q zBWuD48bBnFtzW9g`rsVGDJD14N#D2w67(S+V%crMueK3HEC!aMU%tanwiOwLe;8Yv zV}TA`*m;el@3FcVNwoJC$2eOSPNTR2z{3o}=+@{OirtsDnrA zhv`#+3oekSU%lW|fcle2ZNMhzdtk>Ymv=Tv1E)+9N)hVxt5WaV5JXp^YKc%7eGVk^ zGc#CF#;r*0hY_n26H=45wl`x7Dweg5CMNBPJu3v#u;jL)gHFA`7-4Q~xU;<;-q=2b znVnoIt?#G)-W0PtsGSHKSz+|RmQ})CaWHdjVDH-nXBxpI3fYBKeesUumJGs$?gran zpotY(kd4W2sJshwxt?z@^q|8@_TLb&WLVf5Ww$q2Kn1j_GzM!T=>0JxWYlC^vUI3# zVc!NXV-PDK3^os9_rGC>R$!%?BV~@ncDx5?8iOxg%`mh2Vj1Gq!T~#JI10oq~)(Q9A z^uco=C&@=4zbUO>!?_2#avO0+fX9`(O zgVPGG$O@J96RAsd`(Q0lr8WlFzkF9E3Xz?KiU8p1YXOmzuKOK`!$l#HH88d()GxLS zTnK5umKx^y<)eBx)l%eQ9E>_hf2F$ zfY|+U8EArDh3|lY2yp7&rBXU|!vkQGweMu~!l6=WWCr?g*9AcT0Ey6d!MW%I1M|u$ zdg|B=29ZGZN(gUkRXc@XjNwZQH_!laT!t1)gpX0|I+66iwlX}#(4$z?qUdjk$6QUW z#qWx8(Yh|CVl4EmU!ZIA87ljegBvO?v#v%pUYfQj5^uDfBt)3;Oi z!Kt(;O@c_V*y2B1G7=6T0IiFl+kx$Z)Bs>B+v$T!m@}P#(njLy{@5U$Dj77J+quJ) zZ9Awn(AE@g#0w+8(*}G%+bLs2_ZT_>A&q)^Sm}u7wk#~2h9WW5sO$}FMhz_0dTV+o z0EXXCT0YIbBw5UPS^t@daW!1d-ug<*o{Di`V2OoO2(^q)cauv zl*$9C>Djk6fJd1aXwprBPLXw3T}7lKfFNz}i&(2IFa&k$i0ZN^1p(akJupr8rA;F$ zQ!oxq-Cg1s*iNj9)JZNwdwb#B6kk#eeJElnG9@<0y&M!-gjN~Az1I6;9WHb*vPR(h zVMem{EcGA{YQzjk7C^Nck6wcTBnL;7DO;k8Ju#1)5i>~{V?bEg?Y1&Un#2YwzQ*^) zHfnMnMnY65^tPM2-vPk!NlU+&qh?W6?~a|vWiu$tWt&6!mW^7yB%QI`IJT9`xEqC9 zE%YDzc8d&vU&`6enu%TEXd+Trj%(T zrr-Nm>KRchPE~^j)vM`1SjTPTWv*J47f@L9WUj8@gN~T{XD6P26s{jGd*RE4MGB8M z{{TAV%AaH9%YW9f>HMxwJCWt?50&B+XM==g)^;PK1OT7k9$EZT`HoIq@DrEjT)LQZ z9O;)2BMS zm8rT{z7dc)9$`0QzfG{h2?c{{C~wu=rQ1>Su zLi{&*H#HZ=N5rQz$Cy>hMa)^uqs3e6mo+1U{{Y(0?~h(2ljk_BbhJF-z59RD9!~r( z_?B>dM|@7?_?v$h{{T4`RjvO3{{T{Nwew2jE*y|G19UoXfQ(v3P)Q`+p4gd>R$ZJ(G>ZdI({Y4_ zg@z5glULNx#rCtcnT9@Qkwh`t@Q_G_ikCLuI3wlyVhAVAP9cd~P@+LJqWT-cmdr$2 zJi--_4J@*4SeOEEhD04Eyvn7%iD3b{WhUypoI^0*zBBcEK$SJh)Aj5TuZC9*bJTM|Ge0k8%J zXEum@q$F*6$4bVtKa(J z0>}K;P8FS_m9q1VE(irjdL3~ya%J*40mL}35X$6o#npc?oR}gK#(=ZjlS3T#x36nf zLJ34t^Wv_j)s{C#E-S}PjYUj=$;ops% zu(ECYAve z_yua~XI7%SS96ZPmC5`ko=O7?UF-iIvFH*0JaR01Li8xwDOPuP*Xe#6QA+AMo-{X3jQChUar^ z(g)0usUxC_Y>mG7+ngiE{{R7bhs1s};U^678!ZnX;3F>FOCz2u3n7(DB7#q-fw8WH z?}>Qwi!#Q$ep@=TE|)%_bdR#xrE(gE+D)tD$QT6KVu~#vja9^;ss( z{V|LE7hS7|^BH-7Q0=Q?wSUtY4x!XDf~BsGo|yC3$1lX6#XpAJ)ym!qd>eRA!#Sgx zd54AOv;0T=Mo^28%SK~R<&1~`EW`p>ZU#6X13B06h{syEpxonMm+J0z&z?Ke)DSd`+6-lanhZxwJdOeY!t5Id9y;ePE%@zoH#dm+ zYk~M}z&KV?QldYvK4t#O(E5{EEd5&KhcwZ07b6+TPeEbKC zuM58>M~P7DTihwt-x<%2$-7}Qmg%+?=5Ms{l={``N)RjbNVrK*Fo8u%mKL~)jQvp(y4!& zwi1V$%8p0}(s2vD7E`%2ewafiuUS%PZ@x4x&1n&bHaczwCSN6(;t}b|!>sSq-vG}S zl0wKBbR_S$wmfzCru0+8;TfE>{$Dc~LTgDI-JaO;k3N15 zUK4ZQ9~@&f@f+g9@i@sZn$B}cb0dIGt1+7Q_u8?*eh=Rh-YfI>6!A~ttHsV`%yHcB zg4c0X8;058Y6Y*P_x%1-({{S`dY_~0NzB`%V z+^x!T=iWf51ad282|vZqvLdeEHlvG=78j1?FQz{;FFzO29%=Evz+Vsfw<+Q8J@~=G zI6oTB<^1TfIoY(0B%hi7RVT0{6O63aiv9<1)Q>Zq@#~Y}Sw+R?amYrY^z~z<_}lQ6 z@Z<3xo5=AG9C;7?UQCE#50g7X=Bp9^01=R@H4tjgbB_o9F24$24W0*b?}ok^d@%S( zyg$T05qYh0d>b#9&*o)k%Oxy@gGg0IsbSy$0A=lr@nMH8lWk>l#%=Wy48~JElZ!vY zvry(T*`*R?b2)iLk<5p1%EMwS7YZk+>%HTx_)o|q!aoPOL&Ap6jLf{Z%h`OKv#_ml zDge!2eeutE!9ZbuOUFBm-P2QgTo+RkKq9s{B%MW>huGqgm{M#KrFx7Jm<~N->C+Qb z?ye_L)qQ$a4QVBIH|>g=O(ReMk|zHc?m*mk#9ey!G#75YMl8!HPQ5fYfggs~!2bZlXEbGb=fTg1jF%4LxkuNP&B?@b z8J!K%!p`gmTl1?}Qn-OAD2NCuIlyFj$Q}D}P9=MUmw7QBl|thU!m6IgTdo36oCSSGU^_`HaUOAkQYQBRF{{X0wZSxzRg_pGs_)+V& z_Ztz{5^_A0V%EL!&^}u{idaM=)m5qCRyF$lPATFC^KQSN$>rzvGeQ^-(Ek9Zwkw^W zGLOrU2~f3*Cvaj8>;;e(zpgKK#FFe{%ugHvqK+t3gXxA4v^w?}3hd0?O?=JL@R5+i zOQ{5%EPv9l_oa(A)^;BF%~>?DU5OhC`rwi@orw%L{{Va@wa^MO_4mMH+BFaXQC)jt zNkb-)DuGpfu`@bRl!Lh&5-_nd7E(T2!OdQfb$*qN29awl!@iojz<|(ZE87L%R$W<| z^*#hF!FFBS0b7ENsIaepd;*1yv9LQ0ut^%VR+{QY_%=fkL}~|o0t*BZPQZ%3xQXDKAdj)daSP3<^7k?*ucp`k0DoLM$Z7PQu7_-5 z%H+yI0!VG^t^?+WhMqQfHSqQS0EnZyfLT%A5*es4J#4rvoy(6Lz~1JF6l2wnQ!6g6{W#fin%r+Jr{Z<^a7D{GEY}J6 zkKoxZ8{{a-aLleoMQ9VCUo98YKvhtzZoUV`cpo%y9v#j+sl{W@aIP_uk2k|}(E+izUjL04_n%zKD4iSYw@J%PvcS%?hgvt8_tY^d`QT_Ln2` zUx!@n;r9pTj|ceA4$pG2$}Bt{UKL(K#Ga6f2TH20)s8viG5c8SEw#$X*AY?4=-mk*+r3US>lP^YHh!@k*buD5jH{k;~R_TGn^+am{>3KQe`AuxOxL!5CJ`} zA2&Jg;|K8w@K>7K!(MFhb1j_aC^Czf%$LNBG`SbV>YoR`iQk0%rGaquhf z@!{u%eDTg7h_8g4M~m}{^R{Ll7nFlLn)CB{P?7%t5-8!3H7iJDragyYjM=#_@PQoW zGU@Ph&Cy7-Q8Ssm$VVSl{MG)48Y9KtT;qA(J(%$`;~V3jJC^5c{3$MHmbqgv%K0>6 zSz!#VOF)f+&^^uB)ZAZ-{5fVPG4X#Bd{NA#pqQqYh(^mVwVeQ;Z}rEs4s3I`TXOuI z@t@J}-gA@isNr0R`92}=ZLl}$Pq@|lPpYvxZ9+YnOfod?v{-vNLmjMld>66PMM0ddDN;U*f~zPY~eQ zPF~LVE#a>e%Vk?$TO*my#WXo`I%!3Os-LZleC*A5$KiHUGaILY8C=mS1Eyz*xmG`- z-Ym>`@yU>o>);A@9v8k{#Wor;)-F(90!(Ll{u~8cH#U_DoDzt$}J<9Yy!EVr~pAd zPebS*!$^EW^OuY~2ZM1x5u)LV$~?!K;ap=ao{6VW*>D--09BGskZgDBLmqxllf#Y| z%dLA~45m@^$`1`b3v%BVTtDMSgZPWV_$N1V&*pefGDDTkrzq(lfWD_50r4;JpX7X}5#oOkS-&6npBR^oamjPJt{<1+ zs1c=^*_;CMQ5FaS?uB*V7W_7NE8t`w6TCN)x$Bnl+)Ib7IdzAJ=CYzAn0a-tnCdJL ztN^369DLqit8nF?jveW&_rqkf-Fv%*d~kdg=lGG~`9B_V)8-RmA<0Q7AF6^e+ISbl zH^b*NaTxd)DR_|lM>#8cAS5N63~%E6+46UF>FBs>ZMyRfmTZdWvcyRn{E}AZ6~X*Sw3B*Ps=DKi@c#gbClm0m zm$Q>^uswVKn=f?4yOPpAHpr) zQ2XGOaN8?Xmqo ztNMJu(;SE6lgS)YlsU7({{W3X7n7P^9msroeih9UK$?tM4BaD0Yxzdw{{XIIwms#I z{*D%J8uLGjyi1Dn4?IQ2c+B2(U*YAla7idqtgJ(j4_h1ln4^SCHd=IsY{@xf3K3p0 zceMa}pY4r{;_rj=aqkX!TjB%4Hjj(&bChJ`SzM>8T(Ej!C$KZ?X0Lo@hp_}do=BuqI%SsPFP03uQv zLH_{2gN{@1n&!-pIsP2}2yxtu-eN(@xjc-Ff6tdu3y=N@7-K8(5uYWO_y+N{_=Bp% zd^qB08TuA%yDI+x@Wf-OehNIg{JHpHctOLPGvmP(b6+2o02}WtD_`Fnu$6LxIA7F9q#ZuPt~kzYl6=pJ6J*!YGTh_G zV^L?+x^nOR+ZnmZe5m#4wgacvrX~}lm$yI4`IypFGyeb(h)DpB;PuCM;ZlO&S>JUZ zOmu!+%cK(J^I<7b0y+?FwN;FFUKoThf;KEsj^q5KZH#B>+IJm?h7!U+!@X(lF`5Vf z{=fl@J`~@>D5K^&i9YzuRs;gWe`?1kN$6Fm*&B4gb|BiN-XJK}x;8mU2i#;&H!3U@V-vF_tQ!yl*9ePII_-87E+Ku5fn$*rsZUDep zs4%@I>!uv-xj(mTW1@tR)3Gbip7^;OkWi9urr4J0oQ)_V+pgU(z-$zn+olr00Fhrz z6_UxJd*cZy$)jhW?}2r>8}_k?XoF|2!w`YDU9f7@KH7R<0u=TA4jB7h2B0<@oELDe z`bed_Jw^d=rq~cKaxleIZbwgSAa<)^Tj0+76Ed>xV}9cTKv)vL*8$uIQLAs}#4HUB zL-ieST}`F8&sFyChoIyFKG?6)!nPalhmDAFL$27|^iM`WRhheBuFdK_KdvDrh$?=S zfp%zt)4nZJ6(E+fPumF1y#*y}+Yhn39S84)3#3p}L|xt{lFg@UVYTgDu;6;`#f`VZ z5=hhz{{VagZ6@N5DxgE=4QFG8bs*Q4dUnG{sZGc%UL>0u53xP4PRPJ0B#xan#8RQP zhd1q5EQ;%=f8PpKuRtf*UI}KQq5!aRH{Vaw1?x?y0{i>m2BHN~7BI@k)v?>(z9hS3 zfSp3@Z~I`KR!BYi95Xm}^9M@87GM-_WBTHV%oeQgU4|EHuk^r@SmR+7fclQdz6m7O zf!Dp_b|D6=f!AumBv3uaL4XC3r2Q)pk^r&Zu+W--*skAfM|6%d=$>Bv`MPxWh=Rrmn!M7z)a!?&|*lz6yqs*_4YO z;}k2RgcL4~kM_lAWg(hjTE1HCShhliKrQdn-vO)T-0ip508>`05*z7)Yz>-#7)?yO zgSWOF$QC+|fPFAsi38kjI*chJ^yqLcNZa2KFa+Cuw!trHt3U{P^%lLbL1N!9KS6?^ zFdwk{;mEFlU>1l{cieQq)CmL)hSl$g%|H!ZcEW}sf`ntgTEGHBt6J}V*j9~Oa!20| zTEh~=_1N~sQ~ZU3oz3rnrbcu^TUGEmUj*dkG)87jANfG^xj0QY_ ztLr@i-4A?X&O=w+ zwgT~;Ix%J{$78r3(-?XLK%+?KVbtG#nBG2y7GqPQl~8SmOk%Rm%BvQWp{Uu$T&?AV zQP%w<>x@}r5h0&Q)Hdta6jI)kyMlgVJ&(3AWRg{lSrtjtMIQLRM_5^(Nn#s)IL2y_ zrHdPSl<#$mCd7(WX(`3hZpZs!(TS1d8)>2RIA19oX=T;6*Nc)sLXcn9XnJah?T4xz zl$KW1MGr>Za5X55#tx<1dh53MDE4kSbpS5N=zm-=DmEdA(Mo=}m$53FR*^!ef9+wz zh@R*IJCS#Uk8KTL(p_}*AAhDTi4~bzLq$z`PkaMM=Sd-XBq};B8ozG%wm5?@a9d%$ zlfT;m5lIoo#FaJ+Hva&pzAsc|-hkiwdt%$Lr(B+pn-X@at+9`r0T)prKp+jfp18|2 zwEAxt`Gpflp_5|Xio_Uk$ev(A%|UIL4yU#_J|`*s?9Af-0E{ZfxF7Cu%;-qcwQsOn z726zF8uKH}05xT`M9ERGO5kPUja>x_>|heeHx zbyf%Yv5u(4{QS7sgQzv#-Z^BTC00d~%2yrAu>^ha7||M-4^UcJEDrW?Wm!DQ6U^ur z&`!ax1S+z;fmMZR)KqouF_9u<*XBmy$MY(!+YXKN#!APi2!L^^t${s1Tw&$o(IZ4! z)mv4C?L%y56kK-Z&m37>sai32rxxbgH@d*@3A&<)$%SI zFl1j*0=oCdW#Lb8ukyNrD)4XpF2#`}%L4xZmbzn;jY_AM82WuD99BX1h*=6c{qf1f z%_T86wyUnV&P=ROfA?TEIFPddJVl{jqFJy83H|&fzznN7NsN$J+Ti> zh5O(Ozo)hW7XXV=d+pl*5#@{6@44-U-s~UK29yD|3wlZGor|MQl2n!4@u$UYp`w3fK$?>JMCZ_`f5Q;`8Inh1HjAa`EHK$8f%@;h&CNshj2R5VM4E z{Kiiyp3G{3GKE4uuUue}UX}-@I&z4!ECMkFwHDmaCmz`RR6G{uK2YYo@36%k|_e@R;E&H;~QJSu)TLfQ2OpMo0|S6W=Rx@7}3%@P{uQa5t(&4 z{$gLKC$9MW((U1wVv;f+O$t5N2|KKX*`q5>u=WS86oJpUgYh*Ba-Y^HML!pwRFFx z3%=C`b|i(60rD1FvG0fg)kO47)b%G8%5{`eM@5rO)K)5D!ENRtN%=_M7EP$ACv7ZB zfIzS2_rPfBv;{SKtoAsGsD|}f2r97d+8oBVNf%`OF#0J18|r%P;3!9@%*LnMMn znYIo9TI+!(keal;AoYN_v1XBA`F0VOOFQ4!7W7hjl!HO2T5VgN*hE=X6)5UavnzBs zHibo!x+Ed=^}G-tLr9Hbg#mPN1PDu;9k0{S{XY0)46m@VdVINYnJaGpWD*NH16uw+>SQ~2UN$xNbw9PSy6nQy5r+ zhZ;)&D(sVgOj$5hGB|tn-rZ`eZ|jH41`4@&mcZIZBe}x7IhZDR+BMY?rn=v~;1#Yg zk)j%7VTWFw@bZu1d8PHJ6r#J|z7}TwBC4g{^hZO3LqOk2OFDhd02FOh8tm+(Z+Hvm zK$I0gC205i{{T~f@yZ(GE?BkMD^Y zQzo}&O|5UKz>Cgi63ZC^$PM2HAnE{B*1EQ0dfcQluk>S^+v$+4sZ} z%+oTBpRO#7>DFWd zLAe0!dki5Fs*J3jx=J5Q?}=-Bi4r-O-e@t3cndFi<*J&t* z1oRsp-wE!4)O76Z*Z`^>aLKujY^N>53lp2oYEY|2 zfI5wygGj)MqGKu;^^G(bs5(!-(;e&Kvyz83^QRH!4BV3(hX#ryEH@@nc8LdeYa<^! z>Ypzkh48cHzNC774-Q`=#@eN_6w%tU^Q3ijjtR+J0Lkrz5;0kfCtOa;mWb5ufF(OU@PCY2y@lNeU1UG zZmSW-*Z|Ser}e=!tyg6Cz(IG@pxXfIy}-j!t0ZZ>H4Rm#^f)!*Kn--?02VFNeMXPA z8HfX7-=+Z|3#!`h21`KoCjqp9x%BtJC;X&m4S=<6U%o4nKnFkp9;5ZZFOs@Ij#5}v3+sRZ zjo5+@s?=h_U5HRWnu)%fVRW$c%mW+Pi>v@9R5~MV!uJ@eXiK>Wzz{t{sr|6(>|-Dy zQMfg>D}Omj6i8432fp1gXRxK{gBlV_kXJ`iJMDoW1$&Uo+o=Bly8gImoG9~RQmP~r z7wx_P8ZSkic0EV7HD<)83Q1x}2WC#2;a5l+n(0R5ueV$>q7bgtyICJ%a0>{)4mJl# zqu&%#ssJXBlcn&5` zR*F2@=XhC;DU{rR8rD6l8PLGX2rOxd-x+2&b)70Lep7zN^2|Wnjg_>HR*KwW0{t+h5FUY($LNBh%{cI^Y%K8pV)JUXjq?YSTo6XQF|N6qFuW z-1H<26r~|hGLg}$@D(#k0*w|xAQAP#vXkl8L=bxQ#l}OVg^i8a4cwe6q$<0e$4&S8 z;1f#f03T2wpSCZI#9Pe<+PzEuxJ?RJhWSVxPhGIF1xE|hO4S@o=wydJSRe`=o4y*3 zqOmY1`LwRWy90`Z?4+Pj+xkiChY~qiW(BHD8^q+cT<*rn?|806jT8omYNN3m-~zV9D<}b$ zf$DGuhHohktfg)A#0w=_&?UFu<*W@OTFOSMCw`a+rDPxpLW@0x}6IMGl+vJ+M@w+@e|!QXH`s#DVXCBbLUP^;b{@;1UP{PLg-8V}K|>6{_QH9^kMf!n3vNE+6I(NDS_F#po|w9#I!Ieln1$}7cEXfE1@s1n3(BPl zmDbjQvxIeZ^CblJI%~ZQN$g2ySYx$tEv8Xr>(lFnRnPzc7TmYD(*>oo^)@#9;Z{Is`g&gf08Bw0 z^;;9L`B>m-Kv)4rjo9ypNZN1+U^m;g*bS>n5vcmf7ue#@VNn>97?dq^q{4c|=|a@P z&(jVb$z=qO<|JWSPnMI_xV`@XY;080C}KnOVOWvo%fjeQ;)789b>y2!l=9h96v3sD;QVeJ1F8VT42}^c$;TbwdtW85o4#s>!P9 zgHr8SYC9n#vekXCo@*8iedwR`#qt%JKoK;OHyx`Lq5w@GvVCQ@1MQ7|l`6T|OLTq5 zOf$KXKQNPecA`b$bV_%PN!x2(ju}cHM0K+SA7UCj;a1_2>O8jBEX zd++qaLmW&!L3Le*BeodE&H&hv>Ra}~jj4y4s-O@n>w@a55v*mk%0-&>3#>kdbX%pZ z!6vX!fS#)s)v3B+O_lPP>Mg$Gx6=buOKL5q)yc4xwPA}fQ6i|&R@isE2!hCeaYjz;wlk5D-ANt*Zh?a;3zf zMvzDY17fBC<<(eNrVM@Xy2~IAg2|=d3z$Y^F|MslqT0G)kCt2&uUA|5?SZ-|>dHvk ziB|jJ8X>CH#R1T4dv*P=;w`+eNnvcF{{X%epp(@0wrRl~a6`tslxWn|Sp)lEgav4W zOb!fdp@J3zP#SQ~j8vZ8YwdtlT{3K>`+E!()RC^ex9QgLJuF4-W2OU#(@f)Gxflqg zW*XH>o1zJ<0$E<&7_$wC>9@WI@dU+*UD}HKVrD=9g%>8(zib0W>gdc|5)R_~;j|S? zpcsKyy&ND|NpYsdjk_E&gllG@M)o^xfGAyk1^WE9Fj_&NF-^}}zzubJP4y!YP_PQ_ zLAy180@=tTV^v+T3Z?mln1X1E#V)NZge#T3%LCDIl(DMEyA!wVgHi&GA%&gCN~*%7 z?;&;(kxfHws<83_rrD0wUu+fi9W7(9!JsItZT+bFaHcQ_VH9GGgIoUq?c&DygELo6 zs}oI-EC2an^>4Hf^O{K90u)t|u zlnVM_>LGqg2d)*)l1o(sWP4!IwGC=lV0IVV?}K)_hz5bNeQ<~5^&hqv(FEzBew{D@ z)dC$YT19|P1(I(`=~ylcYGxPj^}yCo%19Ujti`ki*qdYSKA3>m01-rNN81YwdI1jB zcCAOI_+YBBuq*`uRe*SijVnsf0G&g8Msf2#`_L8J3%w9d<8VmCIv9;)^&8*`vH@!s z-`f<)qss{x3wvp9pIkhXD}u3+vrquu_^wEoGZ2f+8kE~_*KU{zsY8|I0H>B7$Ngr#%DH@qW5>I38hAsfL zBW;CXqE&yC0ew%?0HPH;P$1!!{X#%NJ#Z)%D-e`EXOr{yHknEc670bfzodwYEjJC`RZP6a%5sgp732df(I z`{Sl85XCBgE! zR&_OHV*?&k{93rKdxd;1aLnFT)-lc;K1|gL0e^|t+td>q`^GOCVDO9K+lzSfK9l|% z$_bv2T$CC^7|<`ZwGY=Fa=PM`=ax=u{hbHmljG-+z8-k)W5XUxiXJ1(xlF3f#dw71 zUoXQok)$wNEg`Y6{Yb}~^S_EGjD~5U;e6MaN#Q9Zna1IW(M+rW3Wh>JHhsEd$>00X z_=hp_?rWVnlZ!=~;@o#T`Tj2X$13@km5BoTDuMw20H!MN&zP5*d`RW)6zLd)GsM#* z*<&CvuBjBG0l05#`s2-yKJDq8?p{xFa-ZTq@iWWjJ~hu-9KRLem`052x_KYlM=xqQw_mP%_I{X5|Wd24JvN87OL zi{dO|Mr#DGQoAlFP@Y&MY-Bs0+jPe#W9FGcf)#f|r2FlRc^D~D0Iq?7?~A9^rjEwO zg1rVY+hA3@o%D^)0{pY;j^{LY+?v|)RK>*1YOi*^>afVgdjPM}`-8P&tjvH)R47-o zxMR}|cAD*aDU}3q`auPl-2gkBXwGZ=Nj?aCI^&#cg7a^T**vaqfMyIiqB98oVG6h9 zs5aZ3B-c?`-4o9uWsAf{pp2(iLu316#6KUOgg=D87koc8&m4$h<$ijM7fInk`8@NA z+GGP_-8HWM_l}%%kAJVz9G5vai>Z8SemZ{*oNL04A>rr4Y+3F*$2i4h-#eax;)f{^ zAejLaS+?4Z-+J2{)8V`EE%0NX{4M2f4ac}wGx4ruZW|U`J^mHJg9|_ClGr##WAaj8u0P7H~l1Fp7C*K{p@!-dfTwM6Gy=1z_BKa(7MLP{6zSl6z1=T9xvc$CFQd`N1A!pIg*2g zunRIAl#ifCUUSY9_mr zc=;Lp{CF*r*P?OdlWurF&%cJeIc0;F{u6Q;7*>`%)_a#Ama3}S+~5Al-&}K^BXXC* zA18cM_$T5=0_1ezIqp5hXNM^^Pa<;pRwF9r4M{;uhY6;=?;cg>UI+05;0G1UX8d39 z@;(C~&qbAaxNj7TGYZKk%CDfE$PKX_jy)a0IWA9&zYjbd=V`f$9v8&CH|H$Ae~9GT zI}?n#C}Z1oCrXfdZ@xX89JupOE!J*6IQJW4;dkRhDe)i1d{@l#2L{RT{HKQ;&o)Fn zC)DuA=Ib&NNG9WBb7ia_MgS`o4K3B?-M*u;(V>(*8<}cWH<)_<&4;eF`djN zk{#Tsuop=;c1QqhNzuL*c-8SC@X_Pf#J4B%7s5|A^VbRS6P$R5_-_~B@w(-*>eA-D zLO~m=ALA$>bkcF?pTM`8IIdseW0^b$=6+S1g>fEC<{vjS&V+g2nJ#FOJxrxoAD~=% zyfDKHadXEl<*MU6dE&k%eiM9Omi%Dk&lNbwGI(Xh_|#k{if|5L&3Uus8}Xj; za({_W68S&y%J74fbG%EBo@B{!erV!p6M0-N4GdP#f8okqiP!)KR@-5CpYZGBr;0p# zg|EYZF7Ry5PlWO|N0r+>#<;7E3LuxO6;e{OMJFMNsI|eYZH}J_0;$952MK z8^U4DIFF7-`F4gzwT5)nYx}8N$Df0r9$TpCdiNZM68Q4X{2Tlj^UoXQ4qnRUGn@;@ zPASTq1`OFIEWWn$RGOmnw?h5Bv9kUz90P_+{q*01134XabNqjZ&ShM%Pq%IsPkJseK+NNBK%c;DEa5XugW*!`OiF4o-({RWpY{Q_;bOLns6yzXOIsqZ0b7^wmP@M zZ^Qopi@pYO*EI9j#OF50lkrE!?jt0;$;4sHrfBev9HEDjwYH)d>T~tBjcmQFAY34;9eeblk(uq@csprf+@3M!bGbGUtMk6_3MkgIs8OCUCHrD zBJl@~@Z9porT+jk!}922)7UAoV)~BVao2J`0$%`pM>^TwG4V6v24_@PG#NbbjGC>L z1O)r-zBPZur-Z)@z7%lGrcdF!nEBg@yj(^&c&qay$IB7Ao6@ZsHmd;MK6ekzzIw6W z@~oS$Nc?wryO`!KMEHF15JMbN<~()fpUkRDtSU|Bf&&9pzC5q+Yw)q*x5fv@&&5tl z#>C>1zbIX}g$zGF7L zsm3zAQ!gYl=>GuJrI{ z!;oN6Al;GS;!wK@dS2vSD%BZqSAl-pc>+-kzW1;iM z#b=BB<;B91$-g&0J!)yze0;TQXM7BJyU)CTpXTMS5PU?3-TON4i}PDizwV*GG(4gPKI{Wdv8D-dqz$@7Hcvy2sIf95-m{#f3`l3H_Hvr zRmwSE&q=##`-;V(-IC0t>H>hr8~LRm$RsCKfC&2IEoEbtLRf0k{V|NCZIN`$NdVXG zFhqq#^*+~(aLRV0)2JA9kiTPn2H2BuTxD$~HJUxJh4m7w#Cr?E8Ax3&4S@=bMr8sGWzc#`yYM zn9T?>(&kMv#-hN-h<_8F0mpfVJmZ9>qg z0FYXaJ=6GhdnZQWa&Y<2&I^dB$C9ENyfnV zqVOA#ekZ&z=1&9sM##f9Q;SCb0Fcd17-N*of9^SBJwq#2JmK&y&L0wdQ^C%C_yX|| zaXtsmoQJ|?%kt+ruzxQzl`W@jE5TK8FNx*e~dIKnKhGb{6wKvbRT?k+@<)Zc+>EK%h7mW@ze0d&U{-j!)KQ( z!nvb?Wkz9mphltUW&w>6xNAMd;~&8eNb$$0n*zga* zZhwgUe*P)^{{Zo~#_|I*$X*iV<>h`rcOb&~utK!)?M_JZ8v6-T{G%SQ_`-w5{&4ta z@ehOe3o^&fTt}DXhk~o=P}0F?W>K;IUA7XWS&-J7HuEz1t7~iH&xZ6krw)cbP72J)-Ku=GuF}&s=on3liwY6(q>>C)+%hs#7 zkdIeTFMJs#)ZZQ|r=~I9 zL{(4#5MBWIMVgl*;(v~uv%vFtde_7AyizroSiREkr_&3W_?Gx!%J9YF+0ThSN`g0x zIC=Q|C}@iwlGo6KkC@&Wd?omI@yGbgc>e$|#J3*JXL&b~c&IVtB;q449GQsDF(o@d;8Nn_3($WNrIncCQ%8GOIUJqAru00&|QA#tu)7}hY% z-Tk`Yu~iy%DWQ%X_|FXhE9VWL00VxT ztZQy+{AoN2<*j~i!uN`>=1gUvkBf5n%OmZuC(I;o^gpgQ$0Gb#cq`7yKN96U`cBbG zVVRX;l3>AX236Enfjw)!IrZ_Ygy(psN(uNh$sTwqgEu~2JszqH+V{S`_}(`ScQ(zL zys6=5<6q&wJ9EbcrkqFqy9%r366?EWK`lP8;a z4T@U;Z?PBsvGeEu01;+wxqHH226=}skcv6s@is8oxRRPOB66q?u^=D1u;tV>y~8mr^YXUc0a#t~%#2%N%YqTXV+Qm6z<~qXf7bZnmOu zOR6F^bQu|%fT)4jTaD`*AC!3BPn|exaXww< zE*Zu0dcwt>;dy}RW~drFZT<1e%%t6po11bGFxI-dR@gbsw1(Ipt9K296Rw#_yNvyEF7(s@xg{;Gbl)N6Y#mBgL6RZ zbpVgo5@DWRqWMYfz6n+IH51csd>>x-*p7#`6r8?dIP-ivH6CLvnMIQ;JTIvvLM$*p zTnAPIW%?Xte#T-LQj@8?vFTC>9iQ+<_FhG z(ip~Pjqu4c>7lDj#V7>*Z_Vrf04T?$z90E}#C}TfSA}wii`>TCUzl<^yx-=t@=j%G zVrku?)W>@WK(D4dT(a@F{h9Hb+qg?0Wd%tDdyI7d02gy6PYOB5hvqWoNT%hy>Q1pR zQpx2I%V%IplaAQ?C?F7O&Eu$ez2zSYdD&U?D{`)QnE~BTkie0SHe1uA>b!r-{yO-5 zk>nUTOTojJ%y3Mf3TU$#NHe~3WzhBW4@En-zfPkao8T>YB78Z`$8tHyn=6>-jwvQx zgKUtbg>nq2;tLTeEQU+Swf zQD4SyFlV!$AN=PhEaoObKP;EFvrh4b0DAx!0gqq&KzN~?;lG7H2;-c`#EZ8pa`z0( zYg42=spySOb=)EQ%A&%l4B}cXthIm$051Du&5y$QUVL*r zbt5w=<6l2`w>)ti_93ImR;&K4&|bC5mb!k^$~-_88z%IIQfF=T>5-^s`u9 zx7!jd=jHP;%`(}E0%&2-fmpvg$JMxh<<@2_WY(w$q+|D7cw>eVV)>cpa?ABrSLU+k z$b7C;hbTd~v)!Nu6;UboO=Kl1#s znnO1Z<}Fh;>lE>o`)|`2S)8QVRjInTG(hc-M)A~e%5JL2=F=-2lLyl=6o3uD#9kjD zWtwUCmvuK}{qcpFSr$J%4e2z)+Zhq@Nc@0~mdGeqwj}Q9&9poM@k#tVpF6__RTuNQ z?4+}2!6D&DV9YQVrf`^@G3F$$B}aJ zPn^g@n|BY#EU0jz%Xq;Txj1Fcz2APC&rE$@VUl5IJo}+E9QBr z7d6V9xx?~O&E`WijulL*R4LYsEWY)QODXs>{8(}P+?+>;d|gGFX(hSWj5cKpHrLUb z%~n1y#`+gO4zkMktvd5($IB$2XS#e>;;qE|0gHtAh0MIamd-B_;q!6q%5eqKsSagi zW9{;&+quV0N)tgb(v>-ovIm^~fKApN|d0 zvw2Qx@%NU*dBp+eOuW*_1%v6-z#phM+x`T85#BZU0mKgw$prbBqtdfV0Mz<>S+iKl$w;uoppAh9e%SgFY0h1*GO=MK zL*`!F;72y2sY%#veehMmQ!uM<88OB<45k>_m>o)`O5WXi?~kD{XLDI_YE}wIr~|d(#}>^l@yn!-(2>&~ zeE6}>?X6kU$`E`Y_`C6+;wD4IZ;gH``EFR@a-_UFk#dY_qZ2pQ*+>QXe&~tlwVOj+oCJ zbZbp7_>yp(*B|^m{A=NmLLI;Np79BY)mujsNq?YRbg#g-m}lc(g{OtNjNv7+-=51Z z{{YDza#dgG1~)gwBl5g|3SKEUJ{F6EHz9E-_=!_Q#@TlbU!geC{{Vrv6U*^G!uP`= zl!*dmM-a=aDuJ&?dSR&7Qhm-lclkH_vwGxrzI)0J9pbN>FgKXyZYwN))M3kC?^v=z z&neWR^;ogcd*c598ze~lLg5P-^)E5zV3oV-Y^+URwkeegL=k`ty+>Q$5?w^=ZhL@F z=BqS{bdnIBqvn5hkNcrJrH;$4KRwq{+!~St9jnUz={2?i?CuwV2nt4MmTC zY-cA~>Df49vMVz!5ZXnYXDbTa{f;=!A3J_wK{O5YJx)0#brvh4jB#|HfyuB+l_TE( zD>kRQ^nfb^RE9lF_h%ADRjnlS?SPt;dbM`g;g@Oz?~2$lTT^1T+YhZt*k0650fTE%WhY%Y-zmiXBB_<@BIy^>(~ck(I5M zwz@s5d}KxgCb|T47mVbURMRqo2p3nr1aeBpO_N)lx?NE9-)LrErO4SK7Pb8bXbFzd}1=!9)frWS#Ju zm78JjM+VS6`n|gC*9?uYU@V*fHbKe0D0U1zJCQ`;kb+r&qg_3*XSR1vNmV=a7zyfP zYQQ6?#0^BYozK?>$vThejkK1)UG+O{f^?Ir`g`}mI?xS=TEGN1q>bi zTV?Cp1(X0-wNS+$nk;og3o;J%)Zi{7NwK*-@D|wbf2hQb(ZMPzi3DHM2Ei5$k$?c3 zCrR6;Aq;7O8;++2g_`W!?}Ee&Ptv+vUYfTWFHk?uFc0syk3bG9RZ7?KYC@j^1A(zv=CA8ar26_g@_e)w@f z08Re@t{~HPr=Y~pjpoICfR5Q)J;m(QSKj4HH;VbmVu1*kQVu@o@|%|^fn(~RF?m00O6diDBX z>Z-5Y;#e#+8zTTv1OdL|7R`c6X(Wy7ZLmuq^*_r-FoiU|j=wi#VO)T5!se1i~GO&!VG0d}%1gVzmVSb+UT*MKYvJ8z8$0*^~o zlVXMqf~JP!pukeam5)xC1&V0}x&dTh7?8JJFQyn4CfNP3yB64jKBJ}-yD9Z9-s1sd zumh**SQ?l%z)|UetP(n%u{CNISP!8);1TRTgd^&3pcijhu~>agcEDZjSg%n%dK2FO zrBn+iuS_El8p}|=wT8^N2-mO+*kKjJn^H!lpl}qjOBpUgvW4`Us`}#{(xgPI*nz)I zhBD+V2?cBbKBSyu&UC47ECY4Z`d~QuoCOh;vqw?JB;+ad&>=eGH!~8SP#f6TV-GVJ zT0*ucZ+~8x-1IPKCA_vb>S9G>7Dh&$BlGO<=pwHfIphg2F@jVIwe5^CmvwcK7&Aw? z^9Q~t6RNTE3}%IevsH{N#!gtmC}vO}Rn_*#Czy>`1!V`@N4_xgrGm!D=h%wHmqN0O z3oQ+ob`{s_i$g2Mj-{+qD;oKS(-kUGxLn5Ii@wC+;WI3{<4&HE4}0&4dk%>omJ2X8 zHULm324^AB;%}5w0n}kg)Tdhp28UWbdj6PDpgCs*k?Ga1Z^glx{g- zWfU=w(_Ia0M|@yOB$^AN>H)nZ_Qpa6X$cEzG`IK1AI8yI zJz8}I0*e#Z>y7KAy+;ilunFA;FAsFc_}q z+~Hcq**I%@lze9h3q5rj9sli@b58e=zI&>>Yr* zz}72K?q~ys^(uf{x3(Y%>;qBQcJGV{L2Z=S_Qaqpw?oqh{{Ui}U+;iy4u|Y;3txbFTd*EKcu96KCq<0-~18EkkWcI_YhSW~jLJFTs?bzTZ z!Grb~n-U89-B&|`M@l07h{RH$-F~1(?hx*SABQUd<~mlMQlKaW2La-J^u5jPr^Cv3+7aV}uQJx!Me z-|s@sK0fnzE&l-J{wJ8>Ies8>nP~G8CR;Nvpp^%q{W15OD-KsV6x<&?t0rGJ8HQ-x zY%pQHjC_Uo`|u+(;IE22dxJ-km7|l0{%tXh5b8Y`&KvX{(UZ(B_vqPfyEQhj<|^I9EN6V9fq3veQ|8p8u~_^y(D(U zI%G+zHN7KZ%&0pIVT@pg< z+M?1KLTNvIN>*krq%ayq4#Nw>`ty|F;Cc8&g4qICKx*vV8C00-^Ht1^za}o&D z{#-L4B(AN-Ek!yR1CTZL9dB{>!BGG%)^<`r>9zwS*<@|XixzjlTQU*@0A7HupL{DT zAQFWn>Z|At;F>x}@-l2d4R!_~E~sMwQ-De9gCYWAA&Am`u?~Cl~-hh-l7ekYyi!w-%W<9q2lsB$9Hy)%=dJn(X6|j#%^aXa=fMRuixB@3YickVZkXxnp7?&clltKcwnjMMm zaWooO+9OeXsy!-uoK@#&jxy3|2J8>z1N&mcl!?6NO?H};0(Lm5VTp&YP@%9k6OS4xzdSD7OA$ef`WpqV)U)&@zp0rAZ_o zY%@APps-yl>eM@7W-?5Qkwv9~f(i;I@N3GQp@=OQwUV?=?MD&b0*pWas*t3bBin2> z>Oiz;0nqMo86(gZ8VsOnYO`eR*V_h36M)K5*l8OB-u5^?hH}x)+Y15izQf-MEQpg8 zbYrD=C*JXENVB%~7eNZmwI0~b>aP1F3lpl!kuV{Gy7b!j#zYA-t1z}x=}_IzzAK4N zk2uE4bb>V+7mU2RK81=oC@qr2Y`){`iEBAgwTmqzrI;EP2E$4EoO4G_{m=)RIKzWDxa{vv%-{IAoe$Ctdjey{MS z!@S=r^Ix;l`~oQ9%QjXxwq}gb6lepnBlO2KDM1=20lxRWU1JZ1<(fA#5=tM-qwHhm4 zkZ={9n3b#1LvE*k_r-amq9CmM>KEG!cTl54Trx+P9&gMmq$pG)(`(rXYG<0^N4RsyypwWg^8d9hZxCN+L zqd<@kbA|@v)}=t~3BoS0wB47|7rp`-00|9%DD8XTIZ7c$$6=?j#MXE6VLg~x?|~ek zH3MFwR(9Mm9t}ONunoW9)zbT|fICptxzqIj0HDMsiFOtO>7Xkc2t#>nfC~}}H?>*mg^(&+ zhXcBS-`^HAWksN`PWAn;lf=MOaGkeM*b1*H zhaeEw>f9T^GP0uo01<7dYHIzf4gBGOI$F)WZHlZ7Bg?J6YwNxSf`!7!POBkGkz3#` zoWgx%2C?cFglOYHSD{hAtEf0y^B97r*Y+pd4J*QnuBb3S-vAmSNToY>)rAH^1EXmx zg6%5E=1L_-n?3NNlqyEsn@x zfD{FNa22yWu2)GdbfUkeE`$^es=J#6H@)@1SmJf_B6dfzNhhhpBKq_-f_4V)d}ko> zBu<5+jDoZa2|Aj^t|avnC?%@c3Mc4sTp^-eM3m`v1vVgK8D=ajSv9e2WIPUwQjm13 zTNBvfo=Da(%QI@NC)%(tM(JnMWl7lLwvkpdtSH}eTV4X@o%EC_Mx?Ob`(n8ijSXwD zHbvPuQJBiHA*N7v0CvOqv8mR~rFHG3?N|V!B#_*NPMaxLXSM*4yOt+l)k-iBs=@-f zJ5uk|;xe!yY*9UWi~-doLri&%N*0#Wslh6Mf&sI*Z*P1f1`S}K8cx_@Dkq=~M1#;> z90ITmT1IO$2_IZS+93hZk*8-Ju>tEVCnG zsjzKPi1k*Yb#^!fselGX6|ei@l+HQHdB57F1$)=y${-H9lshu%_<-Oy|uC z7?MaOwGo7;bFJNuGzAOyQdaRMt>wplsE>)9GkV)0w0MT7!3g~ML z7By254AM{s{%!EOR54W+6#9Ys;3FVH<(f-&;BY2*?mKV~FEb>xBGK63h(V{TS z8&hdL2o-xt#BouoJeP3t|d5>X4G4ueoTitCFb zh9r|xHj~z`ZSf?Gv}QnD5JCD8g#sAaoLDERW40XzwP06Rwjo81g7H#9Lb)UbZ%`+# z;F*MFnNOr_NbiJrl^aPQl^eHWI^jB@oHE8-8oJVJz6z;hL;@6g5DmVh;+0J%heN+! zn1?XqN{1ytByWqMldWQ1HNAK3iivhmHIsHM4*vL9Gdh)4QL3)*6V0U#%1I0X1NXyJ zSdI-If`tqEb--sa&N+o(~c)a8n+Ran84Mo>AAaMlI&9{5L*(5Iw? zH(HJWa89FOkTj5XAAA$ZbBQ91Gq@tXKy9^Rzc2*Ur1}jHsK8;XO@Tw^VtU{!`A?`d zZ_o@DU5mx$xz!~Sy-qAxU_|vR0H&F5f4(c!<-tG+>qKJYm=etK0Nu%|z|y2$4rrQS zKnJERj#(9JQt59=_q<88fF_d50kZbrZ}h^g#@?jeN`_LsKDaYxfu$jcG)n>LIJPv= z03|&^O`r1E{6`73zLswsX7E2CNA^hNNwe`UgA@bd+Sf5w} z5mkj2j4}RDM@$-!xh{a4v3phx5atO4#P3XM+n~T(XoW##wk&aIiC#c_vFbjbQR&|Y zRmL4#%dtUE(*Z`3k_0HU7XFxkt0(+1WRgR66^l^-Qo_`!qP2R470Z;cMUh2VU<`Wh zn5vB<`{0oWoL0fTi4EHovWK#d>Kl&Rdkj=Wf$5IG?hjlBO0-I$U8`YWj)MhdCH%iH zPht=AUMYB_kPPZkmq$uu(%FndU~O`cdtRqtZZ>P8{m z_mC1s+i!`bH4x2Vo2Cn-C_$u@?rd4>^uZG=s5%0ZzpJpo(B;2|wWFo<#2_qYGQ(q5 zM#lqH6;xKTX`GNj>4`CkX=XbcB$I%4I!t@@HL%4-K@kt-q5dUN8{msr7E^tDHZBl?&Nl{+whSUKHzo{5fMx!Wwh+6<+ zEXdTaweMZ)1Rt47j;-(80ZV{b5$fsmtSd;-l@5fGeL!{kV8+bR7t#X&Y#!d&H73@m z(`>MoB-PfyVVIpgXr89OrWezvQ8l%kOU&~&ilCL;4!d9!iesn|c!08y ztz`YWVrmYcg*`0Z*anCq&ikG4X6_m>p=p?!-2G2%5~6{k8in6Ofz$$f`(iQw05ck^ z6fjxY%aQ`J**&pYkdt>t_7#JrK>q-K*nov%2T}82s0j_J$UF6{MJB)ZUibl$=&2Rd zoD-$bsMQUI0O(U>3n#cZfQg2Ibya@&TTrydjQ|D=GNp>!R>}yfz!O`xvO90S1DX`a z)O+GKkbYxpTC2X;Rt{V^0D6ahqOb%ayWZnV2I0<{3Tdi&rROWvS5nr&X#4M$TIqHcljg;zddVurzB4{96Y#JU8b=z8E0 z*h&dtDyV>QiNr$0zILCNNG;!M{{V4}=1@?8MPBwXiNxRy8Ery{r`vn%Fdc7?PEjX^ zE-i#iNhe?qI+qihF+7Axq$(i65}|AN$4?nm%_-laEV$NPH;xuke-Pc7L0>D~7)k;X;(1@Us%X_ht!ONaJc73hrfhR zJaXJzdzpBzH1dxbl7?^p04--4HJRvYe=AFc8vV#{4Jjo)+nR44|^rD3WYbPGs_*VFD&iDh%d7fbB-ZGp=op|~w z;#0;4m63#QAdl!Q@9&Ry#kp(CCN3MTl`}M)SjvmMv$HR-Hh=&o>g!P9u*ljLuJCq>_K8Jd^lf4EAs0m*OsLn<3#( z#{9u8{{S;fGsXV^!j}G+_Hp&cl4ob0FJwl+qYT65Q@!;V#VpE$Pz_)UBfc!nPO-)# zM55|6X&t?>MC|DTJgf^B?b{rkm*)v=vWug!LPuaX7{yZdWD8B$6WbT(e6WGSpHRBJ zsE)YBc?+@EOVWk{_zQ+$0Sq>?(y@&=5zN|#?6yh8kxCiDH62ac6z07%FyC(Y0W*`8 zF|ZWC?lFkmI(*BGIT=Toqy`9Ut}`ReMV1XSu=J@tFLBc!Fa9z9HU9tyb#k1W#3$kK%axKDW(gZ>&`8o4Y8^*f$4oG}UuLpfR`k-f4&u+YGyeb( zcR8Lf$edpz45&7mL4DHOfD8(M0yp0TOcqULA-i@fPNU<@5$T@ z@>dW1LA*)HWZ+gz9fwz(R*j zfSa$^9Dfn~F}dH0WMtvI_3`cEuN)Dp%?@6EB`4)hfJoG>D_Gcl{+RQhByp$WoRN{w zWipJ?E_PU&z!p@nCAy8s{+Rry*FIhNyqL^8d%iw1DO>ZLzB9Ze;`!)!?oWqvR~pSk zt~g8sDdj+AE3tF7!>QCeV}$rJ=3X0}@sEYinDg?}2=g*!B#r7N%oi?I$gZuh{jsR? z$BpLadGidBMGz$-g~2EQ`h71QeKmqs&Ty=^7S8cJwoh6wn)!)>DmgSaZvOyGSIwR&_-)~)Un`jL3&s9h z;OU#S$+mwx3YqG!O`ZCVp5q!*<0s+Yj{H~rEO9>wd3%{xgmIbThd;q{QZdrAMPx?I zHwxB4BK`5>zr*kFe$Vp`OPM*Rk9nLeTsugnWk0JbRd?x%nd?RufCv$ItoRD~4bC~(AEQW37;#1~4 z%(F!yBBXX*nNx5-Tzqe+TyVot>f^n#Gv6B@6S*E8=J3dQM=305&e^!QX^gM}&8aLH z{M~eXPPJZzphh~D4AZU0{%E-(KAO=z_ea7J9tnr4LwO-ujCV+Z+D?#7~LOhTjV_d7QV3K0osJ2hHTD=CV1g`Yf>)P*+rCwF?9u zoen(J_-pZO^gaUcO#Hr2<%BXt#?e_X(U4A26YR7 ztp5O%IlqMQSCmI6j3O+Mn9%8FK|~S-0B;|zm~q^-mDA_%IX51T;U9`G;q%3Lv~XyC zC^$mqrJMmQ*=Zxo>eJLpN0y`NPB;$|zY@=YcsYkN!=K_dIo_M|GjPm|@}pMNuNslR z(;WAQe}~_}cZacMcyA5(WaTO3SW$fLA;M$Kxgb$v=Bd5K{CNpNI%y9`L&CNWe%-&+NTNBWLKcL6a{#|Js zC*-uvG8X<6g^y3=$IOq1T=A2~{{Rkh@U;ZbJj}sA%N~l{o&9GYOnGwS;c=wX>UidB z)wO_441VkBxn-Bd$1I;KIVUZ42y@Oz@`xoCwkD1_th}CfQXIep856fmb)P-_*&t){ zAOL@x9R5maBgjJ*p#FfXy-@G>$FnA}W(U?6&Dhsrhtw0Gy-z@65pyo+z|aZ+uICmR zooon*CA#A+Equi(9$(A2)J7N21}5|XLV_<8yEAHca!#6}Fs5a2LT_vapn3o>7G~7T z7m{S4MUV$mjbZUG@oV6J!T$g(@E&UMt0$by$;NntW%+xD@V*|ojKfN`W-!E2-9?S; zfsKuul!zDrPN77D&>gY!kMZ2`AC7o+;@87BJ@Akv{{RT)eEwoQyPx5{Vkz=2mO2sF z_r|!fnP(+qF0p&pmwallf#$d*(Ch-ZpEK22+JLf|2jCm`?uf!+E49AM_ z_+{a@5zFOSQZLUQn>g=0a+G{Kn>d)sMmQ%A4JKbPbg{a*Bx@H$bgXp0A2^ef2h&d- z`K!kN01mltC!6pS!35`CJDZ+Gk{s6=izfz2R0=L#l$#{le zBg@=FnK*7*Ik-TI2jF<>n3^9C4i3%odHsRBWnF!GY=T zc;${*+oZR*HSiJf%gg@&9o`r5&T-0el5id=%iKXS{8NU-DR7$Xq1F7`0yhGRoNm>W z0lQcFF z9l7ww9!{4FZX2tXO{lMIT8^L)8@AY`bTAA^2B-`)EfFBO9eR7?lcLco`_>(1T_BJN zAKM5#u)D~=Kn5FBVW_g!!j#}6NkYfJ^ua7PC^s$F16&=!HG;1d5^lQ;0*O?Sd!L}f z$1m|A)ffOsq?+mK7;!2nEvQ{>gpNpz%ds~5mFq)%2gI)tx$a*KKNVjb`Dck|+C0}3 z@l%)PSg&c~IfalR0AA}VUOtrkNBlr9&-6C!>y)TMncOjk-4pp zZkYM;;~&GmN5;>_lg0l45wm>L9}eOCoyNI$jAvt&3G>ll%1Bm+{{T_1{n%q@{C4=C z%zPWi{uRV#;CYxN=B{66;LDnT#$?NYN13I-AZiROfqg}Tjvp_UVJD66P4Hu>YqtCn zO$QX)e$_q0801Ue^RyzhRKDh3mi5JD!J$y5K8SzgPJUZfXuMx`e zt{;((Nuwu3a+VF>YpTYz{5rC^sr)484mq6SFZqc%gu|GVPpXm_%ATD@s@wdy>A#FT ze8As_cO7}ASIZu7;qEkxsI{ts*W9tZczF5p%bsI??!3KYYsz{50LEA1>Rjt(xKD{Z zPJGs4V3}Al%WPPh&=s{=I}Vt;#XpX(#KVwyJY3!4!}Gre;ge8@H7u**v!s&OFPP%)~=0#vZ~^B7mSV_IbQ;y<_X!#WTwN+AXDbHb5}Ql!RM?myxY_mey=)tYABN%w1y27Wa> zY|nVB%X#MK-XoiQ&oE@u^3&$aMB%1DL0yOU{W14bn>m&EcR7sI+&0rM6lXD;S?I=| zUZbUJZlqt^ADmx@x#J!;avou0Ra4D;J+zPr6`4RrKSdn-mYQy6&Sap?2;Vq?7?FNj zgj+wgP_1Mq=}qOAlkVK6&^L$1_=vk1iLUkO=r%ae+9JIKSZ- zN(2{lD5zuiIQ9=O^Y0h&hn+d|Gd6x)z{zLwNt0=6)ly6JkTwiakL`{;epSCKCYq=J z020p+e9yu!Am_5jO!4^1l8P3;l(t_tU)X-w!T$infV_Kz`~dPsM_OT&6K6Z@Q?ek;kaonaje|qy}tCf0>CHQ;%3Gm+scvmNJ-v&8T zDZ?V*xpi(RRUpl=R2Jr7Ly}JSWcA-3Zu~L%>xFO+#Mi~2haZOCbIkFN2>2%i8G|gd zoWyZwQDIh8bG3;YRl7DL?^lfh_=Elte-qvn{4Pi0pCJ5FbH|92@Env=an2vbc%0=1 zPs`o%(3f(Gn-aR4(hYRq+JAyif?o~%h44Yk9PRM?!=aOm^FIuUx!;LPoAWabo=|+) z-u6XC)BqGT(f20#cwv_A_TO8RPT%pX;cvmGhyEFJm&QMhe-B)}$FqE;z-P|Pb38d^ zZ0z4EBP&`vG>ogMl#zWv$IXBIIa!We@iXIxo;*Y5>9Tn~AUGyxiEu6pm6%7DNvF)C zGQ|*~NIf6`bd9#h*}h}tzFg-nSIqDpWZ?M@JHYt9S+e=uobe`OEt-g((UjV-uzLGr z=1=1B;Ln2}hu@062YgO^HF9=CmN?Y>-kA*NFY@{>U9sjA+i1PP^FTeY;N^y>%WZu05|ZyLi}7j9Oi$B0h^!0B;a{@B+56c7HIPl`Nu~?M8m7xRydEw zPw^`F2=S-k&n4mS!(T4&-aE~FXE_tY#-PZUAArRRscUT@vpBQ>ZA6>s4j;r{hWx?! zy?!>M;kU%@Y?FubPatyCS)a?~qzf2lyy_9>2m@ zGxMK;o*(7;FOKp*FHgjB`SCoAGm+(@F7eN-olLtd`x~H9J$SW z+nQ|85#Sld;FHfM%_74bdP(}}VUJG&&H)rGZMHm|lU$icY%={3T{@5tM(8i52_mRJ zewbxCPP-RktaQMh_1S-~Okt&9g(l6@1B@Oz-d_gdO}VU-8~*?)ulL4k=`2mvo%Y8Y z$6eoo@koM@(m+M~1>X|-A0Ph!61>ljoWJp@$Wiz?<4#MEhd%OKr2K1%XTK|zPszN} zpESx57Dx;^!-vi-qxj#s|ab^2z}xBgNy)%r~kEVqJgy7B>gSxBg9w z;|t+~iF5Y}hdskrg7NbvTQik2BhBQ-W7eI(kfHknjc>}_)12WP)0NG5*W<6l=M3SI zW)=942H-ru44g~=MyNz)F!n~on>+N!Y>@H_EGp8RC^i|6iP@fXC2 zxvMq6CLA+{@tKiPa}ar~42r4%P})_$Uby;&nsD4wNpui=(h8sZ`{U(j;5jcW=6)u8 zc$1Pc>kkHAXb-|;SbVUVcg@e`s9)t8LTy5;>5r;e{{T-Ia2J0xYB$`U`r~}~>nX3{ zt}AuAwfzrFEOqPsG1qvkhME~7NfuZcB!)l=$fm(k4#x4=vj&ug?ks&V);QTzLoiZ9 zFgJYxzMrl*;~g^e)11fQUxVB>2slD(MIhSS} z&zRKtLU>}Ju_V7L>-O6lCz3iFJD6&@C1LXcN;LGP9cuAD zM-MkY6~~V1xK2(yGS&3-NB;m5Z{fl4?0+%ipN+g%#NIH{xR)Wyagmlo?9PpPz3xH3 zZn)_j{{Z6$;r{@fhE5CN{{X^=6o({Of9rERMo&MdTl2~NFCKrFn|SkN--iBfpk}cW z*bDo0ykb0(v?nlxsp<$m*v}8s^T!|fncH0R=fir&IUf*{kuw~6Y55m|=Xican^aI| zA6v#YvAI3(-)wRGH;B)YaUN)ya?h~<*_n98z&jO4~9dE*Z<*XYs1|a>#MgLdVG-anjU$ z$k#t4AN{dLK9h2?PWgrpB8@UOrLMZa>T&Y><2qS+Pw|xaa_0tPUox*|8)pR)I^#rynRw&WO8@cV<8?zH5lB9gw+4jT$*0bBD zB5HTLH=>1%GZjz(J66PEX`xL~0#qBWp8MkTePp-bAh;~9wvX|HjszSyx@Qe9vI zM&k?6zJSuo8*%Brw}8q3Rb(Q~+3$xazFNql+1pSA^cYD@eo>LO8v29KVh;s;Zu3iU zZ^wh-lyMgel>Y$Aa}2B1YI)Z+30v>gKYV-ZiNr@1&FU1(m~{sGUOsvLDV&GLIivA$ z_&v>X_F*E-%bK0qMrs~bPFQmeKIIDm^*H(`#9^B^$MX?E5odXcRbIE#9eF=yAKA~3 z_vQWAboZt{q*CBAIReuCG)-fubJxUQgPt365aj&N7MF{0g#Q5J+^-4KD9ZMyYa9JB z)VZVMYk=@<(`EQShhd_QjI!}gB#@Q|*e#r6#=180q4}9=hwp?TN@+dbfgae`9vysS z_(kF$GG+NEnR4ToIHqdXCi7;5nQ5f4=?~bR*xCF~AwEKSm<>U?{{WaC zh;y==9{Za84n0ZYzZT(q55Zn~<-xT58w;LmyCWF zysMUmRVkC>oK6UWiXneDB!C~SvHqCpF8FWvj#vI{Zr>ibXXLr#f#;6@0G;M(W&oaz z`9)9cxZ^z4e8h^xP_V=G$2;*B;!Y#WS%oy&ZfZp%=-Ea;>5dP}3pA1`1(~*0J@GM} zE0yKa!!WE__fW_Q-|8{lcr>1n+D4@e#8&ok(|LHTNTt(#K{S)oYrpG`*}}|_=`Jn0 z_3eyg=^cwAJg1Ik+zrqX@7ElmC0dU`-yCL5K+9?mS{u=Q?BkJ&K_lobY&!jM$+_=G zk5C|!i0E6?J9NVZw7WNWQot_v*R~1-5Z8BOrXe;+A3<1S(7pB83ZKV z!4+1`_BezRz=p6#OaMqw4fWcF40;kyki=>uZI4`5s1X&RTO%z*QVV1oUnT8?n^jhhb%q(COG>-IYR~=WHXOc*?iF0Rt^wvaWFYI@;hmL8+qTp&WTgQ+F#BO$LJ)NBMGf(3-i>zLd*ZTyj<^1p z1-8~Hs=AC1F~#YQ$9=cNAg`{hlhXkSs-f3=?SPt!?HL=LgJGFN4`Wq?BF8{Y?TZG$ z5I_ysoK3+~G=zXy(AyA5S}WCLe7{^=6l%Qy`{J3QjG~PMX(WIS5HwN+CtZSiip7I= z)LU+#eQ``7qZ(UqaOgDm726AR90R2E7*j^|6Lqk`4M6H%`(g{!FK@0E=m0?l*!_kK zDiw5l8w8HHRVg6_g;DpzlR(!&hl~@{&A8v`*kFZFLIO|U3c*h54&-l!VYvHr#Sq@g zM?=#R^tOuIsH{T4h}&);j9#KP z8(|%gfZ$aMBiP_hUNrL)a-j9aOC)m=bzJ~x9=HdQ{IRM>6bDayV&hg3lo%;-9$ibs$Mq;GV4Y3%qZj5Od$8rtt`ePF|89@PTk8g8~i)T7zZ?LV7D3O=U zEqkf$(Bor_%xm*Q79zNhbp zU-)BF9)|^_%MuwB>Llt1z7c>er0O7nY6VsRn^34#Yfkh(z9Nv}r68SK0ee~70a}@514#Kav>5Bl+rIC7eb=aI(@uMX=wYPED`{86(8qBUu zHT2t{tOf99Nl_?-QEH%ieQ}hozH2946-OAkR*WeHm$eEQ$&I5S*;h#<4f~&b1%S|N zBVn-vzAJSqripFA0DI!aBzeG2;%jEttRbyWsJdh|2~FkzXYjL#?v6rS6YLb1qY zi$=_P_U#-tK*|h*t&%H$zB#P89#Zups1uG8AfPY>fvXJO{@CWS^9G4n4VZ-h zcEr6zvrAYJdlBCK@WQNsKc)ttwi?b1bi}c~pVJsY8*UFwL+Tbz{{T!D-+S0}tPZ{Z z08@irAV@pb-7yPW3cZIxiD2#0jvzWZZ}-8GB%etg@C6;zb?u3$bsJ(;SUtKMzy$$! zQ}@IJYA0dS6V#w8ViG!0!g~{9KqL7^AgcfqSR0$8+-yc7f=L>-2W)f%5U1w5>4nry zt6=UvL(Mes{f>~>|UbNvKKc3VLmgr}1;({Qe4f z!<^-AC&ETsh~ypr05Wp-<>sN>tjfR2Xn#YEXPEr6zveR2A6+)*soZ~Tf2qC)%H#Qe z6Ao-H=284txDv;A?5 z@z<7Oe^TyC3bWfELR~q|&FKqgUM&yq=4uKw zorU}TF%4Ek&kH*%<;w$pvwIv;&m+O43%Ar1ZA07o;$Z!QpEXI#ZQ7j+=Jvf@n%CDORd_g2QYDa2wVJ+l%e>!vd;H5;{_b8yq3^ zI6jpMHYEJlf~7i?MPd{JQJ37DLq84#wFVnS}D?N`?p$*ao_u-GG^CaV-9ERiaiTDp3ha0gmFu{GNE zBUp7<;&MP>LFu+3K_rVTtE982I=U~p#nH|oR(4$~N2}C-wkvTYY^q>a714!@_r(aP zg^IEP)R5f>C$1e(v$nPd+tj2{9k#%b0aTY!ivw=>la@TLrF4eqPg@4?e8-i%w~Tt6fS_$d>w?Rq9%OD>McYpMbvRZrvV|MC za-g^Qe)waYMwZ2p7TtmGh54<#p{2SgZn!lr(8d*z#(;Tm>U;OR4MaF)prDdgs}adq z);GUUJ1z!@*_6o$e^0gGsF58eGIW7OoUr%9NQ%>~p0+FLSP=oMTHJ(JO|?)LB_sZ3IG625#Ix52qR>)7wSD1zuyym zthz}h5uqYAD5NZQXx)Fl8MUBUT!DXIm+AGu_32j;-v0nK*Yv^_NSpX2L1z{Q^iKMZ z(-je9D$dDabdaUG6Mb(DmsE~#EuuP0gLit(e@qZqlSDS2)zo#o0Du`}qDQ2lCva;R zw_`1glSk-@NM6^zE`%muF8PT{ut?dRLEerlSmUKC53B)w$81hFn9PV7GUcUbaU5B6 zPn_KVKDfqLQ*6oQoQ<#WapCiGCo)OmPI=66klAdeU_qv3ioWLXTF zZni81`-b<&zj!`ba_nPIPnJcIwxd8-?T_=1mP@{20t6&O#c9u zepQ*`^`B7Lw*9eS7Sy-Xt^!cC0QCfu-vl_+dhL(H-rsn7Ee^N77!nDxFqFWO$Lono z4xL>)dz=Fo0M+lgUQHj>s3!oBds9=CWl zK}PMq*o_-?JpjWH7i$&QrWNFHG&2o{?}I?}DzR%Ytswrms$$@WP4*y+0?O(iQm^xm*A!=oBGhaJfr|nm{wH+? zh4nbEHi=$k`v5+;)YjH}45F-Z6krG`*6O=sF=;}UJB^gqF!D-OjG{749YgDTVL!5}F{BY0ju9H}6?^wM3}n+xIyY{^4{y4P*@hH=%t0hkvG0IJR0K1hl>E$gAAC(d zorn~DKw+E!JhrAKcMabGSgRH!i)sOez~By+1W}+j1fKiimHrL1l4`MCHot5?l*(zq zBI%TGct&YddL*hqXmq-)C$K7T#*fU$p~8kL=1Q^wE#?zlaSO-`GPx9Nj4MYIS^&n> zbvWoOc~EK$r$cx4-?kM9bo9F&K*tc9}E6_Dp-w4iBhh`-9JY)Gt%6#?*V_u}c_ccqH2>DH&undgESl{ReTw0)cr%DSWLvP!;#R^GXYA@jLM zNx=YF*_Ro}Sss-tfeRF2u|G^ROzQNY0tTf&L)Q@M5s=eb#%V==-QmiR3l$YXRB5i8 z^u|SUJ34u?ZgvH$>x7aty;?7Qf$58qL}FWKMk+KB-te2U+qIE>tMtGqhRqZRSk-jj z0GSlA0)nvve&+-OF!d(n*H7z+5FtK*Rn1sl_yW>Lsj5M_rK}(d6e6W*-M8ECiELDM zTL5kJ#7R{_-mG=31+gw&Toz$s`kudRD+;!asDOXrnk0+`3nYGclYJu8;29LyD@1Kz z_4?o%ML^V`kW_rfslt^|LToDR17q6o8Ll#D5)VQ*726gTV#G6Af&o1*z5=#jBP(iF z^smwwvvWnMlk!kar@h09b0dF6nl^?SQE&q0<{!djy@a z8A)ISXKwflBC3_pG~VX-7zbnuj2?r13A{qnUZ6KMz2YchEohbK-v0nhAC%L^ZB7A} zG+3Ny>iUVkt%Wj#a8f`h8r9IBY)6hWxMD2(;uux#Af%MrRqTE65vPnUlwBkXrT6#3 zmQ+x-TT^a*h7aY+9Wk&hdV|{pLaJIbB8~Ue(*PD&km-2p$A13+_x_l!BME&k5j$DM z`h5jTi=YLLrxeHlT}l9AK5E>3FcF<%jUpbU)u!8RSd$23EWu8uBww+>Sv_S_sI4T9 zxNDcpc2l^bLH9TURx)I50YiMdblJad)W>0tJX2H@ErmdIk0bMxYiORs$@C zQuaf8k^OL3YC2g~)pYJ^`{AAi3#b;OwGNk!3f3X07HiYFE77kFPy?VX626_fVi=Q7 z?96I{4ZGqbh9?xH={78EF*Fe^7-@~1SNVUwCFyOfw{z0A#f}L@Ahx2!G3{8YNXur6 zs}{Ew29LPf~St7!E<3(#00F5u}0B0esD7 z+V5*5oIbi`WsDmmSU%rO4NQ@l7Pfl2{L3waI$6Q~7(XH1MXs%mD^qG! z91u4KtJ@DjK`uaN0=Bxr4JrX_r(&nmSVSc>Jk4XJ3|Sct;K~8@8zk53g6g()pwdVs z2VsM96jti1WR14zh7Mm+lBuV&cfb;@`E)@mY-_Dz5~Km9y?txdUw>>Oo;C`a=v^~Hf%R8x)3>~S^~68s~VSwy< zj2#Hn>`5RRwj)*zOCVO0N`cY8nBXlJ(z20bV8ZYUB3r5;4Yc0>0H!M}(zz?E?0S=o zfKgbiN(}-*efwdGXaRtrSnJdMFc|Sd%6G37bMh+<0?A)8@{WGzn` zup{|3;|e~lxsyNRZv>my5i_^?P26|sI6Di z38@+|?4%NDfIW8Yhtm?ampfMA_P{e(*edSF)AaYj)L-X>5&;8I+OUXbc|AZ4OSb!r zOLw5L*#_*jYQZeolmI|f8#cjDPrem(i3v!nR^;9b7Y-#P06H7!JK{im#tc|n1E_zt z3F48X>Ls-O0qciVW+GKmta~=qfJ-Sw6=V|o`(cw(m14gzy9V%Rq!hLc!%p|s{qT)5 z$+?eUyN1QZ6{}e!UMkH-Wfay1kV)-+*Z|W6T~hU9>Q&ycBS|EaOKH7U!B6dlSR>Oy zfn(5|S(oSzGfsh|Z+0tT-vUh@mcDhXsLBMQ_^($XpR)>v%TI z-^BFkJAH5girSLHPO3Nb!4+g^B8DcANLHdc;efq}-LL`amaprD46-n=LX%^Cu;w&y zJl{^EN^fjKqy<`0sP1o|z$tqq4ZX?0^HrSF3jSeOV1>}AYBjatG&3M(028tL?r;UB zLZqqMte>_Oi9f_3F|PjDI#ef;6R*<%nhL~$W`F|$706NM3LSvl;td9!)DKONM*Cn$ zsA@TEeSMA&mNb#I5-pFgzzn%hD_N3>CAa!w(;Bc2!>aehSS*pGR-UKd1=zC+0B_s1 zU?KvbX*Hx*-)un2I4#YBLI#q%Byewm_o|Sq&TtE)*acI zKpoD_h(g|`J&%2k0T3^o)ZcnL;Yy=En?EfTIJl_l00fhCFAh!Ri6xEW#38JziYsC{w4;cc~{eH!jD5;@zXQ131(?Z4H3zuudRDyxp7vB zGVarzloG@KTE|f0wyxkzE#=ZvcY1PRHYOUbp|_EV|ebIlB+K+W){J` z>01Y_i>!3KsESO&lC0Y0E2Wqa2SMB49m|nOURIb*TAMt_(tqUx{V~%YX?;BZ0QjHJ z!*bsZS$MOjX?dR_Axb9MPhb8U9+=NGS*)K8%&(+B3xuM_^8CNs9%KAa^10mi!sKz~ zn0c~uW=bN(dM>6n^xOfDOz`Z6Yld>K0^yuYlRjU9K^9=Ib_g%}<#5L@anX;+{Egw)h8YFOcz?;9H-W=ib!2jij{g8sM(6c7 z&CO3N?NL_ut)IEV7HK3p_u92}(}M&}DyoCtn2zHbl0th^mCA|uoN7g^l7*7i#S=#! zVEjIK-a>zizlmNA!g4E@hCVeCswYBXX=6Kn=N_qxF&1Aj8phT9RVQxOzC4ZiZ*X29 z{{S0*6CBq&i1N8!WSc6`w^wJHMpqxAAN~s+xclSFZakmA7p}6IZN_G2wxgkIpctn< z6a`faMad@_3!4P!F_2i%ApY2=h>)nIx@y!vTyb_R?!^>5L=dz#>^fr}S`Hi$*BKe@ zp`ym9cE%)U+1nt9O2?7Rn|^k;e0uD&5>p* zRiq%&_B*LGEMw8bFp!mZWut9pxTB91eiDwN5<=>7U z2zm3x{x$H`&D=6xPUh@}Waao|8T{aq4kn=bOmb50-{r60d~d!jG})P!WF_R8i4Mbi z-+z9X@F(Mm!+BqjJU;OI#|{m{viV+ikHj3VONVBo8Z#4RL~_XDhU_(>Z`hjeju}g7 zmz1to&>}X7Tu6pY+VReqLEv z`kX%_959i}^S>qdiO9JF2S4zvo?r7hsPgAE!?S{T%d*zg0}n_&KWWTzD6pelCwU@k#PIc`|%AhC46hxGO-?$qt1i zA2zovN!o@zli_cLJh8xdZ-N}7&z!*7EquY0&+t+l56sURH0d4I_E-+P)noM^L;835 zJ{?)zcs^&yyqQZLgYhrpN5Y>C{BMWh)0g>6jdO20u1PavhH!kkGJQDnH{7i9{$OY7Sx(2MKIb&Y3#t4#VZ5cU9Qf7vj$}Ls@wb`$ zD)^D`pNnv)q~fz=xi^gP?3g)x#!abWc5^28WSSdvtaQH$zXz@xCoe+>i9Z`hmvb4H zX>(k=!g7%rGVJ#HU75pbrUcsbIKcdO`P-8DGvVKb@}7CJ)AOG(b6#3rU&xXUZa5=1 zB!PEeq^hsfxc0?9KKxU2uZLXYzi@T-)h=3I}*rx_>&nliHR=qCKZ3-SURsp*LWDqQFpvp8zK_*5G7$g?zD1a{U;vb0* z75rEDviv={pPKlNRWopMU&K6_em-&;C5cZANIfpfyBc{=e#G?0)ISBhK=9AUFA6vZ zJNOsJ@|nH@cuX*5a=B>&wpmd^`DH(mg=r%nYRqR2 z88Vq1$2nv((PlFFJ|mY$i#ZCP;y^O3$bKhqpT#eiC**&K-d4==hHt{2 zBOYg&IDZUd9FwzZLJ&AD8Pu#an;@RJ`YYmh6XpK^5BWbe&i*2E9#?>Ho*fCBIm9@Y zWJZdhUvfKR<)4Fm&BZ)k@gw4+|P?vjL=^^3nFj znfQ|Mci_jAIg>BVe+&K}ah_GkWxSZ?$!EBhc}o`9Xm>>?utrPSno%*W2MW=e-(V~l+N%RzaVptXET}rESy3X z5XJ{Xt-uOE_Un%q#`t#}{Jfjw=5x;s{13&h6P4n*S!DIIJet}@1Lgxk-|LR&;Ws<-U*YTc zo_MvI@%B8)P^KojC||-QhqAA3*uvxKlp@x4jxYudApnVo>=h={{R9*E?bAe4C^hK62Z1W z39zcAi6d-yxiPuDIQ3?orz`OD@IS%$wnLhHU+~gyZ{mFA!_$vu{{Z*vBq^3N(`eHS zh%VUsp19%p`@+w|)u(bhBG-p1+;unW}+nmUA24g1_ZJNBS z8NBVuBtz0K*LFgW`#A7%{V#{h`}XaZK35mI{0!u7SLL4@d1HidEW0w~vu~KyB+Ty& z0V!#&kE>2S*WsT!^1q0DKZv&|@fDo#ej@n}D+o4n^QhfV@7EtUzYHEP!?OIt#(YHa zho5*K3E<1Y#!rXm_?Huk7?iAnO|6Hk<{d7Fe0po}qvxI(;vYKvNOKo0@g>giEZ2xJ zW_TWQB1}@F$v*0P+J*lB;D$b?JXePcjP)K&Z|d#qI5PUGY1eDn6z*%jIjDdTD5cb@ z2q(AO98`1>dVIC(%-B|7Q?%Ha!KdPNUT#;T42tmBDdqC)Hd zQoV8WtMTIH?58?sd;sM}A#<7U5hsf-2hHU-<<)@wbmQojZN`ES4S><=>U-Wizw!O> zMdG)`*N9#cc#Gj@H1J*(nefYwPsGY`)sxE229qr6wGb!&0B}*d>T#@n{{Uuk$8qDH z2hKTYz9{&Pdx-G~A zcL&LnuQQp>Wf37Jx}<8X$GD-7TzK>Nd;D7SpN*ORE8)L|e7~2;Xi1M5&vBr+dFLP& zaTvE>Y9Rc*uO5Bz6YzcfOS#X)E z|d@ny1a9(HTh=~1$O?7Q{$#>@OC z_?B~=IM+Y;g9vruEtiKWk)4P9Ng@T9-(mwO{V~yUzl8q)#NUaDm46#NQRV&{mswEe zay$!BGbY-t*z9Oy&^*iVcjJanli~1#;n&CR58;0*L&N_7Do+aKrOoFj1Zk2(D@ZBM z$55g%;^M)AwTr^nNo8&9On|x@_!A>Z-5-2j)Kb z@O-{3^RvaiEbN+RejYiW&T>zQ`8WtMW%-jT@dZCAXxCTwAGSL0<2RZ={LZdr%*r(! z$2D-wyg)4l0%U#1{_1~mj>+&7%04FeH{l03@c#gaeo@SFpD^uFoaY9 z6$NY+>9OA!e~34R{7>Q+;Ws_t4~CrS!!x{3jB$*vU`d?J6j;o2B$`P8)vBHTnDg=R zWrxVd*G^oe!oF4f8F<0K{vN(0Id{cgXv@yrJ16GBn|M~*IOdI`)(3hHO=EIoc#pxK z!%u~L_muEw#vIQ#b1#Ve7dOkfHIg68L&CCIfJ+%Q9qN|bzQ6&w#x`&8gZPKx3Nrl3 z;)g2br`Wb$DdmtTt*nF?rXRw8pCWA>Q^$T<%O0c4%1ZwL=rQ*BIXE)A-F*J#Yc6W> zbCUS4!A~jp5tfw8%sjcyS)L)8Q3){qT1Au-tZYdvn-6Sl{{RMjVfYOARpGp6p1d&U zK62x{+r)W4HN#}daU7UTrsiE;H3Gk8{&s2@hEbQEZHt($vQv< z>ti~w10SP)Z<1*|Mf}1?ak9g$x&lgz{@D3d;ZNal$=(|Hhrs#jZgl2eB>WSLL7x%H z!SqEThCt)fUF+QA-I>3LJna0^c$XshMa&#$F_^JAnVu+?LbM8pU5Dy1$L3{^FOQ4A z74e#{JosnMygMt;8SZLq#Cd$t<{auW6*`!Cq!k404KGZ4i@+ZX&xf7>@ZS}9zaMtu zy!Xabrw#IvQW%7cA_MuGU>KkI@!|Z3!gm?ver(KfpNRheiLOrY)_y0&^MNNz+HK z^~B@ivrBT4_Thi=6~&NmgDzKICgiN1Gw|I&ALa5h0l%O>zBV`Fhww?w-x$9SJ{$Ne z;bP<zM!@_x8use2mg&cozuIN(xIS2FjULwkpOYuyO0V z$B!THT;!Q&Nc=B{!IF!COABUl5peX$OC0{MIyFrO@2Nd;qCN@!2(!Nj9OdFq0pT3U zk?c8?o zu3wkG6u-mYgz-*Q@H3ORUyFQ`{v^`yJeFcYb6H5;iPDMa5rm@c3 zZMD5f6b)(L-o_EY9k%*mob5~Y>x7VsH~gbuF#z;|s;}Q{aok}*;haJ@3V-x+9sY`O z$ZW-z*n8sxj4Xx>%EW;Axn>K$Q(Z8lStbV7 zNn&N9z!C}H?Y2Ed@x9~cDEu3KB;zs1`ENUzZxDGSgF4BUWhN(wF*H;|9h8JnYufR$ zGyeb=90xU>JVEn$48BJ}Wd}Iw$e&;+ozK%3^Et58nDky8ZaZsl!4s3bK;*B8ZxHid zDsqePE<4Wo*W$0j7z7!3*D%h?6dyhcKBOS+jQH{0uYX1O= zWPCpHZB^l8Bi~_=N^tpmRq;n(~du;>FBx5zMu#IQQIANj_O}J zHf@g4rEOL3j>9hKY?^J$bgXbZ#1G|OMN&(#(|xM3!frcW+QXVM(n-YRSjDV^_+*{x zzrEw5bIwnS@y=d{CBmk3c{58J7})A5-0l7G-+95JS)xSMs#!`#KpR?{>-8Vk9ZD$% zUns1~0STpM2j<^<_QQI~&c`vu^7$N$*?gZ3mDVwrUCGo{Koki*d)_rK$A2&I4t4l3 z=RQ*AeDTY0{QBh=F_=oa8JL-C>!=FG#>%=RsVe3GP)RA!9>a5uQTT}P+4#4>zlf6L za~?#QJ{B|4xjkPkEK>#jbk;MS-aR$PHD42Xf({+PrQ$rV!gI|wN-ifPaLXvBXv13V z`(uicGrVe8vYBk8lKF%zdQhFak&fiDWpn(ek>aY5NE#B^*xcE7ax9Aa(8mS9cxMve za~>x&@?{bfV+myRyL{S3`}f9i&TGGKp`5oE=o9LbGn&k>C5-H&QN4x)xu%!}3P4d_ zp63fWJ8$zl7QV*L0+OiAv@!Is>Pq_UB%avHx zn%II!_QPi7QmICyL8or`>83Xrj4k@_zg%6x_^kXNiN%_M%CetTci*lSL95rGfN@-l zcEhi}Gh|m{=k6e!b0r5FGAm{waT~gyoOUF8f-!HG1gwxmz?{y4=ofXc4P%7jas$8u zkxeFHf0nU&2QV<9uJ^ zk2{*>{yy9{^78WEpO{1kR9az4BcsyPFuvE0T)6LBYs;sp{yC)OsXr9Ig^nM^l^Rve z<|LLC>V@S|1AV;3Kl};D(T-c0viw$Q-i1#<5_Sp#{{W^wU4A7I&yf63J{URw0Ef&& zXZXfPAi8VikBP(>{-ZE)^%I2V5%`X0Fi6^Fy7#hk-mTf9XCcrxr{P))!e++$DQhc@*DcQC=fPdE+IfB|tgd~x$1E9w%-R<6b zWQI_s%USF_upF{EKuH?5C)?i@2|^u7?@T?hayu2WPq5pj5@|&U)n$d1=)G{{*enGb zJJuAswH9DIU0_J;6tR0G3$J~#p6wYqOu%&jI6qb!j2dFffawf+*Y(92G-q)TQbx_p{5vbSs02l9AYq9g!@k---PnEwF&x5{dlRi@`nBy6YtWj#EK>3Iwkl)p0QIB1I zAfFR+d?b84@$V9N8VBRNXNoTf<<%e>%}roEf6BU#>5ngdD%_*WyzBUq{1)=RHM^!; z{{S%YNu+d;sb@o$mJzrA07Z=jcf4l)K9cb+UF5$7c+<}!@NAEYaYe<@G17G?G3xi( z8-K1l<0e-L{Tw%ElSuGS6SKY#cvT)^W|NBZw=+!hOFm$dxot+?S0>Hx)9tlmt#aOf zit!#|j!foYW@pT+4DaS6wbQi~H(=dk8=v#JeiP2gmdxZO13axS4a~}=QgpLwm$4&j zt?^eS7!!{EV=~2Hf-$8gy@OZ;pP?0wxJj#Ce>|ntZ~V6^Cp&Ue@NOj(lICDQ(Pp7q zmJ&A%2sgGpSMV?6FBkD&!wxCPT;ImOJ;u2k(PT)QYJO&#iv{{T#Rhr`Zj z%5pb{i_M(G;w4O-Bu?ASJ5WRb^(Sq9R2OZ>|Y301+dZN#A_HGGKjhReLr}w;gqyGR6#5`vy_;%*9 zd{#G9m!CLotL{{Ri6!<2s?gLA(T%FXmH!f)*&jB&^QMgH-tXXelB^jE|b(nZHI(oB?#&YV6t zh(9oFn}hxF$LJ{R_3GDEjzi*3NQV@ME`%1zbAJeFm)JZq(f-)N%%Vp-E0NSS_a9s_ zt#;*jJH;fr0J2ViwepZL+jw+xHi+UD+6Wqsz<0+>;PvMu<%o1(T90x&GhU2)rJP+w0u-NZI6GG4pVC>7JUt9(X?W)hxjwFj< z3##83a}%WjI)_cMEU5yvz4yRb6df`F_r%nMY6ijIrVIBuVP%M{1|@BX+wY029;?%) z6@VyK$-dY%xSnDHX#KFj>OjM${V`evCr}@8Sa7ror*7CJ>gb?ZvQJ*vj~_xt{=*J5 zpte15OA4|2V#%^%thSZCHSKs%rSEgUwk-@wokQw2#0O8xEceEw(?FC!8h7n@4g#HB zK{ZDaWYp9_>4snls_D}eH{OA2h$HQQ0I_}WT!6u@_UVaZRRL$V3U(s8^aBb3Qd>#f zcEr?gQr7oYO|hRKgs$W% z03ENs85*g&iub^f>1qSFrn+EiU12~yF=wE~g^N@AV3n|UBWx%H6Q_Nvt_duv4ewV& z6jw49k4@Ic5fq4mxw1Rg^}`F;u)g1H4L7oq2XDS6fhBKQt%pm%ZMI#>=x}t|`|X5z zM0-1c-^!!D6R}=p4JDJi9)}e?DHv6Sfd~j8hW&cuB0{#T%di^^R>Cz}U`?Op7m6w& zl(P_}M%1@^;~IKKU{uoMDa)uJDHY%Saa^&-IK5l{04Y0OEV>vI(%iB20=o3ZEX-q< zLlg4Z9{A6hVq)6V_8WIJF^3^i-jFuxak0nDjwXF0sRdPsQ&^^CR=CL|o}g{t8F`D) zy0sEXJ$sB}$hK{if}~Lc0gvUz5#uCmXaIWNF*A1@HbWgRUY@^9W#)Xa%vOLau>*U? zG>o=lU51OYPpbigospMIMue1$aLq=^#zHfa95ty>K;NzrlT@0uR@-`U3YdXePUS~_ zxVsDr2J)p-zfwQ83(F_U>;a=oe_SKDjalNh005&582}2P07uQ<&LAk^9i}ploe1lT z3ptdc%xUV!(-`X<_J4-sPe)Js;?!**u?)Z;RSnP67S6@(DP;w5 zkc%|`0KsxXkZ6@3(-h8$Tek3q4HV?<2spaQ0jWtG9XfO8bl{aB$8L={c#3j?dU5)fYN`j z>yC4Q0wo014VUZN92{y1HFlsIKKIic&j*y|U4r$XES`t0VQX0Xc8(Q0FguIrfb|FK zj%O=CYt`vpItl1aV}jwbGe|uj>$q05QV_O}!#J-G~N6TTU?#2int35r2 z6-THL!id9)DsKMR!zip5W;bVHfvGF?{jdojYW;>7F*|@p-G&W$R6e2UAe+F_K&8Ka zm~cHoo3~slogi(o8{n2`sy#Z-zkCuv>4>BqwEe-v?YI?mFhpwAq#v=sB<)9`tS+l= z)!%G2wyvY>FaQ$6anxXqx*pvz3oZ5NXdD8ky>Hh50rhXSdk(lO*xCK@3jy+W_86Ne z(l@dFajzi=z0Lpxe=Y^kvNrzb3{KQ~ZCH~)5VlJ7IE_G-HcfWK^#fzKOh&Ql8-wld zizj6bHznDkzW8!!f1$$ceLr1|Vg(oU?~Ny5I)mEqRaFI7d_drAM&8&C%nzgk*98z* zKA}`b)rUqgfa3b~Cl!NRAnAruNdR}e2a*2(7mtUGzdiVU!@P3fnN%6>7LSzTj;ZRB z7ZjwC){TDn`I_7_Ka$Pncqb9d2p=LgSr1WL5s$mv+sV8q#GXjv{vPqzmGZnxD)H%I zV^wT_e0*B?hw$H+d@J!Ai1N2HgA#V>Sgj*ejSP|5>cgo5 z`r@5}rh-bf+1OR#nkP^k5(y_r9kAtGCz%^r)Mydb@m85Ag23%yj9)6N8$&6fcA##* z%rK)sNX$ysM&OQ?Ki>+oo7EctN!StJ5#B@!s_RN=n2y+*poAreVbJOzZ+H%ZCMv~L zl)b-vJ2Y+o001VI8wX-f?TF$?q&lNQEa@Yr{V@U-rXUlzH)H5A2v8KjC@3^+?}leK zRRsoX1n*whl^q8Qus);pz)w=!Ij>(^?S+-)bkhp~{8C76`*p!O8&M$8CaCwjz*KKk zr7eY@eXvb-F7Ge#EPCiEJqYeA3bDlq)}fU_?Y*C-51Ar5E}fVVP0$!*a$*e{kV|wJ z7iG~bjLPpzr~n6XhGKfTCf8*np}~lR({T_KbMVIDk`@6ZplAf5gQ;OyTZhbJeVSAEqsuQwEJLqSVT?DAoJm6C~8gqSw=E+wa)mq*3`Kqv~=- zqDN1l!ZWN=5H*%N>Akz-JM0=ixBkA?SfFwmlBGsst z9cv4veMW}#1Yp&l`zI6y^Z^i)t=DQekQqR3@6{ zU5g+trEIML!uGsYOzp4I6i@)|Lwqc`moh948o?*g(2N!S3oMTsognJA{{U|N@KuUr z5{)QH4e4UTcEypumckho2BLK$$G)sl{3j@0JzkOO_G;^gO@KsT9Foq&?hXP#s<}iD zmZu9uvQ?kg70F6T3#0`K2HyVwOjz$B7VgJcqHgH@F*U|RA1D$BrM_#%b#@g(tA;Y_ zEDnWRt-E3YBx+umD;<%SsTc&lkj*15!$?y`&rn7lLn)DDG;icL(2u4xD`?+B#S18H zRtX#L+xq_iOkI>`KwZEkM&KTp$3n>;mm83MTFCxmceXBoG^`9UpP(cA<1#Isvg4FJ z(t>)9+hd;ayM-QO@h^eJ<-DJkm8Q&wYY4$jf9$Hk{V~DDpOMPQ*_iF3)ZI6#yl-!U z&jaV?OwSGDup&i27tRPo`I6cqj!h}0MefA7`(yL}0Ej-Jhts~5$;*}3{{XhV{{Tw( znf$MrjyT8A{{V#V5Ar;<$g$_-$i}(ZV~ukWMbZFcRwI7)O`LChjB!U9SiqsBNhfk~ z*7*~FWjHShh8&bGLu|Umd73u5zxx9noi~mTI)2L!tWNg^JV$ z{VM@A0?b%dADG~)513#Qsb#;eAr_+7sMw4HC!_>B(d+Msq_YC2Z))p^H?lhV=bMU@&jdy6<=g*-uWGU;MUeU;G601g>b7)zh8VA zvqc@4Z@)^yFbLaT?Xkt4t?I}Fwktlh^B4js6#>4O7otb}D94tTEcM)+QJK~msfk4w z=^aVhzrHV3Qp@V0N7Q%wmtiihPDeuJs|eN{{RryhOO&y z*8mmtFjBNvWf#`)t1Eh#F{Kqp-wmNlYFTu)u~oP@46+SINdY9Cs(=^-lQpB(#0_Ln zBD-R-A!b!@NMS@Ms>Oyp$`f)au8USiDsnXW;k_VOO+NcpH#I{RR6+|Wqh6E$0DIub z8nm%HT7&vx2=u;)+$jyRkGgQbD%z6YcmP)5WXYv2CP z8NPZ}tvfAX0z_5_01sFvz9@+ZL*@Zh?|?>)GWlSF3tj&JOh-{=WMI??v9UHV0066n zV5&)P^sE9pvdAO}b!CNnkNV&U^+l=~he{ysLv_RH@`zRh-uw0#DymyZTP+wB!*Y5Gz4~AP2qdTINwM3e4!7M{0Cd{W@9lL_&u1pV*~P&4Ed^}toFqh`=6 zNZ#>$VTmmr6MOapZ|{oqsr53^HRcaJx%n*S&umGZ7h1yuT|qB{ZpXxBsNvYrAOBU<`o;vnKfuT*2fre zvneVv?5okq+Qu(GIRt6|Yyqpl7FiY7TxDtYH+vjb(fLTVWr-%3^u>-J%4uxbAQdO3 z07AR^YPKwU;3_heT}lZes44njtmSN)Ufg}t4P9qGu z77?}8UH8BrGE$(8E54JbVo$Ncs@I{2UZH_Kcf%_Za5`uFz2x*Zz9`C|m%Ts06#R$2zhzMEhoBe^Ujutw+Ddtwb> z7jw8Ef`0w*s2HxG!ib<0Q6~kJr6o;~qwpgO>LA*R-mnwSDygMdfAoWn$3&_RZFg9OTTyCaYtu)r3n>L%5QjVICjg~XvCu)Ye)u{f zAZj<;e}8;O1p!hkO6)!T#sca9sP_~PYy^|ajX{i(Re%~3he&WFs&qBQFn4G)yWm4;>a^m zN(mEc-);JRajzj-!6u;L7!WKGfQnpsDoE3?zV>mD3rOm^x^%AN2{dt9g!GZoulK{q zR`8e|wU8)*w)j>uGZrM8>qD+AS1!71zU95Zz?jH)1d1VvQ`7D-JP9tpc@Y9D2NA~I4M9Ns=_{Ll+i&% zn$$Pzi0!JGh2Fp}Jm94l2tahYA-aqR&;?Y|0av^1N45~@C)2mS_^}E?pm}!3e^Ye8 z3wcq7ULAqE_V>X$jD%G&8v=VC*oQKXg;hcVv`9E)%m!Uc2qLUIe8#Y9R4FRQ{BKAD z<-PEZA4v(=ZheLs*Pn#D(YkNo||^VM&UM)4O*?R zq*2y4wf(SE6;d>=rUV^A>;Aaan-)CTc5f;LyFRPDC}k<5QR)rhV$!l|l1(Jo*>QL9 zLwxGgJ$7jRn9Z6Ep)Yk}+jTupd^*OZw1~>v?oYL1xaJ{Mf>RgNMeZ>cVXbfjc!31hgkcmvdw zwk-OT_r+}CrC8NK_h#P^&V{{9STQtuZGg2O)(nJw3GMX5LaYN!w4u6hiq=&qt>&8! zdX2^ur=0pMwe@4Y3M;7ii%hOGlVz&O7mBH_!=hLKnmgg*c$n*y zD6?07-+Wo@DylIhW3SK;+XN9BhSJPB5D!z^0#}r<5k@t2yThoFAIfIbbb^1|4^%ur zI=+QFkwW?o_+^GT*v0@h4eAz778Yjz0EU!B2H$GDGKI`hAlN%K;s{u(fa|uQL3-dk zkwRHgCfJQccl%;Iw=lgPrVMp<6SBE+>J^QhJN>ZL>e8)5w&uFvAdqR+&CuZsyzH*%yV)vm#CeDr z#Q?U#v05~qV2y(P3icQTk1r!Il2sn71pw$VkT24N5J;=57=RE)wfk-{B5>+;Ap{-o z0KkGS`e2XD1IKqYM^eHX!fbun|-(g>ChEw!(!)CZwXLb6?X8#>HP< z?+GTBCAIXj!n*B%ZAwnU%Jsnn3uj?kPkbV?=noxl{jpSLNZ(C{q^g>E+( zDQ!hRZ+rzlfNF@|h897n={>ho?|^1IA1O!CP6z>LbovY;01!d%zGxr?I!Gq#zW60T zZ9+l~SF5f9z|n!I{{Wj~?l2vZK(oJW2E99em%r4Zg;pOSz+l1EYB0Ol3c$5q)I95O2C^7{0#eK*3r5xWqlb~r}!ZlX=< z!8i+su#`aS(DlRt0+k8??r;;#V0D0Y>~Kg92t!sby|4std-{!D0}#{*s~54u3pBvl zBdNm3p-qwjWfV_r1aPK0Ab>ZagmyMmjk|;Xn2c=L2V#2k!je3}ZDob@z&p|secNDh zRFlSmbxHub(mLV83tLicjT*&I6Pqy`B-)eGuK^X@Ab8_6!*E6zhBjoPNU8_7(-0tS zL1ZM6K>K^*MB0>E8wx-qbR(t$%OHY+%~xDeo|aUM`E;a$%t*SSi^+|ctb~tNF*uX2 zme0_lf%m@HvTSf1W$HGXP0*(32JMcS#bj92KcA{YVM_`xeRld|wei+zW0ymKR1G4w z0=na=@ociAL^o+dohG{b)-FEAHbL2Q;3JY*im0uZ(|i8k*B#T5l^2$$NPwd*vQJet zj+d8?RfGbpCU(7#ZkX>plmhbfp;Q3#XalJ_RH?^IeWmpCzv7e4smoss=?p2X=Q*c` z#-)e+FpONc>!gf&Ya_)Mjq=AY@u=*K=LO5mjNi-}Fn` zw>9M*!;hGGg+&|N<~a2aFJ&@38Ft5vDYrRrT(uz zH~uyL%%z7fm*Mj9elNrz$>d;NQ)Y7#ghl$<+Z-$&FZeSiY~^zN=>)bb&xoOmZo7uO zc(2EwjH$eC=DsV;*`6mX9v<@6W>|PP3(80r{90u6wDKN|wl=(Z^}Z#1P2(Kf!*cv9 zFO|t-M?LIGo>^inUTIb)Q{=*yE&t-L3gxigtu#ml_W25GCTOf;XR z<2x|FkWVdA$k+mE$9#BSfpgy(YR+Y<2OP+-n^7TQ@BVzY>l~er9m1N1)pt zO#C}I`b+Vd@hQsrnF?kz9K$YZG#v^@Jc>#G0N|G%vXWL@`~giey^q{u%U=TAkHhkR z9bXZA=fe2n%#r8e%NUh*4?8rneyYi*8^iuyU)j%-et5k}5hd2x{M~D{VsRZlQqeWo z)-6^mC0^73HSdX^3X!hV2IP+T;_jy6X zdmLl2X&F(Y09Q~j11yfrsM}c~SRUBMmQ8NO0}Wls{)I#E{(va5~7tjJW zpl~m24BTZ^GZ98ZsiJz=J+bBA6aE-{Xz;({H!<-^@T;B4{$q&cq&&;Z+)8~peA`gE zt?jn^5q-$Vs->VE%IhT zwQ&9%;DW4Hg6%-*0NDVN)GOP0ahN~^lBoc0s%uSqV%c)Jc~FsRTXsE8-EpgW)S5|+ zk*0nwJT379#ZQN>c;#;g_{(tKXX3m#FAB{0#Z`2&lNyooYE{#)t?~22fczJHfAL-y z!?|ydeja=eindQCnP@n_7Uz7Sjg(qW?D>>V=XKj` zZ65~y2R{_=8U7*sI`Mzw2mb&o^3N`E2Oi7k@|**OXCo*UHdZ=BZy_vI6-BwMeHf1+ zEK=%?$|H}RWFv2C7_j9PnY5C15svt0mJ?CWEH_?t@#o-kGvZH-xnGFS1AIb$N9TN` zax9!fEtd0FJFo~OLTQC;K?iE~#}UA}C-HX6@VU4b9`V=1Jg=JNQ;cSKY?9`pkFBg~ zp$V<1j`;NgWJKfmprw!>={YxU`c&nq=nOlPN%{3-k_`3r>j{(dd~ zCOl8#-YoO%MNbXPaV&yE!?=4W0StL@V$j)Mz?%bB`0HOEKZbvd-x8iVWd0`n0P(kk z@E&Eza>RTccvl+96PC=zlDvSKR1$=jAdLs0qmOa^Thag^0;6sB#b+T2KK=C_kJ}vX zGPggM%6|(#1h0=C9mVD1yzTL6$b1fYo#c`DXD_D`Vo9=3p9%}V>5k#de}o_6ArMTj zhu?_iRr2$xk2aF_Obf2D0b=Vs%jK zjq-jQd>P??54n$pURvb*w+iH(-vgh7w+_ohOLf8Sa|%%6bY3d?fVPnWzP_~h{yfyo5Qq|KUna;X&^LO5f1 z%I~JVXTMv#b9{mL7xKpdfJ4pS9o{Z+4>#4EJU59pQaO*=nosIZJ^FZbPbryPTN(za z0ow^CQV>+e2t62qV0+@un6ho-E=>FrJ`;Hl#lBVXV=3ZKJ#jgCe~OMFCk*B;Cb_t{ zgs8U}BqG+A3VyUjZ;wa#%iw2){{Rpi3VvDfhmkV8Ya=?78p{yZ2K#A$nN1F(t~>gp z=qiMQr(#$8VVfuBuaw2CHp~r@F>YB~y_%bNdyRes{{RI1*UU@BxQ{gR%zQs;;5j}n z1S?0SvKFq}9C{bwv*4@Yqu~dGX7b+;z8U5C9%nxiu6v2*HBFqEK-oOUvKPGyA53ki z@(L}XB~A4>x#H451e!aF-xlSS_gmDB1MxZdeS9qZUGsMZ@dL-MSK|5pBfzo`lgb_+ z#H7osL|n)NG-NdbTBwhk8q-W;cT&jm?N~XiSI099iuruM^|h$t;g`X-c2l z9*E@M4tzTBvT$Sv8!G2*@lEvkLVPpjn~R?~ZMOXA0^8Q_+{@7$q$| zW|W<%cJ{@&XMNUWlBpSZ<6_Z+v7zmYNp=MRU0sj18I=gv8oym7N!tc63keEcEzmt{ z5q4EwTO)fZAYg@EU^(=*!nNE&uyX1A)roz@(@J>4`bxCORbqCL+{N6ShMk2RPkz!$Bnt}=>{83TsB z!x7U3fGeepW89sN2I~qejM~F4VTQ*_o|v#fE1^f2FdzeCusc_4#z;D3P@o$ddtf7@ zu-uYtZhByf##vNUtMeaF4bu#(q#ZxVXrS$iGW=hK&zLzJu53>_A6lIIFBR=gx4?`F;esi89+Zq3LO(LAd#Ry6s0FLdlqmEHFz;ulm%J_fEw~>q^S=z|zaKs(Ilsiu@a#cx{qrBzomtV1e&_v5>wA_*o2MJhzAZB!Fly<;V&@Mi}i)D#uDm^%~e=w!MJA zwl9oLM_tPJSK;1L5}966$iztul?h-z)=gtB4oT(c2w3=TP^I31maE2OncVmI$l>uq zhAjuy6#8g;-ZIMrOnQ;H`(da_81ZoItYKqJj!_hmVIcs4^f+UYgb(0lA{Kg)i-8tx zdUQDIo;!Hs;pf9ggj`d`&lR&7l;GSYql!hzrM!~J;SqP(TM@bU#l~*x9ZB1%{6>5Y z{3(1{%a)(V&k7*p6XjGaS-A5uK`~3&S)yemf4(|*DgF{ahUX?BhlKnpaEU_!sq?wq z&SARs{wuX(esXs-aNc_4J_F(p35Z9QyDrm8F|*t01Z)cnhJFKpR{w_PKVKMP;O@58SVa{eju zx5HNqi;U%GS+b2jW?5i@MCi*CK7e)vdU}j{3TfXnIe8y)K%hDe>u%k!u;mQ7`7&Yj zgkl++`9M3J@ufTu{6IVb_>K6P=6{9X3n8C3p5<(mvgUZ`%puF>UN%K#j*XvDKTWX4 zXUX62zo!b_Z6mBDij!SFqXG$h;bd-ae*XY$bZ?1|h#p+{SNL}3&xnp|;c{p4T(6W# zA0-@`8fhKYG)-NtnL$0VTh-Ca!_=aDFUmW}o z&+-pEoTr@zT71Zw9LZ6sw6Frf0FXt4@7oZG#kZ5ZVdj2o@ZXgANjy8{*33`C z^4aO4KcC4&nzb6aHIZhv7qP{hIb5}RKQkAtipX;8kp|Q{X&p!XgN4hmHmr9eU~%(P z;e+uX{9C^eUL7wV_;m2Ilz2xjaQ-T}JpTY5l~rOAg;r?)0E*?Bm4)bA7BRHH5WmKI zkv<8yc1OaFPdpQvyitcQ3UfN5yW}`z+6S4cjg~KTfY=9e4_*HNmE`=%gzoNfYPSu4B4S;WNd~|iIWWm|_pp=VI*h^$!`SoI#m1&O+&xY&Wy3REp0 zf9AwdiJMU_2Ewko;~zB&nHV|)ZM~g_GGG9yb~|+Gj4mme&A{Wz%c&Kqi*;l4`r^s4 z^Yig&_zL)h_?q~rj@@)JsiR80Aj{1WeTvk>_ zb`3FY==zQ0raakU=)1E|2K+ntCHR^AI`~+5Kfter-a+K7i%KTUWOJOrIF5E{%G8pX zLj*Tn4f}Kh9;o<0@aLaAIPeNgr;B+ElpN*9xsNx+`IquU6l~105)H1`qe%TRvm!@F z4DucN5_)0ghDKj89^0t|^*CNkvYKXNtF=>!A<5G%lAvRO;!sVT%r;*AC;*J!*Y0u8 z%RiW!8Fa8(8+XPIS}0@UPRM{d#O^P9Dujdk)+gPjx8@FAIiezH_h}e_2@I`3jlX~2 z9ZxyS(q*$lC{@Fwo!L&1hPs?;&jbD~c)yCjho*bP7&4i8JV4>x#hBr6XJuVd=N#sd zt%##RCEI<1<5PHP$=?`%5F8(wIIoC*6gmD#P7lT+$R`QN@EXY@hI_s;ZK-+V&_j5d3PtsoIjT{d_yt9=FJDp=W_8t&Qu7H^{UcbS8~N3yqU^eKn+M+>mjUy9)HH^|))FWl zX@mf7NZSlZjg2)QrW8*rH|26@T4^?B7|pXwCv54mvF5X|5SZ$ z5|=OLN{byzK4u!em>C!c3CccA{c=h!cLMbuv_+JDv7bMQ9 zA{i7ZHo8&QexPI3e3AH%{5Ww4S22?2Ik=Hh2+QQMk{KIO9R*VoPBj;T-veI^J|*Qm zLGg3Oe+OaaK4#*aRa=JVc#dvBGWk@3G>B5N?`Tccoq@+|@Y9re2a`NV@X+!XCFD3> zPl;#Fm?O)qff*D?rrZ*0uOFWIpIhVN@$sJCjvtAax24zPOO?2P1a3daya4eNC&Qx3 ziQhY!<@pjZ7f~T*AOT(Rm&tz{KMtNE%^p*f6OU$d(#o+WRy>WccGv^A`{S|r^UQq9 z#y%c7&VC`p7E%8Ima{D!PKp7KNmkemjbBcf)Sd%)WywAZ^7jJqhn2W@mz(1J3o2)Z zax}ut7&_xtzgO3(yn1+kUzU1rE-NF^3QHkba_3HSxr%+&~fn#4%arCBJajTZfSu~{8k<$z; z{DhNrL%sm?n%Mm?(JrZXBeej3TvT5P3_U=C!in}6dyL2GUzDvcwiXb+ST{hOtoOl^ zKQTPEt0IZByk<;7WtFmOX24;ABnR=FF5m`6n-%_i zl0Y=Wee{4nmQ8Jr+2D`DZ-hPuPaiO4VV8{YwHA246<;;cx>|#Dex}W1WKWxtX&cR= zLjvWGzj2K5eq`eD&h64+CD~RXnr!Mb4F@AAkbAC!j{yGw;i<`HGXDSsy!i5xV3Wm6 z^29xYIzUXn_AN)2M?=Rr%#C~0su5K0Lu5->q{{S=@ zas9!^dH(<>FYg?${MhvekFiPr0KFrbyzqRN<6OHmP3{&s0k7+Y&d3gA$nQaj3s|$_ z9oTbk9#bf^lb5AY+=9}t?Y=0_c}1BNdYqE3I*UC9GmC#~9FGPP!!Eeo263_LsEl`B z8tf6`79Zy6*KBltTAi9~xuU`=G7!DN?T+!mi7u1f^#k{;XFlV2`gU#`OvrTt3Q$rv z8)Gq7N`+3B-xz#7e7QWOQbhs<<2BVv>QmzGX_&*U$!CItj4Tu=(5*l&1v#YR=T?RC9j zfE0BNhs%nkX7sTDl1*Vw&$AlXV#Z-)0s5Q`B^#jn;0Cu)L;L!0@e-)S))lC>)K5?` zWC{xwp}xdcCAv#=Z~#)o`=9BFB^4H@dH`Z3{rA1A5m*pgtv2_JFjApMs11(Th@=gG zx*agZRC-TBb|(sB)_qn8U5FcCEISZ(KKK+(jaPru5R?sFcECmrx{{<|*NQ5HI>Pn# z?}t{qErmTavuqDh-vAaCOMSNOi#jKLn(w1l{VM{2T4P4`z}Dx~-rHh%mp}{mBx6(4 zQ_wcz{ac-|%KgdhwgQ8tNF%>oMHafMtm1<}iaQJK?}*m#K-S%GLelJLgYAXf5$Nb_ zj8F9@uE18U$Sd#l!)`V|VYU>j7Am#5^x&4Wx}D9Rp~X=&L0a1OtUxbx0Q+JVs{^*! zDhhzXsCU}{ftIL^yVqleu*^% zBfiC$8$E9TP6gV~Ue|(p_rkq7Bn^(o4Mt2#5rr98Jk2kD$b62DbkI z*<-u<3M-`0@9uC1LI~})9wq2+Qutovh=>Sk9>OJw$F;S$ixA(#{dI2^RZA5Q}vIrNjJ#PvF zRWax~S6l=NyOO)s$KM5sqg_VWg@H9ji0|J3i(3b8^40=UiYwOlyjL`0!8LtB9kF8& zNh{c2OjjlB$MnSPQsI$;C^SJjs|t?VO~yb6b6s(JHp8hSwPPGJ2P>|?`gg;yvD&#u zVhKK+Mmq*&8+AA)CkU)fkSLM;@Fj&DdXGb=Z>IR86ELx)_H1cws~9RB~08-HA8I1#XIVAo7yI*?DQ z$n9NmMmsRn8J3A^qAKyn7T4)u#Od_vJvYZAI_r&@fb@{tnm3GW)CkgPpaCI49kHo& zF;0|PG71|IJ^is7Cf)U#v7{V4ffs1%fd;Q~Zxxr-GboVW#(}U7C4dNn4T!R8m5*F0 zaQeKo*ihT;hC&G%O6nWe*A_aBXF{?MuZN%ZY?hgcd(429a1f(O?L8mI+L zfWuLyBNhih!XOUd07;Set{`f_8k%UnO8b#RXEZD}< z^&MwEph#D`gRBGJ7|*6R7Qm3ZGcMy9+*Xr0G^kCpDPTLCV3}81h811N-2HLSE|0Nb zEjC}$ZqHk)`j7kXisT2)^4UO-{Jq%w{V{G)m2$5inX5*`f$vzNSrJ@KESu@H3($f{ z{{U=ry{QyjO{YtL3?Kc8>Hh$Kd}Kn=#-mAbq=8q|;T*e0ts`nG+p!(Ju<*wsvLQOC z78<&({csuTQHVmK$n_9*$1B043vQ`pMJ+Dm_s0x`_d8do9JdCLtE`Ag1f8qC4PxzF zJjNMm{VlMu`t6Q$Bunf`^o^^&I{yF*(IO)bfwl*>+vA_f1&R>r*K7M@ITu(C=3BsI;ii{05$fZ zb%=V=Ub~OJCH1jXKYRdH=n1j)!yieu>Dz1q7pDCy6XolFOE>@pk#F+sN4^N4)%Cyv zho}-k#BXZq-La|N5C*USyZYj46|GyV3;JLorMlQ0LJe#$>Fl>yrHka~3MiRg_+ldwB|a9GgX3%VFm%A_ibAp2scYhake zFqIERwa1MA02beeE*-~sK3~PY4Uh<#xm9?K$SXsIDvrnY$FhYT#Tr{99Dh9WHvsW# zk+`>peASj&vV2c0%caGDI`SRn-+^ioh z^sDSw`MvQBdSP^xJqkc8-xp>TWBwAO0yip+VB)#moo-cdboJPsSoUvjcJ8V%g*siC zg>_D&+iWy!ti{t+YPjyVuY4w#c2^{ZVY$=W5D}+X^nrD!dpI;YRcl0B?`!^F_rS5g z@t7Why}r1J=U0{}xLP`g^}(f8F>F8vu7}?O>=stiWM>|lW7pIU+h7$?`Y$;dQe?-3E6C$ZT|rFzv+Nu)u;GtMD9V{VVIM< zMbqUZ>~8~0rKd&r9Rb7zs4}4&>DvWAh$=>EG};LHcCY*U;bfCr=vhCP)>QO8KiduK zLZr!BK(a;N-`5vaF7%A57tINNov>ADN_mV48|gSI;@T#0WFIYvpeBywCg^fz7bN`-APoncPaE2*qEpaAAOJ(Bt#(*&eN^2iZ-3nhX@k%_Bf zP42rI>T3?5khJB1B+(zR#3C(J-87pOf~hL6sDJ^|3sCR$!Sy7Cz}%l#*A@|^E|oiM zD{L6!Z9Y<+RQ~{Tz6rH@OGaI4%I$atHzdaLD6mK>cj=26H9wZpf_j2STEWqzF>jmN zuvKvq#1ga#uTkFx<7M^g0XsLo8gm@hWmN#JF4P7VO$v&}FjNmt_yv;RF4=TqSnjQL zzta^mgan6HIsgkrxBL6!B~^55(^?PBVzEg<>vIbK01>R|*a6!UU4-)#s15~cZ!vmT zd@)^5@(@7MSoZeBe7sF)h)oMJG46J(0vJqMJ&vj-tYU}^s=ATMA*iYT*og7FwPp$} zkKpLoAHEgFoV!W|D|7?7J@D=%G7m0G*bi;H{qPk8cVgO<>NHq&`wSg1tt!R_zMz`C z5EMF@D3GMEzL*RTt*8=MG9Q1Y0HYI2qyQ*T``{|fh|NHoG%EMK$L)qB&6!QfW^E)k z-8vi;V-ktbZhw~gpL`Z8aUlpJTPv}o+YZ`6^#EB#8o`h=MWrkUVovysq_`})P1m3f zzg!za=vA280s-r=#AP%X$N|tcBk6`&BLJa8U1+E`fh*ZjrN;K8jgQ*_COY3yfJ&;i zDfT4o(+d^p2%xwRu`9Sg>@fD~)EPnkTI>e<;6%z*3`#vs^B(uHz*1#l{A5C*pGm&Q z-w#2_XjfprFm9)>Pp%nIwxgD96vpp-K3x?RMTTag@+)ms+Y;C*L^4JiCF-l&xyDvn zJ#&_z}evj+&K?0i=_$t+AH^!rF4gv~0&yNvNBx_O6)5SyJD*GdwGbXR}an z9vvub)_Oq{L$23WarC?J+wh)lUFE4bo@vCgWHQ-ka;-F4qf+Qit%?K{H(T__h<*_H z7EW#PD>u!VxZ^oB;nKm9QysCC5KMsf0<_ucTOU~d9DF^4k$f)UoDFiqC-T-wmaMd; zMc?nXKa78gA6W9sABTJX>oc}ao+F_ zpbza>bM5rPAOhI`0G6u`D)m+iJ)m1QM{d|4vizir+XX^}6?P8zHlWguqu&P6RCU#2 z_xHmcIzy=j&s-?`QQUsG1~|p4HJ|8kO@+`Pbtk4EU4an*3!Un_b;9qe*W0cPZ)h0qpnF=p4&{qT~lY9MYGu%JJoyQ!y_Xa z1lZcW@mWbifa9tGXR-IdLh7Iv0YK|?H^B3w9;9!jjqnNpMRfq1JumBqZl+kC*ZD&2 zeQyARN+3J$wUJ$Lg-MOsR455*555a|sM;fUw%qIAwi%gp>utuKfPL|06{$eFO|1c{ zyRpKsR#sZ76-K(@iyPL!k~E*C{{Y|j!m{g4EWt-xt0x-)%7pVb(v(=%_w9(P6lhf@ zzHMIT2XtacEKO4Mv4mlxXw8;wi!nQlI~E}G9o1A5dsyF~!jy~>P}w^XtELrYT}a5R zTT>Db+iV0hfS^_-NYYN@dc^E8Ea=LN0c#7Zr(T$n#u1q(-#`P>I^HW1$h52#glb7c z-wFgWDGJII4UnDsVd4ai<-DMvfn9suVQh&B3Rc)3d=g559+t2HAmIU4*`(9hRw!m3 zX5qKCTHCkuz>VV`k`BI>ckhUd%(h4-fEG3tfPgxI<+5qmn>*lubecOi zO2pJOf~qWy_UVI6tP~O`(XoI-&{b}C)zH==YV&k46{l|C93wd>QKJNlqi3cVI7TKd zf!x^bh3qtGsddIJR_lH6#hF5{mcXli_%KMdsh8#yK<$ea>M}%wx2Ug6+OfNC-Mw+h2Yr$czO$i-}B!z8=_rRT%A`0LO0EPD?eLk21EtE9zzLh(x z9=J&$eM}e;zWeMi4Iv1{73>O8ZMWY5$`!&P0D^raUu*(0$m|i2YqA27*V_fPs}&(? zy+DjwTs$%Pu+=#zb#=vZtc*h+NK#q%>N^Yq5Xz-3Lla|4_QYV)NKxBS1c9~*j0sw! zBx%&%u7K}=D`HeGlV?}cz5#t?D0LtW>983kI;3>~0D9uVdNdmJNP3>V#sigLcRLgO z-8aBjD-=Kx31;5L1X+VH-p9TB`(heWCyh;mvlDnAqejZ=MIH8|fLD`8@#T+D9Yyy$ zVU}2=dISdl04-vxcV9HLDN4Xs_0f`G~4LjP{rW+B4cyu6fC>Nvvdf#(cj?9W!N^M7epZC5M zh^Ck0Rj9_Gb3z8P(IawS%B2~wH~9mz)Pn9_B#>ng=qt+ zvH{bz;K<4Xw2O3|Pi^oSqe%4=urvmXI0DQp#3QO365qZc^o@FU9V_1n{J_@7`M2K$ zQ6SN~tvCo@RE=WI^up>U-oKdbh>5kc`n1-w+Xcg+W@D>uwD!f5Vl0ZFlNj4@8+*ZD zERzX;P&T#K?RZs=+e+CWSiyfR`G3QvAO<(oj9(ZmEe(cd1Zvw>`*+21M-W2l6cRU~ z)L<)+y@(e?_QR{+VI9Ow5s;Pxay_wUu~WwzKdFri77t8S z5ix@1{$eq6B!$}4?mwm~Ay`;HC}K@*c-E{Cf>g4b)(w(+3|7hJ076jgadM~)Wt7XZd!;J(*44cdr`$A)w&jS}9fe>iGqh3#Ky_B@>@fO? zRh1aqF2mdFfO6;@Ad$3zxFY`mTg8z<5(@#4)sn|=pcpT;v13ND0}nZlsSpx&B%SclXhBS%sA5YIc$Uf? zn42thdI7Jm{gZ}iQaaJap_*vD9FlL59{xP4>oF$P;o1AvJ-n+ot%n zT_RdrQLC}L`r@apWmJKv4x^?dZ>a$ceo_j^cKtAAdTCRwTS$}TQN7_BK>cdF_CH#{ z1cT;u9YXt75R)T^00DG%y|8LQX^d*bMP-kqu@XujtEuE|d(iDz zbqS~yW~&u_@Mzw2fI+^8Zum0DT`yRv8{|LR2myB}o9|^wzz~eu zLn*K?Zo>~85+VkXZElbrx9^BTl3AI+Ep$44umqlir9rX_S?hp^J!M>*TO{@(_QimW zhKs+Lk<%5-STUrcS5`hU^_8QA7hK-P4QMTV)Sj?cbGCGaEQfmq3 zmLxcBnt)$w>xr${0=ifR+_2xK0Sc|GkwPxXYZfaEkVzk^N;=fo8)>W(#4xz*6Vu-h z9F_}{ev7Yr_P|s!zEoa@^;e;~{cHBa7}c0eQ+6QH=|c`$Hya(1uWz8~g)S7i5pLUs zu9#lZ&6~@irRm0!A7A}dR71e7K++O(18-w;N%!FRW|+U`PiA z5{~A}>9OjeiyZlX@gA6sh7htA*zZE|0c)iq!9O?O0N~kcvI!cn2~yO})s0{o1$vwS z$8V{@Vx!UYG1zfTZ>HEK^s$8~QaAU*kj&N>^!j3z1b`^k0{M-p zQBI<1LvMmgwXKr8uzusF6@b*oS^5GtzvbY*ixW@up0Ud z8U$)RNx(y>3k3dyrWKhSni{Ot5zq`t6uJP8K|P0j4FHf!Fg4$N1T2R9zi29*Tw)L|Hw(qr`43v6}*u)r5pkie+9_SVMv4T9MoDj;Y0*yo}@$Kq?cy+XIC5 zF*2kFCS@_&k*Q7WHWl~BdgUY#a0whQr}HDrBaw{P^H{!{#T%P)hcv)^unk7f{_a=z#>Dut z@ee!7zlZNJ_=S*_k)-hZE@P2LsEJ?;`;y}wJMli@GI39Y?k6&W77i_yW?R^SG+>YG z)9H<`<0pq1PZ|CjbKVuMT_b~xa->O?fG6E;H;KU{l4}J} z2JAld`eSbLM}mBX&K!%!ejL0+ie4AY`BrR(Zfx6{j(FUdq)}8<(x0d#V_9)81H5qX zdJj9C{u_CXaxQ$ixW^0OlF5?I1tb@Zt6;$1-uU@ge2jSfrc0I{SoHO*`KCO6<6_Zf zpHY;ZLF3d8pHTOE1B)nR3~_Im|h4%cfBQK9phscCCQ-vT^I*f=&U#xx2(e&b$~&nBjb^Bx!h= zKf}ysnG9i8`ubSibU63?eo1Ej$tB+2l+U970Es|BrcBa;{^L;F9!vZ@a~Zt1#=pdW z0eG9smy1c65)-gvGqMlWTl!?`s2}s{TY8{&-Y^VhF-N5)-@IMgY>}98;Nz1MZ1ohj9UybtvQg|jhEXM zGmPBY6kK|P7QU2m&D5F0=sHvp=1>>V3{VMaG=eX4)27(S;u88*6c9~{{qcz-m1agx zqiVn-In&p^z+tk{$((VQ%f{@^eKat#nEbNLD^ADljT!ic{8Di*gs+57W$|Z#=4*`R zSvYS2vHt+yQvww2*+6IC{GVK0XO>bWx|?>78on<66Z`|?ZOgtb_~*j7R}zc?Ck|Vl zWz;NcLAQH~2r#8BROHnCWu?0pmUODcpUC$CLgGKMU^yb3P65 zKOH_N`F2iw=dN*qINuWDJa08Di4mDZf-xCj2mpcV2F>=MJI{uH1RTxq`|*X9@l)ad z0F6PAYbJaeayz9x7H__uhe&b}V-zA41=e7DShpW|6X@kE$G7 z#xD%~M)+6e4<9*ai$^~%=Q$%io6Ix>TwrC`$b@!bM;Did@%a7aXN#8Sx%@kC3g+HL z=Dty15V$uqWhUTfCnjb1pp*D<#UAd&-ql$1=N|lCzYm^S&Pl_Ei242_o`uR3;kj3l zY;Cgvr1kg5pS%?D%Rj>Z00EA8@dqU~sndq>oQ!03ADEaxr{8ZiPw9;p_;LJP{5N~73s0LIM*M?$Msv@i^*S7 z{vLiL{44mO7-O)~Mq(1ZNS5DiKXao+K^BW1Aer==06>5nfaGaU7;H7@4O z{7ofRh#Lm_Vf53Hu=LSyV})I7(yX5Ni+?Cn>)y%6R9O~=m8%B`LC_h%*dC+4Eg^_e zX6oqTw?I{hZok{#6Md|@aQt_iGyEHwa(ubNxCxoFNF>bW<$8`d@2C9D^v5>RD9kdb zqy~iyRME#Q!dW8>%j%7tZ%^3a%f6$i9p3dET5q8ylq)GVXm5ql=`Ma_u@#4HB}-lQ zIE;M+B9=8>FeTMjAQl+`1F8GoD3l2lIX&vg>5GdAHwm~<8jnm?>c>(b8}2v3wht5> zU2^ro%qt|4DzS9E3Odlm(6hr5#XGA#Te2+-SOcN+2U6drAul3PnY#iu{+K!5!Ah_u z#U6|Yd^Hekvvk_}VYH|XM#(2&EA4^&w5NR|t^#QY7}nj-*AieAl!g}D5P#PNg5RdW z_P{Ky>f5EC?SMyRjwTGd6S%&Z=>9onyl&z=wZo(EFN?GsL3o(_;)hia5eKO~0LOZD z0h!NZvHdV3ftAF`K9jzn2FAuLx~24RGb;p8=44l$GSMz+;x-JSMzS^^&3Fueu_Z>M zRBxsT4N4e|&fe96nhhBNAp2qgAW(tEz@Jb(Zwg5OA+fas?SUM|YYo+0-H+O^Po)fi zeJo%B-{w1#LpC5)Ez{IC`LP(3I%I9h9R>riKC1w9z!1#pHHx#_d;;JhC~tr1h)uC_ zcCZ585J*F50IuCgut(GDg5Ic+W7KSxqDS<=D8%__SZe9E4TI{iMQ^LN3wmz1q03rMBG3Kd&pr1S&6E0NWHOAG)DVC{e?m+P(8>bj476&gq- zQjY3K++w+>RqG)&bZ-?r?9n!nLr#%r`9}C?WDKtg%Tnbsk*u;CB^Ix?=K+{U9<3cz z_uKD`cg$!?GViy`*Yvx-NIC=1%+*NEk96&ufl;%_DR$vSTx&E|N+=fM#nt ze7M$EH`-LIEHT1(%lJKhCq6j%O~N^Q$G?gGUE;hWk~m5~1La;D=1@6&xk%A%6c^IE zb(=oFzB_z;vEsr@efwjR%RIOIJ%jk*PnYH&!gs{}JHcoF0Mll&oEtkFku`=!;u%s$ z)OGzas(uQ8883z34*m>z3zxh`;9S|lq2%fUtK4Hx z@b8K4C*!~VA8!}@I`JEdOD{6`ewhvto{KQ2TEKXO121Iz1u0#981{d{2g4789wh!1 z{uOvN%)FbE%y3>|@Y^XSWnLg%a~X&g<&|5gb0f1~x%y)l8OMi?UbpsZ8*;mkHTV(Y zmp1+X6dXzT zH^YyKyvY)SCP$F?#%C{L#f+qf`;2(Y@NbCx9C)wdPvN=ZXndx6K4X`Q@^*7DeL3v3 zih`8i%vDg(_it=_bH<(r2Qv6K&OE2Y3G#S{DRCUGU=F1o2UGpdGs}PCW3OLh8@w{t zx03$=@b&N>0l>ctjt|8+94s?={&3ID#S1w)rw#&-r|_0B`eUemH~#<%-U9M};q~H| zj$EDL2L;M=PIHZL$@q^j$CcHbk>=ugaU&TRmH~;PFCCNr01njIr~EZDc?{aJu1~~V z{CRz2x03hkD{=W^#=l=l2egOOx%qxbk4|sHCm$sa`3jM}5p#WPbJw`Q8z&|f$`CH%*!Hx-?kNB(M z{z7M8{;3Md{hJ$Gs*Oi~ra1C%^Dp;x!hVPr6dFD7qykN!wi$&AJ^Eo=RSOlq_`^nD zNFvAmaE`jqsM#GXVT~IEb;6ejZmbQlWzae_g6?dSipgJkC#?)Likfu;*8c#$7g1Cp zZ>?-G0HdUr-+to^gvLn#?$@!vEJ(h)?|tx$?5tX@`fq?-++ZM@7WFG0z469EGf{C# zJmADGURDGT<(q?L^*%g7j?su7F3Qq8_Fcz^L*%3c@qXBy>? z4at4t|T*FZ-}vjnsO`3iz5k9 z_FYx>$IcF17J}=7ncRcNp?BeE^4;tAYi*rFg z#xI84*9#ZRW_e0(7Lq8~tZOAV?=Aj=8;6s5%RR*Z00*vVjoc)sm2>%7=Z|p5%MpWL zUX}F6l>i+<;=X)w@!#U#;zNS)OpibODe>bc2;v7dm*QM2lru{pV-b%)W@G8~SsQd* zcCJkLj`8D>{u*=N3jD?J&&9YmEprE*44lKpvhu+!O*?N&>7egJVk+_H$K!Hi$uhIk zzvg4(t-K+X=bjNSATJ?tY`WzWE1MI^oPR8xVrF8I~SSF94b8H z<>T@M@yn(`&?(xl9RrnkCSyC8S+d9(5zm>Z&|o_KvA4K?!^bmoCxI{H#|Dx`%OXng zL9==53+Z!TP5%HC~{KEkaj3@ zQK29=`A@OOqmP$(>uwqRe0}M`Cojn4`MHn)9RS}P_D_|Qhwzh_$;b|BZ;jJ$RGD5{=R4woKvHD}sz5#fLmdN}?a17rb$O#*Za2{XC#z~-``iL~Q?4ura z%S!TQ5VC+DVxzu2+4z6_9dhT4KN@*XSmzToxh_=j?}qVA)M+g!&1;X#h@SO&hyKSN zZX5Q6yr3(goP--?lX0Eqp_G z55jrRk+S?p#eN-Jw=|(-igl5s4GB`mMd|nN(;8p#5%@Lm&ol8;z<8%Oc;hb!&-k;& z@_Z|WWO8{kKjd=}q%e7oqD2J_Ctv1sjgjHs;8)JPwHvHI7ukpduo<5(mSYS>)%vD4 z{qgzVlk^OEF~;1xd$|5y5?J&{i=Q4p3tT(Hu06`9#|)g=t}DyAoTg7HG)@PZA`pV= zhpWEWtHN)HuMPZo@Sl>ocaeDBUpK`0XC;-&@d)zSg>ODpjbQ;t^9$b^@jn6&5BTg+ zOU}O({C7C$r9i z^vA2>d>puCxn9#gd6enuPXzgUjPh?H@eWt!J{H+rFC%o`Vcq8o^vXfW7p}vIjr{ZH{-#=Gsl}g75U?ap?P?Bj9F})QI794kvjhX{G5FZ zVF?kC9Nl{{VmKk8kq>BXO6I zH>IJChucWs`eUYD@nin(c>emrcUu!NI=#X6#AcBg0OSVV!Rv;K2{Q@&BqU#?=`52=`05HF_#|+niUc-G>kztvD+2qAZV01e?u<* z;}kytP~1VwpHGn{s{a7k9C$bX01y8FEo3+!gq}L_J{6f}hcn|h5QZqP<&H5CQ~Njc z$GtdF)0#d~-fX0aXp&z3)Yb;nnS zFZOfG{$@4l?}&(&E`H;A#@%0o@HVc%{$p_rc!|I1jy6D_m}9L;yX(IA&OVo}+=nZAIFFcRv~_A-_xt-}yz=yslnfS;y;@IE zeX-DZB=f%#mNJD?%C(pc#`}-ke0N?0n}%}oD(OWOfPXNqxS2I0v~b@{)KnW#Rj(YH zzO(^{LyjvXM685#Y6)MyIXHa6fpk@k$T;I&TxT)orIbm+GLq8}18E!Iar2z$KX`U^Xhd3|kwJ`cRIW z0f55EY5;Wl;zmfYP0`x1oRicz)CgvJ9mX6GpeY!PXx-P)j<|$b)M)K}ah7^1(i?F` zy5Wlj7D+TPMO85Cg<@#3i#;$v)vawopa$Qr0I?;Vj-HreNIL`5w`>h7tOhnn?SosR zWLajaJ6;asd>S8c3Bu|cY>xi`wk*0gp)6M#k)nBOhJa0=o{l zWo_+;&{j1)x7sslG`$JIjF6P%_1kO>QfaL?3#m!&D;iS@*bDTX@43WAqjpF*o1K{b zupDVoVD#&F2*kOv7!Pa}CV2q9_{s;s96F2?QOEC$}?(7eo>|;69ol_8!;= zbqPd`R7bzp3`i>5iWOCg5t&A!fPiZWu=JZZhj&*bg$K7>D=mRdSB&>SwH}ah4X(;} z!5~lpx9)2S{)OD%v8-M831C98Q+@9M3t&O3?S*n0tv9a61ziEqNENWNiWk@BZPw3R zE|&z;4aP1s*D#e#kHhu9o083jZf7cOewR?3KX91gg6g{yh0kYzk zuv-H94%=Xj0gG={+Y*?t_V&cEb_cIa0~TQ3v9Rf5t_T!8BfjGbT!J-Sbg_pmMBQ&# zl4t+`G^_U{;JB}G{R`)tGd}LN!pjK(KfE;^HiS?z`=UAgY`G zm7#H&Wuo&5ZRFW#X8|{o4)TV-W?oZbl zlSe3#hMh|1+xlY?XV#`L02;K9d&cqfG35npf(`C5izSC*O@c@pcg94-0OV{d7}=7q zy0<_p?}{j6LqR9%YZ!7igjG^ln{BrJ4l-xf@wT5yJA!?&MBwboeM{cxU@-H3Ng!6l z3($LB_`@?qlX`V|dbS$7<1%R#ORmxsUgNLR81YBu%5{KFuAu(_O2)DDEJj5_Y^WA% zz3g#%P6!aNvs!}>Y*erv+d&|Ye*G|F5v_%Ub<%YkykuJE%uQZNG43-1O5S3W0G}??Q18(H0KPHfiL%cmz=CO18z%4Xi={8;xhBexyZantW@SQEB5hh$ z`fhR3dM|DlK3$}33AaTdv5A;s5D1G|HC@5RPZ9+tiNc*FNeq9sF(nga;cZOBvyEXz z_3SavG@gr=8d^wH748{D{qFHnGkO*`X3|Zl{{Su@&Yvfjnr4&%9BjMRIS;$ zWNm{{n*xx!2m-3XJukjFJ{-EG5UUFY*8A;_H53SSg1rTwbB;$OMFx$uux0^>{{X(& zEcd5p;e~`q3Y|rOVOYyy2uK0Qc(COb8Nj551qTtxN!jb6%d=f!W3Bi0q zimhGN4XqLeA#JD&A8Y_?Vg0Z-LBZ-2Z`0|B#?I(Hjv9eFsQ$PC1>1r?w}V6~Y=Fal zgWD3qU7HFllY&4)q}j8vBYXl5j-7@zu9@*DVrhx5PQtKO^w2-12?nSO7@pcqZ@Czk zs>%UYRCMo!zeuYia&He}^xcdKAdRmOKsUPYfnJb1_P_+GCcgM4tf(hy{csAUf%QH8 zu?q*{jm?TZV2m(E~tQlEbV=cCwi^#0YEGql6LEY7@B=J*YyCAeLDMK z*eyie4&$Z(3=gS#cflsT$i1YElla>x8lw%V`ITi|?$rXLSu0HAbz2U}7#xDx^ zzaVFT6H6DJkdvW~blpfjw*&OY#;=K9Q|3+u;ztnX4rj|UpU=ya&BY?yWoBNBe#fZC z_aE@*>sRD_Ywu^- z_&{Mol%WTvDMUrfh0v_3P1w)0CdHR z>TOafC?0`7%rFtmThJu>Z|-jbd(iJWh&BURG|J@5dpZ@nKuOVD>((PyR< z9ZbNfH?aiaiHtc6Z*i)2WcyxfwL7=VFoDlhimCLfQ2dLPA zSTVG*Oe6>ksRa}srt!-09z48WXlLS4M6$HPB{0RLl50pl^^E10kF>YFII(&_m6#eP zz}pJUQP_Y+wE%C8k<5PyUO)1uC1$)x;#>nSF9XX!v&z{_$Y}x+DCisa-`cURPm_lj_vP2U<76w zQJm@)Yp}($MI0!vm?W;jJgv(DcCT}IyZk>llFWWbh;aPYURfgZbY^nT8x*nu0f4>l zew$-AJZ0AVYgt*jI%2dk3P9jmmIF=L_Qf%)EtN6pZP5FFOm2UMUxYRIm*IR%n0Svp zuM3MKnEb9=FPDd0t2wG^RP;mdja|*$mBzUvjpw)~X`;?a!t?Uv^AqJ<`E4RORx5vR z_BiwLeBX`D@-pDY{;YkvUM%tB$2;n{wovk0(G+a=ydluGvW6N6zpv97F=bj8(J&3A zwG>^e{qT>MffvdOKn96pwVk#-?;fdT^yRf6(v@OOu|F?wZ_^7Z$QcioS!jYsea`s3 z<8l>M!Ko~Ox3TNK5sd1}h{|;xAw15<=y1N5WCBvQ@!q4P9(j5EQst$sV8w%X`tpkffT~!QDd@1E$r2h>C^6 zI;w-}2dTp9mK9y5I zf=&Bjnl_d6wJ`1%UW~TaB zujmpTjR8Zb9{73lO_#};lQR~kLdm6uuiFjftdNyR!$=mwv7p1=@yqx@%5d}Vi`*NO z^Cl$Az5Zx5k~b8%@%+wwemBR@moHe&x^VGj&C4*y+uHvC06qm}mzTI^TZqB@7$8i> zY08kzE0W%_4Nw4@`(x-A0?SL6fmbu9%pg6Bp<=&Xv88?yyeM8&f zMF13I-0ipD8{Z}ZK%c=S*+3$$fa$(J%YR+@`F#HXsOQUXy8g-Z-;e%V;o*+8SpZhl ze@qJOZt!i3dbS{MScaE>ruUDE_Lj&}ZuY;|1dC#I5ksZyaXlePRlV?3TG1E2`(PAo zYKS+z;wvhUbek*R1;GTkUBa6fjzN7sX2pA87$72tZOAw$)9ELv6flNDH!J|?2{>R) zYO4DCi~}fc`)q7sff{!^{V)M-Hof}Z2;34t{qR}r;5#s(Mz-4w6gU)}Hal;G7GC{_ zzAcI}eI`m5y^i=cQV*z`vIXD10o1gie_Fvig-}mj?*&e#r5oP%a7i>*0_{i5y$;w- zwAmlazwd`2jfgtFm<&`}jrXJW!Aqx4%>6J06IZ?9mAxn^D`nCIZ!HYCjG)}Wy z_QD3#3%XT_Ii^uKw7=%%Sr&F{%eu9A>YUgpcx}*mWlu zd652SRieQFC+bc&1^FT92zr1B_B)(eBf21Q7&W<2ci#(@Sp205tOlK%z1hXSR-Gjn zZL?o&QD5c;k`^`;Km_zZQHFUGjSL5;>xC*xi5gR+Uc`S~D2`BlBzG1^U#0=$kSgnP z0YP>?xKYzx?RMK%BN^5sAyhN~r5$&`NsBJJI#2SjsyG8HBCpGO#=`d)K+FObVk`L+ zY(^23`GJWx+RsoiebBI;hl|c0A0h_nB8gm+YLKC*Y zVRg{7jJA{o8*203clK%%b2)!%F=aH*@x)Il{-`T^e+ z7dr=z-u7DS?O285O=N})Q)?YJz-dZ?Kny~PAYdfM+t*;A^Pz(7}UrH{BC_$Okqzfg3MeSNS3n;ULTvFnMY{UHsMZJ3>n z;0X;|jfgczxWkD6xdrvQI7Hl7pa;u--SITjg)<7hMCtax8IZCwvw%%>_WEG}xRlZN z{{W^Yu%}3zumho5ycB&X6@VZO!P>AEAYU<55~ul#9kFtg5vZIKWoV6!Z;E2Jh$^n2 zpb`%I9=Nm3dorupFVmnn#poLj7?m5Zs*P9E5pMM zs1-Z>!=;Mph%0j>GAvpso&8v1>=Vp*f{+6S_rinb6fWeDq-wqP!+ByA07?m~PzLmU z@D2j3)fpndF1>-mI}JtTa0xq;?biilQu@}5DYD-9G0O(9`T^6>Fz9dzB#R>&C)2rM z-|2;B4mVRoQ6AWK0bk9956($oewbL$DJ;xMJKw$mi!f_rXJSQQnBoAGOJFI18{R91 zGJv^SznGT9Ei(ee2`t9Qz#WiKh%NL7xxi&fD@dX{j`&6_P%G;O_Xoe*5NlQuM&)av z0`LZ+59=p=$R6IKd%rpgx_j0bxKl0b6T*J%8_PAPwcw1h(HlaqWN#-i;_Mbvt&%c~G+gq}v+Xwj;T+ zIvpF3EA+z|3j?J#tGf2!xlke??GP5ZJw@#h#eMQT= z8V6v1zATmkk0y;IF(&(Ag6fXI0*^zAqFGWl0!B8yF=>4)N&~%6tXp&|kUM%+=nkt` zu@}rh>T7>(zSsn?Ec(yVur;udgC)@11GOIbY74x!0K93?e>Y43VioFPy?_T?B1-Y0 z3cokG>4sO0&^G$DY%3TAScw#_u7~Y~)a>P`Y9)nVVZI{yLd1oJ!%003BdB&X1${lR z37LN^om+xHAYz7hXf-057qP{XB!g6BfC$)OBcMxZ3PGZ8sJwKZg@KktG-xvP9r0UT z`HeQpcT&Bu`Vf(&$iWInsDo$U0hW=tQ$umMv)2bzhG^1_S+2tl>vq~%N$Gfi#w1Wl zumBppz47N;G^iwOKz&4B_fq`rU#mI1dVcfg*~IMLV% zK})T@{+LnbZdlT4>09E!$iTB6fRcMy>5AR;C<;Y)9q$%Rwy?&J(n^7d#8@uW zdyjlg00j!h^?K;`0}7xN3c%REQQq+q-56;%Aw62OoH!ai5>WnacYAiig6vC{1QW0# ztLuwVTT%0k5VYe4cc5__{{R2YV!z-oH#JUoe1(FW8RQu`~_X8ZjCz?}Sw)bpR~%-w`zjNfsDU)F@ZB7?vRU zm1nMz(0-T-sYRRa;$u#IJGl5IdBj-PBYv~C$n zSk>qUYy+z-)OC$Vpi|Qnh+}_K&P9{3`e6B>#+2$LvKZFm+ZK7NEP8fA$EEh~fT~6a zQo*(qEcC9JY`*dlBC+!nF%9p6?5e^YY{%RW?}(BGkVyXk=H9j#GjC=RhCZ0elVpRr z>HV-BTpun(ATSg_9{3FQr$dpwwO|s(3dutB?A?3dvh3PfsP3#upnD7gQ$X}CqG)Ix zN7oRS5{*=9=$7e&0_k9(M#6zU_$iB^w9*wwCBpT?BZ3-6I!%(m@97=zsS<<>C$TMk zaI>J2RWnsEI#dqVfC5cSVlLrq+jPa~vOPU#ZS5KKGY4$r-0)p%S^8jJ6 zCcwkELQA6V#1Utv2m!;XT|}K*6SZNL+DOZkHVvD>LR~#+>H_}f3mq#}5$WH28<%GQ zmAwOWyB_$HNYQ{oSwA-T1^O4iZ>A##DN1+kz6x`okV&(4q>h-1NljXNZ)1EYT2RED zRaW|w2B$L&k20EX6{#+2E?c3FT@c^-44aqde1cXpzZkM>L-vDA@ z$Ow$6J8n0@J9ZDy+w1;=PL21?=Rt9V=gaD@nUBa-~M(cEdff(mRX4 zYy+gNNGLbc26aj{9-sg{EdKyp7~~8C3Kn*}E2@yBsaxC=-w&iSZmUH42=>9GTT~*z z3U|RQ%9L=Y(xk}X0w`du*(`s20;)cu%^#?p!29CIVn9|mM#_vGWtzwxhS&@>fWbz| z+us0My{NIHh^(aRaYXdK*p|R*uKh0$rm3BKe!~DaU?_v>CjEvLWB?i#2*2A8Dvih@ zfZGvJtB2NTiUYO*QJ+qgU5br0h()b7`|eM+DwEBIUpFqBkO#_6ERkEw1632!#sOR* zBu1jK8pCN(uph1qmQaAHYwE+cEAxiCH*7s40LqNCrd>v_Y)ep}78WdSFRm+JC(L52 zL~eaujv0)lNC~}qa0Q){(_|a1#@LD#iIg$-=EJ8F^x0 z0*n6uTgOh~(7e;LDzyd-NHy<{;l>be02+MINBU!_aVAkSAr##RJ8U`}Yae3`GV>X{ zpchahe&8PX?>v|gaD30@mq<*&Ad$Ai{+Q_y!zxRy?aKjfqk68G?wpkpNz3_%S7GK$ zum|amn8tE>$MH(c&%}Nd^Zx+hIh`klaqN`Y#0Ir1u}wc;Qz`v1=*~->vwj`&pA(D# za~!dgmal*KLu`5b@i&);aQ^^>9Lmn0{By_nd~9fcB&_@UgQR29d;#Oma(@EM<&h(b zZePk6krXHZ#;rgOf{r_7-xPWA{{WwVv}iwy-+@j6IN@Co=AexxRXr?fBS`lIW7S|PDUvxD5zqr$ zVX);aOFlB zSlcknXz4HKEnn`~_2ejnI~=kBW<@GTwbneT@EgQVxhfe z{_TIRJv@K2FYM*Xb)GTn86HXIFvC<-hG4xrVcmvXEbRcg=~!l1vauBhO%8BN3LxIc59O|nnWzh}FqTnAs1J7c7zE78=lErFmp=R~c!wVp&v;4Ve=Tts zIb({)4yMWGX3IMHYufcNR$Coag>R2${4x9*^B05P8on-kQ*qqZMjju|nPApS3!1x~n;G731k>svk;gIl_fmbIV4$CUT)dTf$$)+m-n%!0eP+Y`-4m zi8I{a!}xImI3!^>V(7ai=#9ud$Rn;j%bO1#W?%&YA)-6u&;I}ezX9AM;Ukzii^e{E z@i#foUL|vL*A?b0@@W}(?#jjqCv&ymKmY&?dJU7zCBP(>zP&M?T;^Jn?B5x_1+YYgmj36M9(!H_9^wpY0Z6b>rHg6Enky(lB zq;0k#0SHPqM#ivPa9dRo*1fTrX3(G-1(X^!>KovY3ehxm3_uBDYJ*V@J7EPoFl(l; zLmrr0u;iWWZP-@W22C-SssJ6m@EoZjRQhVbA50@isqN_={V}7my%ZAIWnt3_?4W34 zK!Ic)n_x*gd1qSy$G5%~$+k2NRn_3sx<^J>+d`5LYs7X@BSy#604M_D5`>b(16^=T zu@JJV4TjsDu^AF{y|WSZ1Fi;|V65A#8z*2!0v2WpW%-)wu?&M(s1x+>i`s}JwSq6( z3aVHNU~Jm|0Jay-P)jiYsOj8{F)@bHPeVem?A05lr5C>Td*MHb7@sdmAPWZY&oafd zlyA7eLagLiy8dHW1E~PFU=7-n?Sy$HNEuKDs;V2-BgqtNQj^o6U4{sfHX+hMMQ;7D zG-UvrBoIA7-q=QIbb+XXNz?~S7I0U}R#HyIulB4fJc1f|1=DFB)G+%9Cj5HgqqCD?J1sWNsfOo`JcT=crMGL|Vrh4RL$VwU5 z0sJCAw@g_kOEwS*zlLP30iS)k)#A+>s>yz`N9p@@z(5PGy5Hsi*V`8-3F7&auP>65 zPOA*!mcHi<+zW|2`D%$L`Gj&SSL|_7j?D5E3m_usus8c)IUw5tYV7?nmHrXLK`kOC zUNi)1n1ru?n+!M?8I`=ng&IHpNYg5c_Q85$gk_`)M@5_uFH<|I)*IwFVpVv+;c@0+ z{L92ye~yNY{JR`vX1Hr*&*nIf6v$=7YwBsUhyeQa!|rs(ndDgmd3&DSjvaRe_hLmV zuWzm^;MuMT%sF`{<*shwJV-$?ifM9uLN{3007{+qG)M1*&+#5v;P5tMjdSM&$wwIV zy!=51pS~Ka#kyfu8ye<}m&#}~$V+rs`{%R`#xKN-1eB_3fxf=tg8jxiL$mEM$Qn4B?YMnZIVz6pz;n z$Di=CJa4C_Mqo8L1fHM{_&$17YCDU^m^o+hh5SAFn}PoTjX~n(emPduWEX+X^AZ05 zx}hJ}9ea!ZI3EC9D~p~D!=&dPB+4n~%W$v}P48jZTW@N_oLraepP7XFy?k>idPyRM zo52}~RkaBRO@(90T*vs>`~h;@O`Luu&6&gyheHPfkrmkOp-Y6{x$VDGjx&^h9RC1= z4sYUThva-e=g1;eC38){!v{Tp3nL%thvf4A00iX1{oc$;l0aEx1bsVTf=Z9S^v8(# zv+>;cTjhM)@cswjk3Mlc;OPv!Jz>?bApFFE`eV5A-{SA#zc6xaeA6GoKZ+6=Bi8X{ zI1zY29S@jXckfuYhmw7dJb#y}+Ca&EX24?;i{v;*7vWj13&-*iXE=U$F7WXTq{ta2 ziGd6XovR)q;Qs)Q7cle3HMcMLUHE?U#}>=w^9q@n;mf?UBI={)R3IO3S6=w$yk`7k zxzEEq=3gzre-7Ue-E(9vQ1RT0Wn_{=R;r4!Si0^B#Qd&L;F)7*Y+hUZ8gpJ9^QRc* z4~NfqZc9AJlKeM>If&JDqw&O@+uuwGp}Oz%`s1teuf>PsC(c|_JogRw zCFPu_3wJ;IZXq(| z;+}IWn&!zePFZD^3B2TFjF1!53EH}o?TxA7$02g}gnkur=Y*W8<{lTy{30xdK+G+) zB85}etqggyo_-=f87O#+c@9qaHstKQa}A~(QYnN-rsvL8{-3@Zm;6@zYex#q&&*x| zcyTQIv<*IaL)8jVqGCFad|NWJ_fPt#mN?zU?dPwDPYS$C@r#svf94Jsn}?aXJ29^% zoyf3X%_ty<=G)Y_xZmI39ovabClg8IkqH@?-Z=$dp@!rAG2(77;%DR6&3s)~E8$-z z^7c|0ye`zexGb}y!qkx zE_k8ITvNl|dFAuOxHlQfoWBsrvYL`IZtv~}JcZ#$FMc8;=PkF>)BoSnz2$j^GS!+1Q<*$V=#h`O2<_>B6M0hq?%9!Me z42Pc@FSv=(5VzEUiFoEd@{2Rq+P$XSFN#@k-{dXm#N~i6&*ZJb*r9GG&u1AYv_oMGFuG^z{sJJlXhu{vbXW_%p;0hQEkE z7vovpAC{LmyefR8kooMZZmTJFZR&xbEcWY*IPkyfUn~4RhstJ#Lmbdm5;cagceuok zMzTr0KVG=;{{Y~N%v&+~M4Z8q{pfwc`p3eKlQvxLH@# zsND^PVU&9jM{B?g!jJ=9N%z20DuV;IgJjm5#~GZN^79oj|?oONj zxYvC3$vHfLoBS__M-YuQ!zNh(Xvf>Q$1HOB99>Ja&S9T-+u&y`_#@-jFXW_YJR9Z! zB#D%2;nHdaznB8J+kO{wPmi7&a$ZA{xMzl(e~a+^zX+BA!gHK1Pbw*8W@!jeH?mJ( ze0^5tK3>nw=H>H}Ym?KXFvu(l=r_k#&2opXMaa<@jknaTWk8RtKy4W9kBA_~uc>Qp=hodRbv|0X=TIcRS-dE5W#jk|i10 zfv-^1Z?C>O&J3lOY~}K@$?~s({1tp=N;F5{7Hwl>u{LQ$LOuK6LymVb_<#IW@w}W% zCxj9__og}Wx$qNDaBLrQkEmI03&rQPW0(mVfCxLWH9(H1Y;w6iQ_f~3{N`scM2`?y zL5%+Z4vyx#{jqNzcP+}3$CnK+}gWfgOQy#q>VvE z4x8Z6r7Qp)@vgQ6j&Dl>ci4;*Zb7f0-vEUNP#a$2_qhZKdu*5mNb9mqlj1-$N&MTZQSFS@W=ijyq6l{e-7RZWcghS@p*i3;gE2k4Kqs6 z<}`qQucsdVizAxiGi9U9g-85^KbS6PAqX`RN4LH{djA085#zi=l{^ISPn<$uC_ zW5{M%f%#=f=VWiwNynwX6hDY=BkL!T6u?C;{9@uyD$G(P;7Fn*U@Yo#2w*<7jS04jzBmq6gD=D8hcL1(S~rbAiVIyA@{#OKi}%NTIPsp|eokz+B=+`)CVWNw zLUNKXJ92l3Z_OM&GKV$6c$8_XNPFpF(AL%f$E`d#@fVc*W$^z1DdHz4Ib5{EPH!n7 zr^-w|Xqa^bAAEQ}!AKV?!*W@fT|j}ATTGSa6Y3=2QN0hgHqXFMKXE<<@g2;b7w2<+ zZbO-(%;vHXBU;5QJCj|lamSM%ymsTt^|!0IL1_5IJ73MU_R?|TufYq8aIEhb_@R%6 z>DB)Lz0-+ibrDWc-_w6jN&U_}&6QG|UoJ+#vx9$X{{UQk?)(yR+)tPOE`BgMI0pQV zQ^aR5dlxyZ*gw!NF^BxD+ROLi^@qg6*FSM9Z%gtY50dX|UL-~^vr#m8mK%Y-pSj-| ze-q0boZpe$6B@@3P_R@BG{P&({4#KP(?^QK=fN>_-ist%II zHw?e6{@Cq#49i2D@_f2Rk7^aC9b1M(R$yZv#8w)2*n_dhaN%*qnVVd|JqloU)NFrj zGShh7yH^TP6mf#&lMt_OfBIvRiCGrSQ5$cLJBCRaDiqR#Li+USj!J=wo7#nT#|zbT z-+CRo6ZQiU=ylq#5lE#6q1z283=KD=_qY%2y- zAva-NyI%O9qp3R{-Ed0=UA8xh1F)CNb_9{Iu9&#Cr3^qM4%h-3AWfczfG4gU7t~1i z@At(bRCxuRAR8ZCTM-TjCe7nH7qyyJwS93n1c1~#U?6%*^LVHNDmY zR^NYo10dYH1N0aIQ9*iL_P{o@1P}$DxH^E|w%-UqWdp5m`r)*JM2p;D2q20FWAwz` zhpYC&(gF?jIAV1YZ@pl?=nt6F_38+~A1&8V2^Zf4jlC&;#_!6tnwHzC9WbOHOLgBCdul|YXp129!2phgk%%sauWTqa^%QZfcF~C>{HG8( zqj)-Zur?>DIF&hU`Rd-ZJaf%rZ`>^S^+Xj?T(|5S6EG9-k?grO)hgzy5`F6k)pb*MeuKVCGp@<1z zY#kb(NMA_a@e!{}G-q?tu{8l#G+Bw?rH+_&t%)>!v0KtD(LF4CVbqb--HnZ6h}Wl5 zk$vw98LpJtfqQ%5gA22PMU?8=`c@~1Q>>3j`HAmeLD+Bi#IgpTt=Ygp*4~}Rd=L%pqi)zzfb`pbzW884 zYg5y2*8nU92e~*b6RF3Y>~?Tno+KnOJH^?J=&#x`U+h}U9JjXF--jBg)93BY*D5xEzB+v65e32ijr zO6!cdN~MB!(_MO;Vl^z<9?3-nSA0=ap;47dy<0G?hB5O5D5f9|_B!I}kMR{sme*Qq zwH~;pX%!cKgR>5}3};5)%@LZdC!-ut$RlSdq&*O)PkZV~#!TWxwoye^$v)SNX&gH- zG-`!|*6=s_+li~9JPRVqgX(!mF7ePivs%Lm?}A0eOduKU?Q0=gbY-C zj$3>EaKT2R2y#yJ#`hQz5=eGp7oY>*7N}OeAfHZ>E4}r=O+g%&pcIC0PSx0BDFjh! z3~xx(cItX!g-0sUB54W&-*y7pEV_(PPXOh!zo$6a&-0`s0mqPb`53Us*)<7ICkS|kvoI-9n7__{VO2JmwZMVjE3S}B!NF+*X`|bY# zf3`3oasUJkCakX2jQ$$#k`k@BWv%+&*f%?_$->+?Nj3UFw=2J>_QyYwAObZ4QSR~A zxJmM$0ygxGkJYcPInEwLa1!8(njtTE_tqy-zcO(2(z)<0O4JJ~`d|{}nALAX01E*^$4$lv>Fg@SVN_Al zXwv$&>4ppx4P;g0UttAwBdEmKHR?Y~!mh1DTVJrlGU;*k#PviB8=yDsfC|?ATVa3; zF)2rGmN5d2dc4}(Wvp2?Z8uT?0QNW_4OGT~?tSn#2heOD^@71o5xD4n_}053+`ehz znR5`fmRhf_JZboxd^+U#!e@DdgXD@u%~>XS9b*Shb`T6>?sxm+*vduvK@IlD1LFsV zd^^Tp47i6OXUJK|6L9Rs(S~$32qSTI{c-jFgY`VVm-P%erPSYV57a&;KR4p#$7gSb zkfhC;nR7W}vgF5=n2JCFjlrY+aec*tQ>EcyjJBPkS7Pv zW%4{@FEwkDjK=REvvmCUOEAI)OXm5zYh`eXe&^uM3O^&gFoE*IPQ z-_7{B{61@jPBL;5U44k9`tO8j8GnqdmS_Qc?~5}Kd2-axY%C}y>+OjWHoYcWvA8|G zvGpElbrgUR%(Ou7^uu|K$6CfHk^?aMf8XthBR1$5+W!DG^}+P96r`wP4g27`n?=%_ z1_rm%I^a?m!zdn|sG8of5txF(YOizO0I(vJH&I5%QhVUgjYta67X1nBg>}-+plPwy zyJ56~mhq!4gXK_{>x zzrGZa{xnA4L~yb$*UXTse)_LXm>rnxLqvL8NA?GmvRShY!_0*#v?j|jo2N>U+;qZH=AT-*@V_~K@KjkKY#=pypaZzhv z29-BkZI4ra6nwEZSDQJv#N5V7pDUt1AC{L+#$Z+6y{J|`KjIISelOCwIWfAr)7kXi z3D5Iz!u{|4p2y(a2ad~@)_G2t(Z9A}l` z;eV7d=Grrpg^MDK46-Rb0R$R2_8*4avGEzfJ}2|M_s6(U9J`$28K2G1B$23&5?sQl z2KTtJXRmB@{{X~K!};LON8=QHJ1qH5F3FajciLE{jw*~H`)aTN1VQ`0dXKh03;1iF z{{T+y<34;eT_5(w=ehc3=RBVfdU0KVe!v_1!UE0(zr;gP&(gN7;3aa^{0 zImD-NL`Rk~0Dz8(=)Jx1qPh3S&lR}05Iot%`NN1J&pSL3axksKd9OdF?iJUiyjt`g< zLBp~+ccyW?dW$F>uczycm+=AcLf;WQdo9j6&l9BJxtMYS2=cFz5-KX&8aBE?JDa-4 zpF9rug7GQ7AbD0S?;Oob7aGpT!{(1SKC>!V(#|#-y3y(}yZ-q;IEj>NtbW_I3i|HgdV^vAJ-on<>U3-KC{Jz<(^h`b=JP~Pj?R|)AIUvCVm%E z&-&Jv_(=G5=Pq{Ryvvs09w|$}vz#L~xp^joEY7*t48ate04dUF?swQ>d>Ht2;eJ2y z?ri0*HOKS04k^p?%cn02DH6!ivfCExYzgVp8%yxi>*@TT7jOVi%9w8Z=02r;Ko7${j{_T%NyPczb5}eo`b+6q~k%d!xCmZ2tg`KL$9b7V%Fh#<_neb7z}X6|$uOFi#m& zEC?M6us^OjzmDw33h?W}jtSup0}B*Sks;tg>sX?S(6_abe_VQU`u8`>!{gz_m+H#y z>-e77{{Ykf04nn3oa-N7)unzM{tdXtjrj?@LFbM!nBd&03l+*tl(Odt>Qo+y+WKQ> z@UO$;;fKUk;vBQ#uZX#i@yw()lRk4^gVM_CHZHD)H}{47smt8g@c#hG{JqTFHBS%E z@`g#XNgH`!vqUv9Ad3CRTw-$f!+(Qb5py8t-wrscE_xihMOpmuXw?~kX8DP_S|5CV zZ{>a?`P`o)JC1o{WxA4e)%(8J$NEnWJUH%4zjnTP_^sgwKlmffS*}X)8-udRmtrE$ zM;*m7_CHJ5jCII7xuNo-N+We~^H8<_Ih$Bnb-@u7>&7RJ@nbN0vdFQfe4PoMBG<>i{X?fJi*!G{OR%a0F0VR%86 zeQRVD?svk-8bUreb3b%4i#EH`8o=N0T3ChBjGBkSL1` z8p*G04R;!DLeVZj1P`ge4du(CCMVVEAoLY@lOXcQSu}=f7wj-4sM?ivu>_JBS=qMQ zuw^;fes+zRsSHhmaKFR71!+R43I_M@ivc=VHWhCUs-nRPXayJ2u&E{OmjsYN zv|1Qw!4?Pejl&Jb0;PEj%a=(2EVM;zyJF=jBs9GXR?EPNvZg(;Bb=)6D?jS@h)T$C~$ zAyGgYg09pk0e;_He>VRB5Pq?K55fNcFNM|1-}Zj9@VCMI?tjh7dT;(s<@~n_;L-5- ziz-CmmQk~kD3CjJ$7NL7gC9tx#y<>!qlC1IL29A@08C`+vs;_*UGe+_EUmBUC~KIjg0R3H zTOGQMus6~GT}JoB>FD|${jfEi8i222a10eqSo(lQ3HeLc*kUfqNgW4Yd_l3I2g`t9 zXlWy;y|73s0bMus!l)XwlSd9kE~@W>&t{G~2UU^)v4%}ZqRVyO@HN=hTXWK|{#zZH z!J)XpvMG`6g4k2G7=%DuvG4W3W(%^7tF{Sg6)1s6p$7mRl{R2^8(}OJ1aEz>4EPxG;n|Htsih)}x{qRi@X8zbLPOVj75rD(XVAXUE31-T|{WNdi2thld?mCl( zVYnjq>v#;{AprfbVNS)E#@#HRy$oXJNs>k(x{EcALF3lcrj3fMaqbajaN@y|(EAT; zYaifbOen#vEA`3GLpoUZOyfHXyZvrxvj{ zudo=Y)q?<$eE$F`)&?y05tk~iLQHjRK(6?WE5wBu?lvHI!p;g8r2zSqK|PMx2qU1f zfK=TT?r&^rb{|s~(nqO1h9qoI^`Wq0dT)hwU|5*ws_a8`yg{v_A#{)sR@M9BgD5mL z$6%k79lrO4bkTW;#-O8f_QWnxkC?&0U4X(E$TDx&usyLp!5L_1k+#*)j<<=c=3=Vg zsT5PD8bm1{@kszMTL$lLxKS8Wbq3N&dfxFeMo2vFWD6SV#j1Z^a z0RSRTO~f-*aaObTbQInNFI(Mj@1kS~{p3?T2;& zNFI=@M{V&~6r<8`M!}Af3sB z4d~$vQYj3nve-B6g-Owsk5CfVNbmK+?EJcr}(+Z)BX-y%A zO+)M77Ne6Nn6aj!8+G}xnwzj1fj52jz(b}nY+1Ch^rv(F*dAn(1v*(;wz1O@q}Brw zS}w}>J#ijjcPmFu&43Q~I-9T>#-;w4AhLoKl6EUiw)-3aLz)qjtF?5*j9n15XVg80 z07`VkJkSFhwLNg8g(|2BAaot@>?4!-Mpd%Jl2ZF^h$2-X{M!oMdR75dC><=!bm_bA zh6qV2+wbW&z9L5wpitIH+WVh;2DPPYyWX%7q|~9Cll*XejrUP%c%lU3TUwjhzI zVQQ@hYQzB=p8D3`rUFPBI@i=5=dKl`&p`eXs#bY9x>^ew&OISajc*&1^$$+VB}; zELT~kKQTBG1~M53t5Bs;fFzS@_NK*vDz9uTf!6;3FEAeZh9Hrd)qp2kS+UTJMDrZ% z4x%roOaydUSQDno5vs3$`#7#lu=3cV-HnI(;?)FGJY-(oF$?KB7z$IT?l1_N^bpW) z1#WtMa0McNZQ-I{Off!~x(e)|2z+^fBy9g@k$vBB4t0U+&POk2}B)mD+NrXp=BC~x0g%r|m!ig2Iz*&l>Q(jlc-oA^dDR@BI`w%l?+QU?bB=_ zH>p_A(Oclo_JMQ(s0%-)B3ZFkp`}H)PMtAvW}8&NkothzxW+s&JDmg(xx8JmCSV52 zHIBWy;JS$@3e2D#MXy!u_Qg(yjH^m4*k&Z1hAs634#LPg6VTxv-ZWYoweLr^40jmk zD;%waZEjL{)dhre^a(jYQe$_r+@w zMIlDkEVq0(l9N~@ojYyZb^e$JHm&?wDeXlL-&`v*GMCaxJ6Y|A^4g0Q8i@s%pOj)T zBofH<>MffA8BC0HDur`OTLL)IqXpW{RUNAZb-Df$f=N5SVTMiC^n+xTIyO^Y_yWyq zq3uAByFf^UC!&jTo}I9Jh~%YWL@+Ex5Dal zwvKussEX^uu{*(T_7QRhN6doiSh@N(6~$k8^~U z6@OSHHlI?}gMgqGeal(cDfh#O^@Z~S(`_c6-|dMmr6t4pXR_(oeQ*&=DI!KXfU+;u zfXIdzqtwm-8v1JaLEHM^yow_M8E$~-+OU#Mms3pOvGowE+X$es)9F62%em+_z!sF> znH$jqVA}(Vgt9R$<}S=E4%m62MzvxAx_EiD2M_rnut1GeP!2B=~P$!3>X7yQ3W1Zyj6Ru1>u0I))PnzKg^ z6numY?4R2T6*p*zC+Khp)5K;d5||sZPUGo|P?ch(x2vOoOLYfv*qloy+_vr1;0bLj zNBq685R*Y@_w@`yRI@g%%Fy~@PMROZA++>6-T>aGA(-#dyJ9G{QcY0@)zoi=WhAu` zY%A@DQUeg;h!ub=J!%QNUbs^Qv1Qnk-1QiLQw=TKxb21|5k|0Y-|2u;9)WGp*Y?B! zH7Fn+=L|~GrlVaCwg5L~@6%WY{u!V_{V)urhJ?EJ?rf%x(fFs^}tPAfpksX;FGB}Rdh6cs{pwNQjx#Y5t+f$ zV$R;7fKN#!SZqPu94T#p^sQE*^sR;qfK)ermJTX;4y_8eV`2|V>v#zn0h?0`09fuY z{-$FmQ&a)=#YRy|=UEhXZkQ%Qs-jcrU`Zotzz~|4N~j4nciRO;qv#+2)TE3db4x_} z>@gjyrW~L$>MlaEn**i+6=!l?g5IG)x^&9)U6unnEI#lhHnvBr9}1s0#l3W4H1VbHJsNK}Dt|)7ff; ze%R^RL+1*Sy$Zz0y@h{m@!feUmxUT26f3B8_n?2j>yDVSlg^)tW?6Gz2HaJM1>@tH zB_I8g@Ak2eNBDf1w(yUVqM0M%kz14bWwL;n&o5;}U~m5bxa<8f+b{WZ`@Goy0M5VKG6`7F9d>G{ zd*ap0PoR=6He0YZ8}E&McRHMTS_ z7yMNC{{RW&8H|Q!gJqGSZ9yi6UXJZ(brJN9G064_h4v zO2COd3Quq=P}mH4vy;CPY~Ob7Ff-&I|}Jo@(;i#2G4Ns#GB$P zi?(3NmWgCnZ+4nhbswNs81=Advhzk|rq?2uuWQGS{{RnuBbt-r*Wxw~B_l^X*@luh znYzd3xkj&|mHqM4kN#d?*~gc@Onv)zaRYHnN~hz!zYsn+w6U2VtWj6T>0<~y7?&;I}dzZd*dgPgY@{vzDd`H)4g5P4#ZZ$^qU9-mLw97iO68UFwg{Ii)ne~tbl zJlgrA8Aq2dl9kvi07wkedyb%fn8vaH0Pb0qU&Go1f$@`>)N(AU4FK{56sS$04VKPy2D%F{gzz6 zhoU*3Gs#@Fmt5~P^S=S$?I9W;J;b9xPhc$LBP~BHM5bvu(}Ji2c@BAN?~fbH_%VDu z^A8m{-gEJ@#BBItOj&8TtY9eZxkl~v$32?-8~zZ#!QUwt80OO>s8r5od4=7h-t9t# z7mFtqp8o*sd1w4RP@K!ixyGV;xn%=p2| zvB?|xa-(s$tsB^j*!?l){!{!VJ`OooE|6wn=AJ1aKB;rOY1dHt=&iAz%pZi`!3Q(J z6cKVi8sX0ro@A2bc+(e@f0c`qw|%$ki!tHfx?9QoJq?iY1H!H~kckzoclO6x;$IZM37j0hUy1xq@|<$Tvm`uLDHtEHY--+G{4#zB`F>Va z@P~*>yA3&>H9I2_dy%YP_Qm{H@WA*9<_z?FOEch9G021EgNkOOR{sFmRJ-AE;`O@C zyqE0R+*jgb;gf;n;No0c;v1EdEt!wZfzKF>GcUaZwmO#^{6fA3I3)2!n)s67vP~(d z(``VnjK!J~&;$8` zUY&^Rj<3PL68`{z&OOav`CoJ8%$l0F3f5j;7|E?<-W7x_*g0cDqo@jdte1TEx?`4q47mxoY`hvT40&=a zq|h`k1bj6Se6|$Juml1L6frXVzqDW18XJRtGG76ldz%-Pa@cI@Gbx+mSxynpJZ~qH7cPH?a_b}-ECAObQU#C&_ahsZmAoAA zvywP?;rylHH!I{JRSL0XcsyS~8IGG{Ky}A8#W)09Zz{Yii}1c1K1}Jnth_ooBQ!x4 ztSe#x9@UAd{3N;m052=@N8@Ag&CZ-cT&`cie-WA;RS%KD(b`Y25_S4w&k%naF9Nv- ziGP9QJ{BNfU-*Rk27VzL6AutT{j@@=q*r?S;Xf{4+Ly}x-dgb|@l@l!A8?iC7yLf_MTa0{ zR9w#+%DzxEglqs+e!r&pqmn-qzZN;FQJv$ThM$PAaOO=(oycV6msspZsL)r|@#-VS zc)WAy&N+{A8OrJmefPWXfi813BNuKVn4{1V3b)*0HLZA`tND4O#UI2=;%AU}c1xHz zC*ixy`P`=yXN!j;@h>wl91gNU8aqY^BduK=PY!-Lemr^0fi7o`ej2&7&C4SgjGSm> zmVg9WN|rkHC$2p(+)IgcT=RuJ071}ge?y9={N8X0Ga1Js=u;8D*c?sEHKX-^FCg>B z$LHd4!nwKmZZ)FpnCp;SFi{ju3OpW@r`Gtcs5eAmez0UR$P`FIT3 zp`YeBb23Z-HWC2J;jf~LIP}zioXf?cEaM(V5Q;I;lfl{`Y{XD;i?DPQV(ojm}MfrYDYH z%gj8R;+Nw|#Ins7HFy)@j#1OLqz_~r3VY>O$$T=U3TOr*JR z)8=?cfgpjb{{RpF08oZP+g*T0;9l7FTf&mAmOFLR?TK0wOmppHZ6FSw{qZh+?@;i+ z%gdaV$iIvxUy>Ju^FPFghS@CKl9!V{(LC9eALOwQm-_?vJu%bxkHh!lXUzG$=L^mJ zYw~{&$UA6R;#F6XPxB#Gp%p3xWX>-K z$;kuAM^mr!3~%ah>~ZYIiEN$dZ|Ng(ijS5Fb&!BXP&X zZO#0}@sHv*XNviSlQY3{ry%R!sWKDOt&C@Qr}#AZFXBweoqve05u?pK;qzJUC&be_ z)2QmZg(^?Eyn6{&6QzQJY?Et&w0pnjO7OwSnqQ!1u%RIXCS*G5#KG%zhI800Oh}L^U_&b^5zm=QJal-hds@Z{dQbv)9 zDo?Qo>yCSse+{32-bS80-v#(<;Ra>;(#_#i$6MaCa+iSt|bU3K@ z)v>MdH1xUc?S;iowzd6}QcrmjWw_T7h$;q&P`xSy09Wbt#uNqR zD$cY>>PJswhs%Sc&90eL4L9EK(^FQt%%>KfL@pzWFsIUEj15EdtXepZWGQCMJDTdp z_pESve9VzfLntdsI`qYh#q&Ug(g+9Cbpf|*XT*~iH~u5UB|cc<5&};^K>c>3g&FQ4 zY^|J-GcXG1=I8;r-+k{KDdKax7ifa%I#lc2;+EoBuy%0Nc2aQF+U`3%8T{b_Pw@#D zfxXCZ@14wM7$mv2Vg|vO@BMMq*NW#Fg0lR#<*B>DJa0U7`AEB|y^W9Shl+3dJ6w60 zlF>7A3)|A>zrHJxr`2-iSdcbtbbo8dR&FW8;{>eldwMk;_QF1QKI{+I%XoFsZ3wo&iC7c~w@h1B4hy7tEw@yN;M85xN+s2-Ku5*+Mq-a`vx?n$g! zrQ4g~yhSpqsXL;TB%Noq-ZFEUxHFKiktU<4(F1Dxx_;a zp3MT0`OHEn(lpRJQL~4P$vWGbibEu7tQ1nvQab(dkHzvnZv*0RWi+cd51T_1u(;TN zdN^?-=HS%^Rl@)ST9OVhIOb^aE?MLG2pFrs1f65iu~JZgMi|{?Hnw!}m;N2j9x{Ie z-0h#svHYaoCT5o}2{)rmIcqG zE3KWu#Saj_QjgH>fZ(%yCFPBxX1ze{dRgy`5yCu;I@m~T`ojFU?BACadVsUF3?axy z{XOs1zAotCBgxDcPnhEW0O7R)FYAY&gNB>Wc47bm)O7tZ%(o4WGFlY2Z=8R&8FH=( z8U-9d!M6@|1bJkkJ6ZX@m5vjS@~%#7u`QAeuBC019sQWq{juH-M=V27(rUE<-xW{8 zmUxT}8uawBQP^388 zV>gBwk1#Y*PF0lXMqMF0n9~?^v2zXl(Mo|4J<^H zbusVlgFh|1Hj^rnk=2#!{`lXPC*`^xLzA-^B}nF+F;=irFuGT;8|{qPcm!*iX49&G zzfI7`Z;yjzkx7y@0eUePVEsOrxi~{32Z9aA9-$W9aPo`b>G5z;B&I}_qx4b$3tgXV zT%5N&dNjtQfu-HHJ9h%lTz3}W&nO7jr{=IXzidX}w#7_DS3_fbOO#&+Sjq5M^5I;> zs;WyCaoppc;Mq59yUa-nDuLKv)8841!Q+M4Gcf~XVn2Ll#;6dmQC2kLHzuUf-~u)B zg7g3r@AboUCqMvyE%!JBVp~?{x6<%?-+X0Gj>Sc#f$i^y*K`?1{i_H7(oU^`+v|u) zRkAyN*aBZr-iR!Az_L}4f)BA6u2oStnMAVC0Ae)4wUcMIHRVGFJ1AmJ;1p*pMendD z2^;y7Xcbj=jEKE4fCVx6u<{-e{{X~E!KUKB1AK=ZC4BbrgNDZ&6I5F-ny$ZmZO_J= z!rnjPkKwb-d0q`1&z5onGFNU5qej5Dmp5S~ZmUCRo;O2ilB>V$6l!(hG1ddiL z`AHLdirA2U>y25>o(p^jc+16Q=6+f6Uy5>^8M!>{?+f7)XpLC4x`@cQ?B2s*Pfe)w z$D3EbPC4;Q-1f-G{6+9STgv48H}KXb=00@dN+8PQa%x>5Vra=DbX8Hm>5oYK1M)8v ze~NbI9K?cXxnGln971$HkI&2h01yM;`M+#+PXc^9@Pj3gkHbHKj|Am`vx%pR^OqeB zCTBAJ43f&kkb`ri5oe&suRIFyQ-FLw@+)%B4bOgah-YRq@qQ&Brp!!zy_9ywGvxD{ zj=16J+;Ym&ag3moa3m~1JJ#6nN8shhGCWJ;2jdfmK^}rUNqMyWvl*fN)Z^ZKHgNo2 z8LX5N3SVq|{`@I9cZqVB;+^q*z@lATHMs0qnWg9!S*4ytTKhYG*qB-Qc}mt^Tj~eYH?6T6%IPDgO2F23E<5)a z0GhBbwG3x%8)9sawgs)$sy}|X4$Wh)Pumr&Y=rA;8mN2Xf>48~A~SDRFixdi01E?g zgD3Fmidxp~eJ~J!EI(VT7?+_W8kXHXDtdby6;$R z!&??JYij6gU=Lg|1nf_IC_(@LkbS|xEJ)M=pgQ9WS)?(plfL+2A9Vv^SAYO?2e}6R zm?psV-Sp{#d!`#NZ@wWk1y$ifviIA*3lXn<_Q9_Z60kH-*RU8SsIzxC3Zq?-du_fW zS>C!F7R{nrlrgYqio+cw2KK;HtJQzaz9J7z4(F~cnw{_z>-vF&)?5Wf2X4PyLoV0#p;)SNpwI%rTun$BZ>AJV%0l}d z!x3LaE$nZ%OaZV>0(UqhmNwvZqrM=uqg{L60-eFGrvOdaC~*iRTGf++t!LWK11l&~ zUHcB005q!EZu=Yn0W?jX*bW27>RZGtK5e!guo0P5YNl&F0K$SLV9czcN2E7i*kDLI z9s5=iaG)73=usbh1FnK?8t?jGEtK^(sx~oPMPf}**XVY^(&$S`AZ6?aYy(J0Wv-3e z-vPF}9a~|7Ue#y<6l`zb2-g|ks_$nKv69Cmxg~y6xxlco_4fEXIIk&~GDqhXE2YAl?r}HJ$qdV+hPyog z>4FcNV zm5#%%8xr4Qr%~0U`(RiC$fX^3#S&)(a|oMN-7nYci&@!}Y4us$;)V>NDOa`L7A6&S zN=b)ZSScK z*HA_xq64t$@81_0G_zFUb-wany+z+9Q&vjh*x{t>AnFV5XAHyunenW)YbJk z1_p+bJN2vr#gK#ZcB}y5Njmyg-=+qw3<)6LU#0=P+P1ClYr?dw2I9#VhS)WMb~eHS z#M6y{>wr^c*qZmkFx*(W-*Jl#ov*0&!ZQ%0(XdDTa21&pww-|Qct<7WFqS(g-nyJS z>QpQ~_gF(fp-pDMHHSI|}{rd1m0 zTxwHF2|M3f#S^+jU4~+a^jQSfEttG@8ZiNlbm&ef%p>`<)&j@sYwCaOe_RC@AScj6Rj0UBoL;@a&c#3^l+{`wo~qJt{g}tgocm;Z9@5d z@Q^_fQ00r(+X|!YhlwRe^TGhOK?fNZ26)exrk1-Ky82+sTsn{dUH<^KD~vv?bsI2U zhWq!$rq%Zf%T^8d_QiuAI}s|hKnkSDLEP*rv4bvMR1@ZFB{d5_DaK)3$C|~oniP6; z#y)JhT}Y%F8h{woOXaI1}BmqQkj&nT`0re80R4DY(7vCHV zq2p4+aFuj+W3?Pih^^vn3i58?22rbWZ>}Fc1Uc7ofVS1GY$>m&Oi3S1%OWPor(^C7 z<0Ffpn>w?`4u*?UFf<7}Za++O$y{?pV1Nn)pr)hMuJH?qzk-Nb)M{wgueSa0pv+?n zEMbb!R7Ux?>TqLLM?{sai~h@ZjE+Mq=**UM^ngF7Y;su!se=aGgJb^w_~N5rW|3V1 zv;+{6XaI0oF5Q!bhK?0k2BNA)-OcsKJCF*{#yZiq`s1%~`B~La z8Z4yP$32o&T_tXiSU+3~?axIfqF6T9w%svc4W_RBu}lPokAIbIhrTbd(YuUuy`owZ zM#h?~5_Il+;a!w2{jgMq6?<3hgIl6?g{#}!6SdYLJx-pTus0oh;CO)9wO94Qt?Zq# z1yyOG*6|4f`u^A!*+F#z2*73qY_IAD7+7EJh<7AcY#9p#fqP*`q+frw4#%qYz|>Sw zKi2>@J-YQc2Crhr5Rl@ojv--SlV{xEAtJygh`?sQo2DYNY|-pHZQlb?q5Idq0hWQ> zU^SDyj6+~AHX@QJ;E~i$r>EKV@ke|LpGudDHZ6xnEQ9n{ENaoSmYil;ny65GG}t^u)7V? zN;F5d`1tYh6X9nY+1OO%)UP+U#ds* z-^Jet^5#6)POD7I48fR!H{RW7?Y`gF6h|=@m@3og~f=179Pjj<$+SXYx;bnOX-KuMyWj>6<#iH3umIcbhe%zb)3C1O_CNK-CRJx)BqZL= zTM8S0Y!zaLq8SS=les&CcxCd$id`<0_r-lkbUQHHZl~*muTk>=9V(k(Fgrv94^tC; zX?u;a36uiGfxU%bw4f*@h3s4C4)==XW>A3dzfrYdo9|03l6>vKHW#|#VWRzr~XHli?2u@Q**kAmQ0g9S&T~sWC5_ zmL%AcKvY26(8uTgzwo*Kp@$b16ZH9huk89C1LX1iOP3}6(sb{6kHkO3?q8Ho#qv2! z!v$A42FoE*q>w>n0fDXT<9>LCoT>3|@R6G1+_eOA9M(bexfo8~MsWinUY?Q(KhqyO zd4q~a#q+~3a>`wgu2x@|`&jHTvAh8IxbZLH_my+JpTP3`KRd&7dA5*cb21YoVTR#1 zr3Z7k>yMT755qij3^~3QI^@R7{ob#Q^`1-R$MSCR$~{ByJI-9O&RzmHgWsG*;@lG{ zn#pG}QW|H9V`k70_(4Q zbtt@1<9sih7oPbuiOaxvtGtfKEaKYEts4!%#@66pi06sE z9IkhS@mM6AEYD&vs1pNaEuFA#h@%8n!XE*6<-cx*3n8h3Fb4*vi? z{Z82PCyc%^WPEkz8TpruaPtOX@`(iVs)bhwNm8q1-u-X3J4c3}9DXhMUBVNW+n6|S z5rPP`R_>arndR(s=&*mR7n9RVS30c^d00CRs>Ndwy<}P~UeAy(t zQ;ug}Gn~vhW|hJDkInnzug3akHa}6%TnA^;llXeGD(;h#kejU%?{YyT1e@)+y^xM(%KBGQY#KVstbKU-4%lJp}uftD> zKM8VP1oMQ4h4HQt!lKA!;9SvDm`IkENSO6%0MYM`qt3qqo;UE0F)nX`_=A4a`Htcph?WzH$c)nW*O|;fF#PZVo$Rd`kGVtFo<{uF=JjtHZ9kJNl#Jovb=naRJtpBpxF1h2tXA@T7@0=>4uQy%LR8kdW8;{1tXD#$O&2@Z)|!A?2$&%D3A+lw%>E!@T4T# zwJBXK)~~MT4$S7#HVgn3Lu@clqhw+LCwuF*4UwaI@}1g;%Jo2=*ezs)4#oQI-mwfR zBdC&Bphl3*u^V7X<#~d6HdZ=H6Vm}_n5IHO>OCq)d@G|BxF|B3)h}PL#C0(WiZlQk z3#{*ft(d7*e^Q;gkKY9CVkr@UnV6yz)rZP`zPOGWD9LEWr&SHG2fi29Wh&IdfZwtA z!$!Up$$ryq@nd;8W)tr8 zSHQ=Djl==t{6uFz#WTENviWt(Ms*CnojSuEih7Nk?T@H_7xJeLP;KRpFRqFJ5)K&G=N78NgiGX>?2!k3tL$ENyn-9eoYldZ%}VA+O2$} z>yPs<;(x2>^-rkhox7WVUiweN!{U5QXWvWX7NA+7-`@lf82U|uYYb2FfIr&`0aL20 z+?;-1_WEf+EiS9OtVxJ?+2s!mS>b4_)w0l5f5XE{;izX#^cRn#1a<*pJf{fz!U- zabk~A7t^S`7s#wmprvd#Q-(!gG__aM;O$!|KSFRC)pYH*Po@OQmr6%tQ6xQ!_Q7o| zNdvD!Mi_z^Jpu^!!u*lyVP^Uq8dk&$qjmjo&PxhozT18A6)x-#rUZ?sk}Alo8Qm+c z;*QD=;Pt{;=udsIVQnOn*igk0EQ%?|Lswtd1hYcrRF<>u2*)2ZqDe$*4ZEJBpg7MY z2-xlb>tnt!83B-%8~Kzy?;6MXM7b2^WGL|HENh`4ZVy~mHIGuteK)Arw|r_%0FM{~N@K7i{v3RIDE|!RFufNpdhSqG5+YN@3h#8sHlVu?8qkf(66a)k@HVrB5eRsg}K}}(- zpr#ev;1EpY2^uwG%|r_a^~4fH>ST?5M31ii_HY^{gxMe!UZZxY-o zC-B)xPJxEUt`}93?6$#Z0(y)vbq2NF4uhrODP?Q&%u94gVYU`4RoP0FQa8p;0TU;f ztVyzKafD?6l_u`{U@NaJf`;lgH`ffupaW5={eAHi0J=dVNFu<%U}FVZ_9IpGI0313 z=}7egHtkqdbQX>d;*DY5LC{bw0eWwI0)bysHp6m?aNbg&BoaufC*HbY9Zl$H z+tfa8)^G%nk_Xg42yB0uzuOi@)gP7)o$7}6J@H*Q-AS-E_Bd@%87XvFY(U=t>c&Y4 zatXe}rU6LERr2j<5}^0I8AQN>{qrZnI=UCB^XjZV#4uuDw=6xaIh&X7})j$7Nm@^)gHT7e|%B~YH3DqTB{RV z9kA#O3=Gn(maxFyHDsdLh)ZK@u%m}*BQ~;=A&cxz zpKL6Nq*x^P6liUSXc1dhvM=_)XwUg|-%7wEGGEE2w*VWw7`(d$*z9hPV}^05iV!v) zpCzy1Du&<^iIrPW}(z}cmQckua%Wel@?|=&) zsWo|EzSIZ5Y!*6*c)%psBmB6m!%AmMIz^TTt`*`617+qQYM_0qzAT#;N9C`rq|(3T z_Z{mHe+f*Hifwc#-qnhgoRK7edQ>RY*8bSFq$}u+Lp9qT*nxc67?Kx$$KMLRrYq%< zz1a8m!?uD#0>E|Hbi$1)er@Zoz2FRp%nOo7LP#C3-eWPTH|bV7;A#k{S+3J-7&NQ3 z1_OV#0bRA*pdU&&A*pvD>Kj*VN?$EXt@YZv;2%{KUWxMUfDa?O1d1?v-rL?3mJS2P zLjmbEwhyW~Nk9|Q7O%g)6{LL?EQ8fSYqkPL(TDRW1FQ#Q?d^cz1_C2sov81GjzyPP z00O4y;?_uY212$d+jltMj0&ZQ)$Ygi!xLv!?0Q(hbYj-F0Tuu|U>3`$)JgRA_r#N6 zIA94i>D>J=nm}uEH2(mS_q;r&6pVlx$@O1Bg#tDujZz)<#g}5RthUP5LFhaEut|t0 zia83_;IXU0Q4FSrpghmiVyRX;Nc0wD>8$K_#T=}X>SCk|TDl#v3x;CFbusxE_86zb!r4xe%Q!FdvHS&_33!NDF97c0Msn+ zbzQJr{{Rpx?iF-CD6Ag&!5UQzlAW%Cfz2J*SW+rBP|~GXcp)|z%WR`41|y_&%W4*epVF4 zh!n@C^uz;CspJUe$Wzb^1q#flSLPax{@>dH7$Z4nkwCC&_ZT25qeU5Grpqp`mb-qV z1qw(!v|83lA;!b$hFO^Dm6UD?AZ@+^d2y9f*@dYm5V4T!VApzf>4I3Y`B6X!C_C40 zd=yqEQ&3@lG3YA<_jIh3^vJ*sL(~{rFs1EpcU=hS!89o(uly#U)m4yE;=jwFlhd#EDRrnT3)F z6|ljjeRT$nh_(Jxu)H%V7NCz;%A>#63`tnZJ6n);9q=|TB_fCdh3q!K2L?jIZGZ=Q z>AnLRjJKFK0GsLn!B%EpN)~>>hWp?c!w)G>q=Bdp?SMf@?@LrIcKNr%Md~`pI*R&L z#a0fG7?30u-3aI~M2tt142*C2P5>B8pfW^BZsE4Yk;WoY%%B#w_aOZ-UaY}o0ZJV{ zqM#k|ZR-cjUC5$#>He4|p!tRR5I`eQI2zokV8m%{{Wq%-tyD95LnRUKip4>s90j1MrtLudP&R94eX6^EUi$PzR$W;xwVf}DuiyHZQLKg|Zit~Hh*>C>mS3r$5yVd^*2puyHkmA%`bCje0tE!B~|oDc@0Snt?ic~Z3&kXZgu zHmo)G*l*JSPf}UHuJ{B30;+&}uIGK9x?l;# zlms^ZlUN5rfEz-i{%-iNdJqD%PUjUvGcYdXQS30!spDcvqNk@*fU%9;n*?ouWK>@J z?Sy9NA`kFEst&e}E0kT5f-_r;A2-E?gx%R*b31R4J zWA*KajaXYT*qS6B*j0)-0cKyAdPUU_d^L#aSt^I$0b!6c5&;|Sct)*NXYYa34PEgS zh+w4%6l~W_0){OZD8Txt(8X*NE~y!hs1sh;W)yUWBV%XjiZcW%`O&)q00a@#d*B)6 zDn3m$dOZCa!XSqT7|6+>(= zk(lc&27^>KCvC8VEJmD@xHfkch-77L4uFt)^yz@K7Y+j5Gv3F1GRvd~Vica&V!iQR zT-K4JOGw_M@AkkFNLjTV3d(Cx>GZ%@gqUgD)LyI$#x8DkE=au~b@#=KG>CLc%5@N1 z>5N>-VxC)p^9%Y=+X2JzCbV`kZeKxGKYGVj;;bNy)7GaAruRLz{`l(?FEl4aMz^Dm?UE?`E= zIvpU3$4!bbW_a0F&ep7N++(-$JVP(bPY6vVvjy~%d)4Eln`bAV{{R!XrGJDTIpo=q zc=k!fdl_hd^554RhF=n+@K@m!8^K+vKRrqM*TxZ44 z9XV$w%{+ZGi^O=k&BkO6LEC0XYoe~LAP;Tv)VyZoE^OwXhi)Cu{1z`WEy4~?ejx-( z8JaC23my6`gZ}`!;}7BYjOO_>jh2caKtV~wxy*$eS6ik?8>JUUYO zo*k9V<|nF~WPKf;^(v{{RA~9<81wD(y6YMr%>J+on8m;Rayj{{S5xb>S#kV$JfD zRz2CWFu4c*`(uthTfgATt!w#vT;_-k6QHxy1HZm2&1RNKRuqYe3-cYnOjO24mR!@h z0BZ^W>7>xcGl?Zd9$_V}?Bg4E)MOY{)FquX%0b@6U=&cJK_4jrh}?F-N#tM|ol%G+ z20b>atX5=ELN+XHgJ-9{Cv|lN^2s8Z*d4$Hj^?ipBDM~ZD+j$HM)<)w*NI7vB7Dcy z*60nt+Z1Odm?FU=8+|O*b*8$0xT({Vm7xk(p$ECeMjkR9q>5WMTDs#+8jUZAOpHn?z$TM-DM1@N!qNvwr>5dq{ z(^--*G_8<#tXmSZGO8#_JCHxFH8m4%YdFEmJ(3C13NZWNaQx6`266#q8xZ&AInkOuLY06Y((zWk2z6fR>OqV+c%&^QNTnPR zqyyIWzx(#ZttM7w3TNGugo#O`uw879k9bUr%I%LuB5isF^Mwe)s{wC z0Qpo3su-;#%FAr4C_!GK+Y`no-JLfPk*&O>S5+V|HV!Kpx=e&r_^Mt%m#}j1nLTu@eqY}l ze3@*tf!>Kw1*`2q;WG&F!ow>JMc4irZH0Hn{9`uu&zpKeBg6Gi7KYbfe2>kUs!N>>uuqq0{PHF8#)Kg5LF;&{wX2yLjA5Fr zA7F4lGZ?Vw4V{O#*BC}uh_g<`YK8mY#XSNkR)=%BKG?>S%eG+6u@p$A76t8C2Q)&G zgb~nycNoJtgbSfrO${S_0h-FZj98W<{FZSIR#DBgr9_2|Q3KlyCt|xgs0?;r?oKgQ zc!2ViM)XN1a4{ZaRniE(Rq5@7?3;|1&LB>Nw?lofvgRBXB4G?tNY_4F_z8cRK9T- zZUCcV@DC*7OC~@4l^P@42hK%M7@Ddo2TV~WWQg3T7WGHl2q$;Vm|`H=0amPneek-1 z^E9r2Rc%C!GR))`W*w+%>yDAk-x2=+4jhlg=HR^VAQFZ*o)ILLiAWm zrkL-2u&pk*gO*{?02`>S&N}BO_^;s~h@3`F1IQjIa85a&iURMH;km%_B95e}-@ZAS zvu=d0Vge}BHEoNk&yzSxz@DvJ1Jn<`6{l$dMwo$BV;HKkNiUYLGci7$Cu5GS;y;hR z2Y5HdTuP*mvc_&2r68Y>^J$a-`7G{QnOPWEV0(j%n4!;#Etipwu7OSBYfC%yy|X7t zMfBSIk7^~@40D6yk2#w4Cxk)-X0%!Jp_za7K~CSL{jn|?Pib?-=rrOGlCwx@ z2_ovN>x{gMHhDnE#O`Z$RrKS_{PFSo#5p^LHh+oaIZuX_lgi8fW?80bTiH~Ex;<~E zHLo>%L-@tx1PPkvUmaoLSrYo7;k*HpDQnoYgz7sUm)K)-hdQ5`i{A;tb5Id9(#Hy& zt>gl~d@HvLfDtDh$O7Wkzc_&X&iyg-{{SV#xC|&H;yx|sB(v(0UT!j1+-t4zi_HA% z;GZsJ(=pB-DP>}e)NwcX!rM2n3dH{a-uPdSoLS2w=oCClm7`<%&UWDHz=FW>1SD6} z7&(r0@XLoYesjd07AWo_oG}La9X&Dg?q3wX7Bk70JWs{08=33;DRbqUy=||4qqaKN zi$4(G4qg@V%>2*8c%Ka7S(qVajx45KMxq9xs_gaJ@n;45nQ~bAP<%n~zJ$Y{@>3~d zgrOvc0{0bo;W+1xJ_2w;7mE0lM4gi_!=-!uYO(SgJ>wTVbJxNL68OO4o+oiW9^5aE zOP7a(WHW{+Q0hgES4kFqYx-}GIPf3DAIF@Gd6Op`S%qp@bGgZyLZ-G|Qfbv+PtzSS z_}*LXpUr*$06!6)1m)PQT+5u5LXA@lo{&D2#1V`hGx1&ER|1NU_}+5Zt2SSU8&T5t zAQAiH;I>EN-^IRYj8C59@|c_D98LWVM{kn9b9kYCAi3L!PaK?kj;xLyqsxvTDN=+R z>TddfTz8)b8pY?ked3ejN8#E7=W!g@5y>MO4a7unj-OT-!_Itjd^Y7W{{Wwhi)+du z(%FNWiByw*o!fJ<$HM+8;%M3pBa8wH0B#&>PombwH)7PxyP`(MvQr&JrXC)A^j~kEY(Lu)EmnkA_@JpWb3PWE^)nCy?@aaRR`qx4&+f z#>w;UXM;86GmxlssY^v=fcGb<-2S*vhr{=&Ir%H?%-@S&h37l@U;cL={H+YK$Upcc z+Z}g{el&g*WM?q&&SK!XnTu(QE5mqnxtCM*+<$z0P~u)Bb3T1rE1Ki^p_dh=C6bMH zC+m(|!ESwzm3gZ(&D>ATm~gDK<{`@oNKC|lSPXry68vr%dT#RO`{S@N=7EgNJy#HyU0PqcOzc&G6V4Eb6bkOi%&|P9A zjfwn^IA!HTs~03-8v6Q1K9q3IBwn)fk_fHHG&b*#H#R@|2dTyV2atD|io8~XIcwm|_{bl&kowe$vp(c1<&Nsm$w zRn;EfTtQ}_SOaH#2Vkjews+`0*epeWuVZp+z7}0tSkT;eI11&UUD;5j}k4+GEh239U3nuxw%AnrWbP(pE2TTJpEn12Pxj0AlAtS3;KT5-+BGUvk4K3mlLhiutU-iIa%L=ih zwTrvLGKEbDcTs!d_E1{cZ+h#Br(G-wO@aMz6^Q}68n@_hj{aRMyAShSP`oUTQ&xt( zAetj`3B>`Krc@T8h_hEm7EPC?a_I^Np;x%Yk)yYzn4PIq40Wyv&bf{y&NFguXMo8Z zK1`36&McMzQUMGoQ6&5J$7Y1nin~YO3oIqshF&=apoFmgQZWAjm94d&v;g)Pe6(ue zi+5A{V&NY}ETECG0~z0X7{UovZH;Vd@P;=F{6zqtY-Z`zr_x1_NX9$Am#baXe_TuP+_WIo|=Ru-aU>)3rT?okf=kS_4aMM1sW+W-V40xIvNVZ=?R%onEW@X@M0l25m` zEPu?VOE)G-b>?EpyX97|Q_-LYed_?LmS8lC)DJ=`u&p1Y$fdvL1Y?Zw=Zf=R7v-GB zYnx$ZnR5VTBzW|av^8vZ6mJ~7%tMk|>bAo4F{F%_C-x)0D>3a_O;vulyVNKa1OtIU z5Uc^Swg5vCMg`e7Ll)^FUD$e54Mep7KKKC+kj+PapG;N9IApwQmoq#gEtyzmbE+nG zrDK095!(Uc@BBh}o*Ose*OB3zMo^i2_lg`QCzNg@jB96be#0Ks@cSde^PU>=+VV#g zhdaV@ybmn~Q#a?WJV=TIS@*_~_}BOx@!TXMKH-&NdZNok`yh4F;*=CO-ql&zFXfLwFq?KFVwQue*tKs1$+^x=K zZl2nU{6C1rF9yu<9v7TT(>_XU+Ba`&+Z{KF{5AYC$C!RI$Gj!v$R{id=4Xx&SdHwF z_4mh-ygU39a=fj_pPD(}<8Q=%E1H$6Su#9X;MZLNvc&!G9KVbI0D{+rekezghlG4b zc!9#8%URB$;%%60*|K$0R-V7~#MTq<{{Us)THc<=<>cg!3&AwbH!$*R@de@W_?N(rX|1En9w3^})C_qemHz++{{V+R2g)*Xj(^4P5VPx9Mj_WE#+g$5hiUPjKmpheucKjgZ}^s4;Yll~yAo>8@AWv;%M5V8 z)csb+Z1|Ii9}c*#ZbUjV+_^oae8+!){g0Hwya;lJmDu_V#G31Yo$ir5c)BN7y9J9M#! zB$6b$>}+xZzL<0o)e5hF zd?Nx#Z|m)jY|A0llmUMIaTo<%joIsj^B+wb`eBrf9dFpy39VF8MU_+cI9TuIE$_A& zq|l-L`c@Pc1I#A3-v-9?io5sU67Kfzcvodnxa-v5u-{?d8<%0vq=x7*H3BHH!s=p# zzrNUjQ6%;lp^b$k5q(AgVxv&ryJ8DpRqRLg!8&e>9^J4NxP3vZWgosE`6&V4uhS0X z9-X^kRNq5b1`NXW4Xa~?zfA={Y#m0Z@At&D74Lvz#0`{@Rfs?;2m@>jA#5I}05z#* zBKr&hQdP8__aqneqgVPIO11a?HSdG1q+lKy_OF;Cd?2WGg9z_kNs1~91I0)cT{!)}L z0*0Up8$Pes1vOIxKn4^(_?n@cOD(qGZYbg~I!h}Z>aPl_n+2h`=sN9&($*PNpRvVG z&^0MEO`HJalT}sv-U&h@)^4w$Juw+IFb<&Z2(Nq?B=HFrz_PYQ9{5;_-@D2Hq>k$xU$*QS3yRO9)To* ztTy1)`(SIdbRcQcD35#xH5=&!kGE5b!?7h@zxPqKVJ3huv6IY@?_>d8HpPn@r~zf$ zxFZKx8)2vj-h>E1v_1A1CCzE+*zeyF07FB$!qbGQ3X^+jIM5}+(Q`)u zh-z=Q>%IeO14&>{xfoqut33$n1}3@;!^>g;1lHBx0ZQrXwbA-uI9(t%%*WDi3Z7=n z0{f70Maue)n&?LLTVbpbP4}_wipf%JuTN|`$QYBRfg61=38T|&+YhH)SQxU|Y9vvi zg(Q(lx<|& zRci zjbrR$I+vQ+ji~B=xV|_**?=Ka)VIC+VF>b+D-u90M6HAL!+C&!RG*j;sC6}qX2sS7 zYC-@g*av(PS=nva1?-)1UY8|_Diw_Zd*6IBw(X`sY;>vsj3@9i5X&45=BHD#b-X;9 z%LR!KmtfYy{@BHVib&6^SYiMK{J6-4gp6FR0kxnN`~dLXGi?-}s{k~qy%Z$*eZ3f_(}^FXP27y?ZK z2evQGNUBr{*~YcLg0YX9XAa<-v(yY(w5%Q=QS$N<#Z)LQ_1hd0NYVi_uAOgsLFiAv z+Z^s?MA=tXQdQM~0B&}w#|4=>SnFUd=wDIv7?~c_uvruMkg+OG<*RzX^u^h^0;E0v z0DuPTw_ki?=6x}U6qT{&0(Ky8f71;)X)>|saEdx3oz6LB?NqZkoxGw58v+LR^ubGw zm4y;duT5&aRK_-pkcZ~=20QQe?S{DZFen2f3n29ep&x8Pmy|KHi5Lw^0CGhO`s0(y ziX^#VXF+W}uN-Dk&&ccu(g^`}1RJt($mN`wv>6(<9WKrbJ-Y`CP_d!z%mS$P2Yhxs zfQe*{B_xe~yW_0zv#(6RTHT>P*By(6wK_XKsv)R*UNgG6IruNe=@vi(VYOgt@4XGMYsCuLChu;5 zVP8t_Ni-^k95$7qX8>zf8*lX;aA=?nHgy5+aW)(3!%!rX{eAEnfYn1u_ZTrywE%0b zBNYrtY(Q&j2ip*Uch$Fi5TM;rz-6#pZ}-D*doKRpOe2yy8W+<6Eo#U1z`8z`J0AEX zo&8-f7=x;hez>*(2^I*u#9`_VNB|9mVrn&^tk--&x68iU;bw#v)PwrW088f#&_ zlhEQYyI^b!rT5zq_F5!?u=m4#fqUyfNxC5P7>o^`!@s^50s|!th@uZ%1|v~Z&Mm8H_G31ZMC*kfcJHhh4ICA$5j^k|{bjG?%0E7lVPMhP_V7Me6gr0-x zin)iDcsD)r&k*E}KbBdtoJTCtNR9<=2>lK|uhG7v%kq< zH{5?3`M(!0hw^V0QNqg`JX-hCjcx$k`(VaIU@HS<>?Ljc;>^PzFreKi9nR+dn5={9 z5+#ASAoLje-)92C<^^Q}?0}>mo&Ny73$soGfTD-DUYG)pr5SY_C<*I`=v0!;w$uRV za15#$2n)Sz*UiYSFi?>qptWWLlQx%QDAk%KmzM_v(y^A09VkA$hH&!ihI!8 z5#B}xj5Swd+~Vbu7^Mby!^T?7cSPeB)W@U}7}!u7Y+3C!*_arl1^r&C0Z&W!!=VR(LZcW460~q+=4!piF;6G3ZSt*k$Qjtez;IjBYBPpW2g{1{V>2f zmT)YAM0Vd2GpT?;swh{aU({d>G^wlsLhP@7uvmZ=R*W+#>3s$kR+2p`(t=f}*fmxA zVIp^E%avu`^f0z+#`G?WF!86B%t{6~sg0fbV9e(4$_g8O?(5qX!hFklVO9@XLhMK1 z1I%q+b2Fbs721c_7)>tAF^)u$*q=$GtNE~nSwT5yOG!X>RmC{oZZ(AT~Z4k~1j4VhH`B%SN+W|u? zWbOg#0KeA{Mx^v)kjC`dbm{d4?e!R6IJ;_=Vb|4DGmTbOSHD@kM zlVC01(-wO*1@*+r(aZ{)I=7|$FmntbkbfNPKtKn|aY1EtX7WulSYKi7gfQv_*_eUQ z4XBRzx-~xQ{OrvSA&~0oZ*hf|UpGoIz3i|ZM@%f4kQ>(#W!1R4`(avX?nP0jNE&N$ ze@srcy%?}oVI-DF^qbnR1wAr_)ul=R$5(t*5AcL)jsYWSMO~ajPQ+*qK;4)9u)TE_ z-TN1HQLHtP%dFR3@P*=2Y-sB)Y;RuJX7Y??MjH{-e%KPK#S5qhOE^BWdwb#_{KwA` zo`8tSt?RE$Nl@j;kg#$Gr~}jKgn1>6!j;?_EEdKYD?Sp%U)go-_3bSbz zyN$4@Tgx((vl#vuX5Ft54yHQoh1vns99tAhssL8)LAsB84fd^3;{?MQm6rOo-?_n5 zoH%h1wF637+~I_6C{ZGRHIltgwj&6{qIowdArxNI=s?>!-b9Z}}I)m(t4mhy+**)crBIehE1k^EW%^ zx!QcM@v`#Amf_^3su2F52X;09#-Q?Z+*>^d2H?s60IbZlMX2mAZL7XMjs6|q4-dJ^Nx4RFDm}6B$G$^uXBh=+-lf$7=(g$Zko^}rQndLsnv3I3Q2LW9&)0JKzghpaDO&*aKsvo}GQL2@ACm(10+& z>K1yhxWRfbE3SucY%@_Mhkn>l2xD|M!!1xaAfW@)y8(v)b)rxA!V3q>8)6n^ZF}vu z*b6~sW*sZG0tX})8VU(3&V#wQb z*9g`E+Y0vf-v-30k5ImwQSXHkJyCAEZ-cIvQS5qRQjtfgHZW(zj0pzL#8wfR!Sppy z@81l=Y8!8bkSU=dA3^VeUu1F`BE;BR)DONm*D^A*Em(adAAY#xGg_mCr7ARz!|#k6 zwk1zi)kC=_8^_W!A~H6u&7C$n4ZX2oEWi|P^w#|`QF6da63UBZ9gZEC8&b8|hfdZ% zz9@xspI*QoVBJ~$@RBj|ioH==)AYi72{0?@QV0N+1F@l4QyJ4wx2tle z=K5kPKomb!1Zv*}BP$^cNj*seYpt=c3~i}&h73BMmx}bs7zC+eE`c3A@gLF##+2>{ zzidSa$Q5HCf=$0dPX7Sk3Kdi#)DvXbi}{aZiwTS<1Ov637_9`1?&_2Q>UQnZ4B^hf z0HMA!x(E)0`xtxOv;4ols}`>WouCF{c&cXPhC~N{niKy;f|42xU;@4g)%Fr ztQxVkAN$_}R;L9`(AbmI;>gr_M^jSLpSBW3T{;DU-Bo+ygr-(TX4x+9z9OkjDp#tK z#|+O>6%mtN@U{bKQ)N@R+W<0kxaIAuY>k4}jfn*SL&^y>Scwz&q5og%@U?Ce@uxrkm}6F~4U!1Akqx;GH8%>@LOZa1Z5y(iy0=E|JpC2vB_`Ni+?8Zydyl zwJ=>KwF(6G!42sPBHi8g0}8+bP^jHV8~*^`Yyz%7f=@yMgMbl78W2@!sCB_C-^^5k z4FlBRxh$F;sQ&;kQMn&X21B8Bnyu{r089XJBvH_q)$RjcDRLt=tzfp2deQgBLN(0n z%oj%GYp&R>^p!e|YBWc1a0E!85)sWl=cX-ZM?&FBhU;f>Sgl?3Y=n?DKI04ymu6Uo z3wj9No8<10Fo`c-~QeKT2$y+ zMUIu%6U>QQVhsbN6~e3~4$G*E>xNheAR#;T7mLtv#nev-)D0a!PWV(ZpbCAU=Cbq`ML<5G$tmDhXW?-J@wrQk`HTp#H7Gc- z)+o%8o3)?-?r;d+pHL!*+@E|C>Ik%KkMiOcf03dQ*w~)`0Jaq+BzcO~DuEkxz&RE` zQW##_){}{-t1IamiJ`vORd$SOb+-1zbzn593$Y8RUt9qpe3pzkAW&2tu~Mnl8rUDc z);o+}Bw(r3X_R)_@Te6AwUF0fab?g&u*KL|KQ#@>?fPMZq)tc{0O}815={bqU-I8f zR>hID7>S{%`&J+*+K|MBtSy3fClE1E8Dk@AAdSufOQaW&bOT7O#vatRomMvWR@k?y z41l6;!AW0D_V0vGFfl7Kt?WoRWo9ZF!6UZa@CgJHr_?&x>xdY}#@w({MY%n1rr54V zRVx{NEL8fc>|!X4QqUH^%zu1FH?Kiv+vW?`01FVtRFAy?S964%Naa#A3RaJ-RqcyM zLM%0ZwiQ%s27oGT7AF>a73uPn8KVTUl1lqwgCwIsy6f+TVnYDR2^%T?_*T=Pg(Fg( zo8KD-O~4De+yZcns41ZY*ss?OA=k13Jx2EWVP`O0fz_CtwBQ z)?mcKw|B7uz{PSh$V5vZ)CT6O0mz^%s*4`?d;b7z6|xJnkVxK-Y!)oqj=h1~d`M8~ z^J<0J-?lhQr$i*QbZgQG!y~N`A*Lq9br@eS)pC(#w+-!w-2jOi*qdWk54B?X2xCBr zD>j|?YQnK#`c^w%d&7CMGU}AI_M^Y;fFm=?TS@*Qx+8T14k?0NujnA>|h^psT z=7OUZy(!q&9x{pdU1|cbm#8Qg_#)wdNycSeeU|5>%^zVwAO%5ag0zsxK4I1l-`Iwl7 zB(ATS&unYOrLIvLsEx%@Cl1bxzwsGC2JKHv#d$&{)gZ5!ls!J!B?zQvrYnAVWL_)s%Ogsl0{(<;T?O6&cTx_K>gqeJHd26BHP4_q@>17Rinma8e5>G%dA!H9hp7tA)h^nEqDc45H zCkq>*s9*(6M{<#fU>Fc}UY_uAz0m zz6SdU^nj*9Ju9^uq5imuEz*M8NuUM^2`lQVG;H3~aZJlnYZ6f?bkOKLSm!_$Z{R%5^udU!uk=X&LC3LTq$6 z3b9JywfcIWuS`YKQGjLDu^^K`1Au6lF88cm4{`5;8A4Qq0xH4w!6;eDVszfmt9(`h z2B&p9{{TNxfG*IYkn#`);*A}!vH4B{NI}##K&FoW0N)aSDV>>EwxQDcRvHHZeD*>X zj-XF|)qp7aRNltO1$*y^ZCRbEj@Exn1Lmw|M?+)fP`9=MF1D!@0thDkh5^u{rm{`3 z3__36u@TE9zn_?|`}`Mfu99cCbA}ef)HZF7 zD;{A6LmhjI#D6i^wy#a@Fa?Tiwl_WSjw2&=03Cq$`r;N)38P!;u7IRw?E}2UTtMuHSrEWszKIj065}eX&4xkQtOwBy}A&>wsxWqyY^A z-9_Om&2nTWy48I#5eLl)zvgB={=*PP#c7m=yRAL21&^0ZdY0->%SUVmLo8&-%Aucj z2d~=-~ ztiyK92WveARewx$jEXE~IZOctt4lk5PxUzO9F*a*8LCz&BoS%@(s~;ozBE(fc zuUu(A#Pui3d?9lNe=RXnl+WbeP5xvPq5yv7zos|0gjtFB=Yd>>#j^0c-ft*m42CdI ztI8MC?~a*I_))@H`L}PIJ}vw+a|gpOiFvL>=B%z@@+TOcMd4gqE0zqY6sLT&mtjb~ znCwP5z8m;Td?xd^1CN?KEBM*Za$aF02Ro7D%LMTW3WMm~0uG~V$I*Ui(o@CPut?+*MdMB)Sh zc$RUz`MPzz>-4O5t|tc+oxd=U%OkP%w4J*ju*a{8TrkrqgU4CZoGMTx{YFnvd_rN6CXo%}$5 z6JHKK3LwaGvEg%Z4rbzcZ#yZG5s%@=WC=~00>;Pbwmxw`$A>0nym#Zj5xm!#)xF@{{U=qdH(>7xiXnw&cB0bRIa1{0Kc-OH?7H!PCjLLi};>pI6hW5`2&Q- zD@_qVGZ_a(ge_ZZBYWxxTzN0V{{W4D7`g9>XL2K+xRkj(%(|Wtn`q+)YYV21o5!OM zg^p9clJnWy?-&077iWWMmNRi~3L%$6Jdh4G424xinyV-F#~J?s%@y#IGoCpfUF6yG zDRkM!;;|$vw&1w3KGlzkoPqJB&*}#W;@Qp_4p%1+mmXpAtn#AJqv~?4xZiAdoR7sf zh>^=T3gu2C!!r{8Pf^Td@+z^=t@MxP@4hvD4EG7om5;A!_=5N&nT>Mu$CiRXqs}YL zd1Ii0Hn(Lz(*XQ__%D{fCnC3dNuJ}`VIAFURgZ3$kD57;6M2&(lgQ=yh>X@_HIzwp zNsx?r`vMCU00lLDx)HuQjP1d4Qh$ui!2`sTD`vc)Db4Rd{l+mq9y{%y&dv2&Kg4(8 z_4D&&xQ=Htm1w`>$u4dW%F(TsMQdU97|4(D9Qad68K0dvb2}gSd44Q}5oB*_H2ZbO z%zTeIL(SY$J}&$@p^Jtc8GMe?6*LZ}(_XE|(;U>C*}?N!I7Hbz!EC%@<(n-~mIG0C z7rEaP{I4E87v%Cv`Y7LtSAh`bnt3z4Dh?X4gDzpX#BDEH6r*bWe@qO=;(PG560pi~ ze3orUy=%pyvG*1$`s3zKf17ye;`u%;%h^nVGPaq#?6FfK-rIvq`iyeC(c%+H%LggM z_|8W=HelMt9EgEHa7iQzBo3YNf6CyWpP$|Il>R0k4sVzI^r@FhdQUrzLNyWB&>HH$ zd?yV2QT`wEvYft4hGe96wGqRec4PD)DI5Lq@^i%>AGvG8$>YrMNs}?1lPqSrg^t1d!`(s%AOfRIo`R(<8jr??TcNXHY zOUPat@Ql7iB~WC~$X(hmew$;K;NKa%@#UPxdzZO-Xn`J%A1l3m?L{B8>qmwh$)*Kex)XXAT~ z<#KUma^4;A)p?wyW}%qrBfDwn4fPn}b3Yv(B}bt$-Wu}3X+wEobF*0^>7e7~Hw^q@ zJ|cO?jm5xuW5XU7pUq6cGMP-QQc6iD*b6w_e7(eeHT+HC5b>WDId>_*B9I9p%5W7K zX}WY`T#&?jAHTLHd^qvW^ple}wK&hm{{W2qEx=CwqB8==PY&AZj z57TUP{(ktu;r<%)Hgk~qqku&(6wAl1XmT^7wq1>t1a|&YU3bSWIWx;r7cA}e`a{RQ zEB+j~9!@?h&K&744M~X<(37Cmn>E_%&N{Yl@hJET$>*CTH^ek8G-jDrCm?>hXyfFj zYr`Ys2Q8^q4ptvMZmXd3F07a``WgpN8Hcn1?OGxc45- z#UKD?py2MoPh!JOkL{0^9J}DxC2&3`JaowhsepyO`qei<)Tee=ii4I4#7l%!r4oy+FGGm)Ps=xCS#!=UfAgS8xEFU!+YlPA1vZ@j1-d zjJ9{3JaprtRfNZp%H*ALaDWBVc~xicjWN&MR>Jn&3~uAaW1c*@@3+<-DVNK6Qco{2aM;jq z=C*wntL|~Fyi)kI@H4>P6`0TS4?Jafo^ckU;hZxxCV3bO=ntpvYacw})y=$_ z>5F=mbD7BsuY0Ta#y)eD_&nTMCTxnvpO&eMi|E@M>Pe&fV;}J4_TA*Q>OM*QS&uPu z%vm0O@Y5rd<;kQm$u32U&jp`Lvl0f~NCT!l2hKkee+*t80#wo@kO zF_9#oBuM^?iCow3@aHNtZMU68a zlJFDT-nagk-JE%Sn4Fo%(2U385Ab7@;y>Xzu6^QhyC$OZ@Hyf|`|CxCSW69i2cxN0~<6{#*SgHt6HllXjs?SVL5y}w9 zI;RSPOsANv#o}d3ByK(X)-!SA$F;nh3ShTETRhZ)};yC)`k)7zdQ{v~{CZoj>@#elj@6IG$(W{9`Ex4~Bm+d3t=R2<1R*$A2(2wb<*8 zXPf2j5hoIhiA<5I!x%9Pu{2Eqbz9&h(ZK}Sc-7;1r6%ZxF<()A_Qk_2JtleOUd+t? zC0`9$K3Rj9bKJkiWaF=tR-b~5o1uzc@s}VEn)d|lUij)w__lCP9^mmmhMplD4%%Xs zINCRuD{ZN0{WtsL$y`sFIGKr{i-}DfdAmadM%e&68|ncR57!(FjU44Tc4sCYIOJf_ zNW`cW^Rs<%tZ>KpKQ}#ldMn~r@h0bw6mrSQJ{5BIW0N>Igh|Bnv$~wj*S>@(PLMt9 zlk~<1!q?&f$NUK5zm)Mujd4C@5oK=N#CW`GgE{|l7>v0!s0O&n1Y*8Om`R1?muj9%r&hu`J9{f_TLozTD%mB6o-~P zCgwcclQ9a0Sdo+t=dE4isd$O_wr10TPnP6=1~d6w+}USXbG$=1g=1nqY6Eh%J+bDT zwpr2%BqPnuGU+lOOAsq>>x^zcAZR3v6p37_#IA&dHZ>9KcE%*bewzH;+zjyMd`Vp2 z7V!xmJ3e+vWEudd%WlpOQf&3>V;-FNfBZ!}LGU-iehuL4z8Y};JN^TfIes0*vl-C~ zK3dL%Ab=H=QuW@k=NUMxIb4#Qyh|E1dIYo^A2$$e-Al$24+voPnT^y0R&132kVVh@elZu`1|AM1E0g3 zwoiw0{{RnS2NO;eBiyP+;hgRii`WguJo%pIu4m#49}F_aVgCT+tsd)r6n6Igv6C$C zK5f%AI=s^CRg*~41#};_Cxn-Esg`%{?7WNPFEMy;;s*uizCz-eeiOzxTj-8>$uUiP z80A0Ar@lQ0H{!?fg3_~O`74qN#w%>BvKAiXi2<|LvE@kkcMQvAA1Ly_k^$6)y&&(_ zuNfiuM4@Bh+)qu{m*lx68}Hu}Q!Csh%6hLt@z2Ef<2#&qREv@3E(^g~#(}mYnO8uv4{Z`gGqNW*oG#sZ6&Jl*uH7 z+{W~ed+0r}Q}O<5%0$_D^KqCAqyQp8-M&Cf0lW0rb=+diWMbuV_TAi%@h9;$;fF8e zd0WF@ALilwCx@y0w+?)aGq^*!0ptgz)qOF~@NbRpj6B9>NjSH}Tyn+;P_yuO6Mm#9 zjEnl-Ji)}I%;x2ZpNPyPM`mFGHfyg=p4j5}cM;=ptHH%(%mp$T8cC&Q)zATFr_^DV z808%?%P90WiysqSGWeC3$_{+-hHfPmS2!fg;9Sa}rj+e|HA^3sM zSsd2|;(jRc6O}nPzKuy+p)%>;`#nPI!QcP$saO6vmIKGsIA9bXK>yp z#JH|{J`ceivsu{)^CWl(H~r6EWE28c(@)> z@TZ!2Yn)R)JXXzTaw?=nk&`Mkw#R!eMc6$6$8O@hQ!UB7GJZMDz9BqW42&A4nnqP< z)LAx1L5{P|zAH_dJlC^7vWoPt>TK0nj#lojIeAt802aR%yhFz?5T|Zc&*ov^{54s4e9bXg zCVQhU$8D~MTJMcNobex>v&;Vgs^${l1t0-)wL5EXPsO zPTZWF)yC#fvvEnu2E8*72*omS-X$%W^O89Q2q@(ZIjbn-2cwU~RTpNl7wk9TQ^zT;$Z#9xg&|WNhAP za~X+EL_i8g)%L`0b@j~ma;GhDPJGXB4p8Pnp2%h9ShD%)omW{1 zHJ!Gg*IwWcd~%=rz`3n>NBHY=9|n#WKv8DT1ugc)x!r8kbxf}pSaVWlpHrCu);fKw z5?(2kl3=Y9u9e+b*}rTiXP3B+PG>`!%eIH3BvS@M`r`*V3&EJw(yQtK`VH@ld0M*D zCTUV>eCLb{S^%7O{{Rp2JU=txpFeSon zry=tT9#Z4HobVurjQ(9EnFW+6`jq{z8MOPl3bQhR4?%d!;gUM%a`IN9CkJo7Da_?x zCz_ijD$_$FBMRQZ{`kn@Vll)rz>*YZS6h87UO935YbUn+OW>06&x3fpRmd8KY}fdH zWH(a8lh^E5_Bi@+;8s^Jnef}gEapk76XE7V^6h&R8EwJ+G4o{}d#3*)PF2>-Vm{I&PNF5Cd_r;r-SEWN+^`nbz zqLUy+y+j>9C_O)1 zVx;@)EC~Ac#mdS^0k+rJ^f(3)F5$Z0OT|t!p4hw))v(ojUtCj}c;hS_8@d&M z70oD%Gb|V~ybm}CH)Q$GX8JlJk$tHtpia@THjpOMrrTIDG zX~t*EQ8VmaM(vJQEX>7>oiW2@SfizGy+8)2?T%9*TgqL@Bhmpsxx~oaa!^t&F{>tz z(-~2rHy|Kspu2B%j7Z+0WU#|k?mk>)YXNj>qAZHR1BFPoL zGUPDGly1!h`VRQQcHH`Q2lvGQdA-Q9(+#U_Md$!RU+Id=P_6!$wh{b2ReR7r#{py@ z?1t^X>5HR`#=wUoPev=gCRqzfsk*43Prtr06deShy+^3+fTv9&s<~jKiap1CV@s)M z3hoX608C{#2npzamwvdx%rtDl&#O`Ei?EF88tQI@;zuAppruGXJK~_gA=PA_fNU{j zK(P$0cRu|w1?f({W&YSo*6Z-i|kLZ-*7P@%CHz+ELznN_z?aZAOi43jj9YKOio zo_%!6mtun7Pp&Ig)gbd25C?X^L_qS3-*bf@~hrZzBi%8c-so*d@bg6WYl8i zyz2lvpDcg2HCG1*FUy%IWSOY*-GZ1*H^ zJj5?@zYK-tV!dq!H-i_d<@jXdFFbR*gKieV>ItlNej606#h?xw_*Evv?OS82YW z1;`Wy(CdyHAkv8H&+!#VA71$8GHd)7UWI_)9((Q9-5V~*q_GWZHpQ$GRAL*c6@9Ud zC0nY3Q%w_n@aZy$$R$+mMUPw(St8k1<0&EPK%jcy#K>1tEd#bI1hZ-?Ng}SW$IuD0 z=}y=isL^VY^nhHSP{h>oSO8aT_r#J^MJ&YF*$278v1gH~s3Pn>w}V0?C3L3SRaZmr zi3mDb`B`QheGTvNxrys z3>t+B>Ga1m@j?`#swRLKfD~;yr~!##j{AK_d<{UFC$0(B&V62?xNd{n3T>*$9@rI1 z3g6oRQ0i=6)NpJYV|RUkBLt}gl;7IU2A@C`b$7lB&;YpH^uRL}3=`jLz>W8^4jTG0 z?hi~U6fIb7zv+!{p)`t_Z2O0rED?r}(1Qm0+`eA^r^;sQoHr#4IOaUMJSexB}bZc>mb<`f4 zU@FsDG3#>N|EW?-+Th3EwP}-Y!X4R-49Fx zbh7E(4!htgU_9NMxCCL9G`^Gr>w@n`%^*-cJK_c&Mxsu_h5O=YDGjVKKAPwT=LMBg zGC`mRU#=lG31-+(1Yj`?nn?PLP#a*jY@7brXqhw%AQQId31M2%LW?$kOel7s%|?xV z@Jn>IW+4MF`AvX2;Q>?u=!@zwp_NjaS{630_=&4nFBzu18NSZLda!%ovlgzFM}F9Z zfHl~$(+Xcju{&cssDPlAM;~8U353st_)*9 zG*7)_K^YmI*>8fW~7aaE4Z9DsKM(TvM3OO3P*9{-JxSU<`n6cHj2K zCT3S;3^jnq(pRZHD;CThglekAUr|-9?*9O`E6hrd>riQhH_+ggZHqD(wMxK&p@NI* z$EG+e$c;paBL`LJOn)gm9kI`{pp*wU7(D^+Sm1MORsi`(>+`v7^x46gNtttNAUYGvx;1Bi_QIo>^=Wac`h&5q*yWOy*sYlj z0!2{RkG2%eM_#R&X#pc_E~SA&N&r+FQ8o$w_z^lnnpaBzG`M5E^%eW$BQu8}IVY4c z)Xhy>@9mCF8KVp3wVfwb0lxU+@+e|a8jwQCXczr)$-v2_*l8zfKVSX4P4}j;bKD|T z*$U80RX=QV`4=&xI&b9)>DL{5g*0Kq9rT+PcHd);e}=lOdK>wJUj2Qr-+Ek~n=X;A zSq&Z35x>4IiAs>bSoX#qM=>IhK=jc+Tr&oZNMT#`yb42R{{WZz;n{;5Cu+fW+PMi1 z3fUd@#9~=!?k}bo%16#D5r9|*)7_uG5`!iBEq1g#p=e)x=3P`&$BGd;6p>Sj4d179)lU*YJi4wUByYwJ%!RrZqhzny)c4wD3=2>RRXP{_v5y-X(U`J2aA1}T)d;sJB01mukJ<2&)A2+}_rgXOk%vH&j z)ODD3cN7hG+aK0H!~X!T+;aZ_C!Sy1`#%%-uj#jw5A!%r?(#1bjt7c2%c+Ej(#N?y zPB9*alweO?MUQ-Q99|ruyv%Vrv@?+;ZP*e(yZd90k{NQ%<+x+LZaN=)e{aUij^EEb zw{*s0wiQ#7 zfW%oeH=4wPRF0kR0afBGWk9BdC^vyBg<53{rL2`d+XUZw5HxJ(%w_9XTF{Le0znr< z>@dMgijB2sZiJgSU2bGz6>I^dcg2@VF@Sw)o0=AT?TFI(YoxuiE~{Rcg;gYaLO>&S z`r>OrB^4kQprmXo5hV%u8p`r#GbWGLI3CCJ`}9x>ARgL!eJ~xDPzB2#)V(oYrUuXo2Tfhs8{n%&Az4v@c1^~vpGwAo zcWCWgjYDuoBU-C`QYbm@QJ2xOKx$pkU3y)ca7WNBH&fGh#jd;b7m>4+^dfJhOxqeDPjv3+pEG33Ir zxw2bxr+WPkDheY7T3uIWG9T5@VzA1Qs|F&{!R}5ay^NV6Niyuvz}|^0P}u! zZ6ym*0KJFT810#mDh7~}6lze~O`X47SSDwMkP%9NdY55@t7d~(0<}@pJvY?$A4|hK zGAQ$16m%?iH-x#PlSomzjXy(O@D?>uU;-@BXB~dn-<3nNTPY3-Z`W&YY$mBRDxw1A zZBz}1)SNPTEqbI4WH4IjYXd-F+Ykq#cC(4T*Ks`2dI|yuTU$R|HmGK1b4EZt2iW(lFnSujAX(b?Ca?y# z14Ae!dYn5g(UH%ctIOOdDj3oF?Tg_EQ$cFc>V5adH8BJ&lE_82#`|LEVa-dKhlX(c zvCL+(Kf{hNYRMpKKGk^V$(+L*mR_f|#$}a~ecO}Zp}yG2})vIe7{7Kd6u|U`fB$vF2}p{{V+bcv|rB zoy#j^cr*%RC3l*3+!8&vzpg#2!uWBAFXl`DB;JKRE2clqpNzh@eyR05wRes^KdpTa z;7^C}=Uv##%R=$RC_{^VZMd{QB zZG~=eK4mw*(*xB@qyb*|HdU(n{c)Am7bH*}d)5WDZZF!g1JZ`={MU)7>!w5h0I~yY z3()D)NV|i%B=y3hFhmU5MCp0{6i#%d(&1 zP%5Ntcm^bD7T|k=F=CJap?l)B)DRNBtEwXont`SxbJ*Y*vo+cMaL5Y_1Xw*i#uC7~ z!z&eQ2L`-Wd1ZZNt8;%`DRF+K{#-Ih8a+%t)!z-OF;qVLV8}k5Begd82KNR)eZ_P= zuvl5pHy!Yx3Lvoi92)W~2hpv?oGYs+1zV}R#gZTgSn5S}!Z2WKzib*NrXT^>?gzdE zmRPtJK_C%^HK;#RX2HdBtB@Kd0?E7SSUKL+<}(n+%@Yz$iX-X1FrWdau%w+mPkphI znUPm0&p;9HzUORWWg4c59rY3{3i{)7(9VU1%F&%K6_fSpi9|NLV_OJ zihz0nfBRTwVk6XCx182&?N3q)@QO2&GP5kx8Z4UwjwTtTY-d32nZ(retFJ z0<{7BtJL5e%AuN;=yg4C9gGLeO0)q$Z>|<4ZiQ?oQrlhs0JbdFr9(K}9nZPxi_oQw z7G-~xPT+N+c#I`r1F_V0)!5;g8aXv1`gLvx-=+hH($4YjSXKMuVJ3jIWB_fxNO-lrCHx>A&~4%Y6OxN@CdRIE{#@t zu)qK+(x%{Tz8J==9guE718wj&2T4lP^IidtfW?(|y99T>*oXK`A46#ixansI3jw6{ z)7!AYk5P431l58G?|^bdZX#n!yAlUW>4;Inli#uT7_HfbFk1{ObJGH?i1S#1w%7+y z(Y=P%zeV2`B!Fo>$*{ev-xc|x)R5J=s_nKJ2=c={uqnNJ?TL0SR$9}lz&A^^Z&-=| zwpS$e(OZMt3KlU=L8=12xME}|NM&20IunayXv2nQy8XXO7^%?^5{kt6pD_C105e9eB#50gu^1*PL)$Kr zO_BQczLN{s1mH?Gj}`hf{LUDqDdqXcp$|bY`e+; zze_gti(-9pEajDmB(|FtF^tlvYGb9YsBSN|8RjWySb@6OTNt{iwu2x=a!uGhy5gpY zEAF}p1UB7p?>kDPP*43FR+X~8c58@N3k~E6%-xp|+JZ|8z zAP#_ctQRUsP&yu`z6P6=y6P3&4Tb??wz>t21)CD~9YGGdlECN>d*3Rqf-wHIda znw}>t?_>^xwg56TdPd;xgm%Tyc}j%yG^OhPU@VKkE>uwH06Q+-a27co(Ln(2X#EBt z0aQD=8cyR2I|Enn+exwyq!az{OK5K|W}(my_(nh_F78I7X8o`QZb2XcXByNF8Q5?0 z5qoy+g)C0$*GxxDGJL~P1dE~%YzEwUOvSb~$89*Fi}`GI8gev>9e%h*l#%NM>D|7# zR+2DDB)FBrR_r|E!ZmMGvCFk3cBIIeOeU_$CmHZObn;FtrWNfDw3)-MXB>@uFaYCBbZ zupEm?Av&T`E1?5?6?SqMs|`nS-2E{bRzvD-R686P;e}S^0ZyVAh9vLP94}4YmPSEP zBm{cRZPZ{H^xGtYt3nF) z>x3{CaPqkzoyZ+Aa;gT@s&y{Ie!pyM#Y$1MmmnH6NN$&a(jSvenxGrs1=a)yLeq5y ztp2zGwVg_YkZ$nt0IaTvvL&%&wf4b^LK=dCYx#wW!CShcw^BP|c_08n>~}4FahuyY z3%f|4#0#oVm+kstL6C(+aI|aGF+FK(wU2+;U=1#W8ybNJ=zZ`cMFc6dK9-_L>-NBo zE~r$t_I2zl7Avf16U(!G`Vodl3qceOUnnECHRRD=9WFzPur|J!wN9VnGHFt5wO#uR z2lFR#K?L13j)MvaAHxpsw!xolWI1KM4Y{&(ld-@oji|`1whg6jF&UW0s#gC1*r@A- zl2YQDD;l@od;}uFB`%2jk^cZ=49dbkK1m5y*lOwr-uhrfWJ0wamlhjVDv^+}WdsdY zmTv;~z5t$In!u>BZK{SHqB@zpx**b)=zr{Dre$JTO_Fq*J-*mrW^?99;D%j+Z8h5j zn?A40t1-5|#Dn`{F$%8>J8iHXs|cuqm`F#cgL{H7uQDB(32vJm@HN^x8Z0vekx1TygdNFh3`f7$3K@e2F_Hn_QR#`P9E+3rWt{96~GB!FG2g@0$NUuyHUM>`T>De z8KJtGBeCBCZqk%hU|JFB^y)?5wk(O`MG9DuO_L$I{cs2ITq}EOBc)gUFks#Qf7p5q5X`{XW089W7+nHV> zgo-=egM`fL)bXnTp+@HyERMvaiUB_@o$CngBb6Zzl6_03bAYHotmWFY>DiQQaPkQE zF`x`k*srD_jKv@PO<_*@hUE%vM|QU+Be{!n#Z0o0><$_2&Jbi#=+`(U@e`jR>f3yzzFx|D*Cqr zS4;(oEyl%_fgk3;c_<^WYa^&z7%cj2!s#tPNsXUCBT-$C-vJbsuT_8v z)!5z7Up_`_|?ST@Ky2&@#5k!43%Hg97 zqO~5~YXz8_8ou^00F_&?I^DJ)Z9poU1mbBV76=dD1!85`>a0M)*gA9I03iq*Z~ zQYboD-WimFbdX4*H^2>RdxN>(0fRUyd+kH0!x&Xb1Q6Y9U?Dtg5LS0-euJm;mH0iuD8Pqx)fes( z4ZqhNcRf00CL$8Vsb#iraYOp!o#IkYn$*&IR@kkr9VUnRW3OlBSebK9XI%G*KbG*9B-Oygj4^P-*x$-#E z!DdKU=$1fZ)_NfXi~8^VvDSKLCc5~v@PCi^`QUFB@TZrGE@O&$9#r$V5r$b+$!_#C zj+p42iQv!2*CTQ^N0OuXpx}8dzX#!|m*LT5xLQc;5p<%lZ~zrT@3uV{v8%=C0{RR( zgpJDtK|=3MU(*(4amC9lCA)c-mb^6lQjT`10miGMTpmVZ!)aX*;p&Q!|%dow3-y9)22pHTXrzalGd# z@!m1Uxr3VXOE(tdoO?7Ld5F8S_hvtH^v2%iEcDDJl%H5)!BkbSy}xXAE-{&W!TiMV zhhoYiC3jF*f2K2+E?;JRX5-~AismHCBw4La-b{D=t6$17kIg(ok2EX7vV0;baaYdSll1&y@Jt&dX@7L*!z8%DP?-3A9JZ=!l zWGiY!y0g%C9mX_9~5PUoRZ* z9C}M-6onvwbsHP>{8RHHCx&s3KgA*7oWH`eIo#%9#BgPDkhGFW$Dj(Jl786r zkHc5tDdN|OpO@yJ9k{Y`PXc)jhV-wuBX-whlRE*s&WghTU77MXbFWrJrk291*D$RACBzL@P?@5lTU zC$DVsy-pU zJoCKC#%1LXgRWmcm4(_o&p2^d3oP14%L3QR4SJ5-4}5FS4*ni9kY>j{c!Qo^HO2U& z9M*3?nR6tMBW@axQ?=J%I%A;az9&2r;1dXVPD6{zkwjvTFAhy&QkA*fkD4g&Z!O4qv69K6tkP$*2%8OtnhZ($4%o9CvFixM%Xg;#0Oj6IS>c(paTom3kiL1X zDbQ67x_?}9`A$UT?kkW4@YYCTO)8-5{RNTV9#i5UiOy#)og;&C6TV#}A~;%VRu!?> zS?YV^8~*^Bf6cMF$&>K^04Nmf(Xy5{Hv@8e;(kvpbGGg4?5_^x`E#lm$vKSw0Kzt? z6l@1dIAg?!;*w-?G9(IpN*)cp!h$G&t~`C6{84;fo~7YDo58qf{#A+{QZVVg?f(F` zj=!AzNxW;8VVcbFE)yitNPLr+Ld-9ru7~x;r^e)0xHEF+a~wg8vm(<1Q0^=BJ7b6A z99M_tv#*qoibldV0%q4^dk24TJ+|8(E0ggX@#1x9B;kApP+z3nICZ{)jn@9-ra3+j z@yp|v6wM?#&OzZkL7BZN!?;t#X!{WDX9@B7Jre2a$?~~5^YG_$InuyLtpTe`pa%Z{ zQ;TBZamk$$XJn$Fv#CudUtmu5D;{@`;ydD>A(d?GpAJJOl4bq|V>yzRCDT{FrW(IY zWaK_4zAB~3jv>Z5Ux4KDQXMeKp+M{0GchL^yf%8%t~lJI(<6e6!pEPBF46*^$0T+@ zyRk#PV;X2Oc@%}GMOF1Zdl^j`69(WcJ2fdaeHe#O0l`@=ZLhi6p*;%o&i-PD%K(3HFZ9N-;kI_O7WkJw+&d^GFc{O!Eh>^)*X`S; zF;0CXg|iuaw1p*0)(IzluNsmc4*npYD$|c0`FAho-NTuj4!y0{`(lnW;b+7qUICoV zd`oh!QXrv1L&V5^Kl`j(57!#FYwmb&)o*SKHw?+}sA89f%(;lel#$?XF2>=G*ylJ_ zV5k|$(}OBP7>$Ck3(k>dn;fVrQFY@S*4ol_j^5?9<1L9MY?Z<6@Nc6#GK z7FjuTiZdL`o&Nw=7+x8d-7YcfEY5d|WaNReyf!%txsjS_H0W-cE3NPPV-{X=&v8g( zei0^BB;JJi#UH4#+RoVWM;P$;D1los@p}t6HnGb&2K~bsdSf0>3p^)~ESy{7g(YUK zL`|}NjL`(fWM*je8Je-U0hRhd;_|L|qn141*!~yz^Lh-rr z@t<_-)6)5l8^ZWrP36sV_X*2H(K3w0+4a(IvYYFU5)LcN3znHUkBR&TEP+BK@5B|n z@C}WxZSkPbg}(h#^3Q(wSJ@c zf7=`UxSEelWx3nK{GM^7<6bB5gn=ezREsjQ764M!bpHU`#gF3u0EGc5JV@c$f*gSv znG~+~X3qHYUVn%DD#4Koyvf8SkOE_=h$MBU1wb8fft1XAB4#PL%5g}&bjL2n*mvn; z3&oC_*H2LAd}r`^9tDfVUL7Qe2b~g5G>x}9kNRVU%=|!jA(&Q9C*qDnE1{0K!?djR zdx8aTV;**A_-4!I8ctf}?A~%Et@C-Ztas_L7|j0w&7TS|Ojn3-Gdl zF)tjEuN+&GKk*gdhvvU4!~9Cjmnf@4Do*3N_QPiUTJU!`S{CsWFPfCdeB8T2>Qq(P zJwI%D=b5?Jz~-H^9FNMmtdx=4B+V-lcJ^m##|M++{G5vUnB-%bYipJ>TD{3QxZ#dd zX{jsG`R^Be4B+#GZg36*d7ffr{J^j5EcO+Phs3wTPC-~n#(4f?Ff@_maHVC@-AilR zea7AKjYTuk!<6kYopo(Zb zJ5MfRbfA#huVH=uxMT5~;g)6l_(g3}i@# z!fHDG>|Vb}qu6F>3pc#droA;Tre!q&caYdF$q_VlR73yxdrEcWVi@IQ&K5p(mN z6Umv*50}gxGC5rq391Z5{@pR@F9^IJ&Uk0aIc^QZcnQqs^C+vtIHi&ih}~43&27Fk zmmT=I%Z%(0@E&E%>WVFMJ1_ipt(5-&lpm%#)BI3#_aDjUzr^_VoXSF874zRgsv}KS z_}7OfeO9xU%}1zt(~od&PRW1f9%kSPmdiqhN#)IE0AduA@|!pG#=hbo8r}zFax!PQ zPc7$Oa=LQyd8$-xcen*dZ`U42<_>)44nG@5#rdN-nG!a+1oN{ibTvetp4j2D*@T)X z$Wy5Q05&Y+!yH^E4l=vXj2=64Ka70DnOyd5qT#7Fs4^qd8aKHe{^uIwKJtEMNH)@r zR4R%a8pV-jS1p-b!2pGOH{TTIAM+W9kSVv2kO$X%XFJoj7|9vDy~1ST(q>~s)MCm! zy?O-}PB`JX7xu?B$sAHn8=TL&Ca*VzW+EfoQdR!|TyTm(0AASTmr;MzY)lP6_WNQf zB#?2LS{+49*k9qgwO)RFX+|`G@7DAFrr?Oldy~vit-805@d#pEqz*#CTp-b(cAi z6M24mkK`nFCv0aKzFVVxHc!L9!M8m4@4(-igXXwL4_SbZJwFa<5@qT9GpK4Hjr$Jx z*x8@MVn`)ur{^9eo_eri$f5w>ZESx{x?^DRAH+YO^4WZsFLHN>oCkvNsNzU6898$8 zERmr3Rbxk02mSg3k74{6{2lnK@m0!vOT>Q_d{F-Y$uO#h;dxFUk&Mjh7WK#;{X5ll z-0zKZOt|NkUYf@Yvh?}c7vZDFa}$idN15~4sac2$oG^gDa$EZ2o#0=EZx!M$GQ3YY z$Dx-{ADfdY3{WudMVj^>Ono(%;VZ@7MCGjS5aFIQ<+#jwWoYP|V-dTWVsH=D!mBMxc5Fp%)a z3d`0z8i4%)tbJ$rWLJm4PYN^QF;Vzs!-QkGCoDGpxcNh!$WENCnc%sI6(!8&=E;=+ z8j+CueMtLOKCOH&Jh`ujj|d=F4$*Qa4%h0~R6$Sd5A?|K9+eK6&@S1&0=dq)Hfu7&>q?PJBscb49qHKt-~jcviOeLAag zgw18sGak52NC%+%{SGqa%b7*3>+OEnqBip65lW;UpL}z4@nFY3l46shoh+bY?MU#6V~+59#_tb2dE~Y68^W$&gNX34If=6nW)eZr9 zUFbWKNcR1)(mZ_lrSQw)!#m2H55%4{tHimxjl+=PnG_+W(;?C&Do)54jq%-hu2xK+ z5|b|gAriEMy$y~3095-QnT#8nTk@F6iL!^~WMJ9#VyO+#AqF_{~=+npe}PH@FRpMsb(aK7?u*BrKYx$dP$FQtvuZRzf4iDgOj@}b^J;k_u zFAs@X{MJrxBP534c+~_-fF7*!C?txkY?GaQ*A_fIq$?uIRKBCKjqmotV}9x7H0Pm} zCLp6~B<+6q&d6yBS=5#XV509HRq%`PE%499uaC|*@N>(DESW9~!{&xADDw-=XW}cV z6W*_|rj+Z+%7aeDqaa>9xAAk3{7AE3 z`Ny369r3?`@SYRFqMtd-oE3Olm(E6!>k-KPRkYspK_G51<}brz$NvDuE91M9_@|6n z4~bqC!Z-&G;;q8-12MuPc^+j*59m<0ZH{60QIk?92y#H zuXEcKhH|LPgVX7=jHm#*kP)YDx4FU?iYQ<{gp<<*YGR-@4Z&@Nu=84;u=)bt(i z2h>=F17UP~V!0UZM#YT+4_s_vc(xh*H{+40*z)HQ03P?2Y-uh=jDO@F2c(q?!r;9< zK=Q^ne~Ak6czwp>1fMg3=g}|!0KsI&i}1#8GmtnW#1MZW2s`Z5gBs)Mi|x!jq9|K1 zh18WaZ>?jn_)iIkg`D)Rpys3=SR?m8Om&_w0sM^6q{S9f{4#cx+^?@v7;%9ZCH#Rc^&w%?ozDYp1>$TU?g4R7dr~01lRN zYfHGxA;Pjy z3@`3)2ISJ@j0Lsp>~P`KR-?G_?~`rvmJeLLWi8bBHS1Xk7e!pA@W-8ZZiaDalFZF}NaP;}5B4X|tj=-RH=Y#mx; z3U0@@OaopxdDOV4xV5DY*x( z7%r6sclWF)BsJL}_pC}aU{?6l4822Fe)u)08z9$0Mj<J7v7|;ix(%atS z0M&2Y?}KMxwbQ-@wNWFlYy>0%1>K(5go`#iV1w>X70XpEYQ3-)X;nLcxbK0m7kzr* z1|(LSqrKt~D0aLA+o2?HwiL3c)wtN2`rwiRp7qkOq&Wbqbl$KDD~T+mYRB(^9Qvc( z2m`n{FQf$|kFVDW7zlI&M(=LJ27B7ZWJTEO0B%MRZ)bP;K>!~2g+y&ZT~?J%?b8ey zcGgDSHtT}hp1U9agF*g$SI?4ddKpnogTN{@kj*EjLYC{<` z!~5c`VRVfokZ6vZ;-_maBvM%HcCp_P0;$)iSHHe0XHgj}*I*GJvAh_{iF71H65HQw zOE#8d#q@BqE{`d?|q#KprRuX75KuExw0FIb_03AzxJ+P|Y zu*ZL6{+OO4`xU04#tT*o-xb`;NG*I0Uf1wZ0z0s4S#{cdppIfJVSB{+-4q zCM8 z&0u%JFfIaX>DO#RL{XUz^t~$+?i zLMvLwYz^Jw(80l3)Tkq%#Ubp1)kM%E8yM2EhwrPnJ@JQ{fmOX@Q7flOJ;z>{&5?aY z*xA2UF&(wABXT;E?|{Ib&S9lM6*K?=Jq|H*Gnk?*DWqM6^xNMVvk-MH>ZaLo$7h(d z{%IPQdL!R$zor8kW2Y`jb76F?bOiM$70nb-O6*-&p5wOIc@jr03lhPYl63Svu~W$M zD56;OabL}i02o2%zG5kKSohWUBvC(XO-3yw+j?jRJv)pt#=%6jL9WXW`}V?v==0hl zRGo;%f}>M{t97xn(EH;i8A~BjppXavcf|k#;q{Pj_+h$Y+@*R*RxAh%M@$B6GDmBu z^pFF$LyFcDGZ-RjV_*^6d`RXa(CxKYU3vEs8RvhF!KF zHq~a%ENr`ZdeLgh1W@UUw3Uri02fH=-3{XU%Xx|x2rG1d(*)OUDWy*{NCcYFcj`dt zg)wP~o<&f>2t}(TleXA0%m!iFFo9LAZ0D#Mb*q_v% z+~*8$E~HyxREN}Ri5HH?kwQ>R2s%X$`{S%|mLa2>uJ>gF^v7c0jz(0j?XiEpAL?}W z?0F_5(02+iZsxI`ht!&TZ+OAs=*KF7_M`;u*XjKRGovaAMQYm_zTDOsN@@ayk5&Q_ zpoJikxB-A-ANLrFNNWvb9rna)#6T-*yH@9ZxDCGAj-%hUAyx_(Na?-|dYww37CTlf znLu@Gou+`8EJd)i8v*ua6DAlk7Y&B8SWPX?gk26sA###43x|_8i20K?=D{2LZ z2knN^6euU9*{mx#Bdu?}j9GM9pgxghdtY2jZ6i}wA=2a>L=b4;GcjVL->^%lgNZ;#)2n=9Z7Hoc-SpxZ#E2UsAqN>ZeC!zWb9ZO=xl|67OsZ`huf37T>5lv|& zm(+S-k5!1&ZT)bpy8vwIJ+MJtRJUWG=~&jFVPm1(j^_%b3Qn6EIAT?L??i4f0pCGk zRo44qI!)?|H9a!yJA=M8PsZnga(M0FR}dT$1%5TcqdAO{=m*SoQdEoF9-_y-HmZhY z5;)uopmAiAzPm*D)YIq<#XcID5*k3SAvd3vvgeDA}u++Q~* z7=;rpDoNyV9IUHSMKZUl$8E12OFa%|0Le3!(M1St*fu@q_^13HPDgOWy$b<}8qAEo{N+ak7Khs}_ezC#zZ>QnS zh5qyJxACv5eLt7!zc(&Cy;oO|qh>V?inVD6areSH2@~ZM7R{Vw&yz9A5-zBq1^)mr zJ@Jm~94_8<*|h`gG5Sf{!zvvmS(j_t@RA=c*Z?VOe&+xck}$@B>_A17T8j&- zQRogXsXvglR`Tk>I|JWs@K?$5)W|eQ4(+P;_V&V(vij0QrJ@@9*5KfD3Z>NFTIq(W znH`jE8EOP7Utg{R3P6h6^dN3^b-)aDf=v<%f;wIG#QeIg7dKSof!_)2DzH{FB94^g z_rU{07eY2qk=MU$DGaRA6|HT$pKqoMmbQ&Gk4~V(`}F>}+KPr-K4VpZTDJTB@emha zfmcG3EU~kQs2k;d`;UAvNdYHdH>Dl+#J5S(BCd*vSOaiL7lgMetO9@@dxj4wlLMRu)C{ z+pqV<(6Wg{Y}!#!YGP|`tmBV2J{%l=dHRj<@#V{(jy}UH!gz*y68UIT(_pdh_QpTl#%ZKOP7y$QBd>4NU`fP`Y7;2MO%MY5M`L63$1B5NT+Zv7k);hn6bD@|t73LH z(;tWWkK+l$oyUvQ^q(8(UU+Xe8z&`kEV=V0$gJML$^jn7adnO{;-4uY$>vluGZLh3 z0KT7GY)%EklQAU7-eXBPBuAN$fRrrPusG#2{u%P$IAkKp!>=cqMpBQLg>|XEtz-%# zW9^62{{R~B^K#5NrncqszKO}jjmrkACsPuj>O*I4qYEaaRcDB5bT(^i802}YmNWdT z#b@9gUMG(;46Gg}+%l4P9lgJNajOcL*_B8s=~YrsefG!h`1vs9!e@=#uZ5Jj+b`I+ zGlGR$hyjMGE4jf(V7_84k_lEPq4vRfYiV~I09$c=u^u27O1RKAG&ZA+x%IsPVp@V) zl{*p8{{W^fgcKSH^=TST=kI{A`n_&714Bb^g!-b+rP#1l@_Q7`sJqBMf^tR(#gI9)PV^20X zg@zuVVRv7)B9h998xf^!lD{bS#zspnb8SpWx3NQZKjj}>OVWA;Qx&wQNI|Wbdt+_< z8F*V4I&*39BZ{iDS!EDpGTJp0B$8z+2ooQ>gUcf_@+6IUAR9oF634B1A!O-07>;57Iy~_y`d#ZD$VH>RClfMDVB;0wr#(* z44P=U1RbktyW0?wz-a?w0R(is1hNxDJvDXyn4X(y9FV$23i_Nb@s&|UN!V874D<;) zsDJ{XgzVzS-@Yx?r&1APs32nAsCCCaJNpv^*;F_x#u=R!LM^9{4;OO~o zj{Ud63J53FKy8M1jL{t{rC`>f6{wVOewd9+cQv*RMr5Y_U_N zNgxs57iQEtYtlB@ueK zD-gn}`dGs=#7eAS*y;59;2}^z01%;Qir)~Alx_lz_OO1Kk02*wezF(?z7bx+m9;i* z&EN@G!nBS?liv2gGTb_&W!xgA4b!qg1NFB})ZbGn9 z0-ZZ|yeK|XD|vO-ae#6drKR-W6qiH_yO{v82Rg31TT#@DS5xRzF^QBi<3Nv)kjOfc$7(PEqB|#BNlknJF^?AtTAd| zO?23kfDT%L2W8k;?~3nAH4|jsERmI@CsEV6^zYDOu)&(b^%P0&a0L=Ik;*Qgeerdy zXL3yt54Y)xpeQ6Nz!0FDuDjyJ3dZCF(-JG&5{C?`3ldI)=m!pknu`;@!oN~5iaeEV zMOcX}3)~DdM94#_u*CQ2*kb}SvNfTn2T>ndqhF>gb!ygRVq0c4(-trUG>IXxw)l?3 zoglp(w&+d*M!r%qG~1RH9e>?n)B@h6V#8!3-`fis(E`ajy+n*KR$U~oQFagM{+I#| zi+VThSgvgfMUk)ve|p8N$m#+%$G!Bzh`=LY7@wG%z*f2$X+Z#zMw7k^#_>|?JDVfE z3&zZKXexCQPtvf4V6FgRWPx8^mHqYQghNx2b)rf35_w zJZwS$Df%C51#V^5Dq0d7WFw&ZV8r@^Eo@YS`{9h9WBH+JROzpLLgAc8tNAP;Tm%mr zH_N!(6M)WRS{om7FfElV)}>M_?nWC@g=bxW8;l#5WJJ)Ft5LF8*F#%j)m5Cc9fst8 zn((231rQF0P&j`wAymuyj1zc>C`eE#fY=V(V8}wF%HfSwpKK!PRCP%#iUC0D^}uve z*2{jXQd|1qZWx`6y6(rya2yobRGO}z-vNOHUv=wvEp7yiew$+MG#aRfF)+5`Zb7m&Zg5z!9$}J#Fz7p1d=SA^V?p}f$L)YZN*P;l+iX3$9Bf!3c$G`Z zxYQ|r_-83Av0kQE z^%CFmuWUF0h|sJ-YZ`}4dGBtQvoTk2SpeRw3^*vn>R*>@I4KIc>9Ir-+M0mEpk_@^ zR0uwk+~Ut{;}R1Z?WbnyJ+L&e^pm=qvw*}rghyakTf#JwhX^CoZ*qOHww9gLkZVyD zcm;G4N$NM>5tc-CeQQ^B{+OD{B^!Oab;f*zRSt%`zW42eVV787DupwBFrq8r)*HMF8oMwl}1X-uQh{MoTh))ww6G z1fmIZrPooa8-H9)1TLb(bKAGm>4B-AZ%HTTp@OUm?dc@Y71Q>?q-8FFSPew_fEBhQ z3XfX2aHrIvcR%fcCbCARrD4~m2DsWMT_lmv0f0IQ1SdvsNC$Dg8cRu7M&n`#Cvkq* zP_#8Kp@;yj{V^0NG)GKB|?1Lu_K`RVdFb`z$Jmb{{UNgc`9 zj9!E^6e~Ft2IOItS-^VVyA|n$T>{xj)pSAj#iPs$Y=XpYL9l*<3(%!h6(|YP&+0w# zknyXFpHeER(!r^=#Uc>bskD_g1$V`zmPhl*B(L+gzqTL=mU&1d0!SVA!6DhTg$Dga z8te|0f@O`EUZ6m1QK`^cB|tsQ?=rUa&`7 z=rIrk3b85c_Q7YdM0JzYX^8dz0Ja+0kTGhs-$|;#j>3?nf>OifOz3xy@FueSIGQWdGqHI2RT z3L0Z%*&2cEh$I?=GTx#$0})tIW+0vH;2T0AvH-^q|$7C{qSvw)H+{ZY#SX~BmN;DFU|G9EflH^DO0g06$KJ7X)op4#tckMU>%7j zg>=9$Nf=(GKpRSqyJFIsZLhy^*9+_@0tMI|uvjs$tPb>ko8TE$*?kG=uy8=ofyovR zOTw8Ho6%=#^;KaEP}ycb&v$(=7HZVqrX$sTI^t;sbuyb41$V+TuJ3BM)Wu!De zrU0|*J1Jj#I5xpTwVOK;&|!SVM$@Np*KYU)!!EG(ze9k4{{RevLG}do#Si7N76H=Q zb%y9h_<5R(Fc)KBeweJN2+EP^1-8ETfT~CG!!mEJf{jPDVwZ{95>T2WuRt+uil@-% zH(^!nSf$La0?6QnLqnxtB)SP=gi)&70bFaYgHtu1`D+^S z4o=-R9k7nUKqdQb3EHr>>rCd!KA~Mbu#I*!){;8kOlz?}GQ<*nCrvBYU(*=5)2brH zz|_<)?~C3>F@$mmCrJ0-9DZ>gX!BSd?Aj48&fL-^mhLMt~yUl}oq+9&B#_u;8x%SPZ;D<)5!I|N)^S!+Q}p_wZ5nRxa+)nXJw8u)U6<9 zHP8cR`UCspn4il|jx>XPZ+-s&-y9bhKO(~;Yap>FdLQY6*H7ko&SpnzC>hJgr=b9v zzqrQ*n_(reQ%Imt9e&v6d4Lk}Wn#VP7S*@Y^v4UDf6M~t#A(uXA7FQ{&|{umvpv34 z{{Z3vmQ25n-Whj_eA4wx~`<#2L{{Rqa z6L{m{>LJ##VZz0LgUm3bFO=j8^hS zbbeU~k5~(R1zh6DWP z9q)v3#>#Tc5#^lRQR$K6u)wi2Ngb;l8VJnU-zGK%nqmd?$7ik|!{CR78A~dE6FA`f z&N?7C?Zb7t&RsW$Abc$5dB1?=Im@4Ujbev0ml9>Ni6~akep1ca>-NWJ;a>}W3Pt&T zESb+eq==Ch63nZ{jdi}0zrRds9!hS1@vn;}O?bPQ9%+Z+ zCzH8@g+6OBoyq0$@i<>UfbeZYQ3FV{1hL!haoD(jz<-8(ocS&-%rIwih37`fOU5`Z zW(Ld>Jtz^@pH@Egd^>zPcqic>E{v~--X3u78jxlfW#fiB5vZylHPJr*0Jb(CF=w*8 zA1pYO^;*>_uDg@dy=D>gXsgM zW9kpYr^M$VWc)$mULo=6;)5x{q8V(2Xcy1Ty6$uyv`*iqJXzxp#x$I3netru%$#2( z9#T0BoJTL2l(K{*0U80lsJ)1yaqQsF{D2IUaW| z@Gx)vK4t)Zf2xoPuY7F|VEDt~ypzV`<$ibNXlIfZB1Mb|ATI4;6s2p}^a=;{$C27sG{>cN!s}`wT>iNFGY%|z)5|4#i;4Vpa@)GX zIUO@FtcK#4sbZ(=Ue&fWCyV|xaPJkkgmPthd-550Y)6(70&i`}{{X)D*5!%nF#sy1 zmu>pu?;Y+nuAG3*DkhQXH{Z4{ZaW&JW+CejZZ`nqiL>v4jec#3;~cLN`u3sVL zpkipTB>wnB;<-g2c}zDKU2(>f+?+tfjgB9ik>ebbaivENnQ}loS^l`^xpT&zbLD)( z&&&CozFJ7o1()*Sk6yNM)CQjT7I8l_HPmh>{xUpH;=Ddi5ze`V;xRJRP81_X4{nvy z4aGcX@Vhg?qn-JGh{>N6KPxVB;7_QaH^!W2-od~mo~IUab*(Jica98M(ea#WQoX z(`RI2{{S)6dvyJ=T%1!p>rI@L{oLalrXV2hF@HBJ_ca!_b1>j3k-a@N8^RpK;82-> zu7K@@#KgJf{HU26RXIOgLnHTMcJG0S`r*2oh#PN~kI>-je$8b2;9#ngz1PGJ5UU?q%IVANsOiVno(WqeBcU_OZ3Oj>Aw(o_z zHrSf0pu==9VRe6{VWQ6Fpc){Z(09^n6|Y~@5vtDEZin-k*p_lna(m(yW3fGOp)6Ru z17Oo0n7zm?je@uE&uy?vO15uf*A*(0y8f4jA!aOKtn%Bv9aPO#@YiVEV1z_Sg}M%bg{Ve8+#LC!sSk zz}zGuBh6Wrs1B<{f7c!V0N~S*a=s?~Q1WjiXJc1`HN`y1(bmJHQ9Pwj+(%gJ9vtwF z55~EfmyWW2S}d!`{$bl;u*YrqR_6Zz{pG$sawmv`Hw-2&WJq&HQUFLKK1_uBQb^Qs z&pd6LYFOlaVB`(~;rGRVK5|w|EDlE@E_w2?9jQ!4RbSHarUyZ{>Ftf#i3~{o|X4kEu8)`kzOc6!wV114Xo}~50 zRKVjufM)*yBg7Xnr*#Y~+!06mV~-j~`r`bQat3Mpe=lAzw4e8%9AagfTnP8~ZI zunIz2@!L6nmiena!e-_M;SZO~WF$vv*wI!dw5aMy+a2oSAsSiB%ngxC^zh7Jk_BB6tzv z#&?Iu#uqJ=iUxXgW)o%{ehHy+i}lcC2fU6Miv#N%2pSc&~?CXE6s6%5m;0x%}>Ph+AeOkw6oP9lqGp+0PBQQ3HkmU`^GW?Y7;ex`aI&bI;Po)yMpikd9)JX*SJd*ixt z=ZO9ueo{UW&0K>XYCMX``B_aUm5q_+d+vWsba^0Gk|oN{rb8yJ3w0WUdtYz%$5}UA za?{mZj?K+~;K{=k)N!666Qpu~?8$%AW52dOoqQE6!@w^MvlC}b-ft<$xqYZcip~&! zO8v3&^TJ*_oFA2Wdyh0~i=5_*xC`AmCO*zxkt-kd!-kjyM@-L^Ps*iHZ&5x741#@33~SlDY? zIB`66W%?h!Il7i9Jhw41*$(2jII4D4K4UOp-`g2Mqm{{LUDm7H7_;T_>^(w*HrwFN zOgS@=h|9)=tx^CwoE(o5j?7@uP3gN1_)OdpL`^Qh(u>$)td?E?$6W%~-}+-(nn~@* zrx!(!%s`@tOWzeg928tKI}VC_;;AB!<~3nP!=@F}D`XlKWNlrsmfjWoWBK!(ym0ZO z!EeKdkomJc!t%Z#=l=jb&T`~-cgY7GPjCXv)zZ*kYEKjpVBvLAne(XPNdcHp! zxnILShF%-vw}_dP$#C8e;r>gA=REeRZ_5V>zj8KqsH=8p50FvX9N`H%ygr6-9?;zY1e&|K+Ec-k0mgS#`?;5@rd>ru4;p3LLuNvWe ze}pXDe<8uLtss}ngDlW_glwtmbGZV*#eh^;+=njXx27FZ@dL9~$`6@n~^e zq0RF)SaL3NGaQMPNTJLZIefACPJ|oRQ>gXZAAUGLGv&FngYdp)%AHYh4iA>h#MkpH zqL6=M{W0)24nY48AFRBzUvPuaNxA+)I&j(Qw?iQu&32 zj6{7ygg_u%#W;@z_{{i3z1yd_D3^iN$z_DRUd~em*j+B>c1w zn#;=C$oXk9&eiNkxW*6TtmczyYWk~aB4F^2}dx4*H+k^E!)Cq6d0o8f+;x9TpavPg8#yLbfhtA~36A&mWjrU=V^Y}jaN8#5R{4IGGgLB^}@a*gy!2DbD z(dRO0CbW|~m_w?@{*5EAL5`XDcJS=);fwLr%pU@L=NXriyh+ag0EzM+7L$DvwW7qw zp<=43eQq`X06y6B#&5=U>1R`ZpGSC>PbtPC&n(e`ljJ6jL_6tUD1bjyAah9-zcn>v;3s{o9(?Lm^VEby=_Vz;+_25)ZM$ zsnRNk$#?I8>AE&7f>d|J)lq8Y9PuCTh~0*3uYqeBejs_K(>?_bju(NVb6L9le~ zhNy8Xnoyd98a|_7``}8Tsp+^DKTHUj3t3yQ(y$nTLr5fzuNSb^s(x>`zA2EEK;6qx z`r^qH1)|h?oj9v7q!TDwB#kE*bXU(XnK^1)qF?c{`M8e#j#@#D6XEocMd8l@oe!nB zY-#@hy8%~?^Ubm=aJ;?j(>$@DJ;{a0{(%1Y&|Va2e+oD%J(|n<0PA4mu02LCw;{$e z2|p5tgBezv*JG%mf7oNc@{5xc5;-6;6*eoNANTrWSzA9pWtAStRtl;A0I{M^+Qv4A zDncMZR<5{;!X{T>risc}AOJ0QVT3Pi-9D z%sSTAF#_sPT}AZU348inkymE~9X%hmGL~%^DiW-{I-A1k^-(>p@jT6Y-&`X&)j;(d zV5=6zkT>ix0UAlZ`{8x4Vo3e)RoM>UHTS_ZcGiltIve}piw8PL`r&n;8i6F=OcA%J zkZktrfiBRh->0`sC@dJ%dxLwN9bhR@+ih5gZL8^vD!~D&x&!s^h7Gkb>C*}?Peb~Q zOW&sW*duMvPkO?$JrK3@yfGk;Q+L80^r-2->wqgGIMeB~^ug9i^w6Wwj4VJFF00dO z!w{pP+o`}uFQk=SiQfPhEDLReX6O#1-xB(eJ9ofBXjfhO0fh(9G<7{N#En(lo|siM zF1FLL_P{G5NPv~IcBkqv6;Mjd6!zTV<%wBV+O#pFg>AaE*J3(gn(Pj(UReizhOkR1 zYodE?+XaO&BXCE21F`~Jw%8VJTA(9OS`={@22d{a?gzFUum-gdTe-rj*|G<D3GFXgk8+-Y4R@o8`u&0tRZ z;(#51B(?g5X&o_WeOJ`tsMWj3Y*4zxs})TS`mgDLEIJT(y{onmgwpZ=Y?|M`9x@5s z6YW?+>J2dYPq)(mSxJzR0UfYZDmZU2`fvMU2LM?jhWmFo1;HV-j=P)bfN)gmrU&VG zgs31ey66GGG!CFQz^(pVO?DyN07V~s9-9z$-vH3EPR9!)6<|O=rYH&)He&w(%-_A> z#zv8(0CbBOR{k!f8>rZid%#Hsg#di3>K@n$F#|R8$b7(xmk`#+4BXLIB%g)MDQ{%}C;jtJ8{H#iz{H zN`uzB<6|2z>H{j0HljhSVa$e(mLup6=NU3Bi|=RE`r@fe0zJ;w1_O@FzM!tI#97j# zzSzOdrImGzfu!mL?|%OP(;SXwJwioMq?6Qj{V|C;GEQSv1vF7C+ur+NFo=`@3Er>f zJA>_t*m-IeM>~V0DBNQsL#Y)YVm7a1c&=bn7h(w=F|CYk!-4=%7kyoDp(ENyV&hE$ zMQ`ng%#s1u3Y~yr7!TC#isdFb43U)#R0Yy5zf5QqS39~bFUqPn#k!spD!mI`0rG+d zDtQ9VOKK~qng{8NATQ+wk=Iq4vu3bO_H_k4QE4`$5>G?#^u>@XCYMHSfGb@O*A)qx zHDbuL4^`MU{@A!O&`S(Kun55MT&|3&LJ|J}J@sFIwk*=5=@ah8&?&mbB4r~?Wb7y> z(+#Yu2}|3Jux2#s@KkL`_DHwP0&=y-~*@Jf!B{QyQsQ zff`q1{{VN6H;KtBz@)LZyCVeOZWl1FlC-HE`jt^a-FuUTKf#g2!tJ+ZKKQ#?V!|MVQX3BK7G2Uw;A$E<)!U{3!4VbdI@U9__hj2T+k zkLiv#D6)t1B$S;(!s#6@s~nC%GQ}8e%XhA{aB5AtUKAKqYcn}uY%Pi%e_ip|_!ub; zgJ<|6#rL}d9b<>N7HC@%LB7}19h-!?i2zz2g<9*sOigywns%-bbwpt{Xnxqu7NpW| z&~1)0gVGNxy{RO9hx;6Ik-Er%sM$Lk#&5KfvkgkcNCxo8LawbAPhfBh4Tu1eeXu|} zfdF*rg8h@sky^@-4{Sw|m6?}&8xO7n1uK2=2A#$Is9`sT$O{c9y^rM%A_g=xrly&7JyU zR+h8hcCOfjxAL&BbKeC<0?DftXYYtYu_PUZ4w#2X-&d%P!?qECA=v%vwinjJQLV*Z0*wF*ux`b5 z!-7(bupAGRA8M=% z4Y?bGSRj^bZO^d5Tu+Jq9Plq0{5j&@8S@-rqv9D>NLs9;R>$|p$6p$}AI|bei(E^? zE^5xn7ITBQl@pRe%NbBX-?rHMM;z@GqDbr&AcJ1V9zpzAz7+Eu{mQvti2nc%cxi4i z!K3o{yf82S031Q?exrTc9mM$z(WXkLEfmxz!3=M6l zeLlGBne4ofnHA207S@FdtNz&k077u*GQ)4>TGm>=*leXiI!@gM^!-jN)Tm3_1MH&l zY^Wu5Dy%%UHURDQ#cv`eXY#_!Dp(csW3zM66-F%}hybl?w_muyFqCU7jdn$Lz$glL0>CLdC?GdNJJtzt zWn}@#K9V-u4uD{#=~rMV5PRVPX(S?+wCSR7z!3|!qqBNX`d}*grIJJ_1KyF}>v*#z z-$qB5U3q#^t8;gVSeFsR<6gU~?S(HQfiV=cbqoElx|T?ou>o0ZusE06EHn8)`H5Bq z72kWnK+cX>mQZMdyH+cW{LkS0pc*M%zWBBaW<`$mi2{W!vHt*kWLQJYu92|RcLX;@ z8-CbHpvg-r4jY$p%91EptF^DN$7RaF@U;&Q|<0<#eFf`_y-7`p^fHJksU7@ zwSy&^B=_6frazhT^4phh)?+8x$#UNb5agi=m$~I-5~XW2cU30nRb#&RdCN0Tor5vV z5_!!Qe0fnv7&-_l2BLZ`*V7$yhH%KnW69Q$p(TPwcO=;L8rT4OV{dpiWQ!Q>fx5e**3&*(+E#e0O$^)9=q<&z;m#u%7Py?pj zdmMQ~Fs0>jav}2q$r)WbTdBv^K4I|W@ec|ggl2OjJ3xiYKs2yRFTGtJpqzZQ=k5s> zQ#^Rr3^SF@x`mC&W?O3jp8k_~{fE0*;oc5QzaLM1>J0n$A#)UpZybjS2Z=Wo4`6ChVH zidH&FZT7)=5;5zKV*3@sQD-AaVtrnUp@N0UxWNHff^V(~FK058+$W^j8jjt2U;!Ml zx(25vwQ45C?^tt|SfE>uz-j{S!MnvsRw%BO#wHTXm)*ME;?fG0Z#0xPNFUq!U~YoEWRJp(U#2XM7SdxMC`{@R;=lLAiaB~SYB>Pglmaj*Q_#xmK74s$mYIcKZ|~|ey{aBvX}JEqx#p;J`DI@5=%R*r~yR?fl!X92VbrNFbcE? zYv@J`oh&H*Zm|I>0an`g9mYQ@`zRY%V_ocbz#A}#ox$I1N&pRA=#BdCfC?5}PwLcn z9qiyDu_S70R$41v{{Za&08BA9ED{O22d)tus9J4+H+}F5xlmu#OH>bhOEw)@>d7Ck zd;kKl8jXe}cKt9J^*b`3Ndrmt!8)0gC>93yjOv4IBDSU>cKhH0sKD0kddS3;)|p2| zUHtJ} z^!LS1z=viV3sNq&#hR1>5VCas-&`+Yh@q;t>Hxzj8noWvbt3=*2hDYYtO&9{OaoHr z1$&%8bTFa%j64?Ray+*6w0h&=t!&m;tt_qGl zN=ZK3;aJhF@f-^SdjqNLa1EWuL4Xn@W$uBo*BHUe5Ofe2dcaFf7eeqsd0)QWK zTc_K$H$5XM5CO5OAOJB3m{2x~rS)%EjI7JLjn2dEg?3={viCNWDyyylmt+IW1RpYn z{rBsDO6fK&LD;u*fo>yVBL-nsE4~n{l2K3rHVE&lwl(4`HKSOJgLDBEc$Mj8F&=`8 zeep_WXBvw}$4yZpukDBP8377e$RL+3)9Ht*1*mimLEQQ)2_h}}9T;5#;*R}>ELS=g zOA@;iw&33QuQ0_wh!nLI-2VWY_x_mB4vI-r87v0-^uo<%Gb4g1QPbZL6jalwfWvQc zZt!1Snq?q4T{qgnz*Jc)P$NxlMieW2!uH%8JJJ9iAoq2pwo`!|ni#u4qr~eQGSPLQhO9$4bXvL)QUbxYbKI`IM1euuGvJg|c@W;L0Ub0Xl)P0~LbWw72qY zXTAa91w#PWwe8sA85A|LhEPbl?OkvLv7&>dlY8MAl#;*@dwp;WKne&H0$Bt4j7nk@ zt?o9VfHpdrw;e~e3oz5ET-};ufFMVwQpnc5Y~jFTt)(Y&L7~%ZQRb{iS>H+n_c*yU zIP%<(3tMeK;!$FjkI^JlK>*PCZ+rnhr9Nsts@rexg)q+Q<_UdAav1J#&XOjiV?{vU z>x>3!a1(H#Siv&ssteNThkP?azFRzuwl*4ii#uKw;tKx&#Z6-9j{PtUt0I~#ps3Yd z$?b@eG?uc1t4D6wtcD4#gI`J`q4)b%5!9%)ZTgBmf9Zh90mOip+ejM?{@AQaQqoOI z0kB&EB&f^3sO~iT*uaS%ID{p`0aggkJ1XPY`TI+{N#P}>n6Lf&j{Z=f1*g{gw6 zC6DYrm=QFH`m~S%1Pa7N@|>s%T7dMe_xs{I830F&bu>sfe^YpOX#pYP)W8uXkUHYG zY9UCb3J=?Az$?bBB9iVYtOYa;V2?vu%p8UVz#D<>h~-|RWgSUYIHml{A;$WKCPxCm9a*fXcw%Kt|ZMXc8rTT?K!|T%!LUfN=3fciA_S*~5?Tvyu;>i(-u}yoD zJL113msHIifzX41i$vPF2fh?HcTGThoIjcX&_>}yZ|`_gEGnqno4_zg8SUf<+D&RZ zU`rUH@GxLSbj5CsA!5-fWNm&pq zi`cD06`&h#ls3aKR$|KbmO$F7yWyjVfut!qSegg^xL0p2wC+Xiw%EQx7g7$ZUsl)- z6f-a&`h7Lu4DzKGl|eOHKA;v8+~v{8?751x?UBcePzM)k+8#{ z+5uD0*Uk08Rbjs3$3^$TfX%tvQ*Z71VTPGC7FWKTYz_h#m&?{t#{1Xrg(zJ@0aen+ zTrdF^+I?SI>M>f$nQ!=S9-w{t3&0n4Rt7b@9;z6xGe468J4fbUYu|i383EADeqGsD zYrqKT-~;lm^^q#a=YR8?g zDzjghpieIBHeQwcU`pzNDVTPY0k#!lRMyWW>b(S2bi%ZQRscXjzrLU-kz^C!0~L!V zRidPf0y?dmKV7jsJ;5aO8C6 zQfn4Qk;vM~)42qx!$~2N_|y%(0D9Ilv0DH?hCvi>d@JgWHgFtvu9$L?Nd9eZccONo zge+P>!G^%<1ohhxF(tyVpnR}2*2Le_2o{-ih{X#fkN3kyq4btwquoXzEQ(!*rmAEk zVlM>LO-d{RJzYS-4yxdV)O*<53N*X8Maj_Xk8ok#L`G4`c(9>*9*{sH8rR+ z4Zz=}Z-We8VP8QtxU*Y(;t1YI*qJF8ef|BgRJM|Qk^^sNpdU;@9wuZumqh|rfEtJB zH^X^p3IJA^){}RJi8oOhQs>kI6SDhaDnifYtRac{0Bif3I9}5t2>`WOHEhI#ix8I5 zNYk;ZA3?qd(rH-~1~f?(UrNGhBUDbti1ZaZ52g$XQpCDd?5Q4=x<2@3q3M!l1&G~_ z0d_1JLRCd-0CmGFmQc)S6~S%U6&F~tD#$BGulwPoEugdR2?h4t4%iH{HPevKL?2^< zfgxsTO@jN9-Kzvol+x`$9bWrjA6KPVlI$q=7+|D@t4$!AE7t^tozI#sfF-(E`e3u# z#YB1wBLm)+xBmcK85l=$Nhr~v5D58jk35DV>?nb{*5mDnR1(1-QB|Ty+Xm42Qb;UY z6td&_u(J7W8DZB~r%!A%DMKSQZhH6WfMZhR;ZD&{c&j_q(IVbb*JA9B1cmjF$502_yGhU>L3H$@3sL{ zkNAV-Ccr+}W(uWTqY_$_0fMUK#-#vh9ro)(Y%x6o$0_j4QNj7h$=f2oOskcbLHY^o4iyO-M2{+g%>4ixnU_gGGF(;+~ zm3m>&DfYx=CG{`_>go?n5)qW3Yq~duMN4KYr+d|ab@Mw#*QJrZ18I9NN3pC%Sj3v# zuA(*JQH4oHrBX;etl{fc`o*{Oz*bp^X+kj! z-zXRdF0wYKQYp5hix_E8br1&Ty|6}=6bS2JoB~RqDRSUx8?imHkC;AaF)D=&%T#*e z`E|C16aua!^kn?MZYTHhbDE_$KKAFkN#L6U5 zBUu(m!#-q%3P~pYu|UiatQkE=r?A2^u{O?Ci)?%1x&Ht~=3u}*9Y$hwP7@C zl@b_VbGYAXBC*W#IhF|D%8di-SQQTTOA>F~V~65iT+v7)lvzzHr)r_tZkc**AN^sRO6hvD#M zC74MDS==cEl~Qr(%P#)_qZ`=97cU`^$<(dsAmZ1|$(fs0vuAQx;{F@TnXV%-8I00H zY-|6JUYnHhAR9ulyv9_V}E>Rb7O_ot9b2=iNkzrGKj#Y8df_K1p!1)H)Q%R7t1^N640O>i49auv zQ!mSMhlV~S5Q;`5f^~s+?Rf8h6Wa2gB*%~{e8G@mC8+i9Ea~~Iv{01uFnGu;nWs5M`P*|&8>+2O_!S9cb{wHvJ#|7~tjqn`yXU><0 z@hP(M%ngTRk(XENSo%l!IrxRbc?-fGCBrj(`;*EvQ%jv_CzOLM?Uqp#QK;C{#<^JFNy?nj!#|a~9+${^j z-EW9Z^~A^C-)|rqBkzY+9$P7{z3_w*HaH-zleOVJ34y3~I45z1)9!z!Gkt?asPy_^ z;1g9_eeg|D-w*=8b;NDPpn70fBnu~e7U)3s#oYmR7Jpn5Rb=8``yaLdvDE&Ufv_xH zUid0Ub?x7_BLcY8#7s;>xU5V|G$HA>CvEXDF?>WPwPIpoVr)!IOiW$wiHSt)F##Y@ z#KpHl9k6v8tH8vub&4h?CMR4?35ki*6BJApPE({y;e4?Ua^FW_-C(c>y2Z-X?r|5 zb1MU=5PrS!REZ>cgBzt;=~#Td5&!^SOFi*+eqa?9;vQ(~Yqm5gc9CNWXcasCu|+)w z)=yol7eC9W8!Wr+iqT|gMuDo0ZH(k9Ox|N7G>w;Xq^Uwjwf_L^VuzYp4LcJ?{($4N z_;KNX9`R$1XShEuXjjPa*|W15Kgk^uKK60dRjdZ@>_1F#&fiVQ@ z#raIckU4c=bdbOvgpQb^{WtW%(#|xFryViq*4~EjZ^ABK&-e=uh}`>=%;sB;a|F?F zm5t~|h@o0q?scmQ{{WW*mcAMJmy6~}%<7jb`L+o$HMRVtU#IJM_5T2cKM%aW$9^0< zG~iR_Kf|(FURBEHr_Dq_CTW3^Mi=vX0aALEPzmUE#_%`8#@>SbJefZ$5J-fs z#?*V77k_+w+wrrVxW_yAnZ|g>6qSh?=^>3z@*)y|e#0M6>EA0ZZ`Es$Cmq6TO@ZJi z#Qy*}cwfw%KZx+IB{*!Os14@&=8pG9>~`pJ>0IZ=Hw5IqV&*P#;92?jw-K9$vgLSm z`DWFZcL167uR=Glao{YRqB$*zG&+M-jgQG3`kIynw3KFl_tIsw}n_we%M{sElkyyq}+oR(uW?X7rk3Whe4R&AC# zRNR}8ZPa^s z_^w=g`@EyfpACNt+yjV3kv>236Uxj8ifoe9gZ!j`EB^p%9%k{Ym7(Pi8MEBKl8we* zCqtJq8!{n4b^f$Z((&~ljCfniJkoNU3O^1wa&b5qLmbjThCl+)wjIISA3T0Ga?8Vf ze3>JKB9kvWups{cgQPne zQb0A+smIih!`T)75j-Y6vk7`r`bX{{Ra|9=6p#flhejylnWHKA9{o_DL9ntr$q@-^g7q&`cwKB5d69aBf%{>RR+r18sBTzoc*4(bJpLqq z2K-m!8^KJ5OOZJGaE@~29w+`M%G^s{gXREBL>z9n>EE$MJ+Y(V@jLO^&Uj5PgAd@p zFGHV`BDpxZ>V7E*%tDo<$wER4Rh!edTD*M$$Z)*Qbu}PFh>Hy&(k$0Y>y9sta84xo zq>s#rf!|M>w8P)7H-{z0Yh5N-_tV1P58sC`9q@f8e`J;qnp@jf>vl-+F zG>X2vbj8Z$p7-}nY2u&6yYR@#e0Hx1=YCM)***u)TokTeOvZRr8O)};Xyz&}QrRlQ zeaJf-9Z54G7ZFATea0|PIQU?kKybt2_boPMy)oreipCoKs`1X@$tJ8M$NsG$@#XMO zkoe^A%a^=5<_>C?gh#-6vK}oiXUOw^Fo_(fWBGv=BqI05{Nd6JzD^DlvJjADqlp@- z!l(oH{kE)eT*J=36z~<7H^=;4;5j%JJ0-Y^dQo>I?~V(Dd_sIS^A=uw_bz-x@{V>K zv!YETd|D?6djeIBbnlBX%UY3jjIQCuBuu7VxRXN7y82OUk+36d9Ij)`iJ_JX7pZT4 zzf5&h_?q})$#JZwEYI-)%gvq6$|1{Tviaqa-I&k-556CrJ|O-T`9ayZ_m7+}DDfRH z6mth*_fftthJV24_^_WUQ#F#_23Hf_;fC8+`eVZWD1HolD~a>35a%z4zliQ&@Zt_P zo|8GnxPK1R(5t&@3mQcvWkA%x0!XF0Eo<*DL}{{WH3EU*Q)Z&55j-(il!z`hN+Ru7E#_}J!NY0U8+U~XOi z01l5L(J$qoP^f}Phs+p&_rF&-%I3esU*H>+GOd~8e-j)r#Bq@Mco@kcuHIULZ|RPy z%ioI^;n~c5T5Pl)Hasf?V?_C!sYQRHhTVw!3`xbyZ=}9EdIoUwxbkKy!L_X#D_yVa zjU&t-hv&oRGx+n(emrr^r!aqrbGHWn01W0%5tHJdm&j)zsI8r13dN6<0k)%N#`tb6 z_@4X~aPu6wE-lA+s!A`<;ruO%>GvUk+v~nNG@l-y3>jp~N;sZ%j(R0%a_$va*zQil zZrGEDmVJ}-+uOVNcj31v_)EwmC;r{@Ja?Eqj%2RQ!BP_mL93O(rCYI~`!L--w`eUMJKOLNx65`ps zuPXc(^R{Ot!-GE)&MrgG8FhUig3Es~Vaz%QTYD zb^doG{{UQP{2TmX_+9bE;f`;`-wL>He<_pU+(=}z5a&=2;!-gSM2&+E{qei9M@(uf zaNGX?z8T!7>9uA!dy6@9fb#b#^7dPmxkrL!_-_r#DO|QoEVQZ*bMD9A8QS#%pdV5J zzid|s*1B0mo%h=ft6^`w&>u{5Z54v`VY-z+z6(1loeSIMCwu{H)<6~PFbUPUqE5oF z3{R?*SOV70_yDjVl{@qR;th)uHzJ1JH^iU?vkUk7U?40c5=iy|JJ`WC{$y&Pp%Px>cm$=fN>+~X%*D=+qNpq1E8{5Z|#Uh@eu zjj>5#Pp$mY;ze>#xlSQQV6rx92X04(y9P7k*j0SjB^pl7C$s^ z>)RYJw@)Towxdke!ZBmt2U3LH&XO*%Q7ptus?FFJvA)=SatG5OQ>f7HYY}$@mQcZ$ zVk{BY3M5&9m?iJEj769$7DS>xVh%Cc%q&$|i6+Oe!G*0l$N(UK!?$hlF2O+_peoPl zg=R7}#sFD20FIS`B+gkINeT!HzQ*tc84#IdY78uj?~4_Jv5={x8!jkTF_n5Og^G~f zu)wgg%ms_zxWw0EJIot^I)Fj<#Gu1qEFG|r0=6{Lj)M*zLDZ|z^u}+tyE8RzpdYxx z>e!t>z6mFBTXn!S(Bd>Y2pUwI?OiaX0iefm^}!pRApNmFls{j#2`DfmPymfvRtN+) zUAv3{r>z>l>4Iyee)uW|tFeCfh*^{ujBI*_I0vPHV-0i$-9DHxz0#03-0j;8tTl(e z)BwOBilfjT_=|eBp!PM|E2(DuTp0Pa0Kx8Dv;or$n(6F@m9 zVg~QMVHxx_**12uh9mCw7O#Ip+Yx{w{l{!k zMqx`Zc1sJ>>xflkK4_~Vwm4~F8vqFde!JlaRJ2*ul(F9uO*xC|y(Epnq3ww<1W^F# z+v+gjgXvl-Z|{Mm5L%6b4SjJ%O4>m&DPRD*_ZVQxmcVK~02nhUS9TAxHP^N)S428m zfnK|N;FkB$p)55J2@SYitM7&-oeG*HjjITBsxghMkbNT;B9D|<^w(S#Y`caa1E%o9 zQL)^QQ3k6APLLE0t8M$?V=gGjw8ZrX0L;RGVYT!a8i-QC`U7=@naFJbUHx#LaMR_t zq&swNx?lr13QDcEs=vQOi)#~|)s=Nh{B}xX7sGXD@ z@KMG3>d5JMsdZ~+C*~*AJ7B5?I<*~2qO5&z7Yh<;>IXs&72eRT8a;>iyej%ZBoYM$ z0QbB`Vl~L;ZoqGVuo|)s%T!6cQb}mYa0yMs4)1%R=oM@`5$3nMg0cKX-0 z*kW{Ua1ynG#^~Y)*44Nq*5ea>fI|U>y%-NFMcy6qRK2 z79S5;B@=o6(b4;sMd!<4f|src^ol9tEi7p z+ZR8e2WA8)C#UtoI9+;~K_w^}+~Ut;8!+cW>OEM36mNJ(w}`lqjV-YDyjwI3Wmk=f zK)V7u5#I?ijUqy%S*0HM)T0(aS8_=jjhgR_T+%rPO57>awQr2+_lOlYYzEz{81pa` zD^;HT@n@mO&RHh62KEPQ>x?Ikfs~??q**)fjQK$!n@-w}{{UXt!T zMgI62-9U^1xdy*X30Q~o8OZ@_uH=z`K@_K^t84z4*bWdewIZ5{{c&t=pzAVSSryxC zA~=W@wIs3I>4sTV)r2XkqdIo0I3~MV7er}NC}HX%`i{p2R4l(EKc{HH>+ilQ^DI-w z&80%9vFtzB4y;l-5|gIJn!U~nxnqhFRxw&d)!kyq+_3V&*lp?^NC4g`guHr-hb{$y zwPPwb`BA0~cV&00z*%8zMgtO8PLp+sD;Vk~P+3NzNuUlECNU{^kxr5*vFo-mm_|v2 zEgeLSx{`29bX>}9YU1|>{jtXJ0a;Hlnh1o29nLuhVDbi2V447SHF(3%D4QTb7kZVA z_cR6x-rO&lGC7k@g|q1tZ-2HC83eIA>Lr(R5UXqNgh!9cNu$=N5w;yp{c8$ksS;&k zRYk@a4Y&Td<(Eq;nf#TMs>!Jo>LHqmJu0gdzPRFT09kul9glyuGAB@FW=$+A^aEva zPFO~+VsMJKXm!8e7&Y4=b1}m0i$ zwR#Hg^L_sSY;rj;5M|u06Bz=!_QAY;xonKSQBfG90ssUY_14mmgoQ>2fVrQ?d_`DBhF zto!?rJzwpPTPh@FQzB`#7rrrlu`g>$1(bPUU$<;4khILz?S=u9;k8G4Qa~iykL!TMfJ+{oF#t8G zfYpVP*-1aJ7_+FKVX>$RJN+>U(?F;<*L*0t-Hnmg0M(KK-+IMVw$WF;Rp1lp)Tf}| z>w>kuiy(C!@VevHv`Hsw!6-=VX^Pdb)4xn8a8R(^mL{vHu9#x_J!-z6p~YadYGVfN zd-lY$XOsyEYIRUYae+*BAnXp{;FeYzO97}3n1q6~$G-G>Vz30NFboN=?SuR_^w}On6?F&P9+(VwSqSuj>0CkS(j5EkfGiXc zichEIKU_oW_1U59aAW}O)7r4IdaFsjx(|E-a@s6ezL*O2MSZURVKvGywaIPe?kbX#ml_rtt!jKy!7|wVY75slzqbV~Z8Z z1P$u<_S^orMN|)_$O=36-vqw9Dk)CD9_Ii^ky`Ipq@A$Z`l^fDd&P951pAmj*cV`8SP~N&?$c9pQ zCgI#qER*E(QJC{E$e@Q)u>>8CD+Y~Fy4V~|wCeWW@o~2sx$Lrfe53qCz7u$t!smtb7&46@4A>6{p`Fq#f>5n;26pAF#*V4Vu1n@02RuUJ-W2oP50lUE+|wcgwz9AJ zh4v$H^vCz#z<-G+)jlWrep~+l6AAwSSpH@Bo9OrAbN+uE{W*Wx(`RVr%*Z1~0oZ^} z-+W_Ce~YD#;wlGD;QjH*@hrO!;;|)I5{`{WbN<-lr+_juAp`(JTX+8ee1AyCDPNP9 zwQLwFnCo7Ue&ZB?@kXr1*?_$xea_{O6_A-#~R$*TZqnN zC(AlXuuXdnu`fuYKn2(Zy+`YVAdP{M8M?0C$KL^mmJ1;02_cX5!9k-0m5i|rZp&34 zwi!dTatCcTDDSz#?4h1RySVj#n17}Ve-HSZ{VdtT?ioyMD^-=Cv_7?f#TH`cF7Ksx z0dIfz!m}10Te%@eO8VX629x=9>K4>?7+%5kldV~hHIj^bd+m#2iB>h8z!n2Nb-TnX z>Jf<$QqjJ@Y#*LP^2n`LRkp8eN;zH;lU^qbo?Y4vf{<(-f&RbK1BUX-<>vgW=U!&h zs33~#dn4)om~LIq$qy1}5(QPAk|7~AV}1UcQDvL>Ib}&CMburamOJ~7 z`2Jt`+vDelEav+^Tl5ZmKPut(U~=Cp%RGgqQ1O{gofZ{#28kUuAGybL<-QpdBmoGU zEgT-WoU?gy53#Z+_vwo`KP?!hbCg+HAb*LMi3*Eu-(7+GW43a~F1~hgmvHe!(XZy2 z-E<^nN!^D-wm+HjXEnP0Rv7it?o{BgXY$d6OYnEX{yEQc_CJKsJ)R3>Y?`N%J*8U#&d64AJ zT#tt2^1f`QjM5h*yL*-=dj6RCeB7UByMqj@-EclP@j=S|7jbSU0U$+}SRxBmax%wb z?PTNSe~WpXrdvGxD=!v_0~bg%>C(N4t-4?Bk9~Z8__@pc50sa~9G@Cr&B-{Mh?v^E zn8grS_On%woqYcQ#^U1~Z!;_0rSHC*qG$pt#eaN%WB&jTeitVf#r)i+w)`jJpOKD# zFCIC4I`qsVk%p~g0ZY?k?TVgBM`a)pruu?#>j$G$yA`k$n}DBj2bv z{+#@@r!zw$`Cd&jnqsR*^uc#%hMCW#5(E3;78y&&WH8=hGDOQTmDo0h4WXC50pnI(dYlH1fg1fH z`%vqPLZYZu3i@{~r+TfwTvj0vhH6?4HSO~PF?;1-Dy+^8Mx=rl>CobC>u!4qS`4mP zOmTUH+Qyf=xndLyddJ{T;Y&WVLCoCG3{Rcn5(he?B&AUZ2Xz}0UH+KTe+?cO<~h@u zl5;TxIjqmiw)lY_h2BPG?0S6o7kuztrQ42yhiY~eocJIDF zl>R^bN&Z`l{GSG0-*4M~8Tw89%5ZZ300V<48Otm*S5t*rWo}!q=u$~F0f06^28U2E0+QAMG$@aA zf@-$51vUg?IBiYPuAL)(rxQ!621Z&7Vu9MPd<)x9bJu;a%2+Lw9Vk)2LL6BHpI~~N zR92-7i|fBg^pAVNOSO`G)RR^)=qr*Gd2b~TbiFMoVO$981e$9p)8 zx(Apf)S%fFjn6@R%?8AGdy?G_9yL(T43|_*bl(U|upvU7D^y3e_%;wwDnL6kZVz*X zn+{5mL~L4s1EvO|mm@F=4hc3v1nRG97lj0CB?vkf)Cky|U|4jdgpW|zox7YdZm6<) zhe7qlY6GAiVb~kqzkFE~fy)g*R>6k-v2RpJ^g5|7O7B(o#iW8hVf4~5RfyCBwJlg3 zKKOJVSoFvly}-l`tM9)}u*_7Nx;^&7YM>R(61@+6GXPC1Z(i6nx+>aI%ih(~48V#c zeuJ&yZ%2QD}MWJhL|%8Enbt~381JFgf7ao2TS_m$+mB5Gfsg5o%IvB9W3D@3Uv_R zX>CA*-`fK)2)4bIcL#mXwjU^gl#rKfc0KXA=w9>x02BnXV|}`9f$4ayii1?wx7=Zf zRb`LO8+EIz_QJT0oRyDrWDWXw^AucB&u&`t>AfN1p-PZa-sT+Sn9EjK>#2cH`L;=sDX+NLc0BW zVtWcyT{OTOpa?WDCUR6gjU-tW(BPd%)D5v}3xOh|l?xpnhwF!75=YmiTFRRmM{2^j zQz;aro%bE^&kK^~Gh`F#I8P{mJpzT<`kYYUs{jIkOB1K3Ojkq8(xGhyR*ENod@%|i zuHaSsVp!9ui6Zy<90Cb6NF;S`y#U0HM|1~PmmrWBbifSu7)-zeOr5I`6Rw!hJ9NN1 zkRvXpfcbB^z?Iy+(4_#j0*Z0zutBe;6|B=2TfWEU`eJXr0Mf;0TADpt&MOTVtu{cu z-ER;`-eYM4=OIoEWvxTgYP+%16fUx>PPPY4x?z+%9V6x@u^1Up4FEUa5s$36UC8&q zDI-B`@7azakgL;>G=O(MOc$bbGM`FxKKNM_5*kDVsOo*N6^BJ0dLuR2BC(YTLeYsF zf=QrzU%o0x(6zLMMRp&l#qmO=i9$#G#CurYr0N)Bw zBNSBxgr@raa2`N}ja%LC~$7&=> zqG*BbiqV3pb0Je=ln%H#h}_7TqjTvcrzXhz!GU=MMIQ!y7BZ`7SVPqqQu%=NfZX=ssEisF$LMnD;uZb>+bWQl-~ z8mcC`lZ6sURM-c9ZSV}nGHuk8+$iaYRw**!RTx(Oqq)KWS}`F~w%schFw;$}SlXA{ z0aK%iROzq>Kyb0STOj&P(7VP>d8`!%m+WrwQ%1Y4kgcm`#kXJ~^q7MwT}0jW`(o%K z0TxpyQ$=x#tuLLW5m+g&m%c1t_+h{sEix1B)Zz;SdUSxw*4=%u&E+BU4qz=c5xyx| zV=<2=J-dDV@h6c`F(@rb7xnhV)fPXN6uIlLC){B`Z3dfa_UnZ6x2nHQ-T-GSyrd`~ z>8*|$p`?HkbW;@@us8rA>gBexzd?YK2`LoO?@QES!h}KU(?ku&YVU|3K42PT)k3ZI zz+$LOaw#M+y6yGBiIudgf@=Q&Y%HXoMurL)?!Nu72@{0?I4m~5Ph1kHSP>D^&=7ik z@gX9#g4$?aWW%-5dZx*Sw1-CW2sH{be zrG1zAw*>UUw0V?b3Xr{|2l`_|!r>Ig!H=h4qZql6y1c|uPM+JH@o|-eApxL87R5tm zBGiR7ZP;KUs7ip7K-XTU5F&{Fb`*VEVZ{+_)e%5>2bGsyTJ%x-Vg>{#@&l9Z zZxuQyl9ZAF>UsMtzl5=RvLvG9X_}QVxctouV_V)~(&=upIh4?%(jZr~QH-L}H%T|}KepOn`B0ImQG z?`*{Hww1=kjU&958e3`DT>vo(->FUddR7!%QW+JktEFL?(n~fgw&xtfAu^3@MS?bB zY>X<$tcFcq#COH5BvX*ZL9uEA^sd-f(4hHaNwHQs;44~GR&w62r$cxu(WSOwoPc%< z-}l3SNoTsTvAf#{vMMsTAkz}c2SM%i!uAj5BQa?}^}gT>zz*z448Q}Y)NxsG0AUjn zTG$XO`%uM;m_{NK0j20~0P8|P8c}QrVmp1X)+HWUaX5ss-? z5;qDjakdOup@h1|%2A)i5-yGG zKKLR30N~MB+=IB%w}e<$R#74~h16_yH`5FyWDLhqYV|QRI&>H*rNtH7xVo$aF_x3e z&}&swHEo7w(z-%|n)IFOh5=F=OGi&*O`E`NO(vu1U0oFQ>w?c`jZW;}&MQt71gec{ zoDxR&zfJHR9Df=eq9@@f>QBg+=2wK@{#q`9`s7#O6`YFIZ%OP4eKqQ`(fLe$EZrx9|6^bI> zy)@ukH*UBh&6Vo?7WWtiG({cB>T3{|8wMBJ#w(x)%t2<}$4{miK&K&E%WYLd02x`) zhN2i9ii{+2XkzA2{-Ovg*A}va>mb4yOVuRA_@SWqW=KC7Bb#rC}wH^8|{MHNdOa6bf5LWLcqyHX+3KU2_d~YNHzDx zPv!-+kkQ(@-|L5Iy*fxYdw_5TSmclu4Mcze{{UPgKtw0kAuOZ%BPy`OYesB zF08QC(0gDjf-w~-Rv-(uH`f;`s;DQwOe&*;uU^2}zT*vG5L9n~4o00Vq^^P23K*9f z^nzPQ`-$t4z`r@gTWzisGrJJ_bi)@F~ z2Ku|6xTZz{32@I%sZ|F}@DyfCEs7zC6<*j`PnJMh(kpB4RfCyX48Cua)K_p$;D4qo zb&psO#9ZFN&H}xImoeEaYwgnuthoRl#<6Q7YE>;-L9y?O+Bm{H#xxbZN!ahUH=$eU zqPq(h)20?i3KW5{6jb4zLk3$TrH^oMWdKNkmK1$vzid&9BFN5I%W0?O_Bh1N`anAM z9riu9$0X^ma4mya9{A(E4hS=i+gAF9CRE7W$K3nOE(TQt9EHG1~>~_FYngdH&-(rQk?SJWx6OX5x!{m=r1}uz8 z{{YzoxAw<2=SwPzAR0IOf8XC6CUP?>jJm`Kb*{VBkM=kv^y?gD!_P2f3N;M?_hsJx z_x&-#v2@Hv(uE7GYE~P4cK63K#(b>gZ=k7hAf`dKR zPm;fn?qO%~ufxoc>klc+D0U`ncn?h)Cw=ksBmV#p2MvjQPw>ZzLVE7yBHubg|-@lTM{UeYkS7({3ZSvcqb05p7yyadi=aue~!@b{er8g)va;4;k%F(E+}L|H#< zesk)-Q~4Nk+;Eps@8II&@cmB$j{9UOxz1G4(I->@L8OKBP#~U_lF*_eNLT$BIYyo{c5s%qp%i%R2KI1LjZJ!7{VCD`L#G&QU{B_Tj z%jL_quP#DDuV1OGd)LFS01i);Mpv15_FpLLGR*as^C*=zx=RiFewgqd!Z#)GzI5@+ zg2TtNDGv|G&Y9fvNO~l0y8+aa+IAb9eTd*c41W>a`O7(Of8`&CjMi&}@hEjcnU66U z%*z?rJ7voWBP0eQ!0vJR{{X}vFPG08G5$M!KY_tA!sU98G;>^`97tG9#;MOZ{+de#f7-My~%kQxQ{n*ejArdY51mI zHBOdVMF4*18&~4w4so@}9Q*HF=Z5%!h;AyPWX{fqqVW zl+BpS@p%Af0{u+hah=4&w(4YWMW%U_`w_V3}z zz_?#G_y?TjzIc<);cvvu6Cz4M%f%v+SQFBN1CJB<%gS6gkbGU{UP<8@@62U5UmDEi z^0U=>h_Vn5(`W!*YpW;wC00CN8@ZrT}71VB!H-b|xk!C({XbCMG8Jwg|EOzpf}4AlGaF zMcFuGw&lM}0gl14Hp6P(gHXNjppWU(1OR(=>y2)Sbi{%7#2c`_p7^pnjFTadx_~{- zA|z@_R@{4H_RZ0vVj6<_PSsdhkSp5Q`(OzhR>sB)EQDBVAKMk5Rhz@+hAgQ*L?waT zJa>PtGp3(~OOpaTx(N#O9-27efgv=TtUjhiphrs>=`!m==7@;@0ECpx+hHe>-hED_ zbO!O0!=_o{l`{+sfrpk3*b|VGX#-+v+uz#@*vAY)(=OeyI9n{au@ja7-iaNs`KVew z-nw=;$IG^v)S}r2&(|5qcFzxdRpTBE@s2OVId?4-vvEERFAtI2*Oro1u&$?Jj*E4r zPW?@ehwF^KC}C{r(P2#xKTKB^Um)38o@~>s%C{0|+0B8u?Y21QEv?T?js_UvX7~ZYIwT`@|-=oii{{X{3!#@xHAGtS#_<*^NC&&0t z2Zd9JK4wJ`{{RU`m*r~F>FLvBzgx!d;J*v}lMYR|e={=iXvCVJN6RcqzTk!VhfR(2 z$1DE;y@!;zMpYLzn1Uz(rMYPA1^R1jVR6rh-wt?QS0grOk3pAHM_-7r-!{uk?CWa^_W&lUqd~BZ&ydvg)XH2K( zP~@PT)NMRwoqCq~3dXmLWPLCK<0Qr;M|-t8Mn+>^Ejan(8n5sYDu6s z->$>9KE6M)>ExD7yM0Cc1AG(Z7UzzC)A78Sh-LDN>-b3N@m=Jv-y&*We?Z=l&O!@du9hnV5)X z@^M3w%f49u00=_i2nu_PQ(tqBe&_xmd0)cFr{>-}`S*)KjAn%TKv>tH0PZMl-yaL) zd~QF?w<)*L!yOT#xvRc%RDL zzn2hjtd}$~;jpZ_)naI2J0EKmN2lqJwSFl6Bb-l;@df4nN6O5Ln<^sAXJd5H3mOvX zAYJcAuj!A9UyGdFQ;Ym>b54Idl?d@i51hdN0L5Y~zt_0`0Nrt~hsD9i@@2yvCpPB= z-?y3PWdM>p;T5+kp4KoK!57!t63E((liMGE-F(eGN8z4#^L`g_44@^Re71Iu%nnX8z|NDZU+7Bz!;R+{?seFmohK$zRDF zi2ne#+vDngz|R(LWcY66?jaC9TztXBE zdBQ=KaC)KQInv*yg~!m&RPz4-J^8;l63j;C#SjgC`15jK)&9>$9mj1+l&~lif^>jz zR%vKNB&uGArZD4oRtrUdKCakyn2=gBr&ivVA!l)VizvRhCy3>h%B01}8>*4FvByf! z^K*Qt&=f6RWR^66SN{NiOm(g~;vXN)@XXe8g5@J@+GJ&XtWLy6(khy<)QbbIFk7dJ zKOet}4tnHo5PUP`4ny%%i*SA&KMBreIL=Fi=UO{;c*45`qStNnUrcz8FT@kX;lpzL zFEitpJLcd>S|T5a5V}s=cgC>zsQ8BG?}@J%v;HA-{{RqYnKKeYmCKEi1Xn(V9kH*R zDItO|Q?dGE>2c$Z7)O^Zvbi@8{{R)QJ`N}|Tr-+ElP;}v@60oj+ipm@2OLKq_>1El zcvll%FPZZQ{L9b9WOBm$YHI$N*9w7@xfTHd1^su#5M~-u%4h>X6OQwe`qEzKw#1Le zgyETg%Vha_Mnz4f8OK&9r4TD@cMl3UH!k??&UsEVFAmLQxNiu`r2K0u7ZN^pd4W2_ ze_{Usw~ZH>%q%FWD+Xe0>BlF?z9Dh0LE^FTZdsj{dn+n0M^btp(-_X&x=GXCJ}`U~ z{1bDBg51I4{{V$t&CJ|CGs1aeIh@L5rsB%+%``EysC{b3<`h699uMTsed0W+lU&Y0 za_uw53odFcL5B1;>yGWu9~2zn#JMLq;r9j4G&v3~#dA?90HSp&2p74#2j3c?kt(iM zHq)e0Zom%M&J!*x-P=~m@A(fNIqM^wO!OJD8VMFiq6{e-?#9@&k9ghU4;^>n8NMZ^ zLoTM4CLqXrSp*)~=z=$bBJxNbNUgTRz>A@$B#K+ndsn_XdEK)*cYL>x{w8Fy$qrkX zGX>N!7e30w{J>V^4&>t=4~SnFxMpEx%X3j?)Y^mP(V9SSV%6>XFRCfFk_Mh5JzLhs<+F8S{1JbCYE~R?h}y^$oW5UN~&F zVP7nnNY~VAw%@KT5l?EsojU2*o|xzJ@7?0aII#Bt~>mIqcNaf}Saq>vWK)zb@=F5UCPPaL`DkvNo+aK1R% zcFaAT)KLQPA9TI3_D}Gz@rRtbyYT-2%yT!3-;~Y_y74i?GjQd?$(hPVg{{CFwxZ)< z(yt#5Ae2J`E2uh@(XH|JqwuMkE;IOka)%4lr6L& zx`FnSu%@n^F&v>=5|VD10f1I;flbg0M{SA4a+P&Ho34izkO;N2eKAz3DP5a> z{{UNI*{8s4mm+XS;sVl9$E7ec|oWeR)Ps=NVv zo54}pRj7YV9q5tQu)>uZLW-h)TspA;FdattGbdnZb?J43OI`l>jH(w)d-lYT2^FJL zLZ}go<5~ofUA=(Y5q%={UEgcMl4DSy6J7BG->my~IM_R0l12Mo8BH5Cu*EKPT+Vg^ z?-nZtQ0d%VVrV{~Nu!CVS6=-_7VM2lSI}Y+K!LEsedq^~RwC}*J@8SNOC4PRyiqCC zhD~9X_7~RrU>L>hI*SJJMdhlPt%112+JXnx2XJtaIAz(+q#ZA>*AW~njC8h?QMvAL zP4uvv0CX5o)TP6JwhbWxsO`Al5SwBwRp4)+WnrYAhuf{;s1H`6FBMNTg4H{nJNw|7 z2&&wHK>M6evY2$%4Opuu+GoG7g% z>_H%6qNE*GZ@1e7*J6gidk09|``{fV90y=`+_y`^Nu;HLZCe0#tOW{JNnNaTJx&C$ z3z%0)VAa&IIBiG`qMoB`!9=2D4e2MQ0}uf!_J7KHeehLtJ2Y%&P%IEgI}P^2=|^y9 z3;}9Tr>-t^T?RQ6nip5x;~q1y3t*QtOLhMMYz4vNNm&eo{z2`93m-+M)NBIV;UrCH z1dyo(cNf3!h=7+>P!~@@r=Y<%+U+1vWzr4wKVPN@R#gZMl|3)601C%ax{DV_tzn9` zr34Ek?hn%iPvIDgd3`riT@St$ilTX}-MzZr5?K)#va1~@wi4-l!ZtlY_Bacpku?Ao z?Dh7+W@jZ;Mw=e0#c_mHB(jiB)PJTd(pAiYz}wPIj0CpU8Au>(Md6jp9c2xJwKr@l zMzNagq!abSDKY$~uKxgR0WBj-y)tUC?lBNrGgSsO2t9BW?0T4sI0TS9z@(Ab_P{mj zLP)K)#bMu50YnX|{qZE!k`O}>Hru`{Re0Z1za$>ZF26 z>Hh$AjGs5s4efh_+Zg%aS|;-715NihvglKxixAeT;AsJ@VPq_1Z3K;}O>OOitg|Z- zK=dBR3c^4E8j6#+9{9HGQ7Y?V0Xyyb{{YzjxTZqHlE$ohcE&{dSJTjjvT;PL0s_LT z8W?%F!$swSMxqEc(`<41rBHu}x^(=kPhZ;{reNtU8m*eKwmAIAZ3n%RWON(gF*5^6 zCc#jbDJ}Kwj7g#qu`->A1P;209e$Y1oGy}FtufLyDBOP7#gx*x6_P+(9HR9IT>a0Ht=NU+Ja{qX1uFO~|6 z?muiQgQShk0b09ax`_JK+f|BXH{YfSZkdrhak{!|54hjB#jYOp3MR!TY*h?}brYx^ zARJ#6R)uS2AR61Y1iKavX^*IBu9aU*DQF^M@wsvcrPXwCV+2r93l&%?~IAd0L73q765hJ{c($!9&{3? zrLMuTRDH3j+gf$fjSCP^ENter9oT&bd{pX+o_tDIN$96wKF1eM$5y)aARrsSzR zzABr{FbPs2rY4~yKYysl9J)-E0Jt9v^i(`EW#R@~NjYL$MgNW}J=0F4; zYq+NhY&Y8&zG~^v?#E&U8n31~t0ySorMXSW0~-GTF(S75V~~J^jZ~>6SU#KicE=Qm z)}v4_r_@obSGV6Brbv0I=OY^>Ng$D=ZLz#dbh7EoaOYzoQp8yRAARx9aF!9snU6Ax zw?I1Mu4E-+C}sl3aBrtT4XtM8y>|DW>XrV>O>ulM)pH^nyoGio&QSjhi=zLI#&3sNYT% zf=0HR-&|?5X3=0R=^Jf=G|aZiMMrM02{rp*0l08G)eme`y%Y-?sERdS_$OaLE{?+x62iL!hzS5P_u8;kWR)aYzSV&u zx0$I;D&B$htT-$KYfU?JybwJhK(p_HS++W>l>`bM$JYU#L?wk1n{GOsTI@iuw0d3< z#d;YVrRoE08M8{vt)j!8hhh6+STQ{g-D|!q0+g{^GzR!r1EXE)uq&>^1SK#whof#! zd|6hajgR?#@TzDMMw{#hQG&LsYL+^U@DLWNI)>i(C5Z$nyBppDd3%PiFjN!;i_jg8 z0%`%m6KadO9q_yD9-*@J_rzc;QDH;Bz7(CvLN@8X9fxM1<~29kyI?(QyE`4|VVF?T z8*4g$Y$#&HST;cdz40~JAwvr8aRDVuG?WJ3_!VqQuHb=pf)tQQKB^d^I2wbMBkO|H zlvjG{4k30FD`nXGlZfJgQhIf~1Rjt}DA?a#*oDT-0W1wyz7*>uS>3u|h9!Sc$M1kH z!D`O>aBQKYWY=zo5sA%WB0%e3Tx^wsl?WG z*Oql^pgUr3w6kjoD%zK31RJi{^C#j}@Gq12o#esduZMX^^8D+-;w0%5bI^_SHFa&Q zANR+m7DuuTUZJ)0#js4dc?+5=RKSZ2JA;p*^xvrbpQZfFen$<}k3Y%y*nGYV#hl!) zf=`vs!<&8&#IiF%#4>Xjvw3-iJWe`-I`+m6aLUfpPP$I8)!dAG-|<)Y7n_H1SNM|f zlZI4zoBseA%4NkJe*1O3@!4Zf1}ejHJ@6Jr$~3l<-Gbjwt{G+5 z6*SNLTYx)n+XdBzBqJFi^FSm5OKv}Y*x3FQ_>ar6 zXQSZ!?>3mFgUZWsGB!yG+h4b}<6KI@2^Kl!vU;2S@DbIc^4HXj^Bd}S$AjuWPWb-- zQux=4mUaBQ{BM)V@wq(ldrOf%9eLlJhFd$s=gIy?Sc&}RR((cABoNw2qu=?uV{-Bb z!e0!^aQ^`Cu05U-Kp2q-qSM(0i%{#aqxxPvA>gmY4~<>~uaU{z&ch&AN@b@;bsg*i zNE>5)aG%8Y#r%d^DYN`TD55|bK%6lYsWs7oyWI5{{y+6Uz+YC!mi|SVWA=X6;Qk@_ z7Z3Q}-st4sLg0L(!j(8yLJYJi9T}tn6-Pk7YR5+L_u_+<{5s*&aNZTivh(L9i__$| zau)qeiaOswPQxBI=TF2-p1H>_Jb8X(m@+}87_(7>=D8ih(5v^xjOXtexwD(zU|%Z$ zn@o9`a-gfy^i?0qw~t5Bzr*j9dFLm~^*+bcKNRs}#rc03+B|dd(~9%|05oU#?rw@_ zW+q7FV8dz%zT}F#>~X0xE^{)oNp0>x?r7qNkj*dVB?`bT?$F(Q&xR1J01?eEhc z*ZwcX;`p3Xj|r(Ch2+nZpOWXD-KLR4s1qF^3v*k2FAf*Mf+Du1q5*9yV4M3^1D6Zs!rfE=2s>}r5p~4G+JeQ3l@>?u zf)Qh)U6|I83Ebj0;u&BgeFBsfVmJAY9hrW2j>*}hEq|!{VOLUVQokkGVeh^k04OYy z{J@ifjFLPgJaKiRN$R+{M1EsQ5>je9m0Ri5d*KvoW_b$TdPUuWIviXf48FF~MSxeJ zKk1D6_Qli;vLt}eY7!gQU#2-OSLICah`ia9^SR|EqcLihFm$s_=lM?5qw9~){v!Iv z7t#KomnK*BUs3eFmGC(}f6AC+I&SZSkB1ntXDK6aT@d7mT&xX5>lAf4{#q4d>5pXa ztc+P`#E!wGDW%;`-(mV=uXuUMd^?mlOj!;OlPZx#<*@{oYpW#pV?!ObIJBrxC=+Y8 z&uvjZ?UBV^xTx zYF7ubzgJv%EZfuKI`<_`tvlH7^uS?BqiVDFvQ8v|l=t51`WyyerizB!)Ac_1c9*2q zRBB~DpOlXH4i{FFb{A(2zW)GBMPOxgP<2;J>4|#1NWU;Rc7@Yq1wud?IUrx8S zG$9_4#dp5Lrr3oTfUGDW+wX!$@XE#t^fz7l))2D>wwFq=^$PyCfU%?s%-&@kLV!3d zx{D(zq0|0sR*M-@O9it))!rJko76}Pr*rR#s1CO-Q6nA857P`maHN1h><>eP6=ZG| zSkVW4uvF+$t2Ss)k z2=DKVhK_?WlXP|`>M-h90vq3I#cp*g6yIN;QnWhClibdHtR5zVbu z;Mn@@iC_&x^)-stKtq2py@=Rf?}2+-zFLA1QLVx6ipcXu>eLToK;R8X01sph!N4X# zF6^h(@*cl@1Y}mVDs~%TM3M!fx~O|~`(i5q+5?hC=J8Z}vn%}M_CK~YkFk%Kbyfj_ zgSk*g_r=^bLCdS^6iF)Bqc-DRfIT3Aw_ID6)Dco90)eF+@u8EbtZgC!#k(D-^ujP^ zYY9L{v96~KWpch_!cM}?_B~Dmg-{f(trw{~o4^8>BL?*l)I)SPghC?Tg$JMyZ>}I> ziVIm?AkeLi;1Yo(3Oyl(`GE2c`r)jQ8QWmRNFDu-1%!uGhfITJKToD8RyQVw zZQG?@$LokR>(!|I+pS@yaUo4H=~L`(&%O~JH4LuLOVqDi0SZVA))ZM~VZIC?DX^No zh4sWrljUo$blw%pp;j^%)I&I`HZTyhN*T1>Zb3aUOod&vD=6ut9@}nlkx3eBRaPUp zII2~OM)gPfFI-J_D$szNeeZ1}4;vJHO}GQ0I0~wvT~vU7%y14-r>3n;Ird<1Pu0@=3QoL17wq^w{yf$6`mTsW*ts#L^Xtf=D&<4)}vgx1J&bfu+9qf@nfKxd;q; zkb3We;bVU=A!DTOJ?{_Yyl6;9aA^DQeX(1zgs`pYUDWlw1OOmp*7gk&y@n&m=?Ees zeM5aaboanOfSB0PUc2tsi7F(B13NIXLVI8%&oh$7I@9wW*cKGFqSs`Q4kE=M42+<# zJ1N@*S}=UcRDgD%yZ*QYc_Z|^fYo#z@Q*1%Ra&cXJ+X3s5U%2tX@U2|WLAtegG?`O zq~A;iI!iMUY|$VcSM7^8VqI3x(BYm24n$f>y|rH0h#OCrtP-bkgRU*R39(`TU0(j* zTroNTe=%;l5!Vm^v>1xM<9sW#P+%18+-@-g$Ow(4ujT-0J@6iMb~dF+0{7{P<)u12 z%{@0K0Ftg`*{qW4yWh3}{N-iTgVZ+!^d}6@8naS*sL?$y>5Ahj{-#TzvYoMD0JW}NlBlOTF(%2v6_r|m=EKwO&Z%89*+=JT@G_eZ9Pq{tt zA4qL07_O^A=wd93>QFE0ahuf(Xfctb(*^5+wv$!?*jdGdmW()R8|h=zl6qlD2AP$vz$e&y;1mjVG!Elz zL_&IwwrF-Z8jM}Y-(q`=664jTT0K}$z#T^PjkO+ydSOb$7gR{<%eXDLuJ~JZ7b|am zs{WXSu!qp*^$m{XjB8q6trv&?m(mUyfbB^ zj@*Mpb-mB&gj86fQ0&!W&M2^$!78isP`bj)6jl65JuT5muj_^bdK(36-0nsZgQGDk z-?7Ge{zh;IVnNk?E3O;@bjd3n%>^B>5-6++*qwkl@xB-E#NHZR-X7ELG;+5~Dq8vFOakShaZ zw#Q-H4v~dZy_(dw?}@EQu(k(U!og#{w9?1}3e$>;D-vWBJB!0AsAg|09rir{#6$qI zR_CZaF@YlUf*8>@)nQlt@Z{+LnDuD_x9D(fRZ#}ofh=oriKa$6!q`#oSP00@OOyhS zQMGOF-w4P-4qP_iEe?PTT4_L{_OE1LTqy(_C@h}0{+PS$Czb#pz0tEn`eCJ!k%Fsg z18@c)X;}G;b|-KK7tW1#@_{aWC9!;gc0OM1KpWU}7_0#A>1(g9Ek7txK1@*TcEeN7z_w@VKW^)2|v>ggjnxqk%s+A!wpDC1cFaP^uQANo`(RI z-Pj*&6_S7;nrkbo>-E4Ak0be#DP=3TJ6GEfgdh(t^&d%N*A+_I%7AE^1KS1&q%2E= zsBJ~QU%m-u*M|TCx9L9HANR#mOg%%P3IN-wygVSsX+ZDtxA()VGm0RQcWl4Y24vbs z3!gB_YSc8>PPlbe5rP!m*jhJ$(lW@(eN0$T8vrm#bwXI!BYHdUf(MqS%PU)L>-WGc z%N>D3O@gb~b;B1>wV<-~^>0{GJjEtcv1%l3_Q7S5Z7go^vdVo`7$7kx)6iB8Ly+yZpcs0Tk-qy@B{-;6y9M?Brf)LzK5nEF0pBxZVz_c;U7d#Y(*1fHTz+q zjJnxfwFg`Uj2K&zZiNg0s;{J{{6V_jCr2njB%8bGh`v&>F&~$y0>|%wklTXhGMiN} z!9gT|FxuB}aU){P9Zi7Nw~JZ6W6-Mq0NB7G1n!D7l592^lwGpc{cueh)ZWC_0Qmr8 z*6CWtI78`um1AtPRez#FLE@T}pLP%fg>c0C2+ zI(mT&Ku~pkaM}&&&?~22gWCZutd%woZ)_@rDpY_8VY5BnCbE&1WnFqKt@Q&2LlTj$ zgHWaV;0gv70{}@D4i#dJP$2@3@`HF~LF(M@Z+-9wr0P}y2Iu|o1fsK&>+>DOY%38{ z%vRJv3}{foDVJWUTEV@?VTOo>QWN~=V}OjhR<_cjsC_U)fvSXpovlZE?}e9H8WD&$ z>h$%&c0nZ)busJiFb^YvRq~O&;4Q5Z*FuI6Hl)^A4eW2wVby~%y}e$V?|=lvNK!9W z;Co?NoPt2MVgp{nu{_zCb|qT-uE%UuAY!_Zg(kI=_CM`_B6H>&k5xSbdkhIljJAX< zbP#oP0{#C0Y!nQ{5DhKrvD+2-Cs5W11Q$2$^}tu83X(!;woqI9;=fn~0u`#kuK37? zBz;WrlfJ-hwkBa=5;91kRDr!&ulpFY*u+F~)~v@-yCZBz61g!lfJ=2Iv3;{xF_2k- z6nYF-Azp$)ygT^efx0F*9zfBF!PPKbUqN_?Zp| zh(;$_HSejdLi?!O942Lixx$TLJNEald~;k-Fj5$p?Taqk8#nvbI9cN?q^P3jTCLFU ziI1?U624&?R9!~MB;%Lh;3iwiNy!!S1J~*F#}5z%nm;n1MxZq8H|c+Da=anhINhU8 zg*4tetI>u~`&tN+oWg%LK zD%5wgM;tE_X<&`!*g7#?zsuO;nal=AEw{A}LhJ=~-yBC1F_n?oy$z@mH{0I^y}FMU ziZw-sC7_JQb9ADs`wVfpl2#)zKn9?;MQIh+9G4lAahMX!&c%^+g=K_O3HIz z64f4G%Xo`N{LWl^b@bovG3)sIoEJ_Rb({2y_;LIs_`E1`B%yRZp zek;T?xkPyuQxcOB0zZa}bQNo%Cmx9iiUeXc0165Q!|C?Mk>uZrzEb6H3V2@=<{lvo zQs(${667IYSD3C8&;qKEjq#Z`#os6J-V>4H+-r?+cwypYn*J5&%RA4$7;|~xoL4iN$YuF!J(-NU2)xl85-@E&LLDFr z>yOXR9Cgn_mPxY(qlOI-S?Hs_IQ>719R7Y>l6sm?k@|SNYl1Ol!J{Sbv8-7RUKd~* zeJk97b%mQQv682@GdM0!DA~j_DPY8fAoTkEvHBcw-dfY=-k(@M@Yj4Q@+UBO^`7yM znm9IBi7rclmf-_C0F(0Bg_^Yh)&p!98rp{V`<)g~DGah^Aj(FPOI~ZL09*}}6ZGHr z$Hq^ZIXt%xNQP+T!TB^7l#$uI%0AWCA5S=c#a9C2oIfqaa(u_Y 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

    hu!=wM*R(ZjPsu&FnRCH*1c zDH^Yy=A<|LdYH*q)c~k+WKEc%VfB9$orPPI|J#PQ(Vc_QHKZmT3ZgU{on!PEAstF6 zA){OA6s4sZtsvc{NDc=K1HOz915iQuy?g(H9mn?Ud7jUGU)OokYExz~9Uo_~l{-Ef z2K?T>e%-9V==@u}{v}!yM;T`{3BjT1Bw}z}Z^v66>o?=Y0O~BCX1J;bp0du+7o6c% zVuVj2GELgN^*MS1Svw3oKxFX9GwmoOC*(q2xnk?Na@$X=?4U1M=Oa;(yCA~l+qc83 zBAfz#LrLs`$?+A?g-$hSFd{2;r5mF9JN*3lzX&t_tY2+{Q@j~y0y@q$j5QY2ovv#s zIQS(iMEQEDKl4{?4|7!rikZ4}^Mo20$svI@8_iTnf=UN8%bV$k39RB>zPM@MEKG+N z%YpHVS>eO5lvJPp0a9V7lw_i>RFDjlbU{PXbHxHQQtf6#IQdYR=*uNNvJsNQsV}CV zO(V9eqQ^)TLc6V)tO|Vgi(U+TKTNNt#W_;rB*QrQj8d4YNzC6)w8)K4m`goP=J*&Z z@>P+?6tvP;RBN$`PGNxvbFI3s+NJB&=2`gKT8G6In zG=Wg|*Z{>Hz8VA>wB;j{Aou z4Eei5=TUjK5gamM%?=%RhK)XxhHJ@r7q1crGW;i?W8FG2CqbBA6|@oS57L!QXpAo# z#M6fwK>ilpU;57to4LygP(6&9glOF9NkfLK5$PIG^lrP5lZ#^X}xGmaKzIZKO zrrKSo8tzt)RX-b%@Ur@9wZV5bs^@a6*qFDdHC6Kh$unA6XBD6-L8K1qp8OIDO|o7s zUWBylWfhaek0X|Xz_ULs(R=Ct65f!*G*pYmmZ0zY|H+^2vKzB$3I2`~$w@Ax)yXon z*r%5Efwi>w)VfCf9*E!#2))*7(GHL5K~Q@~1NkaQoDPRA;B;*-c`aN`A}k7I8nkvZ;P3z?npDH&)x zQlN+Z5J>dbvu2O?vlO#^k$gdp4A0n5IS%k{KZO*CZiS=iNRQ~6o7gRr+CgN*nzUl4 zB2Wa%N2p`WB(oY6g7ygHkZ9&pj7U8N_HHnOx_(Z!r8s<|vIu2MxhN3Hck5M%h~lIH z;pJ{K7?#yAEv+TvcslHKBHdfD)OgYCuhwjwH!tF&?{Wp4@RO%Um3H^Jr?tc|3Cq>5 zObWlB23}c1VOCAM4n1fY;?`#R)!A zwg8N!y6uoGwCb5VpjmC|q3rM>R?s6<)>)AYkO%z0SUG>?=Hv`8wC+ev_?*a@Yl%h6 zY598oo_G_!N*508r`WBv5F%@bYdDC3f9lnc;MZr2h8_sz*~|JK-lk}~Jz%36XK0zk z3Aqu+z~~+SoBD7mGA4wU3E~6c^S$^aFkc?Asb-pluBoAU;UKLJ#D9s!+w&ly42)!R z7YW;uK;46`V1aAKIw3jZCx{Qi)f~~RsX8@Uh4^IR8H9FODqjiY9T-G!WH4(~2v`-E z8DoRMR47PytCzlKHqXaRLsjsaI4*K8zKJPGN;r&M1_Gv+>OkHsja|h?BP-brO88e< z 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 literal 0 HcmV?d00001 diff --git a/bsp/mm32f103x/project.ewd b/bsp/mm32f103x/project.ewd new file mode 100644 index 000000000..0046d0832 --- /dev/null +++ b/bsp/mm32f103x/project.ewd @@ -0,0 +1,2966 @@ + + + 3 + + rt-thread + + ARM + + 1 + + C-SPY + 2 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\RemedyRtosViewer\RemedyRtosViewer.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 0 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\HWRTOSplugin\HWRTOSplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\RemedyRtosViewer\RemedyRtosViewer.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm8BE.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/mm32f103x/project.ewp b/bsp/mm32f103x/project.ewp new file mode 100644 index 000000000..3ef301928 --- /dev/null +++ b/bsp/mm32f103x/project.ewp @@ -0,0 +1,2334 @@ + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + CPU + + $PROJ_DIR$\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\libcpu\arm\common\showmem.c + + + $PROJ_DIR$\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\libcpu\arm\cortex-m3\context_iar.S + + + $PROJ_DIR$\..\..\libcpu\arm\cortex-m3\cpuport.c + + + + DeviceDrivers + + $PROJ_DIR$\..\..\components\drivers\misc\pin.c + + + $PROJ_DIR$\..\..\components\drivers\serial\serial.c + + + $PROJ_DIR$\..\..\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\..\..\components\drivers\src\ringbuffer.c + + + $PROJ_DIR$\..\..\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\..\..\components\drivers\src\workqueue.c + + + $PROJ_DIR$\..\..\components\drivers\src\ringblk_buf.c + + + $PROJ_DIR$\..\..\components\drivers\src\pipe.c + + + $PROJ_DIR$\..\..\components\drivers\src\completion.c + + + + Drivers + + $PROJ_DIR$\drivers\drv_gpio.c + + + $PROJ_DIR$\drivers\drv_uart.c + + + $PROJ_DIR$\drivers\board.c + + + + Finsh + + $PROJ_DIR$\..\..\components\finsh\shell.c + + + $PROJ_DIR$\..\..\components\finsh\msh.c + + + $PROJ_DIR$\..\..\components\finsh\cmd.c + + + + Kernel + + $PROJ_DIR$\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\src\memheap.c + + + $PROJ_DIR$\..\..\src\irq.c + + + $PROJ_DIR$\..\..\src\timer.c + + + $PROJ_DIR$\..\..\src\device.c + + + $PROJ_DIR$\..\..\src\components.c + + + $PROJ_DIR$\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\src\mem.c + + + $PROJ_DIR$\..\..\src\scheduler.c + + + $PROJ_DIR$\..\..\src\clock.c + + + $PROJ_DIR$\..\..\src\thread.c + + + $PROJ_DIR$\..\..\src\idle.c + + + $PROJ_DIR$\..\..\src\object.c + + + + libc + + $PROJ_DIR$\..\..\components\libc\compilers\common\time.c + + + + Libraries + + $PROJ_DIR$\Libraries\MM32F103\Source\system_MM32F103.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_flash.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_spi.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_wwdg.c + + + $PROJ_DIR$\Libraries\MM32F103\Source\IAR_StartAsm\startup_MM32F103.s + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_gpio.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_adc.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_tim.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_exti.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_rcc.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_rtc.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_pwr.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_misc.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_iwdg.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_bkp.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_can.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_dma.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_uart.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_i2c.c + + + $PROJ_DIR$\Libraries\MM32F103\HAL_lib\src\HAL_crc.c + + + + utestcases + + diff --git a/bsp/mm32f103x/project.eww b/bsp/mm32f103x/project.eww new file mode 100644 index 000000000..c2cb02eb1 --- /dev/null +++ b/bsp/mm32f103x/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/mm32f103x/rtconfig.h b/bsp/mm32f103x/rtconfig.h new file mode 100644 index 000000000..485b4815d --- /dev/null +++ b/bsp/mm32f103x/rtconfig.h @@ -0,0 +1,186 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 100 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 + +/* kservice optimization */ + +#define RT_DEBUG +#define RT_DEBUG_COLOR + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_MEMHEAP +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart1" +#define RT_VER_NUM 0x40004 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 1024 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define RT_USING_MSH +#define FINSH_USING_MSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 1024 +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_CMD_SIZE 80 +#define MSH_USING_BUILT_IN_COMMANDS +#define FINSH_USING_DESCRIPTION +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_USING_SERIAL_V1 +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + +#define RT_LIBC_USING_TIME +#define RT_LIBC_DEFAULT_TIMEZONE 8 + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread Utestcases */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + +/* acceleration: Assembly language or algorithmic acceleration packages */ + + +/* Micrium: Micrium software products porting for RT-Thread */ + + +/* peripheral libraries and drivers */ + + +/* AI packages */ + + +/* miscellaneous packages */ + +/* samples: kernel and components samples */ + + +/* entertainment: terminal games and other interesting software packages */ + + +/* Privated Packages of RealThread */ + + +/* Network Utilities */ + + +/* Hardware Drivers Config */ + +/* On-chip Peripheral Drivers */ + +/* GPIO Drivers */ + +#define BSP_USING_GPIO + +/* UART Drivers */ + +#define BSP_USING_UART1 +#define SOC_MM32L373 + +#endif diff --git a/bsp/mm32f103x/rtconfig.py b/bsp/mm32f103x/rtconfig.py new file mode 100644 index 000000000..1e87cf72e --- /dev/null +++ b/bsp/mm32f103x/rtconfig.py @@ -0,0 +1,135 @@ +# BSP Note: For TI EK-TM4C1294XL Tiva C Series Connected LancuhPad (REV D) + +import os +import sys +# toolchains options +CROSS_TOOL = 'gcc' + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +# device options +ARCH = 'arm' +CPU = 'cortex-m3' + + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = '/Users/zhangyihong/.env/gcc-arm-none-eabi-5_4-2016q3/bin' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = 'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 7.2' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' +#BUILD = 'release' + +if PLATFORM == 'gcc': + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + CXX = PREFIX + 'g++' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -Wall' + CFLAGS = DEVICE + ' -std=c99' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T drivers/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu ' + CPU + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --scatter "drivers/linker_scripts/link.sct" --info sizes --info totals --info unused --info veneers --list rtthread.map --strict' + + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/INC' + LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/ARMCC/LIB' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/arm/armcc/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iar': + # toolchains + CC = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '-Dewarm' # + ' -D' + PART_TYPE + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M3' + CFLAGS += ' -e' + + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu ' + CPU + + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "drivers/linker_scripts/link.icf"' + LFLAGS += ' --entry __iar_program_start' + #LFLAGS += ' --silent' + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = '' diff --git a/bsp/mm32f103x/template.ewp b/bsp/mm32f103x/template.ewp new file mode 100644 index 000000000..a2d6a9d1d --- /dev/null +++ b/bsp/mm32f103x/template.ewp @@ -0,0 +1,2106 @@ + + + 3 + + rt-thread + + ARM + + 1 + + General + 3 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/mm32f103x/template.eww b/bsp/mm32f103x/template.eww new file mode 100644 index 000000000..bd036bb4c --- /dev/null +++ b/bsp/mm32f103x/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/mm32f103x/template.uvopt b/bsp/mm32f103x/template.uvopt new file mode 100644 index 000000000..0a9bea69e --- /dev/null +++ b/bsp/mm32f103x/template.uvopt @@ -0,0 +1,184 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + + 0 + Datasheet + DATASHTS\ST\STM32F4xx\DM00053488.pdf + + + 1 + Reference Manual + DATASHTS\ST\STM32F4xx\DM00031020.pdf + + + 2 + Technical Reference Manual + datashts\arm\cortex_m4\r0p1\DDI0439C_CORTEX_M4_R0P1_TRM.PDF + + + 3 + Generic User Guide + datashts\arm\cortex_m4\r0p1\DUI0553A_CORTEX_M4_DGUG.PDF + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U20090928 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + UL2CM3(-O207 -S0 -C0 -FO7 -FN1 -FC800 -FD20000000 -FF0STM32F4xx_1024 -FL0100000 -FS08000000 + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
    diff --git a/bsp/mm32f103x/template.uvoptx b/bsp/mm32f103x/template.uvoptx new file mode 100644 index 000000000..f9da8a8eb --- /dev/null +++ b/bsp/mm32f103x/template.uvoptx @@ -0,0 +1,182 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U69614099 -O78 -S4 -ZTIFSpeedSel2000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0MM32F103_128.FLM -FS08000000 -FL020000 -FP0($$Device:MM32F103RBT$Flash\MM32F103_128.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0MM32F103_128 -FS08000000 -FL020000 -FP0($$Device:MM32F103RBT$Flash\MM32F103_128.FLM)) + + + 0 + MM32LINKCM3 + -U6175B4CC7 -O206 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0MM32L3xx_128.FLM -FS08000000 -FL020000 -FP0($$Device:MM32L373PF$Flash\MM32L3xx_128.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + +
    diff --git a/bsp/mm32f103x/template.uvprojx b/bsp/mm32f103x/template.uvprojx new file mode 100644 index 000000000..12e9ccd96 --- /dev/null +++ b/bsp/mm32f103x/template.uvprojx @@ -0,0 +1,406 @@ + + + + 2.1 + +
    ### uVision Project, (C) Keil Software
    + + + + rtthread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::.\ARMCC + 0 + + + MM32F103RBT + MindMotion + MindMotion.MM32F103x8xB_DFP.1.4.7 + http://www.mindmotion.com.cn/Download/MDK_KEIL/ + IRAM(0x20000000,0x5000) IROM(0x08000000,0x20000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0MM32F103_128 -FS08000000 -FL020000 -FP0($$Device:MM32F103RBT$Flash\MM32F103_128.FLM)) + 0 + $$Device:MM32F103RBT$Device\MM32F103\Include\HAL_device.h + + + + + + + + + + $$Device:MM32F103RBT$SVD\MM32F103.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 1 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + USE_STDPERIPH_DRIVER + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + .\drivers\linker_scripts\link.sct + + + + + + + + + + + + + + + + + + + + + <Project Info> + + + + + + 0 + 1 + + + + +
    -- GitLab

    n2fkx%yzKQ6{D$hs|TQ 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≷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ⅆ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 tBV(IyRXjQ(0I=e{~EleGzyDOYIBy}mh#PVYh1 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

  • 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 z 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 z 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

  • Bpe`A#`8QLM38hg;sU6wL8lO^6SJI^%An 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 z19⁣zaE3~=?8J=LU(0O<)G(a}W3hqa}TP8R)Pcmd&m~T{{S9kd(QzC>A-pZ5ivO@5n-(8rIlr|wSG&;{-2d4Bi)ONiIioy1F4ZF~^x75ebtGoM<0`Q7PNG468Oc#@J2%}caF&3SYk~@V_V;9(HZ{$*EfLj{Bg;$ zZc*l#%t)6*fS?Y&YjSW0CbIr4<$e>3GfZrFoF*y|WsI%Cu&lo*@U!95g}Hj%$I3Z# zmJC~`nIw+_o1ffQvkpe~*_Re`y#D}MY!(g$pApEM;1*C+$seR&=C|L4pA;+NdxjKI7bDYaPJjiG5%}|<_KoF79QP=eT?$Ui^htJq|xHW;Pbv+nf67) z94nN>v1R-AZCAf*R59YBce!xF{Y6P|S6%D@sBEguFuM3p873@fi}cJH zyJ^yE&u)5UJW0%4c2~+?Tj8RY6~r7s&|#;Oc%ldk84bGF0&VeLgL8Wiikpym(%^2A zwpk&Kknepp#y%Nvkz+8}40PF?aAL4{iJmFg`r>j(xcRXny?7Mgk0y>Ug3O%yH5W2` zH$mae(=X>oA7S%M?V=LlGTaf;j-+gK_5JHv;5foOE@)o~f|Cvm+MGJ>N3cHC+ML$p zCoXu?JC}`lk;EUa#k4^VGao3_v4LO{*jE*JxXJiWfZ)YNz+82NnkWNVM4_12eYYL! z#UH1v>wS#*v8moZjhTnVVdvqDMs1DE!r^3s`lf9lSPs?ZKZ#6cCo$(1U^sING?7g) zSSCJ%JaT|^9nffoSrP}6#!$VI9ar5H|l+>HsOyAoXf<;8P0eM8HQjy!z7TF z2IF!MV_xqI!JmklXAHU2sL-4*$NbsBsPTRrIg1cRUKmFv+60kkC_moxr|{{;(kPNn6e_X+rWp4m@4vlz z;f^tt(Z%MA(ac=6@d?jvL`61Rz*wAC8W|eWtKoH}&tMMKpYr=U&-_5~^5c1%iHuJa zTJFiDAAiC26}AtD4rb4XY$QA$iY`36!o{~fdi+bQ)fMvuq^^0&P)3=zsT4T(4vBis*;SIGx41|^gpt-KF@crOVmAP8OE?cT)i%R*r z^=kJY+P)+DL_B$Eo|ySjlA}KGTf=-wFD*nFt`+s-2C1ZP=VG=$wR2`!#MsV9__4?E z>A}eGXIYyoEJN)j$rt$l0KIx8!`XgC%l;e^$|AvFa4_AO?4STQ>s)!sE-mF3IJ{5s zHfsuD@y(ZJANfpE078@P@6x`XjfybEE=tuL^2xUv{he{cEj}*=1|mpVOG2i{@mUTJ z4J?tq79dozA6|6NGuIz*#OE6QAUYQyatif)N&B3nrHYi|IES zfwA0IVdwlSfyeWgFvzj6VWh&zA!$Uh0&YgutQ(&H08Z{(bASv?&lF6Fc;W+3_w8Pv zHy@4ULNLg+Uk3~l%Znpxql5DQ0IFY$u4s6K%lVDS96a0?gcz9D6T{fDF?ei3-_{Po z%WK-!?OuuTPZe?h06F-7D$n_Wp1q7IDT4|;v{FX<3e~xHgI-(mLnJe{R|I4sQ8KV4 zes9$NYZK-Njt&UrrUniSiaGH@4@71N^%S>aerw=m@FU~P`ZvV)!^nh{v~~vt@p$3v z9v20TZFpBVjJUB?{P(QeIPo#Ud?SKP9w!wV#-J+9tT*-*=I;@GMY7z(Eskulv614i ziU7k&hq8;Fm+4r}WAz2a@fytzXMma|djhY81x1hCEnKnT$rWeA^FFDU6sii(Q}|b$ zSw9;;n}(NIUCGosRz-=#;W2tz0KWTLyx`?0)Gw8sA%r;0$1}t$I90R|oh1GMHJwTI zSLGAOrwf@%k+ITP0zhwLZRqmKE~Jm4;%1g?S0zmB?AH^6d|+0U6G*XRw)G77vl0p8 zK4LFMQ*m5cey7~Cl0z@}mLZo-mD3DLpWdz5->P03Y0g>0c?9^;JAjBIW&O{!bW)U_ zlRc^~tm!`(dH!9B;7GGmATwc|f?P&2 zd{ps4fx^O<(kwUpS5k0JVTjIhTsA#dLd^(ZhWAi=SJTYBu{_vU^(16zB7^}3#Pq!x zA&K7I@9$AX5V*1Xd(^>|hWl;3tIl`3&;*c#^trzEADp;WGcxKLNg|}O-$B0Ty+N7+ zaOV%@cI)1yY|BO~i^T@aBrF&WM5zY#fphCHFz}SCB!C%McL1HX8`i_ZWztQI4K#XG zJ&Sva(LOJt&fAJ|>=qqB!$xlC9>s^iuSPX;IZ9k(XDM@IIm{mz`eAHD)8Yaq5-82V zy?`GzZ{cqU9wIp7Fc@~>DKMC6<_x%*m<9?>{{Y^$=NGRJ*?ZlaM z;yn8@nt95B<;I|fu{OW8Wf*^_-xK5Urxzwzqe6xelpq7~YTlT?96lVldlQGtu^H5I z;w2qkL1XW~wPq4{tK}XyEW$Sp=VY{#xh0u$)p2=t za|nVm`+{$)=lj(MA9xVu$22&ST=PEi=krM{E_xr2ddM+;ATk~{;;Ep^aih#xy-36F zzS|$#wg(Sp5=$C5Q>BmEdW!qr21w(_>^^Uh`OjvN;m-h`6**^$Twna50?uCPG`^yz z_pO)9&kFe-aSZvd2;lIrO0s~sg$fx*#@4LcFyP#$iEzYbY<%tPPeMJfSKd?QF>wB9 zkl6Th)g+z%CK>0&I6*#c{{y`5bs&j*`O% zvsG{xBDgD+xnktpGlU`{*OjDgOi#b|tdcw$L;@JVu-J;aV$ZKa9gn?JOQ1cke|qNK zl~P1jLJFzv-l^qpSD+4^2&q}^eJye9YMy4&zN6Q$s8WL;9B$#ru^m7aXU0S4ZKwIJ z10I5}vP5L{6|nggZp?7)5e(zdPR7-!n0=W3AvH|Wpa5U`8l=U^I;#L|*4$dFvk*~E zg5P$^qO945A%nk`@2&Rr9+jd6mT@i{hB&J&;%rN?ivx;RnNa=7(Cy!?ZN4w@Ys&1i zBA*qN=H7I^Nze^|y}DM9#bFy0hj&qMHgNqb4C9^@;VEKx^Bi0%#xh-2TLc7ku5S-H z*`)EJZQd~C z{{Sq)PWgUo5lFAC&M+{0?s}TgoNbYC-wttd&xg$fiy+jn#zo2e{wv3xE>bZ(oT6W% z%(0k^5O2~ja>Gsg8oBUxcZ;7JK3w_>A+aQVrm`BIg>rNbAHw1A)44jM z0hINT0U}tE#kRwu@dHCJ?doY58Fw#jXgOCkm!HU2MD_=vT&$lBiYSeUHgweN#Tbe1 zKmd;QRvI}Lz#Y0(9Mi#anzsg|id{)zzVsGbGfXL2Y*(vXZB*V{q?&_m+SQQaFmd7| zvxD$`s@paQ#K%ls_N!@*NE|*kL|rzx6>!7i1|l1Igxlh+zoU`H%5Hkvu6a%fEMBm7 z6_$~2M7VG~%_qG)m}9R}{`FEK1E=?=3P$}a26+@kNZ5;hXk0enAHfwiEN&Q{rlHgT z-1MQM5|4dE^r+{1N2`5?#;RAkg+IMRG%`43BW{+pRoE>!`JAS}Z+q338j-uVm`=oP z?^zZr0Ao5N>Dy|tW7Z^*%Q0O&0Uc|ysxu=L%`mZHv93{-Rhzl1P9`{H!~le!i*+?$ znd7k7$=!>BRqRdeb5v8x%u7Zrpo^33UOctP(kM8a5fDr^3?i#Wq`uv2BgiCaFfoxO z$w6S%hVeT|45Ca%=)?uzrDa?!BV4u*GE4ew4f|Jb4c0>$42KIUgJ9RcTAau`kyNoN z+#(xarAj1bx(Bl@eSI8>Lu)p+z|e)Y)z4G5-Kb=ggQ79psqantf&oTC3GY*2DG`D6 zn-6MqQ*sHv!Kjv2`;?Ny-ianFX1?dG>VjgL{bT?J#8Z}7*P;9hc!!!93lOASi%>Q6 z-(m-D^j!j;StleqgKCmBlJ?kLcl=Q@klIy7p7epx*S^-+T7Y*UP)Be+Y2gR~btIF} z-lLWyD(fx>!98j_$r)Q*4{v$`ugyAvEx&4+Omb~D)*FFT%VrAEld<07oXaW#s7VK{ zX0!=Um#FAnwQWqQ44Ob2d-teNxnEVsAcDY;b6EkbFavp4YL(=SAV~HA_NZP$ zR3F^?P%BAtZP((2q*R<@DGFC(-ic+7+S*HBpfv#!IZ!~b9fc6Wb=1SA*EAG~UUiJv zjfnJ`j!A>qgw)+gsXT=?y_@ExSmRUZ0DJ91q76>Ou<568I@8A^61NTWe)T^43UpvynU?^v8hZ_yot-Yv= zfNVvHptA0YSR;sYI4=3U%*lOB$fE zfCWU%BW7*L0`?VqFGS2%_Wrgs%(ssB?@_O*R9@!S{Lo5qBxwpq&&5hWIbCJ3y?{Fk z0_Ef=;BDXBQz2yvtZr?!KavROYu0&E{0HA#5FtlV)8p!`-%xl*s?v1_9BJA1f4|f{b)2hHMTbS_@Q*%9f%htPrVa) zExV6bPPDYS7QKP!Xi^b_EzsC?3I|G+VOV!&y~Prj7cF3VZ$JwJcO$0OJ!k{f{{WuABl?1UL1!+(QPM>Rh(=h<=`&yr4vki~617B8%u9uT#>1DBYNqW7D{zZAWl-sHD;mkZei!>rzHY9-=yQy#W4Qn)lw_ z=@mAy+TPUqwR%Gf`%wTo6Vs@*0T~64-T0>;(Up(dE-4!U*Y}|NB@Cc+v8HL66YRYJOm?>YX@De)o}1HMoCfH9sS|76 zw0eOF%+aRw4Jdb4lG>)&=f= zr8bW0Y)@V4pBIT;Vl~_Wy3%^Xm+YB6#$J|^Sb23Q$cQQVD)eX9e{xtApFA%sj#?sOXg zSUz>e(c`2kGuVJhVBJMnv3yaz;+|IDVoiXriRArBT}7SNG>qVJW+NXVX$d-S_nX`H zr-wX}Wzt=wQf?CcD_+UPVA>SK5JOzL3tRs6U6Sz}QUf$^=B@tg+PtyzTYG0tDva;- zbC(7=je)(1{?%E5#?2#;O8|Q9-mu7czX=3D;v6d8;jg`2@Z3>{DXlRBNn71W+uHT& zhIqHxnp9<2d}DcLFiEi78j4)SK`kmjmwVhEm5etOnC%(GSUYXL^-YT6fD13`KwvD^ zZL6d5V7^RnOv)cNKs>|*s~@?jf5c^t*<-~bhTVbf@mPa#L@t5_oVgu==}|ux!jcH) zm(+V-rFq|#AK85~G?OzPmk`_^QDEJL3C&g5%#tRS>|1|>SSDe`k|{2@-3zC6?`oz0 z0G(p<1T06(UahH)#1sK5|)iY&OI2`GnF`LuHIR7 zYmH$-mG(Q;4E&(NVgzd@0JvZCKJD{ana}d=W*kN)M~|pRU@A;DeUt*RYaqGwi(g0{ z^`C1x`m^~lTt6qW$(bSmC5YC6Z&w^ACNin#NMxBzEpw@37f)#92(zm>Gm-`xiE@_|zNOJxq(E5R;JkVo4yvK?IK|&|D2R9_Fl>kB1-N zE(Zw!^A*cTRjyfUZB3j&>-sgtMA{nRP>=6W$;G*L6Hw~J5pbKOcX+T_k5?n?)besh zJUAD_7Lwq3iRn^4ZBRwYc%yS3W|2Iq`h!H9D&KAEYRj2qkm0=SW@8vxcMhyB7rxbJ z#qmZ56O6mf5~Z}p$eXf`m-(cWBB>d9CR@3C$_BvV^hpaKd4!Tkji|~$%12?+x{H<> z6wvU>UDaSwrYMkD4fi#qxKlpD;V~bp!D6rG{{Yc*{HLX@T>;DQG5Ap<1RJP27x_ut z-n||)VOCf-KFwF-{{Rh(m%;BAPaMGtU?gGhq*#BweCAIqSiT^}nB4$4#`(VXucD8s zCl%l_4+lIp36rk0+Zn zvC=zl!JaBC1``A%V1{8Dh6%B2j<>Gy;1)T^Y(5Tko&{g}g>F5Ka36WV3D|Uu=v`t?AHMfGE#8vJhX@qfOI$B=B*fvpAQs)^)UV?q<^(}RFg+% zObn|76UGb;q_me{I&J=yT@0{B%Cf{1F2cg(Rj(78z8+y2Pe=yK8PaGlS>QOqhj5{p zZiK&2d)1>U(VJzG!6Pg%tBBb8TKgKfM$Wb^VhF1qSv)brACrnQvmNX%pnhuMh?)eH zoJ56Ux2I29!%dpxi$5FYMjS36LxcuLP_ar{+Be+%)`syEGPBF?)K8CmD`ByvC-R8a z>Q~ik_WAj(zsA|CVX%_s(T_4%?69L7057?>eXE{%^PG&wgRywrU-3~T(I&Dl>jicP zt%()OBy?rS^9RL?O*bA*EZKWNq9s`MY|24QIkRf%GTXav8&X`C7FgI74-qRH^2R< z@+_T8N0s4aD#U_H4@`sRuUOt3d?b?NmI7ia>(F{1irbP*%4R2+Ad3`WGmuer9V|d) z_N!Z9n;(d5Brw?OxoaC6{{W?3bKH*|i^ciac<*)eD~l4flJHJN17MyEe9^Vs5>$Ps zu)RsiMOjy8DRWmWn=0aLP7+vxd2T@i->qUZ62x!#t*_#50TvIBWy7>!83}V^*0p@N zLZ;vnKNa)xMYeZ~NTu8x+MP=e=BZx{z!0LF^zt9&Hux3Gi#5ptt^wMl^PPHaOdxPC zZK=dWn;OzgHir|rwceb|AvPqN_a>K>y{*!ghVCu-r86TIJsAEeQ7mV;y*7d`V0zFD zuIfp-_^DyUvbC>od(>qtb{msLps^!P{q0p+1j88i-t{b5kpKo$e|n`c5CH<5BX_MQ zV7aDp{g&hNQVjHwV7)$S&=vX%@9jhp`l}zsDHhpzkBH|2+D(toTBw7H-3cnrw&}fN zs99f4$h8vdz01)gEtlE&h|1Az#TJP-Ywhh;-{=?g;@nIiD4m6l_B8QvRxeh+Jl|E@*Ria1 zqkph9ukT59D%f9c{i<@V!I00zc*ku;uiDq?QA@?R_D~F@k<Fw6A{{Vz7mqp@C zQk!|dzVz?K7^xFPkG-rI8nui(i*cas)|kS_V!QiP+xRagT+=_q#zLg0;^v97mvg8S z_S&tUOWNRer;Qrc?t4~}7Rvts@tjJ4Jkz&dnr6$@G5uxwC;EJKM0&Xf;;MM76-i!DJ!wa2anm~bt$=_<*e36bxb37(C zXJHv~xuoQGX_pP}5ZIQZ0 zdz()rSQy$VEI=buFK?Q*@COj%V$b1?nmJje(iSs)uhjch+lgM;UF1RtTQbBt-mLt! z%hw6Tm}vqmY$PBO-K~A=F^-Nc+Ow{C72*dq;H-M!vAE;Pe!bt3tgiLmPk6Gteq zL#o4b+PO+CqGHO^qtHB`h2p{j0bN(ITVHCdlZNuyu;f7D4{=zR14wghG+EXIGS;}1 zRv^i6E#Fk=^*WDv|{*cG{wwi!%1?xd1q^iCRUvqi^R@1{40`tK=|jG zR}le2BuHJO@2CO4O7qtw#K#^`(IgrpkRKvO8g=}Td)KBM{K=z(lKen(JUgV3V4dGk zxGDvRA2sHd2g%HMRuseKYZw!mgyfcDg8q^_ek;+2sPOqIsUryDGTud&%F#$zupNFX zrbklD*}?>?f(G3_o%q7u-Keb&4Wio&;lU>#k-ok@&OheU|?~D z9O{q*9-Hc0`nr2>Ud2i$1+&ubTVlp(hRU%SgQybWuX#Z>O8h-@cAwu8oEMB z0_aseEGw6IGY=jkFvCk6C-n2-(n5`Ivq-S`u7lt?^DNpZ;6PRwS9Bv~9j#w4BIVii zaN6j~@BgF31DzI8E)~HYmGM-t5#csTq-OIF6=IBItst#5@E9Ve8u%h zdf&BqXC}0dR8{s~=4Hb|)5-xO=W5ox-_M>78^+#JlDsS-^4i9)d~e0`BqIffVjQ>f zovm0FWDY7RA2DZ?o0bi@RjlL2{{SXuBi4>O`cv?q1aTKN_}4Pba=0YVaG8|j4#6^LX(JOm0QS z;`K)kWMY@iB-_1t6k0t$1y(x^9vceSg7(wYRwbC@n-wz+XF{ETtLA^7!1;4wqPw$v z^sHe^><@Fk)!GrXWtF&mJc2PKm(y*ks$4QQ95iO$^%fRfPA=F|29@Y-RoMJ7!r??^ z0Ae>LqkA$~@d~#pIs;Mtr+?a|oz>q+?be`oW+hes0BY!v9my-W@9jY#HuZa6m>o8` zJ5b^t=cbACnabY<@!Pv~tHN!|&XkW_~*x7nkvHDMNmJ=@JZg4Ov%!h-y+!~=mA$%N=WlxSVR4Fbdp!A6rzI51li(|x{KnyCPIUO2&Y;Fm1*OB} zP)8c6Bjg+JTrJ|S=#%0HlvvzHJb7Ksm*VI$!f`m5A%x-c2#_0=LL1aT-)mmIj7&k4 znI&RL?oH~SFv+m^s3kE(r_GG4v9a{X2(btDzxA!d$&_WTgz!dDrP<6MNse=KFPa`5 zaTy0Qa|}joa-2v^yEw(~B+**>8vE)~aBo|io}B#Q?nH3v@dj;-h8gFR%fgIAffSMd z0BVPjJ{|ZE!?Nd5a2&X(;m+}`ikAT-rJ{k4RX}uz2^mY*Nu7a#l(SQ9*wGX)rSx1jItYsm|=j`O7xk9kG( z-sZQ|uYiB?;}^#HM+#u(%_fH{!HlrGv~jhymkcd(4Q?0u0%lxM9trsS#N@cia`*&L z0hjJ09TXD%D@u3{`kQgbf|;|Q3OxSFMlUMLF*7btpWtHEI5ZhVn)~`7xQZewI zz|t;Bs~;EUcwQQUTx7U_p*{Wms|mR}G}RL*0BzomIaL8eaDHnW;XYwyJWYr=TroPv z=i0B+?zanOzQ*;cXoXQ|*eNS>+}@zaVDikz1twRVU?at0r36U?iU=Zx68`|sMaZIM zTZ5~58R)`ag!#L`2{v8GZfgGkhGo+^Wx!_HXvMA^_tB|_k?=jMpL|07KY8=wn>87a zI6Pfvc(`I>(Pel@Mjr_s`v}z9y4<@4)Sv^>_UloEZO2>nwQVKUCOI_wJk{dwpaGgj z%<>L-;zN*2MJ5Ov-~RwmZ}zQU%+I4Qh@6fnpvd@*v9Mv5(TS%v1FgUZZ^e4@3q(ei z>Ngj?S~!v!Cs#geZic`uZZfS>qDoKpc!kE^0lZe_7*FtQKL|^Uo(qML%5w z_}{``jGh<5F)|1y!AIp4 zAjYZ%u0Iv%j!3WVqm-P_o6aubUMS(r=4=NOWcZvWDO>oFVk0WR{`GL-{0qav_{>X3 ze@|O7;qVz+Td54JpANFBapD>yf=!=L{Z|9v>J!n z0o+kZHepWP9K?OC(D$v!$XqU3+$EUFi&9*rk#t;N^V+oJrqU5^hig{gY@~|-eg0{L z^Las7><-3{2Qztw6;f}|+NP{qB+M{V%uIxxPHs*6RD?h9u*h_PEE@G!lsm}wm>U3Y z4HPm$AN295xo^7HwQ7Y~HeZzm!dweqFRtCH zq8=b=aYiP>pD3N4_qgd&_FdTcEDje7IgVBejnG>9uTkf?Sg^A$CI_(S6pgl~#mOcc z5G9pEF0VqL?MFJMX9A)!BNM5$bsqw$szgr+o(Q8!Jl#N&ZLmG6iEwzJeNrgWZzrg2 zRk?hzhw_QKsURPLL!3y^rmQqzd8_`Et0f~J%_NPnEEJP-u{-LkMr08pX;@g3(ysH9 zBben@C3n5QwOVt?ne{^$AQ650RvFH=V^4>7b^zMjgW95%XE=5UZ*jP)#*BzsLAm_a zb>aJy*zRv}Aj$CFn85~e1^qq6RUSdhinCIFnsk#;Q*Oix&N*|P=2<+eHeQl>gpJZO zV_t-EufP{Au(&kDHb)2xW=Sy#t)F3izc;O^k@!yK#!-ckVE8Koso7TkO@*(ywRDaM zN3(!XACJBzuMoVFhWmE@VrN`yKXU|_62HNN;Kn%+71Z!P^l2<4gX4-X<~X(Ym||G=mTuTidm8&mSJC z!1Q9xIXgUL<~~j1%bZUXcwCo=F<7A)4>BV{2<`zDk7V8&KCxUiG;?q!eaCnlJXZ3s zosB^u`5+RcOJwg%AZji529IKOY;^4`cEtDDh{F zd^NsAK61o~8QzdX2GgSdl%Imy6Stb-4X4K@o2 zF)a=m+Tp?;pf_87Yono#3^U#E=)(5^i;Ap|4~BLUEGVSzLanKh#!=|zry{EbhlL=D z6*~dixF_qu;%}SWndR04mb{|kSIco()1prJQT%xWAGKI?uKK{BX;EZdR&Lei$Br&z za<`q|QGQo&KM@Q>f2QJ3&}Min#|%+OP+1L|s4ZX*&2fadPWv?N$7Zzfsq_<0dT_P} zn?58tm77hE&M@hSmk18=>K7rIw87_^LVa{1uYsxh5-ijbO~Ac-Q{`nR0*DyTq^m06C;$FJtMa;bx4P zE}%AoENcrsMEf?O6OlX*eIj`);P0ClUTkn*8)q`(p^ixA!Oe)g69yJKme=_k_O7+g z2>$>SB(1d&MK)Mfb0s3%KH{G_yqUuyCA5*XVsn(|Y^f-cXY6!EsO$iuVg^b|bQC;7 zRHQzTJtKN2vB_T%va5(C0d7alQb2!*-kzj8-lrw&N9wzl5&*twrA_&YGgJ~JJV;qedD8RHH9wMjQFcnBbK!Z-lChW-MB{e^jD z-vBAec~wORprhC32b*TfEZt;#dBT`IL4Koa(SuKQ9Sd2G;2_hd@p@z>O|5F}@^Ug9u06Y7e?`^9q z;Z7aIVzOB?GAyWW2SVS9wPE;fMvw_k$EmEPa{-rSQRVO`3=`L5wPk48K&|CUG?Lc% z=~eOO660)=SQQ;=g%PAWQ>hmqu!kKA z0;$v!y)@aLJ_I2{I}y6pSkcdw9Wp`uCIiq{(^T1>O%7udYY|4{{*flc{8!6|l^IXm zk5k1XtAujhi64n(KW5Y3HqHAJ& zwJmtS`S+^qgCoH)oAtA=@T1eF{{V5XJ!6l#t(`W@WIw42Rv8>E%G&n^sB=g$7$Z7k zBLS`HV0HqtjH?NjNM!voukh_?&*H57!oWio5;<9IBZ4eFt=_eZ$X>4$jLJGNwVpLW zCghFQsYe@e4-V!lnq@hZ(9Vr?mMI7zkHM;`VnL!X2-~=-e5ZsnE-~UrcxNlaGtY>7 z3kvtRMrxVo?wVGc4ZL!nkP5{N&WzSYuR6#lOHe*lb5QO((~ z6X9`6UJPUyU6Q+@m`MjZTi6YUe7!(LCp?k^KU4FJ&h%NRz`7Xn3j8z5fO+z#bMbW z(!0T)0tHSY-n%EW>Fcd7BeN}mB3y)OKO%UBKc0z!@NZL5x73kzS9&mpXqw&sZhQ{UZk^Z6GusB2|jm5MLS`^;q{`*$-<0->& z)-qdcBSa_U3ecRB@LA!{!|xYh_~Vm&zQN>qrU3H_mmP|e9f&36 zk+n$2xxI10FaS85ZHx^#pgXOeFEiG;w=JkUvk) ztbZsxDB(Z(RJp>qulau=nc>K|jbkK6fypt*7u9Rt#>TxT^gi(6;#9?&a?>q?gmc!M%O*PmhPq9Ak{Ll2%6KpM zV!6AD%^S|~9f88&%Uo#7wGux9Kr7KTgEQrHSjuTt9ab=$F8np+QR>C>lO|9F$!uZ*2hR27Z!o{%l;^HPmz-At_<+l^Nds+#e7WH# z_Yx6U_YD64!)M}~8e9Hj=0011P*43mY+L*9T$TuYOnQ?29>H)&h^|X>8di&gIfs?w z{X*vri$?zdLs_Z_(ei0ob%U~!SnE*}c4t17Dk zRfevF0xQ&RFGix=*()`c-FBvqJx2E+4|*u$4n_Uy zOOdwPZ_o;b7=;UU=mzx+^OW@{?Xjbu5CG5zUX?{4d1TN5>%ENtSr;=hPG07-WB8L> zNsWWb!z^*!vjcrKtGI_Y%kkV%jN^VR%w|@WZE@fWSSTGX4QISX!9zVraR|gug_B$) z5wWZXnf#~Yjw{8cFD)>~I^BHP5ZK?`3gwp{HKTCJ#hT;9cZohM;+($$!u&UiFlEOZ z6m!I)+S5=5;<^i;9PZ%07Ue2o*NE_h~Agxi6cZ2K;Gc_?dH@Zx&;7R%Rycm_Eb*0FAjH(!O*)osr~ny1gEsUJ_e2 z&mQy293Edk4rSa!8sPCVTM$Ky0Dsc7pEJ3K!h9(VnS*BNzH$=;40M-1_N`yVz8d^k zWizu!kjt^WlX>NVxb__@PjgGd=ZS1q8Y#2>8OXsQy>Hm_dTm}LCZcl5bJW(}@eP5@GMv8(F>c@age{~K>EFHURAn)v z;}E#&-A{V@UN$w45~GZrNWKgfA|zQP9*cFgO9~g4%5!i#dsTiV*E`>eY4vfV7h}r3T}rjYA|8AsPwadkWb$ zR!uUyDjn3`_w7Pt!^ekY5$YiNP3k3CUJp!W;M-wC0y4V=Q*d{v)s`Y3`HLc@x7g8{ z+BDKZ8hTv!so{lXA;Xbw{it&|@bS12NJ%5qG}cmVw2FNb&2p)0k5DyT1c?S3G)4vc zpKpq!4KO-TZ1f7V!-p*u%ZAum)MjPq6&MJ!5RV`{qP(wrVUUMm(7DNUJ}+$rz1S~$lxh2$xOm(2>+j!?F+t>BLd z>!UO1qs2+(pk#2XYgq1041Qn>E3Z?~^tDn)i<)M?+@Nn&eqzgq8VLkkvh}ZPZ6nTI zvX?*gLK|Fa3Ob6cj~|$c9}gVFB0cvT+uDO6!s6n|&S4x3;kQtt`hIGY6~qEI((7p& z_h2`#Jfq2;h`NT$xX zijNVW<8cpSh_)i#yDOuQBxby_=8ijoIAb!(;KRn>s%=`_Ud#oBy@gQWyjydJg>b*&`BxG@l5Q0a z#Yg9@T5$L{u~|E;2pUuNh3{CSaAy(bn1)C)x!CSOR3shi%`X=YNpfo0wKkElvOgPM zA+UJgCk@9l2uQJvD7)X>+P4QLJX3QkG|XcE0G+s(&%@#!LPI~RLtm|EE*0?o%)H2^ zA|4dP?zg;=6;QwCC)&36FZ?_639$%+AjK#V-^}t!5)tj~Tr&MX4Dq^2GiyCMJxk=b zi~JmXr^4`zoL7Vnsl0J7sBP`-Tk9g`P7f8~!SgJ45TnLWrIdiAo}ayWfxvzgIrW)C zgj}C4#Xw|GWGq|OJ1*6^_!GkSiEJ~&mT?wonn#v1+~LL{%wyim?_VZ94rsp5O3S0D zIdht2nXH&p$+H9@XJ0m3-oTOES6t#?$@2UT77Q>$Xpn}C+_uAi>s&|6zD9Fvgz+)Y z4ph;{=~&Q{>I1p?uAt?%3yE;}1x_HwyXa5^ci10l-X9w#IombrsYJN*pOxG(&rV%t z9KYgxwi)BaK*9%=e%H3ddv9v;>ze)(ymk0g;@SAqlu=EF!C|fw^s<+Y)O0N#_u9Qd z<`*|PZORM;INo9LZW}Kch6{&T+zmwZ?^PH+JjnRBElFdS4~xNKQt_DpD#}2%_4lxO zQt|QeoNh1nc;${6C(8DC*O>i8KB$>iIOW-HLb%sQvjoc6Ufo4*u1uYrQuSxQ*0_C(guh!uB9{`dcQ#gzp-m-oa;qDN?O3#Afyd-XK zsEEeqxM$De$@^hO;f85#o=I`%)t~AblSvzLfAlk zUxme9=MfAmf9fkTpO5L%hQfsTZI`T;30nso%?mD}e^-B+xD_j9?0a6GDV9^Mc3XN^ z+MR8yNF93Kyn8(sTGLD5=a;x_ZYMh6{8le7o_mms zDQMK4?_={@F@tHj?d)p(!MZVUVsO%dZ5IrCR-=-5){M#uNaW6K{Wo*|ZsA%i_n-LO zGBMg1BC>()U`P7ayUPBF9G1ai;+u&1g_>p{A6mWCH@$Z@Jym63marzRvZJ$UEPn#M zQS$S~H5W+d=)<;au3h*!@cGIP6~pk~3hzZ${t+L8I3q+45@1c zF%7FFVJGd{iBOOM01tat7n>(`UJ(5lY@Cke#00!)<}YVV*gPheix9-)@y=Vbp21 z^eZ5WLdeXm()H)~Hgo5Rt|@+7^Q}0O6NjBJ6T*DSql}f*4%_@!I&-`05sl^EE`A!} z-d5tXXN+k~Pn1_*<7)5h>xH;?ity55IFl@k5{G6IC^x@ewS|B3qxg1?X2dryuoB5B zCPHxF*!=J8JL9&R_(SDc*v^YJ*YRN^q0EG%}JV`9t)ze>kASBkQp zd+}5}2bAzeIw|It_|q5=5SVc!pza28&Hwr?v87gy%4d_T#~Sa8F6 zxi19ZFtUNPkm1x5``V=Zj17BYVd9hRoLdjm11^&WC&pp?#hq45HX!V6($@a~e)VR? zcmc_>Rctg|GV^r-Seo=K<=A%tCd00fwpAUfpBckg3{kqMQa89-^Qpyr5?(xHdDDjQ z8N=9|ax!F6V004Ahm12RCf(2Cvb>AHHwR*|B{K|;MUF-#qH*c=zSZ30gmTt5@==Yq zy4s0&TP_1n>CNr6S2*8Ah8K^faz& zOD$4o9}lXhhpr38HUp6IQ zZatjg9LifX--n+EJXOpdVy8bj*O|+hW)5{>W0-m&U;QGw=L?eIvbaVU4TcD+wpz?H zt{cGQkw+F=heU*}f~wlAxPX8N({24%uPey%c6w@yWT>$KqrZ9^`gS+{s!5cM@6i7M zN{Fq!L#KL#9}j27#~B;D04plaxNi!XW~~dUfV11ZV)!s*$KlisjGLco*g4cN{{YLO zK-6@ul6zMvwxo?Nja!JrMGhs4EwuY|+PSyJUl!#fKU~)>nG0d?DM)8f2KTv^S&VP^Qr@C%%@SVaY6RwRZV!+OZ1<);&_E?ia~DX}jp z^5s@w78`Z^)U$FwiXKwU7*QD3N~qa;*PAbkh05ft#4^q+W|Pdge~ELPRG6r7__vE>KJ^_Xy0W5?4z8zjj%pEXFJ8cr4|+Qqt9p7ovN+`Y=O>5~nP$BaN?LGs0$ zzgpft8+kp$65*4Hh7lzF9HpVMi>dc-fBmZ&d|w^M-4nEP&*0cT3i(;axjs;4;)5#* z3QF&YlJ1_u=ia*yD8RZ$8PKbA8cpj}@?8@hJh28tsRx-F?W7L&t<#iY0fl8#vWsdy z)r?rYn3-P6?n@t2{4l^h7zh5RqfWPB1nn=E-%!M^)`_bdRdLT zUb?z!jU`CR@VsvF0EM4G_o}>a6k&0=P@r6aVYRCh!y`yTDL1!E)nWx*fa_eiMKf2T zSDECwBEt0x6=ty{eACLrjS9o&qay5XYh)vr)&`!yO^}s>W{-LXS zw)riI7iBgZ*bVCMj>3kM_=3&a$7-XC3nDP`uW)_qW*wHED8nM~#xY>SfZBhA%+>{u zy>fRuIR(t_A&(cDa9XkPw4gzA;h?1 zPw!X+z8m<%h4_d?#yQqC-wrS2VjZp*wTbF0(td37_kl(}STg(^G3sOG!5H-w9oo4A z#V3dij}eMF(Zk5nVWS}<)9GdQ9_F}t8S=GJU;Gm$D8*@*zCpuFli|_gf=5MQW+!7} zHtSg)O@fVaTEuq`CC8L3*1t-_xI39m#(6Axu3Zd*IUx?qF#xTUi^O#v6VpeBb zgu-KG@}e4J5jKl|-mJNg)gzztBP zhz}FxX`5ir@L5!l&A#IMR#c=cYPPt(#0vG|amfx#pyH8JHZ|ThF*5;vq*WaAOs%b5 z{(V&;l~(LjZPK8gLnMRCUC&=?>SQQOGwQ!uxaFoOr3)jUQRsVB3Sj36tebD?wKTYw z!^^0){VCXL%!!#8X(}p@6Qyp9cL!>>jOs#`JA0aqapx4;^&MC5QD})#biyvNX>GrH znPwPp6fV^k02!eYSc`R|XpN2QFS5OrK6)~0Qa7hZy4|Xd1~C&ExHV9O-o?9jsAZ}K zSiHuy$Td$Qc}!K0TB?!kn;N5eEZ(7iniUcTvTbd;(q{k?1-O+i(C0BmY;AtWIi4!c*_ID(<0 zI@^2n6pHI$S*_n{W_Bd1pW2xN9>>`2Kvb$D0HAO9qlXP}%`y-GxUs5qlSu@09e1jP zpHN_KLY{}cO@d;e5P^z|b+rpc85=dd$Q^1n#H%)z1P=D0l0jfYwwu)iiySQ1WNyF8 zXp9IHlBB5jH4|b~?;6-&dT-RW{<2gZs!{dxKO4vAeiBEH~G)+5Z=9jLV(AT{g=Cb9~K zfr$#OP8HYC#^iidQO}{S>}*E&?NY^vSqKF6=|CI;MYxjS4&tTN*2`hmgf)e%EO-3U z5(X9ne`7(=K-_##uml}r)836Vl(9~m+LL;(>Dcw4BM~a5%W>L>C>I5V$4gUyZ+@2T zQTmA?PW?Ba=obae@6)LiXygmqVcvv-tJda_ZM2X#8`^}l1lWm)46&V#_7ueHj1786 zV|p^E#au~m{Wt4I3R=c6PrV8hM^=>!VQ!*`$EaK}q$~!)oRQImfULIc5Hc$pFecq8 z!64}t8&SK4Hc@Yy2i0Ow?gzDKbP}i=7r(Hh2G&$h&h;8d3lK%@I?EVomxHKp3zVMWldVSO-sVPg6*OL9ns6T0?az zE<*L70qn9A?QN;l+}&<%Pb#nliQ3x=5X9L*up@dA_Bf9F9k;!WK9Q`IkN`-qqCsuh zuWxZkkayB3UVxONpHV)Z)GR_rbsK}$pUk@(+TPV1jUiwPYz>JNC85NONjB7afCUj| z37{$1T+?YI?6temSh2Vrx?Y4`g0^J@uTGa1roX_wx{4yqPUH6Wpmt^SlfUxXfp#{a z+p|f3gGz|S89&YY3RE;tW4TtbJ+Du(z0Tw2lP!+s{{S>BLf+kLk4)$zusdJknN*$G zY(1$0S$A!%LhR&ew@%`;2hyvt-siZc5h!hi_n{LZI-6}f8`R2*NnzIC)_{o#)_otn z832&lP5vmtn-jeXma!+L0P09ktld4S!64insC5fmcA`&8lc!_70O3LJYkx7P3;?m- z)CGmYfOn!21N^_50E4MIm2GcxKyF3t`_e2{_NENle`=NnB{w7Yy)!-bBL4urI66RL zpPFK#{-Q`H({9y3i7J~5QXpx$r?cA4Z~M?mDMr*b0BvsOpd65-Ugq=+4eW!jxu?@_ zbH3*Ek(HUO%h$C<&>X}H5NX%zki_XA?c7o<%x$%YTC1QuY87l6;`E49 zeYf|uGTX4}&`|(fpPy==5_Fqie}PUc%Wv;Qs5_m9y)aR50k`i!F=AMQupRAB*Jd}p zCIfqpo$2gtxu6A07T$}X-+E;oZPN7h0I$wHH7D zg&2;cnlMiKK(#Ym?{ER?X@T3+b{#5!ffu`u^v=YeN!)g|GdMf3pg4teHY8hOedWtuWHlqaUAmEOerLbsYwK#uR)69U)28q z4p)-ebr(i98hhKlNacS9o-fh4ADfBC3(DzpZ}v5rc`T0-T^$K8GqCaEq`*NUhblD{Ct>mLR;*t&utZAVsgu%dKo%?w zbM)N6%w~|JSodU6X+sM#>^f9`^X_6kGM(hJ8-6LOr zdgVOQ_+n5}H=ySJTPaDQ8bE7WL%!b?EL_;Z#%9dj_aFeP(#N%Ej0SNwIw2~Cl2C50 zjcs2wd&}g+Vo~uD&-?{j$b|24+PV7qKW3u{zRjfk$cZN&q}EOJhqaXa(!%p62?}af zSdnk$6*`MnlE!CP{9Mw?nxg<&W0?CM)eISiXz+QDD=pk=2>T7_vdI_IiMkIq7aOQP z45FKnA#LnBZ9x||F*3yM=E8`hc^23FR+_|SIJ`uqCd<9ycEw$Z@i0BnAh+`-;@r zt{POG*kiUnzl>KTvla`@}!Ay@w%N7M?IM>{MCkIA(-Mku@Evy zhkZBc(|>A*G{9%LsgekC*q0S$Nabg;C_VmfT~yobJX)SED=!fy^@gRbgZ?6C^lwNeTY|G5fDyQ^K9-=LJU}ePT1m%X}ba_Lc`+w=1`|Qj79xpyM6#oEcTzGNCLyk!2i_DH>bx;)SN|1UQ^edG4 zraOoDa|w@ZOo8McxIwys-u1wq72-#Z7LyMmv*{yJY|C-Ib}t9{k%+kl@F+L)=!o%(%8c zC>%Z^;CBF)kO8C)rm(!%nNohFVWP*oLe4_^^%)57@m>hUwsmbJZCuBTF>}l#@IZj6AisZ=LJ9$7eZDM^W(CALYwG_;y>E;pZWUWd!x^Me66C@xB=Zct`*a zr*~%_uYcOPSAhASh|FX2@@!B^e32ukV}7Fk`&Ma{@kAJi-!a5Hm-1|pmbuk>OB;`3 zGqXD5zAwa1sP6=(HpE+0E2vuE+O)?s_|h17UQ8i|BdOWqX;fSg4S}r3Jj~uKnHou0 zO)&uw8*lPIdcb+RnP4HwSM`dB@nIymnj3}c2>H0Zahxp%-JWfDg2u~?YM(GnE?bn#j+Q0EVF2~CD|-)`rkjazIi@N|!}(fR5QTj= z{{X#J;vt_g%TpvTD?^Ev&t>~9-27KAFXZhO{!VA-hFd0c#K$qhD@h320>Z?v?^tNy z++#$~`cu0b4Xd;;9u2epU`G}yFi1m#p`EOxUv8bM{gwCw&*X7~#6*~A;6KH*0nxt~ z?OKd+e6zAl;K9Iol#*!}DG`aVEH);NZe8avxLL3dd)n)`uSRemPn}p-!klu%#D`e~ zU@os}xDTg{(8e$s)?tQ8V;6VBDJDRA168jbIs;ZOZ)+&MMEn_g^f@fhQSIb6)Fg_V}kA?Lxc%wGTuY$|tSrLfDMLPO4`+_Pwr|Hq2;xQ~G%7jzg z2!m{ZU$?=cjvMULdN`vE!dQuL#~SgK9km+@5yG&O$fHQarM!}H6*K2M4YB~5T9{{t&ZcV>>^w%)@b>kqzJ|=t&W)Rje zBCus{m$B{FZ;Hm{`g4A(IF}`jKU+A&28^N=20oyIJKt+olJTXq9GYjH@NiaPh-3+d zkQZ$>WIG?4ykR*_o?>KZqJ=?4xYTS3uT78BFDbyCIjY8y%z(;ayR$jo$8D;*Kc}w; zK>~-#u`N7quZMSv!azTjkF`tj=)V5|(dI&OlN}qhGtZ|$9&?fDQhQ#b&N)k);NeG$ z_@JS3QEn~Ty-~|PpS(XTbITr894UxD#ej>3CvA_lHZ$qJ!_Z;8x52iM;cl(zOYPIR zu6*&PJ;#!h^8Wxe3>;t_hZh7PwNk$XW@74MWqr0~wX4*8!|AOi6B#T5803kb*l94t z-rnVJ{?%WU{WUVoOwmi3<&t9-)}CMheY+ZR@#@UCH2OTb!t%>Foq|V%c?q`amlb)* zxh*wHm;8-vz|)lcm`4W2^~PYm0p9~)s}8w=1`SH!N@}$ilML->^^Js z^1#UozGIMJ!95IZ0Ve+L}ToUul+OL0$ZASk9PJRzC$dcvq#^4aMs{!gA2-~G)=D}r;DJwjq z9HHVdj9k3s&lJoq71yY%wj0C870jyhU~DgCARWoCS2EA1mjL5(*doMa^J5uB)C8~gANtU@eL*$Bg4SY7%e5Qb{`ZO=YY-!%&<`5iv`5S z7SctB3_eccu=C)p5&EB_#Z~1m5z8Zl%Vu?qZoxJ+aEpfwyD;dC490{ir@U1s`r za2yC)XfXHyewW_vG>=|qVA-(EW@Y%*O#=dS1k=S3$b?xwL z*<7c=PcE@?#@MVLr7{*~MgWz!db#6#4RXI5gpIKoYD=Jz5-25-s`4nLmea zGmV*J%4GY8RXr#%yo%#|zXaKr_!G$*3%e-jE846dfL>j$EwMu{ndW8%l75Om^op_Z zSJSJ3W=vKYvb9FW3$)&A4L<-4t+)5A%gDmI3NDW#I1`q+v=haRn*#EAvEQ!CWB#?d zcpod50SslxAj;MwVgB{og_b@X=PH%7=}{)e-&)t2?zMBU`ZW=F^T&W!0-gp3*nYf##~fG z&YiX;yX-sHV0iFZ--5AxRgp-bEJ^yt3v;JX1Q08QqT)5iVkN^q8KV&$NhYg;N}04eKg%s4|g7-$s!xE9n6 zn`;l6`SMn%_hOwLE0t$Bd}auk$k%VW{Y6q{xsD}3jwxAn?Xj#!fH=PdA#6S(L2yNi z^sC-09UdZGLS3uN!kOrEvTQyZ5sH)sEhCfPy-;(9gSdzP00_8)7sHsQgENOMmRu_> zj^S@>R#(DUEIi=LB+4``>`wJ|&65d>$nnr(WDV-t+D&44Dpa~P6{}|t_)+mO z!raT|pDS><{9_E$E5YJ$*`Z|9Y4m9$f0O;|x3g@-;$~zH3X*I^aW~V)k({~Wj&AWs z7-q7?ipONQwrsNsglUB&cDvjB*B1S&vhk@NT^VVJTl8DjvnaW$CN|tQQqPWPSgNM} zfI@=v$OUkZNK01l2#%3&mF`dHvz10n1(r;-r^4;dp$kZdZwG zOd|)<;Ysx^yVqqK@zj^>=XH_U)oB|m1}4_+RXAdFkXvKZ;($iWa^0=9x=>=VX_jE5 z$9h{r5~xn>eT8saS~~QC#NkLLNSCi$3W)%9)J>ZE-n921zM{N>@dwS^$B_I#mS>rN z5M{3{QpJtS*-@G%D*mm&+-z%f<1lR#GeoyHxv=Y1sX@~bX`IFNNaUV3ot_ z{U$FaoMsTQTdRZy>VF`buKHKt$NvB+FAt+EW>_(psAQ5c_i35^t0wVh%^nQl9$RPp zJH>eK(za*A8G*xMB_JSlh}kdxVo0#9bM#6702-6P-Us|N0&z>`IUQ`by?LVKo{dT>U7DkkUrz4~JdDcb z!b8I`=eVp|fsMvy=qGuA{{Z9e2L9EH_>1~fct7X%MT`Fcm-q`0!kk3$>dN!HqA>&E zu?lr0npVKshkl@%=_yf_v^dg6+D$_?z>PQ6wN;xf-Gz=kXz^Epx!2+k>A&?0$}%4n zxMqAjSHaDmVB^x6mI=<4pKY4P*BwQTdppAXPs99Ukl^^IhBGL!S$;nblHn$Zf~<@I z79--gf9px%=Z5*Y!Ms1r{L>W{7JeMZq%s*u5@Hfo14{n@nBKiA^3lU zV#H4?eu5_>5agKdpx9rfx>~zrlxK}fwr3k_Cm(}qU~q{G0yPyD+M>m@YlvYL zhy>W)ow0K$DXf4-`_yLTuE+`a>1wwp*dGoobrbs~zt zDvC_kG|W>EhmC)WB!TN~QjUYipLmNKP1R`jT> zV+qerM`9Mxb8jGWTHrQo5V!ZKo1WZ*h?vhhxNRl9jBT945Bkx~BVQC!aRy9;`QA}d zPU~vIxPu@uxnVKrZlqiHtfxEYHzygMXXc(n*4zZl<09VOYfkf*#g8X=B6zZ#FA-t0 zY;@kZ;J{2I3+xG7+LF(X3fnpQZS-ApZXUwsPz)X_1`!dtLuUT9=9ktZEXr~`!wk4q zbd}<8sKi|?dY^mOf92fC<}Wlj6BC(mFAA)9$Bl$4udJ{a-rcLpzo{M{o#%_OIPP#^ zaS;^-FskZ61RI;*rqwWcm~!PwF#K6Bb2!1285u~miT?mv++31KWZ=wHPd>ntr@iY> zld494^Be73kHh9wip@B89B}9@hqF5qZ~jet;Flu<C053G~WdsXuRj2K)qLoN|WVs-#MkJT^qDWFHr&%C!s>B_B zovQ1WU{Xx4V7_MW*LL`-*l@5I4kB2VL~v9C)ApypLxD*&c^18_LFrT?*N6!g6_CXG znZYD(5PMY|&`FDksf?9k1b3^K5@F(-5&r7Tkhg zVN?@h-z|)ZqVmf#S%vlnsW9+L*oK}vs*-OR9cqRMMiVd%C{|WmI2W)zf8MW5WmH!R z1VL^M_n|DdgpwRtmSzhYCCDRXKkratM7Yl*5RRpYBxwhFmpI3lUnyZEYPPZ8;-J9) z00vbUhSUC1MeRb6V&GW`R$H+9_qLy!vgfNBKuH>y{jGkYulT$sGD9Rt6}5F}g^jBm z;z9aU2vYl4U#LGdnP|gXEx4?{1ChQXPptL_anicu=?%eoFB50kv*U`i(2=EFUd!D6 zYmv;;PlQY&Mng#9L0;tcuGsp1cyRG8$=uQ&WnlS#E+Z_=RZPtj-pShI-+JXN(8l)5 z={$*~cP354$u?lPXrv??ENB+M4%M`H7nNVFSmc`uBn7$?ScV!b?;*g)#T-S$&xFD< zsnka6-uqVa_O{X`Ekgb zI#t6*nw|*%0OAJac7MXl!9Fhv!L8*6(Arb?+=bsJ;hzr>!y$ zePn9U4^rZBA|v|-wP;TkUqJr=3jQEvJX6Z4aXcBE+_Q`r)rOnC=yn}@dsds_{{Z-A zaQHkcJ~y6Dj>D{Rb^eCB`hGm^r$o7=dM-R<_+iK3@fdusof!@%$W3zjd6H~Dtz$VK z)SJPc6EK$}kDS?Ln21611T%>={&e2B&jtSg4ZZ^?;GD)xv&3d$9&I!XxI_AIBh~D~ zRnPUUCBc92-uSq{@g(dy%aUR6uB;9(59Tu!KH&GPM-CVLddtXP7JeQ4LGfNQ zhdEKq+`l%*VAIURVPJ1wi`w8GyVk|c5B~r?br-n=Z}D6w^uzi>@yCHab~iNh{&<|` zC&Eby%M%5qF2s7Z5>IZ`-5G&0W-L@+dgYQT6Qs(UeU(}J2^J8a<=<)vjE5@I*a1PD zN>7x)Y&P1T5ZbU72e)d%=%C=6_!1Pj*b`7;`?ad01{?IPw`)~481?q8L=utd+xMuP zYEmy!k=uRhndI|jF~KsDI|F*r8=AMrkVxv?BuXLZAR@bq8)5O-)bZU#)U>C zb@cS5qAix$vb35qr(u18>sCG>;2bVt6AV@#P`%V?tkrOG1@mT#$~u}1P;CMr2<#22 zS}RtKHJtDU3kq5|pfQkp3b121TL^|sE++zoWERw`y{m9>9#ql;h-BOwbn93)d4iTF zC8KRhNdzxi(v(uOn~%FjjpM#XaOW7yAxw}=EJK$-S%>D^SD3$4-bZEJlFzX1ghq=G znW$(19UA+CUdrO~x#fmO!r<{bmMv`Xp#t4^+Pr1@$@qxEb61{m^4lrPCP=t`={%Ff zRF~hS`i;l+uGsP}RC9RbouiB7U|2H$0AG4bXMIF;_NJ8?9H`g>(wP}=*4yu0dMS`( z#CZV}kUi?S{o+8~`Vmx_7`_(ca5~jQn#JDa`&Rx5Xep2CEXt#8jjFWp&MF)_;u$t^ zed>M~!eHl{&cvH4i?|~7Q=I25m=?>hWkg`<)CS~NmnK<8brZZH8AjP{j|1l-x}m-I zu-H`5erDNtk=eB)T!$Olsb|k; zl3y|)Ry*{z=B~LWcKEC`i-^Fco7>iY;qhNRWAx+E>2qwc;xjqsn^9e_=?C7OBrI(R zCCN{Bcd)1#k z#s2_`8(}2Wy-`^1D_FhR)1pl%#IsKU$lYi-vR!e@V= zf8s=}@)7CiHx;|GJcveaslQ@JO47~kqst5%*>2^(FED%?f=nhFLfRM9LfC5fth+{29-*9iv zwavHQyWTgEqfp>j4Xid5b2z8QE2CJ{yC<+Nvga>n+7J9 zMU8rDb84YUqBoK`gIle)73cXoBF)E~)#a}%BE!$jjyS+&35t_O9kKY8iCw*}#BWu( z7JZWOMg=oY9n9gy;bj+&Y&?OLhqxoHaF^Djm6$$rb3c>(zt3}r!sWS!XD914$zVm$ zU-N7K09x%{NpOZi!5p~Dcu$2gx5H)mb{0H78&KVq6bt;*p0!cSiON#Ek>$bdQ$f5LVS_W9icWlf%mL4jWQ9B!bu1~ zLvLa$H#>u9&A%0G%`iep^^yIknIvg+;P@~RO&QDLkjW>kNSE5IxyLK`TQx}H$K^1r zLQBdti;?U$t;d=0>@U$a-%^iy#`8R|MhYZ)il5>wzom3jIXLL$eslOV;0`0gVrRi* z=@gbG8H^)w*jQH|^Hag5VUSIVT&f2cqAt?99S%K(dYhSGQxOBgk%CFH1KPFcFgbmJ z&ER859rAVsaPu6FS&$evv%17fi=;7oI2F3g8u>wT?Q zc_Q5%6q;0VkBLn48=qzQPA*v1IA)Br2sa^i?^=%z->1i?GcB)vmhVx@ zB*9LaqU-Evtl3usn9iqCci7a+17cgtNiTNT3IqmnsBQKV^{s@a!J z(o3dSAi27WSC*e_@5(78ii|G2S_6s20juo*bor`$^Dj@-s;s_}zs!2kfEN(aBMUL> z>}mLq6C7~CuX!z{taq(POp|vK*0IHgaT61E2KS(hK7-}TP=njOOB#t76TYwWbpoA| zC2*UNee1ehjs@E#&t${k{{X{ek%BPXhUrt|GR!VM9Z@imWa;h=SWC+ctPl&I{avb9 zvn)mx!=$BDi+Xxi9xs$`Go?(q;rK>G!nE+CXpG(7_oau(?-`#`t&Xd)u&QV?oO34A z*qhm}*Y>FKIGN`b4hbqr)Zgt>guYDNQCo}5FxVJ`cv%JYddl?aR+v}L#4(aGH6Kp& zDKi4al#oaafA*>HDG4@^^y+PD(vK8oQm`2#)bWB8ug_Y19uEwPBD)kPsjpW#Z4yeS1Vh{A~T*=@E>h;Fll;WH}E4km9%Zx z^(EyVd*U0PI1X0`?*vw{e3?6C2VkWZ4 zK)rw+EAMCfX?U38-AMVkmQP+yd>(@Go0xeo9AsEtAjz{OmkWu7WP(`O5WtI$m9zL? z5gEnY-I12<@N3EMr&oy1Iq=oYw(!NzztrJ!b&$iCV=;u^1t2>kU-=H!KQ-!q0A>*4 zFyc%;DJO}N>nw6=7VFl(J)0EqON@`Fiz1piJL+M{Ul!THpP4+F;|zRQ2vlDMmQ2dZ z2Yt7!N9m8^OPbulmmSMKZ%Hh;?5x>m#9z!{Hs1dLgI)U`FtI4%WQtpcjn?XR_BG4= z*WmsKdgJvm#6s#f8{7AVFI)RD&{dV#P#sw@u=L6*o`Ia$MXEmdeh*+DzjT^Rv|x(&g% zPPF!0?56(!iaXryX&v^|O+wQE$EaHU=`?p5E%-Eh4X;Xukr_#~}tUUTf_q9||mk|>ZgWi)8e$Y<+1wohOSiB3Bo>E2b2{mz=A1zdZI`2@% z$TYBFdyD@7Y7(b&tG?G2D|)VOZP-&4RoQ51A{{PUa5wKx2Vu1vA-HO562KFB6b~#C z2BSXbctDk0e7a~fFsjCF?Gd;t0z3ocmAltCm_n~XtDINB;X(~2Tz1f2` z$tSR;5#5hp*i`H~EvdY-_M46SRODgy1{xh0h?xc3SpJo;b65f4)l$|XHQ)BE4-QIV zV@7LlS?+4Uk$A9<{jcy~%aaqPn z^9(x4`bNXZ2`o+j0I|N+-FSeWZEV0_^&mKJH&_}Tw8}E*e3P$ zFivk9QAd+9i;}aMIIoo0th*{>4-VpFmU#}Sqk~SHjn3nJ>sMlVOU%@wl6mQ->N) z?_A|MC%BbjjQ&qQaomLC92C*Pgvc?1K>C|fvjtxD+rAmRA>yaxC-|QeMI>2NterN{4E>o&#m(;>@7FEq?@^@Wfa<#^Yj@6xayEb+z39#`+@X8 z;k%l$a}zp#D9f-i!wzjbNv2(`xg9H}vREa=JStn(b}R4rtmIBI*{p3fqP`f)u9g6U z&{UB|&UIW^cC}VTluD6@@?2Y?VQMJy=7S#TQ)Tb%M8w+aEovr>qq+W+ z48$GB=CjxveRn+tF$I`h^#1hwu_E+ARWzOG1fu%|{?v#HyBbX3gP_!4yO26ucc3Aj zMPSsINw$1lVdjv1u>DBW+`tCCKP z7YxfCBPoelG|DywZ)0lL98bYGJkJnul45mA%5}%)Sx3dMYRR$r$CH;nHA%ctF^Qb? zx8k|GntZYGCC0-Mjo~Z~e;hN)WW%%y$b$aH+ltgU%2Y~~Xu0u+C^F1eD;4^DR8g0? zw37fW-@S9cK6y>Tcv(ueGAAbvMjj@ZX*=)K^!cieBJgqJvoexgPGQC}V4+nnX|WQQ zalYLwD^hd6klgIxUK2T=6Jv2$wp<|?hVu)MZ`k{MS9gjF@{&dxotY;trs2%13H}v@ zf+>7V{mUMbC5SN{MFnk_SwjRa=oc0D>)JH-AD zIKPF-!_9;;F_OyBsXsld=_QLN<0Bkp`ZPX+-knu}x6bvjv+hRmUQdBJoS7ye;4D?7 z5s(4D;;~scXCD;6JPZMQZY@{PX_2}qAj+qe1b}QvwRA_*V<8iGtKpn9k^$yoSuDry zx}CqMtyO{HIb;STiR1E+F*0lkt+U{#6N%yf02Q3K#xk@+{{Rp&>^z?Aj`n}r#=JjP z@x5QCWRLJ%St}v*OW|iU#NqNdvdlquMM0xiZq}{Vm{}ezK<#dptv|@oMFQ`R#JEDC=2dKh(1u(*9<$=!PIHrZSHE*m6wft zzJPSApp(pw$EdDmT6PJISn9nSIE;mH+Jq2nEn!73mnzt>+JS=CC_`G+L5P)#kOrN- z>aP&vNfClA*Lt?OFCjvjwQI!8{%(y{zSgy5xQww;L5KzJYQvae6)|Pl5vOyu)~%R! zVH{Y2GeFwxH{1@UmJmfW1r@}X9X+a}j&SVwsE!zV0W8mL{{R(Bmto%z15b!eEaz)? z73IvfZa)RHi7?_U5}2c4+U!TTtcQcKaU29#bOdM~sgidPRXD0lxGs zTWk^QY6dPgxd5H0gl@pxji>`z6^+V`x&SHcPU?D^bdN%V za(nGZ{4h0JzSIFk+DR7bEN@agV_-HT-l9{g;2V*>8%ciWr2xd(-%&do?b3iW#lcqC z4{9(6K_$J-AU9B>w_DU*0hVy4$DuvyNSqfTt#5jT?9HbC0M?`$oCYbd{`G)LpfMzk ztUXdkermcsqThQC^m-`qk)cT=e&&zT z$zyJ{8nA8d2>jB!F3Z-jwg-Pvwu5hRQ88v~*m`;qN2%EEZZEwk(Mz?6VQq!$VU*%z zEXA7JZY@sHw5zB)E}plhp9~ADgV(=nQY)_7*pK^A%AuuEAqWWoZ*fvG`EjZeNImEz z0hl$w3;pO)Xq83Tm>cS$Z4wC?6rp?XwMiVh!!rV;bq1otAwlLco1cF5Dbxn*zkR4t zyTb|Cy(n(Oax%{oXo4go&~i=af-BT0~r_5z-1Ku|Tc{wSVcS5g2y&8jJ7 zPyh-DC$G&0he-{!>0&*vQb0&uOxlSjpsH^%z$7OB0L(>59gFBT40jX+%*2pF{%PU7 zhSs&JG-+9`qrDy2IaTY_ngT);ixoY0rt+dtN~cMJ{{T9vP!ro*U#+{-SeD!S(pLxwHU{*XZLfOfbOD5y zvM=OPF)JGsy@uP-^*eO6B{w!6`}|M?V2**FE}QYGN6#FSoS<$ZpJ3*mSpg0z&t<_N2%` z_S*euL*LX|)Y`~uD8AVQ<7K!K(Re22Gj|)1B)BjkU9ZG!$`M5 zOf~B22)4q2M1l>?>@QK3PMeQwQM6jGZMLQ{5`}Dj1x)~BX7wu_hkJFTAy}7C7P;Jt zc~pi0Z+lfR#J02Mh0>>QdZ4RTWL+ArdlN}ZYzP4V05acp>+VSSwF=lZx>#P3P=Jzl zC)$8Lh0W=M5-eKuD&VUQ*X}5Ws{$-22Vc8!wJ;*FV z=7FRMW%u}}IuPn@yKhLP&5GaL&R3bo* zN};eD1HEh%;Jnfq8wxOuG+k7n8xz!R*3~%RhJrO&;3m2OSeyH)SXYRYtHqDyIXMb|rHjay9fy)b zFP8HSM4tVtF3zwKLo6`Br1_w$8(!ZAs3OZ&Sz9l|u7+WBE%xo#@maTIFxj|Y6fqFM zRE81m+Pa^6RD*_dS(GS;%tac5DeLenV&L*bnqMkdinf3e$o8y@F5qk|_(pHjg^;E1 ztFPb+=#!C}NYofU9>(FOS(+P}2Hs-#_6DRpJCDS;Suo0_uc=Axfy@9phSWBF<@n3ske60p^`n10{hvpiBIrfO`zhOc0Z18ZH#vZx)ZY2(FVF!Ety zfvn`IH?p?=^|Z4d2#XDud6Ph~5o2{-+TE(%neYsltU9&^CLUn~A-3N&$;L~fX){(P zMKTEqo=sYcqsT4+G+1np&y357m}|b_M%z}+{{X|BJH4cd*rRF${iE~mL5St7hBE1f zm@=uozS2*%Z9+|KywR?(nFKMZIEB>5rkbyZhA>#Ot|W{zC7E5wxBFI9cn=r=gv_V{ zjV#N(OBV#@B1Tvdq?L`zl(4WJYI<@*k%wpeABKwq9w@`5t!t^c{p!O8Pb<4D$W|z= zq5b|ht%sT6F<8ly0TiUDU*g>?H4fEBmvDsGoL`yxlq&LCK;UUln^vIcS}|O&A!Z(E zgUel7no`&P)sSV}IAijbD1n|wKC+etE&l++ddqU|UE^fMxXbiQ2bKIt+tLrn_^ZqC zc59V4n&8PKU?Rq={{T!8{p&e0IP^x*heN_*C^ZKWtboRct*$!N^M&{yFMMFk@zIQ2 zF~F)IH}zQV-Wuv}{v zI!KeqkO3P!fq#i{eY@CKY~nMoFC&ePD(a{#FVe!lN%VyMHzsp&w2ndg=3%gWJ>XVM zvjr`r7}&#p4Z%OwybjAH!nR|E!$`hx{aT|1+sxmm?_S^iba?F>!i4xNWQ(eNN+dwG z{YU=hygSNrvNO2jS+x|L5hAw3eUJYD4{H5C`fe5GW|#86`aGUwlf;qS-W)Oc4l5k^ zjL2UPE)Xgea6E#bdv&gf;EChRa57@>46KaSifHd?ReOMTt|{dQ6*gD;e6<=+HIrSV z-CcE8Pw+1mVldo44hJ2HeWfV^L<;Bz&13!R_5Ms;W{-^)l+5pm(W1l1<49?2j3jTj ze%GuE6O+#tc)nak2b+0)g}MWN)t2EiEEYc;r!~Snl1SHq{Oy!>xc%x3_Zfu3;G=fJ zp?z-&LAfq}n!NG$mF&a#@_cSng_>+Sv^ry1B2)nWY#KU^``UuJUEgV{6=hO7&o-?VMzq zFTB6TVkTG0)!rwZ4Fx){a4*aitWPeeOu*zdh-GO{MqHU|)9c&vV7209#Bh$w5qmSu7` z0RI5+?OLnE*AQ_QXTtB5VR2H+79u||;$wgs;pihO8}3!JJl#w`P}VYCAUUN;FCm}uivF# za$-!XLt9UJu|%O-*4&b^r=q2K8!OXGZ zy-LgI^38}I-(?d!LFt z<09eAN0ed0;hmc6Dy^x$H2pfJs_;;;${{TH> z*$BLr)1(N_$KLf%Cl%tA6-)VS{{Zy#F~9!QsgjYjV#9EPOQsCEJ!BPTDX~53zYT-P zyupWD96?z$vnkz0uX@xFai%&3js(Rsw&9Vj)AR51RdR7h5gkv2DxeU-C2!^L(x(}I z#*N97sl6GE#jx-va^W9 zW1JZMSH8mJ`&PZp8#HM_mSVC*r_>tSw%c$19cl4gNtL02_%h==DGS#G|jLn=He%k+V?2i5xuIKPH*PWtaw%*sE{yZjzUVCd!NNe2}`3~ zqK)H(!|>R|ned4mcJznpdhgbYIK*VQY&nY$D03Mk`Dzzd{Y_~M4>a>^em%(%;e=qS zF0vF8?S8dgi{cE!7zDVCbCh-2fwk-^aFQI6u=45f*`76HND)bEyAGsP;w)ZY41rR0 zj>p!-fVLjhqI0e&#%1nX2aIUs5rC%UOB2{t4j-6#-Owg{@%cvW4AER4i`KYEmX44Z z+#^I?-Z>NtvpV1LR5^s%UL!)ED^a;a5?O(*J%ZzG#~l!No=BbJ48d*zw%`0e6?ejC zxRs2{G}Ati08rgq-lqmjMt7MUwso;8&ZGE&mvBC6lMyx^Sp2xARa9UYb}O}D8HR71 zVy0J>ogxi+LmS?r$8iL>Y+A(}g;i7+7yE^)N-dJ;+F5=pD=@c{G-`p#EU(nmn7mF) zik)F;5=k|SUA6+W?EGt)iPi|zp<>!zHU)oryKt6gm@Fn)F(z>(&ffHtB!YHstTfqP z3KrLcSk8+p1_u8CwOer+{sc-{BQ)#~6HI3mjnWl&I&dfqbb+g>w-7i>F`e)!pMN>^o>30*MW)f`V5ok3OzwZR7`OAxk9|x(hlw3rEK3M zTQND_D4)T6BwCI)py*H?_6`4K#QJE z8y00c#iZ$T()GM6+|E;WTKKORtB2OXmdmXfdLM&U{#@p6kGSJ)+-b+b4Vma zc3H3H#z`GM+QW@A!0s%Mh;f4ng?OVyYsNx_{$}lQ`&Ko;{Ch4z#P0Y!Ljg2;6kg#8 z>dWm{eESwKzxlat+GEr_yKT1Ly=YuUGd9Y&m2uf_Xi%;!xCDL6tDzq?+Z+_rM_9ex zo{#b;#S}a{go7^PS>&J0!vKtXN*i2fkpOr+$I?G_F~N+lc;=2 zaR&|Kxj~xb4;)MS%p0t-=>_4n_qBP4h*@ICVz5x-^+wVaj$WqS#fIX#D~WteaVBS$ zW1-^cqQ+pcF*lPCvbD+EQTF(*YqMfAoNi zw~}U34X(s=?_1}<{4)+^;1dani2nfbKrM2Kt8sqE{?(w2Z4PS)#3MJE4yC=cfO?wf zp8?9S^EvTm0Dn)02TFlrw*!CcUe?otIX$DhvkX$EXvH`~AWubk_ntaQztz*(j;Ib)GY z^4Q))VYvCNk%G*T?GYrC(&MFRzFFpNAc&%|a-=eo*2cD$S&Xz%yErTt)Tgy^Ni(^a zWmw-R298}V-+iiV^NI6Z9!rgz1qw?Z_d}QQ-XUp&XpYX^wg6x;a?KGb%dW2BuV<2l)%L5Ajr%J zzhQdqOwTgJ<`|7~%39qv>0EK)OPo9t&3_b_Y{!6d=rHS<<RcZ?(w07(bm=9!(1i0N&vDoAG#BVBb8HmF&N>T8+X;Adj{k+{9+ zFQfog_UdSk_OTzd8fhouPyk$29o8u)&g7}E;$zJQbjAcuMjh@3taO0Uii?4IJoV&S_j0* zHwf`-7Z@CTSGvJD=r-Ab>DIl$;vOX7juOlN0K|C5h#|mXhut*oWfiVDpTzzHd{S_9 z{IKSSA8>yZW$Sz4=gcB619Z3{wJE=FK^4*&UO2zenZujW$~>$80EknR*m)a;d`NQd z6_@6?X$&%E`3#GS!eU6+$c0Y8_38W8N6nwBmnC?+gWEUdPZ3Xv$GI`!vPkgF`ib3# zppkF4aeA`npFtl9oJGV^XPl}`MEP_2qQVT?M@{{SCga+&zF2)Rd3oXIJ6zj@xONO4 zYlOFw__b+tp2c-+Hx=Wad=Yk$);OofX2$wk@(VZMt_{t(@yzUq!Npu%ihM-LJa&>8 zNxH84i{9qC#{&}2GM2jU)Ym3uJ~sJ@!8}JlF8GHbhG}p?M7W5d(u1%c{5|V69xi!> zD!XO88<#m%3<1O*mhD~~zgzJ+wA~wrk2JK5f9mbZo>b?)A0IU49}wblrH$llyD-6@ zR9Jw8lo9;Fh_$|IgXrg$XSq*;yt*vvCXQJ#bIgKBinF6gNOBLjt4}=nlZ^2>!twBb zG8glQS=O;M65#mgxv0hfM(@%%6C$5{;kI%W&CSxR=mGPI!+#mQJ za(_uA^F}4Y$j4!-<8O-h;qtL#owFHydE|wh)!@JD<;h-U@QxRRd`w8ZJ;iu2`g!ve zANef8+X)rFl%BRd`|n$;o_|#iLh?f{!(;QjT0B{n7)_UAFp~)cp!EAm>sn8qKk)T< zKI6_dekbLZGV?AJz~fJt*+ep|kb-~7tbzd@u5D8Auh9d*_b;)SEMGVI_n7910UxKr zX4%|PLcxEQ*0~=SuWOHwFLYVKdW%J;mV=rfRlg7!e;H!17|geo95IR$MA(EVnCVpB zz#q8ZYxWhxUN|yrKQo*3CCp^+Cs$M{{S0OWds3X{b}4VVhuvA zsTg0OtR!eTE>4qey55=yyu)$O_oIpc&KQrz^;Z@a$3lPG4ac=xxTAuy z{$b=ejt<5~%$b7uETHdZ+T+@?%nIc>PF~oI&I`MO6IRx&RC6OC;9eoXaUOe!NV4g% zK19<=(h}DJzrR|XpTTK-oYl;)_;>s!arPQ)W&@14mn_H6cM`*kSB+fn_K~>1;<)3) zr_c{S4>7I&UBLd8SI$qU--J9SdHx&0PT7WI zhI@sLRZ?;OOPc7O7vsJU<|ipIJi*Iz(}adR9=K9h0ihax)A$wOpOrby-@(!1jT}47 zpP{ENn+=b~a)XI8?0LYy@ipU1D>wNsf11!-Gs+k_Nyl>Vo(C+S369ILUREv~RE3#{ z*!BG0x^s=br5N82yv3U@;VvTcpB*c#u+J^yW%bc(};&4rSsv=ZJAn zjmKt~gNS#-pxm*&hsU?TuLenH&gv<$Y7sq7@I}DULBXkxmR0>k>O7Os1+|TN{q^>F zKg8$3Vx&vql|&%`^>1sF^SxtF^~k{RA1jlEIe(X9Q#Fl3$BJbN6kECOYmz)lc)#Xf zi2Sn?n(@wLF(VMy2UX9$_pbgQh2_gEE-hDPr&kO0gkALY~Gn2eUjLR}yP97Xy zg>p55HGjxYdPiS4pzZx2oBe|+P_y0?D?(!jN%(ee_IO|4fol1AJ&EtvBPz+ zSug7yMU7MC7~dimL?i%zh%Mf#RvY1jiF3B+-|=3Ok*;qyn!;i7N5Jj%eLp)@?&-wB?z(!W5DMb@gLWm9qd{qu%1nVl|Fr>6Wfl}Yz^wP~VIE8s1 zM{uCrS4c|8R$|qjQ8Gm3Zdq)4kDqFSX2jyXc%>)}wAk8(8xZkdO9D1i?kV3jos|-7 zI+COAJ;&m@0!U7rLp;tlOCk6C)n-?K5tg1{wtdi@?mga{UZ z$s%F!Kr(@+)wKZ=<72>KqzqybGj;xI!uYokCB;cJiV1!C^sDA<%RVXA`eatMt(H+V{{UHk{4&Zi+$8yQuZ+O5ERaY) zg(?eNU-?emYvcVx)U_nEdhp33+AkCQzTrH(mN>Z}%Oh=3KbDT8O~Ac*3&fm9#T*ID z<)4DMml=~{u^8q?{{Ri0l|tWQM}6;Ix5l4W&kWuoc}a&}6yn@A3p1Y%MmH?ROcqF_ zD`E#?D~EW;I>`qa;rN>mnBlPu^6FJtLj|)F+urr_@nz>L*)#FdHfB|w{Y7|_F&JJ| z^S>I}xANuEO^^Qo94j-*_%G{H*ncYn&Fm9x{{T}J97f-=sV1|}20Yj0-wWcg{9(tL zo)ZGCg;9c8Bm>`7tD!g##AgMzXCD$}k~Sj+BiR&@rM-=JkCRJmvBhVao+A1G0QIr( z`NbGs8sZ*1!(vW3Z-tu+mc;7E*qu8X#Iqk1{{UL-uK+XbM-r?)YLXD(;3SWGTD@e) za{HGaCHTh}+*yl;Idb?!_#aw^TlKc%pzBtiba)-*{&mV6R~zuBGqF+4mtY?g86o6Pldu~JW8-dI_p+w%IUqj z1KWD;@1t)D@CO_6V~g|oFnBz6An_r>!;R7z(gnlD$^q@_ENiE)C-I|_#+o`4BlBjR zQ1mJd?bfwtkDnZTtME_4m`vY~;+kw$G9q&PEGd65kAB1RS>8dMW7GctGXp-TXL#fX z{{TrN{j1Cms*f3EUMqY|@V_my9CKp7!?T#-#O3OC@{6cpZr2sKN7TrR_{7`(55A** zDSTphlF4zLBg;H?Q^2KUOve?8!ZSfMeU80=JMC)pLlm&ZBfhW^2B#;m9qUSRmxQ>d zms~ZL@XrG9eiH+fVQ}%rA%_kD&;aRcTk>mgVJ4WulVfm!b&W3@o9*7Wl`E*N9N_J< zpFC21PI+D7w}&yA);9ogcuXALRI@9ut;h1HC#`cQ3xCAN;i63SayN z5+=)+VqeRZt}n8ab6ejY17LQFKSBbY)gEIh zB>^X=T6u^VMO8bR;m{8PK!#03+f7qK!Z{O?n92gH{;CgTjFh%pmKhr>)k z#NhDKYO|+>U4U!$^14)K1r84VB&ShV1%WLgL|kp{`JAXTK@n7 z{vCLiEr*#nz7b3=Z8<9VoEimZ+V?i=ZnfOprkgI|OqVReNsmDe7Y4Descvnjt#Yr{ zKbxGpkC*V_F#Ktinc<1t#rl9;ZS8-}dZCs|HlE2iH2OYzdAY(^J__SZRzrcrw9!QN zNf=m>SjB)pWoBIQ&hQ!MFtM4AQ#QC9i#7Y(dc*ZAN(lajzWyfOG~Z{2dXqA48;!ri z#KDKL2d!1eh{2TszkB=DK1nhzRbsa$)*jSCQ4uV}?_D;|ZEU*m)8R1gR~hMzn$PO% z@l`mS76vKHE2}6b%7*s+>d}=$K4C7H)SX?e*42MGR2En#mr1qsgI*6Jqm#4Qg-OJ> ztj857i&yZ~yNbBYoTd{2HWLqrSq!P5>pLw**nG8PKu`m|#P_Fo^6{66T~|uC@h#P> zirYt9X&AzZ47$j^lVR~$eoWY0W>ENXh|s}3N(J>+FC?g4iYN+P*+*elEQ<|_{aV9^ zX1n#V*w?Q-RPmmCQmK;TvV2q+Ki0zm^6lzV+vcOne^V|kV}S`%vkUAiFp~>}nw)IQIS)$^l`yC8R zZO-jm#W}pS@MdWxWj0Bd8MCY;az(4mo7UyJ4woO+y+`_Y{VKQzh_HD_Jb8l|$0N*z zB4ymzkN2-E_&*;LaV`=p;lwc+c5b`s9@X>*^x@+kAI&^5WOyI(NDPrR!mNVk_W7yi zW}Z1l3DPr-Mn_R*e52*x2XM?dT!)9^fJF|N-35sOdeOf?30^Ltt$Q8MHXW^rg*>4Eq^62?>lsq`-+6hFM z7~523bdk934Ru~e$vrz~p1H65LS7Yccu^wq^FATZp%M?f_rBF(U-*qYHW^wI$vpTf z8(+=@{{Tv}H`BP@;B0HJ-eHt(D`w?_32m5{0DXBpEAifGg~}6!vrMjh zWQ!bcm_=y8W3eoD1LnI!g>$6hJckLym}VYUGBG4&O~#Yb-~2n)jPSqotni(T33}Gu~eDjM+|Sf+9pXSxUTu-8SC5*zgJU;N}k~ zvA9lO_>g%s43(u+In;Wjk_9^w>PaLIadYuS#(pULY5i%lEFUQOXUoa*J|0X+IsQ5s z8RM}(X?-AU4fKw+*%{~18^TsQ!=@jXcy1s4KN&@VOYt&02@KZUk$W4T?OhacM;94{ zP;N;)|7BzvMQ0*}Qpve}*rboIH`JX(V4j4xpc%tJc00)SM@PfrhmMe%bSRNz7VsNF748NF6WIqm+VfyKO*WeDmi%SIB+^{{WmZ`8@df9m+w4!==kG-npw2^~w0=YnWBc0G*En7iz;UlJ@?5t#!NrTg;b5N=G!v!NkOGap{X(gEyOiYo z6N_A%Bg5f`>aJ2h)2I=T>0Gj9ge66UEm_QbIrTf{HxgzGhaMWUyc!Y%%Oox7{-U<_ zN#aK|;yeOk4-S-(lTm?&A>kGy_m*YG~1mzwd@%hBiN<(5W ziq^O6q#D=xf7Yjqc(*pg<;}=U#{niHKqYCC#1Fv&y7@U>!It}4QnaidggdD$ulWJthNj;06QTy(VUx#2)IruaWlWI2JCF4 z4ZqsHd-C(St7TZ>R*IbFY_;(c;NzECh8I)V)|v4s!Mq`wU=kc&7tJ>s<7V4?^#Zns z8{)FuzZ>V_aSQ(dm~xJaHzaqhCE_!g88#0oT(=2`fiVt1Qp6SnS9oTerKV01qt7oJ zejc%$rs4>ArVMLIfz27DjY!!(J}X3FF#zJ@M1Q%(+TAOszM*__*{)5JQY(#iGGQ#ZW``+Il=~O~hXgt>p z7z+^9lJSN?jmYwRJea6&BSsi5k^-$_(KL9LC;=8biuQJnPp~4w3Bi)gH{QaF8HfE6 zqsqsvz$1HAQlHYsS}4ma@4ZEhDT~3eFS+baD zjC}LsH3ib0uR)4zJoo}q;!$gS)rv7E@K8dMMifW|z3AnD$V7@dSdYalB0S4!<5tsx^X*$?rr_W1iMm-*OvjG>&N}^5Vm@H*f_A%dvQA?T*7VVVlw)t*R*| zMy&xV29U}aDqiJBY7~}Mb}Uxc*b%)REX8$=FLnmtR3XNak8%Lqnx+c9Z7QgCH?@fD zDd2GqAR_{WL=9l^a->P2Ooon5V3PLN%lFZAi*T)T|;zFfOF#`yuKv6YzE z4{G)!m%I_n9u?sDB99Ravm#kuN8eyNSB_s!jQ1(Xd6S1+c5Mt1ey;LIFaH1(1bo-2 zdG39~u<-sLACqSoUnzhqADByD;9kEs=4F;YDo4=7qT*&b-xFbQdd^pg7eIBJboi_( z{6=P+4V^wSGSw~(02&I|nwufSCToMlVy3^4!>bStk6PB8+?xZ8%~LHT3_AcL9d)0Y z;Vkm*&9srXa$l%#0pVh7Mk6f6Lxe;+rNpnM{q0oPf2$9M)0hmk^UOh*xJ?5JjN^Wow?6n;0$xJn!@A|PC|00!Ob(T6k1 z5;!{1mScXP+^5QLf8rU;INU4}E~w-fa>0jN^xCtYOL&&xE`4C-#q#?cF%iRWG?>UB z{`JjyzbiN+KR6yA%(Bna$0WithiBQBzvF7`ZeMtOY(5teA!$+t5?iJ1UirAo0)Hs; z#xhx5BT4w+@GFpbp2#KQt^vZqmT{I135HO*Qx>E78s7f>tCM^<__gsp;D?VT<)1eA zV;_&p<6^Iu;~e>@2lGPb?q83J^ydTzoF+@D=ufp-d8y&&l>QM#5wo=l=3}?!M5PGw81lqfMj(&#Rl;Z9se8Vu$ru`(6UO?Nk zDLbtI6G800bf<@(3p|tXx5BH!Jfq;u9$yNm63rY#T*P-~waM63oAIF!>F&gRSvr?S zUBg)?_+C>Cb3y}%z;k}2ZC6FO?s|Jun-gaJhqXBCVt*CkJu9KCq}gr{aaW9q(rmf1 z@qJ*DqO9bRb_8uxWw@!Z_{i}peLAe)ij1U~>^o}EZ}U{D?}lQXehp+f)(udMOn+p9 z`_+#b7}P*J`_)afOCg?lA4=-Ay6s3lvIrKpS{GuZ8*Sc_fCbNUu%Rgu0(xI=)R>Om z)Y^bsk=mPZLv}PY6^_RL0JS~-C>Bu0)OTBb+xt)rMHHnv9`rkdaZRxO=m{SX?n;Au zd(#$Y1hDDzL%pfM)JPxFfN)rig|?+-ZszuJ6OT zK^~uKVB}q|Vg74$q0N$(CcvJ({i*hENh5CH)JrPr&`)0UM5}HH*xU0!94=J zOoEGSLOTs1TYJ{Po--~*8xwm%yZ+UHlBIwfl5B5T@2qg-Ru}#Vzx1q2@vH2gH`aD1sO?tlMuk!p@9$o`d8dnU zIm;9$`5Yb1{{W-LMa8*-!-mb}D(+9}B>P6^*xsh(ztOfnQ1L80Tf=NzHXgvGCZZC);hxMG=#uiSo$@c!h zbgf~;{{TxlaXeENa~Bb=VH{FwXy-Q6FMhSz(X*=h9Q3g!mXZdRB!V`qLpEgD>GZGGzL!J1BZts;$$ zfi=e@r6p|CBN*uy-XO|wxCm1~Hn+87n7ENnpe=iyhf2x#uMovnAUErJ#c^)hh*UPe zs9W-lKN3dUTD?TBPWR*x6Y1tzY5?#12!+Oezo6Ae0gq zlYiRPvGdGZ<#{G2F@*tWlIjoRt#Stx@T2qFi{`>-3hx`@iFpCIRKDO>tH#9{w<&av z8M5$o^36HUe;Ph5`Ol4?A>(g5+f-`_@6koRh$2Qb~#7?9O-|WF~ka zoT4)x_Pwjc_VRfs4{jg-&aEP)u{BI#*1f#z0ScnS6Yc zT4vsO7H${D;Iim^kjNEe0n`y-4?(qLxP12ui^K%=ENvMKEwcQIu;m=IlZCKH1&f%; zD3mnvzSpt&?^UZ76A2W>Ur9Ie&$t!vb7FC2Pm(3YbDc3O~v~uO#Ov$s~2h1m4RYMai6-%7$4om03pGhyhrBJ5Xl68gdNIS0fD?mc74* z7=v4H36V_8>Kq-7UsJ{MvSOCm=FNsPjibn}Cg9f0Fz3#~MFi@A zXb@>z0o2tuAg~x*uf&f5PFPL)4lBZ9B~@DstBZen=st0Be;1X7mlRnsu`7QGPz8}L zdVB3!qn24VUzT``;f#JW3oaECGLA+90>VHX4!s3^Pb(|U;7xxAgB$enB_rKlLE|Nz z;dzv#Z(;*=>08eRLm(kVk6Rw~&)y!VmPA?SPcR5jL{HoWhi=usvY8ZN1b~tcy?$H7 zzeOKqbX*XG8~5!)ED*W700+$j%$iF8eoX|Jfa2Qr{MWSqHEa*+Jg@s)9L_b79a`k3NkI;D9=Mhs9s9V@z&9`+vP-`0ZGi zV=1-GmwuI~^kzmI#*WJ{QYb3})8U7WH-G+%rRo(FEivTY+x% zWlThxeQc*vji0r7^7d8HYU2%3^ovlLWU#P*|wxS@E5D1fJ2bppW@YwyLPqTkjUP?^gJWC{Knt=84|4kVgJk1oR3>+M4%TF$YzY9$)BCr`~htDx-HC#3);Jqil-zj|kfSHJYB z0y>5U*S+p($`AnrZg&QNghmjHHOFyMCW|4)$*a|X10f{5>Dod^JqTo;vDZQHded{mel(BwSjhAQFvwlSl`(8nYO@wo)6jU#(KfBQpfH z=esHn;VvVKWPZHrMJ8N~%c%GJ_#D=s@d2KFOmgrqTB6dNu)&SlWT*RU=W_ z+fgj7q#mo<)F>d_SyuKw)Othq0>YAAuFQX>C1M+K*S$u-L`JEkAOKV@rsRSG+iQE# z%G%gm?cSNBy6IHdccN4uL@`GxHg1}Br)WuX%-7n&j67?#_ojJlLs;xi^-1syafVPV zLB0A@tSmryZa3XXqY{y0ezbmL4ul_)YFJ57qr(yEb~~P))bfGq78dF#(ok$|*R4k7 zOO{c!J1I`lr(ZGu*clDIt=_6gjEzOVYK}my_K)pU%hR$pa~Qgt?{ld3pfg6v zb+_WB5k^P__8qNKh~Zo5Rj?KYrI$>B7+e)X0X;zLM9T;_(QWEz+AuT<7O@3@0>^98 z#UN2tBRWYN)J-my){pQ{y-NF!P5w{4MqA9eB0^ND>JHX4DCC{kkVe-PO&f*T#-u&PO#?W62kj$k^`SOP zrC4dd=Ej(XUqfHhL;?<-2ITwGxDswff$B$EmW5g)^I~sP9){GUa4e+(7pHg$HXXju zX`@Rq1Ov5>{pyqn;At2Y7WVn3iYX#PjZN)Lam$_$ke^P zsDp>}p7hKJ+!66(Krsb{yP5zAHn&5)5MWzQtC7~8*7Wx#fD#lE0JZ68E_$Dxsr2va z_ogFrbKaxq52O_eE-gz)0_Oh!nr3#~fw1?djD{M)-`b+LpgFaV$68*NC_iI@9Gz-Tt))KnA>i)?^UHntJ`{F znz}I-peZnHLKYGFj>hMuRH~f-vVch5!ia|IPxPi^sMrDs9ZdiwM12%)X^emtT_6B1 zNEA;cm(ryCP&%uCiEvnTGyx=lunH~+>uM|NTM_%zCLWez3HInJLe5u9zt2hm!l-RK zSng?yUBdPJQ?B4$ZTO==L9no(0LW}rpYcgoNdVE53~oTUperhnb|CL_+JHd`Bo?P- zxwXi>5FJf1W2g`BKrK3fQg-h_<*>4;>Fzqwt&QwE?@g;xn_7ToOSY!5vHq1oidfZI zfI6+xs^wP<3IV@!R9K0atBVck&@7xsFOii`GTJ+j`i;<66mzRC%y_?;Q$Z4IiWyDW zJ19Q=uU&D?{Cv1x5uRwIC<(V;>0H&r{1KYs_>UCuW2BM^33j^Nl25&UL+jI)T(QKD zXN?xqW(IjvG3$be+ts(-d+ll=%lv!HQF4iflj;oC?eAOt`Fn|6zA3TMn2~H&MoTa@ z=}<$#_@~8;Fw#Vu>oMFld}#P{wX1kwId-_5KmJ@QI-M+J7ANMWgO;*HHgJdo}y-?{{X`y zjt`FW9ULW%tzqzLmpbJ9`L0VQ4jd}s?G=pr1#h+G*n$C|>4}G{QtnMrV{%xaf=nAK zg%;IexgPcCe@=mimPa6Q7a}v9G{DD&Y2tCE+Y~B zb%)XI?8EXTaxPiPtm_9nBxO%7ruDRgU@g#r`K-ezI7XuwX4*=l?Z&9d7PQdIcF*}SfPAYI|h>I z9=2z;k?;jJJCq(tTvRI3MKA`}zTVZ-cy3E!^ARN2Xtb@Y$VG!yCV$EtQsG=jgfXJW zWmNwFTh?dv*f{8mBTVFuA>cV79#l{jxH?h)0F?gqiAj}acx=W+<7XaU^B8vc!dwD9Bd3GDJOO`_N^)FPFM$#AQWKmK#$Y$m@FO?ke!rm}W{MmjdyT z6A3XWPpEz?3zw7ljI$0Tmk)?4zrq@>b$r{ccyfI^E;qDwSt8eF7sGro_;!*^9Bj=x zjb=vM%Ny?>qqv-o2a#^q=GUI z8A;HpZF6tUbfy=R*+&u}Og2V{+HM*#rHA6L=fj>KE#VwiWtYUwi7}ry4~bj(iUs=i zG|BY2~1*^)Rrp0^jRhal|-yFnkS%MLNhT7<4AR{{TqI3E^!S z%N{)*X8m`wR$fizkjky4F*=+m*x4;_?_N9PlghZ1l00I&7P|&J*w?VXU)(IXPDEhw zP#{&4GLJ*`vfF$A07~)4BEyNLj}qoZD#}#m-ruiKn5*`tF zqjwm`ONit<7*AdM9<{P^j4TsRhr_NB=80rijnTFX?oEEXE9EodrL#K3aYhzAD`W96 zTs5JU6^e!Z$9|PZ4rhg%7ID}$7-aN;3S@OiPF>jCfm9HGno3?RwTcMGgWy z!XR^Ik3_+VnEI{P_pIMG!AFI|{=O$@-Gh3%0!G`4)_hTl{Y1gBVl858IBmcKy?4Zt zW@WPWyh}cHi&zu@kzY%)*cG*}Z+)vY;RlXPf9rEKRVNEz&YLZbu05*<;jD^NBD^vQ zBz^B7wUq95_^kf`Ez1^o1Xx$~Y0^xJeMhd^65zL{*W325Et{>Qkol{_^5r1$3zKjL|AEJ4&!R~cuMAR&G?;z;X9QXUlj2IKC4$&{SCJ#md}v`Z{U%$_!V zURh|%wZR?ssd9v$6a*e?X$lFEx`9^spu|3v#bQakWm7_d{c5dqSYy5sB7H4~AUu{A zBj&SOHf4BxSj*szFp}MYA(@TudJL`>XD^J1IkC06-1H)`sPn8+IEga%Su_SNvH@}K zYJ9tj&KCnD*r%6Pui%SrZ`$;xMwyr_>wuYIY+|!I?yR@cdkfXUC6^a5X*7wWJE&`0 zYQ!>}-W~#49KT~DbW%4Lf{7rYkXA> zX@W&9hn3Y**H0|pr9#|67QHaxm=fI>>_tV7%%v~|!~lxQEEk~Or8AfMMz5SA!$ z5w5ib#ja~{Z5XscY$OrfO!0<{YGcue>sEZ%J4Kb_ibX;IFtO}A)Y*W{AykqvXyyfU z_5JNw#(ySZhRbzf@jhIOGT(2xZ(=P@!|1$ZdDL0RiNgfaNR}2|&i?>#KHJu3fI#(lf|vKlW(;zS-%KRCM2UyOp%E_ME4h?M>Q%&U6JI_V4z%X zBrr1Eq))IPH>>U*Of+i6nCb4QI&D^rMt6h5VUaNC@)cVuk$pSVQt=G9SY*V2jtAUH zw*LT%*A~j9McQf1Y<2Eb3pAEBVa?MKGdYhHwyP6yVNl|Diw};R$gyd7*6g-Es<7PKD%BgpC0G!YD{F7L7v8I|d2+rOz9mSIC-DG3aqVih;-QxZI^q^m zhW3$8;QLjINXvG~F!{8YTx&KaNSjQJ<)Ih!j)JmWr->6ChZ15HS44ImS`%2d4-RqT z%48mfZ{m4(EBn<}7FA%FMRLp!TUz3=Bxwzs;^fS;X2d*(K?ndI!+niiFn9=H!~U99 z5^9h$NXuhmS6rWmFfw7(;qvqnPN2x{E=j7~M+-@S14E>U2I>am=GC4?(y~mi1C`-X zgep`a1WRk`zr|F?h{G$qIA_#RO9@+{J%w8FDKbK=__hlg^($b;^m$e;0-EH)xjtbA z=VP@yWB4!F7Rzxm#4{`;izCKaUjCM~P-nOZF$IJy6UMZEsQ&aA~l(IdNguD8pHR0YJavxpY#;E>LjzR>ZuC>A3{1 z$9lTtnPOmtZ_^iYzoxu_ksh7Vb8wK${zxP37nj z+@bY2@A#`$H89wzl&&F#>`2q|S2=JPb26-k#rt00)~c}iY9bFJLK^0>nB}oM7eC5<>ovpTaIi-3tl&Fr2|wDgUSPUnQh1s$N`PbU zbNKzJ9VBwsiGFFzmtxx@z{FH&Dw7YnjjT__b3C#PRx($G#ntT0P06jv;fqPm6&gO(YYR6a|~~ikdig;YV@UaSk)T?g1Oh2@SY|s z%u!iFzoy_Hdfz;@=1v!iaB(~mCMIKYRgT2_*DCQ>4(6B*5?aE zz*5eADoBd1RT4@S+%0FfvYxcB==* z=<%lGqc_WjD=vURm_(#03J|}m_5-zJoM)~azHCk%+yHhutXJS)tz?*mz)2^c1mje8 z^=jR|cdSF0Sh@cIN>IP0*pt`~n$2F#!R){|pNTP;9v6vANg)&J{{S%w>}rpPv$w@U zqEZ#q>PEKA4{w^Nj|qg$a#?ULLd*#Yf|wRCUO?0<-JYxEK!yts8&oc0U7fazTQnq_A$%pInT z`K0bB7n_j2Gr`^=kX5|RMVx9Uu%#J z>4nFb{w&V8$1CDFQL(s35eF&*I96Z}O6vy&T*gM@uJrO7>(C3vQQ z+Gu1;Hr@VfFq(4A6Gr25O?qbuLDM-YsjEcFSZ%h#xhxqt;qSN z#KA9=Kp>u=vD&g*XCQrOIO~YAj}FO#;LKacm`RwgoX9Q&WLSbLh4~@ihljI#pC{uf zb9_XTq`BFS?8zqw&ft9yiQK?`*dw+WJ zzmi=1HRAt=H73_?Zh+XnKakSF^C>W%y(ep{WhxANSs0Sh6~bZ|DcA%DVeNXdc%KaX_)Mn`%<@Br(70VYBlW)9?^m3k6h;YuSfL8+ z(1F}n;=H9VyO;Sr&`Z-rUJnGyeA(o6^5ZrIx|4nC`{7aX1E26_IBa~5V!^lYO8Rf8 zcdSn};+z?X4?R?Cw16Jo*7vOI!dm3=b5Ui$<2A`E1~D6gsn>DsabAz7zx$Yyb;Rww zUVA1c1pNjX*@*?n{!v`l^-UQ@2f_Yp#rS*}7}#?hIm67VH7jej$E|dt{+}nF6=S^p zR@;8n&i?>aj20gc;J=6hg((g$DHU7XJ?r%|l$2TJRFX#$aF04TOT>RESCxG0&N2BG zbA`i*uo=z=81V^`)>pVaM%NXM@(<~gggoDc`P;=<&NJbxR3zXggE^Pd*V|dRDYvz2 zoU1U)GaMcW;&AID#H(~Iq^TC$YU&>f9APd9;c;1hGIz_S#d%++c`xLhz5Z+K`16$` z<;!!XW?bsv^5W2}_9+O?^i_CC1juXW!xRK>gmohOYVRf;t z8~SBrSpH4;;N~wZv3RKEi#ftRE;osVn@ohR-u8Qb)$}1!jIC_cmlmm=&m&JHmKWTf zqKYgzV|`b*TB?ypm|2M2>?uZKSJJ=&O|M)Hhlj$JI#Ee)Z)&{94hJQ{9ByDidwN#= z>0zYHa*PPXPa?@7=m&bovwX`DnqsxczJPrSJ63lmNUoA8^X%Ufo#IQe00UqbpcRgB z?<}%@WN=15gLsIA!((Hxbn1=SzhhY%K(P{TE`7UEkbqc<=%R^sa_$S4pHa?7iNErnhrz^)~rQ~apJY`u1_Y4I8K-1?RHl+2$v=GTc2@u2Qn90Zaycvz4A zluH5o*QSjdInt6?9-taR607$ck=)+58eODSDK3u_alb>~7u+G84D8L9Y<6?YXZ|ylDL^ zIcdarX?UBJ8BoiyC5iH)9-H;)-nb)}e51_yIg@7GKgF0Mhs5E}mk0~Ag!itIj9a@Z zW{wO)kN!KYZH`#MgrA1I)|4!o@6&r*wQ6&4`;PsqbMkYCn>^r2=ZpAwoI4YSnC_&J zx{*>2gX~zz4j3*NsSE|!UaBy%9DIraDuFBo_EImkTJex$VZ|7+A9{;e{{VWd!D3{E z5JC=>7kl@usg2oDiB*z#{D`hQT12W{D4?`j=MKFm{1Vcxgcat_8l@tyrSK>ylNt zBh&LxMyi0zhuv7-$J)5Q&agse21I9N2nVb%+VwZ-Q4}^Ds+Qlhv2Nr_Zckx!WWAim$ysWU8EK~E#R$M=pBXK7BjE7@gV=vhYD^D&J{{T-55L{Wv=xU<{j+Q7qxuXqZ zbUoD5$%fI0aflZn@9|X`bP+N$nY08_%l`nY;;lb|E3(xrQif-hx716Xm1WH26F~Zt zpf>rd)_La5GfN=RtL+D4RvcJm!^kglZlw0CvkmOV@zXqoqjEMDJ9Vl-iN;_cVTW?M z{{Wb6YOkLR0$eX%=CV#!a;rS%mS(v|O#ySP2?{O96!hHmFN(V`JT7gS;igxI8!9%g zs^k+{{{R7VSBSC+W5!LKPEiO z04Z=|4FnuLETEulOJXD>>K@gl;=w9(dFACo&T)stj&+^B4-A>?o>m_et|2Z#8+7>_ zR`S7pLwN5Y%J8`c6y6**ktA_Pv)iuqzPTOr{{ZBl6LC6Z-|{{g5&~XHv=Z%Z#GR|G zxI@45qp9AO5dZ*$(fS^O^-^m_4mE=xz8{AKkH=5H6vgB&@-dE_XN zXfj|{U2IQcQ++=bsc}9eJa_O!n2a|mbIvxyWf-@-`8&mkng;c1u}8Q7oAkF@_a}#Z zG;&{tmMJo>1HeEcwSwW)5A>{*^7n##ps?gvUY~F2*Z$RY!3&XN`ei@uR}8O(ID00=Pv zDbAwE_#?yKI@pKu$vCZY*!uuF)?bg7^hGG01@*}04o8%7OD4zXxKW6Q{$+;)3M&BG z*fRt88f&)vJ7}AeTq!t_jq+#>*xvsD!xiRd2>5XEarIH>4-0Ys06q9VZV%;FLx~v7 zE?bFj;^SN!>MD06^tsyC_pej9YXz3@=1~SgltdE?fx|2?AUi6kumYxd@y4NhG`q8c zyecLGm!DiNad1Jx2;$;S9>e2d3^pu*F2nx-syqBwdSdR_=G1O=4Zy7l#9j_DxsTK* zhP-L;=Mtt8ECx$913JKH-xdmxo8PfF{{ZGiZ>i;3am_09c`i1!a+9{d!EG{3-UWoG zazzBFMg?Rh_NjBJbv$eFZj>{D`VgRW`K&I3790k{z1r68P+`co$n8?$^o%@($op+k zVTHw;_O)stY5H^q{pd1$&K$FkGCAjcF)^AaayC*^YyR~t$_OI;s)HMWiy0Y)L37kF zJq>B>T^M(Y&#F&_j|xW_lX0ILq`9sZGJivcLn9Wk+i#zG^Mfh>0EktyUl^G`G`O!T z#wP&bWH>BF5nu*LpmSq5MI@F|LAAOAUWjpbh2BST-emc&9CGt4&8Cy?IGiG}C-OyD zr|>D^K2*^kBKUp~2F)G;ETTEXdpv(D79F_Rs2}Q$;Zut|ZQ*&>!u(r1 zaE=$3vt^i!?rao^9Jq&-W>gABv1L*^bvCS1nEwD)-UrN{Y~PoBcoGwcG5Hw9G5T+7 zfZZ!;b93pR;qQyGPtxTa7Y+?|fjZ!Ug|r@|XtwsQWahWgqmx)kWnLZ3vxp*lvq>gB zq|^BZys-Lg)1@z)F_X&2cNNiw^ZUgo2XW+Iu7{WyOmx|T88Hemid;8kHaiOB&T@F# z;vQaSQ9;YR;Z7W zHajZKWXzS=ex1}4tbQxsqv3GH#w8ctj0|Djd;T_$ImGx+Y^dr8~*i`aZiWL>w_^<;WO-`6ANL^nHAwSzvk72 zaRyKR7UlqLW6+CNs~?Yp8}`JxGi0A^vpkI3vm4Njjp;~ql4uZI-n|C{D&f}EmM}dH zuVFQ3a=lGrki2bMf6QpF-E^b;Eq+|y(7 z>~=152*ffTp}`;!YRiD17lrja3?i&JtT+Uy4f*%4othGkTU$MNoOo51 zi6PAqTT)3Sn!o{jP)!~p)@NX#eYfvf9veT)u@a)L4^`jPdtRZ%;^8pJ{{W|rW7I$a zcP6n6%}Z#r#+th^?I3A;T#?(QWq2$Mcnk~}ybRZ30VO(*ipGkG=44of!MRX>(yrKi z+Drrpu#(C;Ew&ZY$a0cYV+y8Ju5p<@ARsaZ)KqI1+KctsisK@e6xx>d2K(BpvP{z| z%v8;dpG<&RY&+3$D&X*m9GFwH4a)8Xc+*MoqrVukn~32HmyFgRp>fIg^HgM?riT1B{9950;JlQ2qk(EQ4WH{)C4PpSV z+U`aF0D7v)GW@p+U91bM>eGI^RyBdh@mP|<0oFzAPin0=e8F6Ka+M%iw!Ofv86cNT z+#6-@G<V-d{#R%F_p{5sqbP~)z>P<;?#wmPV5G;*4mw;;7Z3`N8CvLV(zBjW_}=je$V|>WUkGvLG7LOyKk{Zv#z5_A z!Lu_SBNMctt~+!UW5(r^<`}Qg;nA96)wI>_93$@-^#?F1vNFa6x%n-y>FZBZTWAywn?HHGpTC=(N1NAB6o<(qY;o}TBly4wO zAUK=pByITZU3K8+>f_4ZEX*@r7UwQw2M*X<$29r|_2@R`r+BBhhH$juqi9Ed@B6Aj4w=u9p2wLBU^Ralh|e)69>e=Yalf@w4&Y5OUfq zCL(7oJ|8b*6mk=}x`S%!dB5v@ooZOd!L7f&Smc~lCRUR${!j8Nll~pJHxIyknc#d5 zOP4?_6AJ)R#15=&a(+!@;z^2*yL72BChc-Jy+jz6x&F0{zRTFWygZNQVlYuk-}>VQ z$KI+VyNi$ox&`P3Kss%Dngtr+U3gZor5i%D?Tzd=A1 z)sENss%%`#3}uUeZ?#sUd6HPTvW}H%#YH6Z9V_2&Y68i}oY~5GcaZ-8h+@Qt6kH5H z>HhZL?H|3rrC=Pw=Eh^jIm{W6!A<2d0?z6+F5L}gJXOn_KM?U2Rh;Hpq=y5DXO|6Y zi7qTZq29HBKKLh_+(dH>pOpMC86+pko?@sMZi8`NY}h?VXz2;4_GteA8@%|+u{;qE z1m!qod{p?D(Oo+^b=+IpyPuA;_;M~nVa6{St)n51HD+;g-dNuK>&t#%_!IG&i_WFb zvk35G$dpQo*rLEN+*ogY{{Ygler|JL>P(npkZ}(ePmICg*UD({cuhJ076WnZUMcvV zM<>U2dKOG>Ct-01I}Rt5b7bQ(!y}e4O$$r|3-mUh=3=DsK}8I+twjlpNmnu(P$u&|Afy4uyNxv$Ny5PU^~{Rb4mn?nR|ajG^7LFhhf zt{l#=RC{{RlvZ~p-7#Pb>BhbZ7q8c z7_Z%bisH=w050M@ZZVq`1m%Y1Wl}HmyPeG4V0u{87$%GD+yv z9x~&~u-N>zY_d&aSWA~#O8`4omdmj}`S^);{{W~Dr>@5Jw0Y&5<(aNsguxhsyad^a zyIA(ES%Zbw7P?8feUI;7PYP-Y7;-mnFgVISD&g!Dc!j*Ms)(c}#Gp_tMPdRNo-aqG zx|8oq6^n`-G9pAQR4Ch7pMYThuRz6F5k|-Ccz| zxM_6iFaUlJS{yzNo_ng519QDYn^a^6HyAvXaL6ONo`7y?vb$!nON^IGl>31rYO`Wp z~=o%_;)yPVvQ_1um`PWual%@@L!_GMI3_&=(-5?0JgPK=9ZrkrJ}ai7d=Hs z9xN1D9x%3T4`FVW&5i!6%|0>;Nirq$Qxt+=e_HDM@$cW<)PIa^IJ z5w}C!imJz8;V2|%MVjHQ&>HhesI$_o$3?sKOOKRCE*-4h{i?4YmPLh7(FH2X0u?nB zZm}x99}lRl_o*?HPl^pW1p+7*BC71?DAL($kzHgjBW{~o+tF<%AYY&xgHj^l*j@H4 zcP5%oL}Y5YQ({B(TN=Lt;+m^jJ)CC|o6rqTc?S3Zcnnov`eX zzQL}-^(51_3>g|b+}`88c_g>l-U==y!g+9cbY@1tM#53Efop#C9N0z7aB||AKj{y( zj_2`E%b(%r!7NUI$r=E*=yx>=V{sz{>R__5^soePQYoUoDkYKCjEtUW1y5Vh$eI*0 zwZ*+uSdB&5BwnX$3V{|vbUp3Z8unI?ESKn;3>DvBMNxYitPCcIq7VS+EmV*g)kb>j^lWZwJ-W znx(wFCQc)3og`vdf$S|=pD%oKai23WP{EryL{}0OXY~Sl+v4@a{5ilJNtj|0u-Qb< zVXHt*$gQo*&JyFOa|}FqEQWM*Vl_roSbwc}rS!aR4~~w%aF(Qc^U1FjJUfl$#tR_D zW=hUr0!A!B)IKYvI8Tc>e~LK|j)}8~ys?90tIf5xy^VPn%FL&lb74HZx;dg`8q6Xy zboLwjky}$C#Q3?BEIBS;hRjzlmAz<@n?BtL8`q8=50Q=0+Bw$~tGQprydQ|-oUa)x z{{RjgcaN5IUR`qMmz>GVmJBoSc0HOz z2N5xa{IGrvcSj@hel&gq!EnbDyo{K9I+(oEeINR7NO<`nn%T9HIGL>Sj7T9t7w$H_ zMBt)drTbLGI-n1`1lR#lOan){5xx4?xWHL)eQX%qUuwQ&+LINk$L%(?SnyUZKmymf ztL8&y#o3P9dRIK1nvY@Q8H|Uxsx}_2)~hkDBXSg8=cQ4wW+2|*n#$<3B_y`pDG*5j z8&Wna`}U-vZ|kg?+6p*YR?@Z|&Fcl`ABlcNa+?-l<6dFlFi#s<)@j1n)^!<;R#a=1 zF|Z@wYV!}D9uKpR6#V?pxK}LVJVa2YVJ5Y8)V3$F2X3|K!HO9h=IG8$l8RK0#p7SA zkAf_R2$)HE-IGZye|TI{l0Us#xHsyX;Om)rlzA5m^P?ziT&-k=Oj?4+;{9ux@}Kx@ z`DKX9Q#0ZYX5-RHlI*b)Z|_*gG{521$#{1wIlnA8qFin&5vW5WnAwQjS%*ViaroXo zN5xK=GGvq$q$$_&?zBArB$Kzxzhn`{MnrHXOM!S-Bv z6yt2qxWA5g7l3ls%{a@8@R@unHhJX>w|=Iu3H)aGWW*xHmh*ciELzG=JvTnxYs(0@ z7sY?o6Pgp{7=9_n;Ias&CmB0P!Z?=y0BErQpNiPI-~2im_D_TV02ttoY-6!FxW=`E z6xLTgZFM)Tyb*-BxomT8HjhtoK0L^Hs|6lAA*sypZE>Oc`iCE%K+j6n1V|iY#B-Fqz$XHvMk9nEF>7zx}?c<9@W982TWt1BwoXU z-8SxMmvBw4LE52(nYO;?x5Z3~QsAu)qk;h;#X0H-*n86`8hTTqEVeWQk)&Lmz3ByF zNDFd$Qxb1rK5u$FFbz7XxYgLx1+UtCT=a}$Zb z!E$)^=y~!qQ{# zShKuxE-|#~9WDo2_2h?#9VfHTj(H@lqo_Coo7^$XjG{dM03ggG#6>cxP>*t_=Cdeq zl4x7*I{{oj!#okp&j#FcmvDCyV2H}4oI``mA!51SC&}JB1N0_Xa zH~1E>B=NXc@^ysN^j#i&E)x#e{L>haK%(WOYXMqwnBP%<2%MwL-zDOXW@Y0M8xZ;= z*QAeoU)r^Ij4o#JA2d0J+=k(fAURx7VT(%dAx|*$0^@U9qkw*j9JJ%tJWI{KEzBpE z5qB$un@BtLxw$p$$Kzm7<(5=(l=3-LS4T*2Kh)2|4>q$e@LmSvj6No2Z~)T4e|uKm z%DA2!*9@50aZ2&GO&i=-6z88s9tP!B8eTT!R(+Y`F?e(?Fj$;U(t*8!9Sv?D1^h{w zjFwIk;yH0CHWuh$$2YDv2E<>zd9q`I-ZpfON|iIB@bimnZSDn#s=!>WgIngU_)rye zcG||S7+_v9RFh-Uxi@I&`a!kCc4z6-(;HgaZ|!O$a&{eQw{w$}duTFa5caP(wf?6%^uKZ8;1$FZcaHaD@{RSbmb(qk64 zZuMV^TL#>0)k7*3eI))XxmRQnp#Tj)4&sp^hMt6XB8k1N@p^X9pK}9$Y5;t)4avQY z?@3fJ*^gQxSdiTS8;U@$Y6?V0Sh*(K?Ru`^lczRSE!Ux{RxAM*7pkruA@i7mwU2$P zGyF`}%!`T@m_`&G#>TOnWz~YJ-0ypu%D9MGQQLbBs~E>3hb#^K>p1#09}KY=_EtC4 z0k^eQXMv2SGq63)Qt-$Pj?visRc?AomgMvlf0-#3A{nt_5(lXCs`+vjRP)m1PeOWC z79eFT#N&MDX0tdmT*MtF?mrgfQO&mHifX~-6z1eOfnBiPrk161PQ zXPYc8q-8Cbhhe8k000Q-QBRA~nuLm5y=x9r=KRf<6aN4%XBieCK^gSTidz*Qp7peF z`3@n&SpmI?Bnsm=@MfU-BHJXA7gSdHH$5v;__5=xlOg3+W5fB@WraxRfy+y5}u{;}b^ts;x$qo)PgVb8LhAWG*T)ZwLF~s>wrpChe_^eZuo*lA| zNN`%^?J@HNYQ*OhDUsD*vaSzt*e}+9#)P~jH4PeUL^4qz??l4uZhO7 zeaZ)GhPP{0spFp*e7xd#C(AKX!-SQR(WA>|E$}OsdGXGPa){+*)D;T|rDK0r#d9n? z#LT#Zm^e3|GI?bfn*ikLI<3~;)moc_k_lToPm6h*{{S$}Bu5A|yPx7LpjZx{{61>M zn&;S&fH6ZJo5n@iu2g%~mn_Sp#b9N^<8dlkmOUgXHb1pgaS|pI2_z_me@z%An{a+W zugzu2DbHuFF-Wp-ZxEt!=)g~noJAyN)^q9r@jwp0lWomYPd@OU57nSe^8-}q`>4gTQTW+^EwRn7~ ztT|&R(dfj|mX4ahW$WY+npEF?KJ|9X^77{C>Q(A(SiVEW`F=YHn8Ao!F!!vVA{oiWaW@MtX@Zk2Wga?pYY~n>x9jgC%^q6Ym3{dwPCz5l;n6EY?zp! z!=>f~%9{&q(0}mjU9)+Q(e&5J<;jLFX`55S{#Pbd!&rPaDU5Qikt4YE9ffW9GpsyV zb&4jqCt@p2$T47Tl8th<`oHa=f1r3)I~#Eq|BY%Vd1Nc7uC z+2b~tjU~sZTyIRXVkBb4><`UhSS~xj%HTzcP&8@=PW3cA*vM25)M7%h{zY2vXq=gz zw17YfadAwUiTg?4v8)#n&ODu;;JJTJ8Crmd2h+&kn2D$*T1{eACN9fhHvh8x1e9{L$BBX2MBhRK0+; z0L7v80vLN%7QEBT0(nAs!jZccxwSyt&&!f^VJhs~kajgG5YE}dII$L~RIT?T@mMY= znwcsvnmlY_LEh{yP(L@YET#x$j#eO$LFq)2F3pGMpj(C;eAPB4NajZKEnqtPR=rMZ z!7P4S%M!D74Y3s1j%8q_!;$)r;tuz)HKY?VtVGbGY1^%@Qbj34Z9tEKSOna7n1@xC zXq5FT8*x<_4rO3v2M>suV`$IZ=cu6@GR)60NMU%$Tej+b>ln->mRUogWiQol(y4Qf zI?5VVG2#r3dyqCC-mLkT9%ZlrEKY=v?OIYmrsDyMY(xnq%3SIs{{X#XnEb~L3jYA+ zCLkwe?ka9E<{l3@!mJo35*W?oW!m2ruJh