From c6e1dc049fdab59dc6f63be95e29db616921426c Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Thu, 25 Dec 2025 10:36:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A8=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20=D1=81=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B5=D0=B9=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D0=BE=D0=B9=20MyLibs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 49 + .gitmodules | 4 + Core/App/gpio.c | 68 + Core/App/gpio.h | 149 + Core/App/main.c | 68 + Core/App/main.h | 35 + Core/App/rcu.c | 31 + Core/App/rcu.h | 22 + Core/App/vk035_it.c | 106 + Core/Config/SEGGER_RTT_Conf.h | 429 + Core/Config/mylibs_config.h | 132 + Core/Config/mylibs_include.h | 141 + Core/ExtendedLibs | 1 + Listings/Firmware.map | 1953 +++ Listings/startup_k1921vk035.lst | 1961 +++ Listings/template.map | 1316 ++ Template.uvoptx | 750 ++ Template.uvprojx | 628 + platform/CMSIS/Core/Include/cmsis_armcc.h | 867 ++ platform/CMSIS/Core/Include/cmsis_armclang.h | 1815 +++ platform/CMSIS/Core/Include/cmsis_cmcpp.h | 127 + platform/CMSIS/Core/Include/cmsis_compiler.h | 264 + platform/CMSIS/Core/Include/cmsis_gcc.h | 2026 +++ platform/CMSIS/Core/Include/cmsis_iccarm.h | 906 ++ platform/CMSIS/Core/Include/cmsis_version.h | 39 + platform/CMSIS/Core/Include/core_cm4.h | 2115 ++++ platform/CMSIS/Core/Include/mpu_armv7.h | 204 + .../NIIET/K1921VK035/Include/K1921VK035.h | 10223 ++++++++++++++++ .../K1921VK035/Include/system_K1921VK035.h | 52 + .../Source/ARM/startup_K1921VK035.s | 393 + .../K1921VK035/Source/system_K1921VK035.c | 167 + .../K1921VK035/РП_1921ВК035_201219.pdf | Bin 0 -> 7685928 bytes platform/plib035/inc/plib035.h | 145 + platform/plib035/inc/plib035_adc.h | 1155 ++ platform/plib035/inc/plib035_assert.h | 57 + platform/plib035/inc/plib035_can.h | 86 + platform/plib035/inc/plib035_conf.h | 49 + platform/plib035/inc/plib035_dma.h | 631 + platform/plib035/inc/plib035_ecap.h | 910 ++ platform/plib035/inc/plib035_gpio.h | 832 ++ platform/plib035/inc/plib035_i2c.h | 548 + platform/plib035/inc/plib035_mflash.h | 327 + platform/plib035/inc/plib035_pmu.h | 162 + platform/plib035/inc/plib035_pwm.h | 2038 +++ platform/plib035/inc/plib035_qep.h | 1246 ++ platform/plib035/inc/plib035_rcu.h | 955 ++ platform/plib035/inc/plib035_spi.h | 491 + platform/plib035/inc/plib035_tmr.h | 245 + platform/plib035/inc/plib035_uart.h | 606 + platform/plib035/inc/plib035_version.h | 44 + platform/plib035/inc/plib035_wdt.h | 191 + platform/plib035/src/plib035_adc.c | 167 + platform/plib035/src/plib035_can.c | 70 + platform/plib035/src/plib035_dma.c | 209 + platform/plib035/src/plib035_ecap.c | 191 + platform/plib035/src/plib035_gpio.c | 212 + platform/plib035/src/plib035_i2c.c | 98 + platform/plib035/src/plib035_mflash.c | 163 + platform/plib035/src/plib035_pmu.c | 70 + platform/plib035/src/plib035_pwm.c | 346 + platform/plib035/src/plib035_qep.c | 187 + platform/plib035/src/plib035_rcu.c | 523 + platform/plib035/src/plib035_spi.c | 110 + platform/plib035/src/plib035_tmr.c | 100 + platform/plib035/src/plib035_uart.c | 151 + platform/plib035/src/plib035_wdt.c | 70 + platform/retarget/retarget.c | 179 + platform/retarget/retarget_conf.c | 108 + platform/retarget/retarget_conf.h | 69 + 69 files changed, 40782 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Core/App/gpio.c create mode 100644 Core/App/gpio.h create mode 100644 Core/App/main.c create mode 100644 Core/App/main.h create mode 100644 Core/App/rcu.c create mode 100644 Core/App/rcu.h create mode 100644 Core/App/vk035_it.c create mode 100644 Core/Config/SEGGER_RTT_Conf.h create mode 100644 Core/Config/mylibs_config.h create mode 100644 Core/Config/mylibs_include.h create mode 160000 Core/ExtendedLibs create mode 100644 Listings/Firmware.map create mode 100644 Listings/startup_k1921vk035.lst create mode 100644 Listings/template.map create mode 100644 Template.uvoptx create mode 100644 Template.uvprojx create mode 100644 platform/CMSIS/Core/Include/cmsis_armcc.h create mode 100644 platform/CMSIS/Core/Include/cmsis_armclang.h create mode 100644 platform/CMSIS/Core/Include/cmsis_cmcpp.h create mode 100644 platform/CMSIS/Core/Include/cmsis_compiler.h create mode 100644 platform/CMSIS/Core/Include/cmsis_gcc.h create mode 100644 platform/CMSIS/Core/Include/cmsis_iccarm.h create mode 100644 platform/CMSIS/Core/Include/cmsis_version.h create mode 100644 platform/CMSIS/Core/Include/core_cm4.h create mode 100644 platform/CMSIS/Core/Include/mpu_armv7.h create mode 100644 platform/Device/NIIET/K1921VK035/Include/K1921VK035.h create mode 100644 platform/Device/NIIET/K1921VK035/Include/system_K1921VK035.h create mode 100644 platform/Device/NIIET/K1921VK035/Source/ARM/startup_K1921VK035.s create mode 100644 platform/Device/NIIET/K1921VK035/Source/system_K1921VK035.c create mode 100644 platform/Device/NIIET/K1921VK035/РП_1921ВК035_201219.pdf create mode 100644 platform/plib035/inc/plib035.h create mode 100644 platform/plib035/inc/plib035_adc.h create mode 100644 platform/plib035/inc/plib035_assert.h create mode 100644 platform/plib035/inc/plib035_can.h create mode 100644 platform/plib035/inc/plib035_conf.h create mode 100644 platform/plib035/inc/plib035_dma.h create mode 100644 platform/plib035/inc/plib035_ecap.h create mode 100644 platform/plib035/inc/plib035_gpio.h create mode 100644 platform/plib035/inc/plib035_i2c.h create mode 100644 platform/plib035/inc/plib035_mflash.h create mode 100644 platform/plib035/inc/plib035_pmu.h create mode 100644 platform/plib035/inc/plib035_pwm.h create mode 100644 platform/plib035/inc/plib035_qep.h create mode 100644 platform/plib035/inc/plib035_rcu.h create mode 100644 platform/plib035/inc/plib035_spi.h create mode 100644 platform/plib035/inc/plib035_tmr.h create mode 100644 platform/plib035/inc/plib035_uart.h create mode 100644 platform/plib035/inc/plib035_version.h create mode 100644 platform/plib035/inc/plib035_wdt.h create mode 100644 platform/plib035/src/plib035_adc.c create mode 100644 platform/plib035/src/plib035_can.c create mode 100644 platform/plib035/src/plib035_dma.c create mode 100644 platform/plib035/src/plib035_ecap.c create mode 100644 platform/plib035/src/plib035_gpio.c create mode 100644 platform/plib035/src/plib035_i2c.c create mode 100644 platform/plib035/src/plib035_mflash.c create mode 100644 platform/plib035/src/plib035_pmu.c create mode 100644 platform/plib035/src/plib035_pwm.c create mode 100644 platform/plib035/src/plib035_qep.c create mode 100644 platform/plib035/src/plib035_rcu.c create mode 100644 platform/plib035/src/plib035_spi.c create mode 100644 platform/plib035/src/plib035_tmr.c create mode 100644 platform/plib035/src/plib035_uart.c create mode 100644 platform/plib035/src/plib035_wdt.c create mode 100644 platform/retarget/retarget.c create mode 100644 platform/retarget/retarget_conf.c create mode 100644 platform/retarget/retarget_conf.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e895dc --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +# ---> uVision +# git ignore file for Keil µVision Project + +# Project User Settings +*.uvguix.* + +# Listing Files +*.i +*.lst +*.m51 +*.m66 +*.map + +# Object Files +*.axf +*.b[0-2][0-9] +*.b3[0-1] +*.bak +*.build_log.htm +*.crf +*.d +*.dep +*.elf +*.htm +*.iex +*.lnp +*.o +*.obj +*.sbr + +# Firmware Files +*.bin +*.h86 +*.hex + +# Build Files +*.bat + +# Debugger Files +*.ini +*.scvd + +# JLink Files +JLinkLog.txt +JLinkSettings.ini + +# Other Files + +/Objects/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..759cc25 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "Core/ExtendedLibs"] + path = Core/ExtendedLibs + url = https://git.arktika.cyou/Razvalyaev/STM32_ExtendedLibs.git + branch = release diff --git a/Core/App/gpio.c b/Core/App/gpio.c new file mode 100644 index 0000000..8c8f454 --- /dev/null +++ b/Core/App/gpio.c @@ -0,0 +1,68 @@ +/*============================================================================== + * Инициализация портов с использованием бибилотеки PLIB035 + *------------------------------------------------------------------------------ + * ЦНИИ СЭТ, Разваляев Алексей + *============================================================================== + * Конфигурация портов настраивается в gpio.h + * ЦНИИ СЭТ + *============================================================================== + */ + +//-- Includes ------------------------------------------------------------------ +#include "gpio.h" + +//-- Defines ------------------------------------------------------------------- + +//-- Peripheral init functions ------------------------------------------------- +void gpio_init(void) +{ + RCU_AHBClkCmd(RCU_AHBClk_GPIOA, ENABLE); + RCU_AHBRstCmd(RCU_AHBRst_GPIOA, ENABLE); + + /* Сброс пинов */ + GPIO_DeInit(GPIOA); + GPIO_DeInit(GPIOB); + + // Инициализируем порт A + for (int i = 0; i < sizeof(gpioa_config) / sizeof(gpioa_config[0]); i++) + { + GPIO_Init(GPIOA, &gpioa_config[i]); + } + + // Инициализируем порт B + for (int i = 0; i < sizeof(gpiob_config) / sizeof(gpiob_config[0]); i++) + { + GPIO_Init(GPIOB, &gpiob_config[i]); + } + + + + + + + + + +// GPIO_StructInit(&gpio_init); +// gpio_init.Digital = ENABLE; +// GPIO_Init(GPIOA, &gpio_init); +// GPIO_Init(GPIOB, &gpio_init); +// +// /* Инициализация выходных пинов Пуш-Пулл */ +// gpio_init.Out = ENABLE; +// gpio_init.OutMode = GPIO_OutMode_PP; +// +// gpio_init.Pin = GPIO_OUT_PP_PA_PINS; +// GPIO_Init(GPIOA, &gpio_init); +// gpio_init.Pin = GPIO_OUT_PP_PB_PINS; +// GPIO_Init(GPIOB, &gpio_init); +// +// /* Инициализация выходных пинов Открытый сток */ +// gpio_init.Out = ENABLE; +// gpio_init.OutMode = GPIO_OutMode_OD; +// +// gpio_init.Pin = GPIO_OUT_OD_PA_PINS; +// GPIO_Init(GPIOA, &gpio_init); +// gpio_init.Pin = GPIO_OUT_OD_PB_PINS; +// GPIO_Init(GPIOB, &gpio_init); +} diff --git a/Core/App/gpio.h b/Core/App/gpio.h new file mode 100644 index 0000000..bdc99fc --- /dev/null +++ b/Core/App/gpio.h @@ -0,0 +1,149 @@ +/*============================================================================== + * Конфигурация портов с использованием бибилотеки PLIB035 + *------------------------------------------------------------------------------ + * ЦНИИ СЭТ, Разваляев Алексей + *============================================================================== + * Реализация функций инициализации портов находится в gpio.c + * ЦНИИ СЭТ + *============================================================================== + */ +#ifndef __GPIO_H +#define __GPIO_H +//-- Includes ------------------------------------------------------------------ +#include "main.h" + +//-- Defines ------------------------------------------------------------------- +// Дефайны для режима пина OutEnable, AltFuncEnable, DigitalEnable +#define GPIO_PinMode_Unused DISABLE, DISABLE, DISABLE +#define GPIO_PinMode_Input DISABLE, DISABLE, ENABLE +#define GPIO_PinMode_Output ENABLE, DISABLE, ENABLE +#define GPIO_PinMode_AltFunc DISABLE, ENABLE, ENABLE +//#define GPIO_PinMode_Analog DISABLE, DISABLE, DISABLE + + + + +static GPIO_Init_TypeDef gpioa_config[] = { + // Пин, Режим, Выходной режим, Входной режим, Подтяжка, Нагрузка/Скорость + { GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_3, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_4, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_5, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_6, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_7, GPIO_PinMode_Output, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_8, GPIO_PinMode_Output, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_9, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_10, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_11, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_12, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_13, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_14, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_15, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, +}; + +static GPIO_Init_TypeDef gpiob_config[] = { + { GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_3, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_4, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_5, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_6, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_7, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_8, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_9, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_10, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_11, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_12, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_13, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_14, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, + { GPIO_Pin_15, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast }, +}; + + + + + + + + +// Другой вариант +//#define GPIO_OUT_PP_PA_PINS /* GPIO_Pin_0 | */ \ +// /* GPIO_Pin_1 | */ \ +// /* GPIO_Pin_2 | */ \ +// /* GPIO_Pin_3 | */ \ +// /* GPIO_Pin_4 | */ \ +// /* GPIO_Pin_5 | */ \ +// /* GPIO_Pin_6 | */ \ +// GPIO_Pin_7 | \ +// GPIO_Pin_8 | \ +// /* GPIO_Pin_9 | */ \ +// /* GPIO_Pin_10 | */ \ +// /* GPIO_Pin_11 | */ \ +// /* GPIO_Pin_12 | */ \ +// /* GPIO_Pin_13 | */ \ +// /* GPIO_Pin_14 | */ \ +// /* GPIO_Pin_15 | */ \ +// 0 + +//#define GPIO_OUT_PP_PB_PINS /* GPIO_Pin_0 | */ \ +// /* GPIO_Pin_1 | */ \ +// /* GPIO_Pin_2 | */ \ +// /* GPIO_Pin_3 | */ \ +// /* GPIO_Pin_4 | */ \ +// /* GPIO_Pin_5 | */ \ +// /* GPIO_Pin_6 | */ \ +// /* GPIO_Pin_7 | */ \ +// /* GPIO_Pin_8 | */ \ +// /* GPIO_Pin_9 | */ \ +// /* GPIO_Pin_10 | */ \ +// /* GPIO_Pin_11 | */ \ +// /* GPIO_Pin_12 | */ \ +// /* GPIO_Pin_13 | */ \ +// /* GPIO_Pin_14 | */ \ +// /* GPIO_Pin_15 | */ \ +// 0 +// +// +//#define GPIO_OUT_OD_PA_PINS /* GPIO_Pin_0 | */ \ +// /* GPIO_Pin_1 | */ \ +// /* GPIO_Pin_2 | */ \ +// /* GPIO_Pin_3 | */ \ +// /* GPIO_Pin_4 | */ \ +// /* GPIO_Pin_5 | */ \ +// /* GPIO_Pin_6 | */ \ +// /* GPIO_Pin_7 | */ \ +// /* GPIO_Pin_8 | */ \ +// /* GPIO_Pin_9 | */ \ +// /* GPIO_Pin_10 | */ \ +// /* GPIO_Pin_11 | */ \ +// /* GPIO_Pin_12 | */ \ +// /* GPIO_Pin_13 | */ \ +// /* GPIO_Pin_14 | */ \ +// /* GPIO_Pin_15 | */ \ +// 0 +// +//#define GPIO_OUT_OD_PB_PINS /* GPIO_Pin_0 | */ \ +// /* GPIO_Pin_1 | */ \ +// /* GPIO_Pin_2 | */ \ +// /* GPIO_Pin_3 | */ \ +// /* GPIO_Pin_4 | */ \ +// /* GPIO_Pin_5 | */ \ +// /* GPIO_Pin_6 | */ \ +// /* GPIO_Pin_7 | */ \ +// /* GPIO_Pin_8 | */ \ +// /* GPIO_Pin_9 | */ \ +// /* GPIO_Pin_10 | */ \ +// /* GPIO_Pin_11 | */ \ +// /* GPIO_Pin_12 | */ \ +// /* GPIO_Pin_13 | */ \ +// /* GPIO_Pin_14 | */ \ +// /* GPIO_Pin_15 | */ \ +// 0 + +//-- Exported functions prototypes --------------------------------------------- +void gpio_init(void); + +#endif /*__GPIO_H*/ diff --git a/Core/App/main.c b/Core/App/main.c new file mode 100644 index 0000000..5849db3 --- /dev/null +++ b/Core/App/main.c @@ -0,0 +1,68 @@ +/*============================================================================== + * Шаблон проекта для К1921ВК035 с использованием бибилотеки PLIB035 + *------------------------------------------------------------------------------ + * НИИЭТ, Богдан Колбов + *============================================================================== + * ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО + * ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ + * ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ + * НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ + * ПРЕДНАЗНАЧЕНО ДЛЯ ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЕЙ И НАПРАВЛЕНО ТОЛЬКО НА + * ПРЕДОСТАВЛЕНИЕ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ О ПРОДУКТЕ, С ЦЕЛЬЮ СОХРАНИТЬ ВРЕМЯ + * ПОТРЕБИТЕЛЮ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ + * ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА ПРЯМОЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ИЛИ + * ПО ИНЫМ ТРЕБОВАНИЯМ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ + * ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. + * + * 2018 АО "НИИЭТ" + *============================================================================== + */ + +//-- Includes ------------------------------------------------------------------ +#include "main.h" +#include "rcu.h" +#include "gpio.h" + +//-- Defines ------------------------------------------------------------------- + +//-- Peripheral init functions ------------------------------------------------- +void periph_init() +{ + SystemCoreClockUpdate(); + sysclk_init(); + gpio_init(); + retarget_init(); + printf("\nAll peripherals inited, SYSCLK = %3d MHz\n", (int)(SystemCoreClock / 1E6)); +} + +//-- Main ---------------------------------------------------------------------- +int main() +{ + periph_init(); + + while (1) { + + }; + //return 0; +} + + + + +//-- Assert -------------------------------------------------------------------- +void Error_Handler(void) +{ + __disable_irq(); + while (1) + { + } +} + +#if defined USE_FULL_ASSERT +void assert_failed(uint8_t* file, uint32_t line) +{ + printf("Assert failed: file %s on line %d\n", file, (int)line); + while (1) { + }; +} +#endif /* USE_FULL_ASSERT */ diff --git a/Core/App/main.h b/Core/App/main.h new file mode 100644 index 0000000..0962252 --- /dev/null +++ b/Core/App/main.h @@ -0,0 +1,35 @@ +/*============================================================================== + * Шаблон проекта для К1921ВК035 с использованием бибилотеки PLIB035 + *------------------------------------------------------------------------------ + * НИИЭТ, Богдан Колбов + *============================================================================== + * ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО + * ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ + * ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ + * НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ + * ПРЕДНАЗНАЧЕНО ДЛЯ ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЕЙ И НАПРАВЛЕНО ТОЛЬКО НА + * ПРЕДОСТАВЛЕНИЕ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ О ПРОДУКТЕ, С ЦЕЛЬЮ СОХРАНИТЬ ВРЕМЯ + * ПОТРЕБИТЕЛЮ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ + * ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА ПРЯМОЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ИЛИ + * ПО ИНЫМ ТРЕБОВАНИЯМ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ + * ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. + * + * 2018 АО "НИИЭТ" + *============================================================================== + */ +#ifndef __MAIN_H +#define __MAIN_H + +//-- Includes ------------------------------------------------------------------ +#include "plib035.h" +#include "retarget_conf.h" +#include "mylibs_include.h" + +//-- Defines ------------------------------------------------------------------- + +//-- Exported variables -------------------------------------------------------- + +//-- Exported functions prototypes --------------------------------------------- +void Error_Handler(void); + +#endif /* __MAIN_H */ diff --git a/Core/App/rcu.c b/Core/App/rcu.c new file mode 100644 index 0000000..6001675 --- /dev/null +++ b/Core/App/rcu.c @@ -0,0 +1,31 @@ +/*============================================================================== + * Инициализация тактирования с использованием бибилотеки PLIB035 + *------------------------------------------------------------------------------ + * ЦНИИ СЭТ, Разваляев Алексей + *============================================================================== + * ЦНИИ СЭТ + *============================================================================== + */ + +//-- Includes ------------------------------------------------------------------ +#include "rcu.h" + +//-- Defines ------------------------------------------------------------------- + +//-- Peripheral init functions ------------------------------------------------- +void sysclk_init(void) +{ + OperationStatus status; + status = RCU_PLL_AutoConfig(MCU_CLOCK_MHZ*__MHZ, OS_Type); + if (status == ERROR) + { + Error_Handler(); + } + SystemCoreClockUpdate(); + RCU_ClkOutConfig(RCU_SysPeriphClk_PLLClk, 1, ENABLE); + RCU_ClkOutCmd(ENABLE); + + /* Прерывание должно быть каждую миллисекунду: + Для тактирования N Гц это каждый N / 1000 тик */ + SysTick_Config(MCU_CLOCK_MHZ*__MHZ/1000); +} diff --git a/Core/App/rcu.h b/Core/App/rcu.h new file mode 100644 index 0000000..4143ba9 --- /dev/null +++ b/Core/App/rcu.h @@ -0,0 +1,22 @@ +/*============================================================================== + * Инициализация тактирования с использованием бибилотеки PLIB035 + *------------------------------------------------------------------------------ + * ЦНИИ СЭТ, Разваляев Алексей + *============================================================================== + * ЦНИИ СЭТ + *============================================================================== + */ +#ifndef __RCU_H +#define __RCU_H +//-- Includes ------------------------------------------------------------------ +#include "main.h" + +//-- Defines ------------------------------------------------------------------- +static RCU_PLL_Ref_TypeDef OS_Type = RCU_PLL_Ref_OSEClk; +#define MCU_CLOCK_MHZ 100 +#define __MHZ 1000000 + +//-- Exported functions prototypes --------------------------------------------- +void sysclk_init(void); + +#endif /*__RCU_H*/ diff --git a/Core/App/vk035_it.c b/Core/App/vk035_it.c new file mode 100644 index 0000000..e756930 --- /dev/null +++ b/Core/App/vk035_it.c @@ -0,0 +1,106 @@ +/*============================================================================== + * Прерывания микроконтроллера 1921ВК035 + *------------------------------------------------------------------------------ + * ЦНИИ СЭТ, Разваляев Алексей + *============================================================================== + * ЦНИИ СЭТ + *============================================================================== + */ + +//-- Includes ------------------------------------------------------------------ +#include "main.h" +#include "plib035.h" +#include "retarget_conf.h" + + +/******************************************************************************/ +/* STM32G4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32g4xx.s). */ +/******************************************************************************/ + + + + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + while (1) + { + } +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + while (1) + { + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + while (1) + { + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + while (1) + { + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + while (1) + { + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + uwTick++; +} diff --git a/Core/Config/SEGGER_RTT_Conf.h b/Core/Config/SEGGER_RTT_Conf.h new file mode 100644 index 0000000..e386e8b --- /dev/null +++ b/Core/Config/SEGGER_RTT_Conf.h @@ -0,0 +1,429 @@ +/********************************************************************* +* SEGGER Microcontroller GmbH * +* The Embedded Experts * +********************************************************************** +* * +* (c) 1995 - 2021 SEGGER Microcontroller GmbH * +* * +* www.segger.com Support: support@segger.com * +* * +********************************************************************** +* * +* SEGGER RTT * Real Time Transfer for embedded targets * +* * +********************************************************************** +* * +* All rights reserved. * +* * +* SEGGER strongly recommends to not make any changes * +* to or modify the source code of this software in order to stay * +* compatible with the RTT protocol and J-Link. * +* * +* Redistribution and use in source and binary forms, with or * +* without modification, are permitted provided that the following * +* condition is met: * +* * +* o Redistributions of source code must retain the above copyright * +* notice, this condition and the following disclaimer. * +* * +* 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 SEGGER Microcontroller 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. * +* * +********************************************************************** +* * +* RTT version: 8.10g * +* * +********************************************************************** + +---------------------------END-OF-HEADER------------------------------ +File : SEGGER_RTT_Conf.h +Purpose : Implementation of SEGGER real-time transfer (RTT) which + allows real-time communication on targets which support + debugger memory accesses while the CPU is running. +Revision: $Rev: 24316 $ + +*/ + +#ifndef SEGGER_RTT_CONF_H +#define SEGGER_RTT_CONF_H + +#ifdef __IAR_SYSTEMS_ICC__ + #include +#endif + +/********************************************************************* +* +* Defines, configurable +* +********************************************************************** +*/ + +// +// Take in and set to correct values for Cortex-A systems with CPU cache +// +//#define SEGGER_RTT_CPU_CACHE_LINE_SIZE (32) // Largest cache line size (in bytes) in the current system +//#define SEGGER_RTT_UNCACHED_OFF (0xFB000000) // Address alias where RTT CB and buffers can be accessed uncached +// +// Most common case: +// Up-channel 0: RTT +// Up-channel 1: SystemView +// +#ifndef SEGGER_RTT_MAX_NUM_UP_BUFFERS + #define SEGGER_RTT_MAX_NUM_UP_BUFFERS (3) // Max. number of up-buffers (T->H) available on this target (Default: 3) +#endif +// +// Most common case: +// Down-channel 0: RTT +// Down-channel 1: SystemView +// +#ifndef SEGGER_RTT_MAX_NUM_DOWN_BUFFERS + #define SEGGER_RTT_MAX_NUM_DOWN_BUFFERS (3) // Max. number of down-buffers (H->T) available on this target (Default: 3) +#endif + +#ifndef BUFFER_SIZE_UP + #define BUFFER_SIZE_UP (4096) // Size of the buffer for terminal output of target, up to host (Default: 1k) +#endif + +#ifndef BUFFER_SIZE_DOWN + #define BUFFER_SIZE_DOWN (16) // Size of the buffer for terminal input to target from host (Usually keyboard input) (Default: 16) +#endif + +#ifndef SEGGER_RTT_PRINTF_BUFFER_SIZE + #define SEGGER_RTT_PRINTF_BUFFER_SIZE (64u) // Size of buffer for RTT printf to bulk-send chars via RTT (Default: 64) +#endif + +#ifndef SEGGER_RTT_MODE_DEFAULT + #define SEGGER_RTT_MODE_DEFAULT SEGGER_RTT_MODE_NO_BLOCK_TRIM // Mode for pre-initialized terminal channel (buffer 0) +#endif + +/********************************************************************* +* +* RTT memcpy configuration +* +* memcpy() is good for large amounts of data, +* but the overhead is big for small amounts, which are usually stored via RTT. +* With SEGGER_RTT_MEMCPY_USE_BYTELOOP a simple byte loop can be used instead. +* +* SEGGER_RTT_MEMCPY() can be used to replace standard memcpy() in RTT functions. +* This is may be required with memory access restrictions, +* such as on Cortex-A devices with MMU. +*/ +#ifndef SEGGER_RTT_MEMCPY_USE_BYTELOOP + #define SEGGER_RTT_MEMCPY_USE_BYTELOOP 0 // 0: Use memcpy/SEGGER_RTT_MEMCPY, 1: Use a simple byte-loop +#endif +// +// Example definition of SEGGER_RTT_MEMCPY to external memcpy with GCC toolchains and Cortex-A targets +// +//#if ((defined __SES_ARM) || (defined __CROSSWORKS_ARM) || (defined __GNUC__)) && (defined (__ARM_ARCH_7A__)) +// #define SEGGER_RTT_MEMCPY(pDest, pSrc, NumBytes) SEGGER_memcpy((pDest), (pSrc), (NumBytes)) +//#endif + +// +// Target is not allowed to perform other RTT operations while string still has not been stored completely. +// Otherwise we would probably end up with a mixed string in the buffer. +// If using RTT from within interrupts, multiple tasks or multi processors, define the SEGGER_RTT_LOCK() and SEGGER_RTT_UNLOCK() function here. +// +// SEGGER_RTT_MAX_INTERRUPT_PRIORITY can be used in the sample lock routines on Cortex-M3/4. +// Make sure to mask all interrupts which can send RTT data, i.e. generate SystemView events, or cause task switches. +// When high-priority interrupts must not be masked while sending RTT data, SEGGER_RTT_MAX_INTERRUPT_PRIORITY needs to be adjusted accordingly. +// (Higher priority = lower priority number) +// Default value for embOS: 128u +// Default configuration in FreeRTOS: configMAX_SYSCALL_INTERRUPT_PRIORITY: ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) +// In case of doubt mask all interrupts: 1 << (8 - BASEPRI_PRIO_BITS) i.e. 1 << 5 when 3 bits are implemented in NVIC +// or define SEGGER_RTT_LOCK() to completely disable interrupts. +// +#ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY + #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) // Interrupt priority to lock on SEGGER_RTT_LOCK on Cortex-M3/4 (Default: 0x20) +#endif + +/********************************************************************* +* +* RTT lock configuration for SEGGER Embedded Studio, +* Rowley CrossStudio and GCC +*/ +#if ((defined(__SES_ARM) || defined(__SES_RISCV) || defined(__CROSSWORKS_ARM) || defined(__GNUC__) || defined(__clang__)) && !defined (__CC_ARM) && !defined(WIN32)) + #if (defined(__ARM_ARCH_6M__) || defined(__ARM_ARCH_8M_BASE__)) + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + __asm volatile ("mrs %0, primask \n\t" \ + "movs r1, #1 \n\t" \ + "msr primask, r1 \n\t" \ + : "=r" (_SEGGER_RTT__LockState) \ + : \ + : "r1", "cc" \ + ); + + #define SEGGER_RTT_UNLOCK() __asm volatile ("msr primask, %0 \n\t" \ + : \ + : "r" (_SEGGER_RTT__LockState) \ + : \ + ); \ + } + #elif (defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_8M_MAIN__) || defined(__ARM_ARCH_8_1M_MAIN__)) + #ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY + #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) + #endif + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + __asm volatile ("mrs %0, basepri \n\t" \ + "mov r1, %1 \n\t" \ + "msr basepri, r1 \n\t" \ + : "=r" (_SEGGER_RTT__LockState) \ + : "i"(SEGGER_RTT_MAX_INTERRUPT_PRIORITY) \ + : "r1", "cc" \ + ); + + #define SEGGER_RTT_UNLOCK() __asm volatile ("msr basepri, %0 \n\t" \ + : \ + : "r" (_SEGGER_RTT__LockState) \ + : \ + ); \ + } + + #elif (defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__)) + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + __asm volatile ("mrs r1, CPSR \n\t" \ + "mov %0, r1 \n\t" \ + "orr r1, r1, #0xC0 \n\t" \ + "msr CPSR_c, r1 \n\t" \ + : "=r" (_SEGGER_RTT__LockState) \ + : \ + : "r1", "cc" \ + ); + + #define SEGGER_RTT_UNLOCK() __asm volatile ("mov r0, %0 \n\t" \ + "mrs r1, CPSR \n\t" \ + "bic r1, r1, #0xC0 \n\t" \ + "and r0, r0, #0xC0 \n\t" \ + "orr r1, r1, r0 \n\t" \ + "msr CPSR_c, r1 \n\t" \ + : \ + : "r" (_SEGGER_RTT__LockState) \ + : "r0", "r1", "cc" \ + ); \ + } + #elif defined(__riscv) || defined(__riscv_xlen) + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + __asm volatile ("csrr %0, mstatus \n\t" \ + "csrci mstatus, 8 \n\t" \ + "andi %0, %0, 8 \n\t" \ + : "=r" (_SEGGER_RTT__LockState) \ + : \ + : \ + ); + + #define SEGGER_RTT_UNLOCK() __asm volatile ("csrr a1, mstatus \n\t" \ + "or %0, %0, a1 \n\t" \ + "csrs mstatus, %0 \n\t" \ + : \ + : "r" (_SEGGER_RTT__LockState) \ + : "a1" \ + ); \ + } + #else + #define SEGGER_RTT_LOCK() + #define SEGGER_RTT_UNLOCK() + #endif +#endif + +/********************************************************************* +* +* RTT lock configuration for IAR EWARM +*/ +#ifdef __ICCARM__ + #if (defined (__ARM6M__) && (__CORE__ == __ARM6M__)) || \ + (defined (__ARM8M_BASELINE__) && (__CORE__ == __ARM8M_BASELINE__)) + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + _SEGGER_RTT__LockState = __get_PRIMASK(); \ + __set_PRIMASK(1); + + #define SEGGER_RTT_UNLOCK() __set_PRIMASK(_SEGGER_RTT__LockState); \ + } + #elif (defined (__ARM7EM__) && (__CORE__ == __ARM7EM__)) || \ + (defined (__ARM7M__) && (__CORE__ == __ARM7M__)) || \ + (defined (__ARM8M_MAINLINE__) && (__CORE__ == __ARM8M_MAINLINE__)) || \ + (defined (__ARM8M_MAINLINE__) && (__CORE__ == __ARM8M_MAINLINE__)) + #ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY + #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) + #endif + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + _SEGGER_RTT__LockState = __get_BASEPRI(); \ + __set_BASEPRI(SEGGER_RTT_MAX_INTERRUPT_PRIORITY); + + #define SEGGER_RTT_UNLOCK() __set_BASEPRI(_SEGGER_RTT__LockState); \ + } + #elif (defined (__ARM7A__) && (__CORE__ == __ARM7A__)) || \ + (defined (__ARM7R__) && (__CORE__ == __ARM7R__)) + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + __asm volatile ("mrs r1, CPSR \n\t" \ + "mov %0, r1 \n\t" \ + "orr r1, r1, #0xC0 \n\t" \ + "msr CPSR_c, r1 \n\t" \ + : "=r" (_SEGGER_RTT__LockState) \ + : \ + : "r1", "cc" \ + ); + + #define SEGGER_RTT_UNLOCK() __asm volatile ("mov r0, %0 \n\t" \ + "mrs r1, CPSR \n\t" \ + "bic r1, r1, #0xC0 \n\t" \ + "and r0, r0, #0xC0 \n\t" \ + "orr r1, r1, r0 \n\t" \ + "msr CPSR_c, r1 \n\t" \ + : \ + : "r" (_SEGGER_RTT__LockState) \ + : "r0", "r1", "cc" \ + ); \ + } + #endif +#endif + +/********************************************************************* +* +* RTT lock configuration for IAR RX +*/ +#ifdef __ICCRX__ + #define SEGGER_RTT_LOCK() { \ + unsigned long _SEGGER_RTT__LockState; \ + _SEGGER_RTT__LockState = __get_interrupt_state(); \ + __disable_interrupt(); + + #define SEGGER_RTT_UNLOCK() __set_interrupt_state(_SEGGER_RTT__LockState); \ + } +#endif + +/********************************************************************* +* +* RTT lock configuration for IAR RL78 +*/ +#ifdef __ICCRL78__ + #define SEGGER_RTT_LOCK() { \ + __istate_t _SEGGER_RTT__LockState; \ + _SEGGER_RTT__LockState = __get_interrupt_state(); \ + __disable_interrupt(); + + #define SEGGER_RTT_UNLOCK() __set_interrupt_state(_SEGGER_RTT__LockState); \ + } +#endif + +/********************************************************************* +* +* RTT lock configuration for KEIL ARM +*/ +#ifdef __CC_ARM + #if (defined __TARGET_ARCH_6S_M) + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + register unsigned char _SEGGER_RTT__PRIMASK __asm( "primask"); \ + _SEGGER_RTT__LockState = _SEGGER_RTT__PRIMASK; \ + _SEGGER_RTT__PRIMASK = 1u; \ + __schedule_barrier(); + + #define SEGGER_RTT_UNLOCK() _SEGGER_RTT__PRIMASK = _SEGGER_RTT__LockState; \ + __schedule_barrier(); \ + } + #elif (defined(__TARGET_ARCH_7_M) || defined(__TARGET_ARCH_7E_M)) + #ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY + #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) + #endif + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + register unsigned char BASEPRI __asm( "basepri"); \ + _SEGGER_RTT__LockState = BASEPRI; \ + BASEPRI = SEGGER_RTT_MAX_INTERRUPT_PRIORITY; \ + __schedule_barrier(); + + #define SEGGER_RTT_UNLOCK() BASEPRI = _SEGGER_RTT__LockState; \ + __schedule_barrier(); \ + } + #endif +#endif + +/********************************************************************* +* +* RTT lock configuration for TI ARM +*/ +#ifdef __TI_ARM__ + #if defined (__TI_ARM_V6M0__) + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + _SEGGER_RTT__LockState = __get_PRIMASK(); \ + __set_PRIMASK(1); + + #define SEGGER_RTT_UNLOCK() __set_PRIMASK(_SEGGER_RTT__LockState); \ + } + #elif (defined (__TI_ARM_V7M3__) || defined (__TI_ARM_V7M4__)) + #ifndef SEGGER_RTT_MAX_INTERRUPT_PRIORITY + #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) + #endif + #define SEGGER_RTT_LOCK() { \ + unsigned int _SEGGER_RTT__LockState; \ + _SEGGER_RTT__LockState = _set_interrupt_priority(SEGGER_RTT_MAX_INTERRUPT_PRIORITY); + + #define SEGGER_RTT_UNLOCK() _set_interrupt_priority(_SEGGER_RTT__LockState); \ + } + #endif +#endif + +/********************************************************************* +* +* RTT lock configuration for CCRX +*/ +#ifdef __RX + #include + #define SEGGER_RTT_LOCK() { \ + unsigned long _SEGGER_RTT__LockState; \ + _SEGGER_RTT__LockState = get_psw() & 0x010000; \ + clrpsw_i(); + + #define SEGGER_RTT_UNLOCK() set_psw(get_psw() | _SEGGER_RTT__LockState); \ + } +#endif + +/********************************************************************* +* +* RTT lock configuration for embOS Simulation on Windows +* (Can also be used for generic RTT locking with embOS) +*/ +#if defined(WIN32) || defined(SEGGER_RTT_LOCK_EMBOS) + +void OS_SIM_EnterCriticalSection(void); +void OS_SIM_LeaveCriticalSection(void); + +#define SEGGER_RTT_LOCK() { \ + OS_SIM_EnterCriticalSection(); + +#define SEGGER_RTT_UNLOCK() OS_SIM_LeaveCriticalSection(); \ + } +#endif + +/********************************************************************* +* +* RTT lock configuration fallback +*/ +#ifndef SEGGER_RTT_LOCK + #define SEGGER_RTT_LOCK() // Lock RTT (nestable) (i.e. disable interrupts) +#endif + +#ifndef SEGGER_RTT_UNLOCK + #define SEGGER_RTT_UNLOCK() // Unlock RTT (nestable) (i.e. enable previous interrupt lock state) +#endif + +#endif +/*************************** End of file ****************************/ diff --git a/Core/Config/mylibs_config.h b/Core/Config/mylibs_config.h new file mode 100644 index 0000000..37c6392 --- /dev/null +++ b/Core/Config/mylibs_config.h @@ -0,0 +1,132 @@ +/** +************************************************************************** +* @file mylibs_config.h +* @brief Конфигурации для библиотек MyLibs +************************************************************************** +* @defgroup MYLIBS_CONFIG Configs +* @ingroup MYLIBS_ALL +* @brief Конфигурации для библиотек MyLibs +* @{ +*************************************************************************/ +#ifndef __MYLIBS_CONFIG_H_ +#define __MYLIBS_CONFIG_H_ +#include "plib035.h" +#include "retarget_conf.h" + +// user includes + +/** + * @addtogroup TRACE_CONFIG Trace configs + * @ingroup MYLIBS_CONFIG + * @brief Конфигурация трекеров и трассировки + * @{ + */ + +#define TRACKERS_ENABLE ///< Включить трекеры +#define SERIAL_TRACE_ENABLE ///< Включить serial трассировку +#define RTT_TRACE_ENABLE ///< Включить serial трассировку через RTT +#define SWO_TRACE_ENABLE ///< Включить serial трассировку через SWO +/** + * @brief Уровень log serial трассировки @ref log_printf + * - LOG_LEVEL == 0 - логирование отключено (макрос пустой) + * - LOG_LEVEL == 1 - выводится время и TAG + * - LOG_LEVEL >= 2 - выводится время, TAG, имя файла и номер строки + */ +#define LOG_LEVEL 1 + +#define RTT_FLASH_BUFFER_SIZE 1024 ///< Размер буфера RTT в Flash +#define RTT_FLASH_SECTOR FLASH_SECTOR_11 ///< Сектор FLASH куда положится RTT буфер +#define RTT_FLASH_SECTOR_START 0x080E0000 ///< Начало сектора RTT_FLASH_SECTOR +#define RTT_FLASH_SECTOR_END 0x080FFFFF ///< Конец сектора RTT_FLASH_SECTOR + + +#define HARDFAULT_SERIAL_TRACE ///< Включить обработку и serial трассировку Hardfault +#define HF_RTT_TAG_BASE 0xDEAD0000 ///< базовый тег для HardFault +#define HF_RTT_TAIL_SIZE RTT_FLASH_BUFFER_SIZE ///< Размер буфера RTT, который сохранится при Hardfault +#define HF_STACK_DUMP_WORDS 32 ///< Сколько слов стека будет проанализировано во время Hardfault +#define HF_FLASH_ADDR ((uint32_t)0x080FF000) ///< Адрес FLASH куда положится RTT буфер +#define HF_RAM_END 0x20030000 ///< Конец RAM памяти (чтобы во время анализа стека не выйти за пределы) + +#define GPIO_TRACE_ENABLE ///< Включить GPIO трассировку + +/** TRACE_CONFIG + * @} + */ + + +/** + * @addtogroup FILTER_CONFIG Filter configs + * @ingroup MYLIBS_CONFIG + * @brief Конфигурация фильтров + * @{ + */ + + +#define FILTERS_ENABLE ///< Включить библиотеку фильтров +//#define FILTER_MEDIAN_MAX_SIZE ///< Максимальный размер окна медианного фильтра (по умолчанию 5) +//#define FILTER_AVERAGE_MAX_SIZE ///< Максимальный размер окна усредняющего фильтра (по умолчанию 8) +//#define FILTER_POLY_MAX_ORDER ///< Максимальный порядок полинома (по умолчанию 4) +#define FILTERS_DISABLE_MOVING_AVERAGE +/** GEN_CONFIG + * @} + */ + + +/** + * @addtogroup GEN_CONFIG Genetic configs + * @ingroup MYLIBS_CONFIG + * @brief Конфигурация генетического алгоритма обучения + * @{ + */ + +#define GEN_OPTIMIZATION_ENABLE ///< Включить оптимизацию параметров +#define GEN_MAX_PARAMS 20 ///< Максимальное количество параметров +#define GEN_MAX_CANDIDATES 100 ///< Максимальное количество кандидатов для обучения + +/** GEN_CONFIG + * @} + */ + + +/** + * @addtogroup GEN_CONFIG Genetic configs + * @ingroup MYLIBS_CONFIG + * @brief Конфигурация генетического алгоритма обучения + * @{ + */ + + +#define BENCH_TIME_ENABLE ///< Включить бенч времени +#define BENCH_TIME_MAX_CHANNELS 16 ///< Максимальное количество каналов измерения + +/** GEN_CONFIG + * @} + */ + + + +/** + * @addtogroup LIBS_CONFIG Libraries configs + * @ingroup MYLIBS_CONFIG + * @brief Подключение различных модулей библиотеки + * @{ + */ +extern uint32_t uwTick; +#define local_time() (uwTick) ///< Локальное время + +#define INCLUDE_FILTERS ///< Подключить библиотеку с фильтрами +#define INCLUDE_GEN_OPTIMIZER ///< Подключить библиотеку для оптимизации параметров +#define INCLUDE_BIT_ACCESS_LIB ///< Подключить библиотеку с typedef с битовыми полями +#define INCLUDE_TRACKERS_LIB ///< Подключить библиотеку с трекерами +#define INCLUDE_TRACE_LIB ///< Подключить библиотеку с трейсами +#define INCLUDE_BENCH_TIME ///< Подключить библиотеку с бенчмарком времени +//#define FREERTOS_DELAY ///< Использовать FreeRTOS задержку, вместо HAL + +/** LIBS_CONFIG + * @} + */ + +/** MYLIBS_CONFIG + * @} + */ +#endif //__MYLIBS_CONFIG_H_ diff --git a/Core/Config/mylibs_include.h b/Core/Config/mylibs_include.h new file mode 100644 index 0000000..a0e9ced --- /dev/null +++ b/Core/Config/mylibs_include.h @@ -0,0 +1,141 @@ +/** +************************************************************************** +* @file mylibs_include.h +* @brief Заголочный файл для всех библиотек +************************************************************************** +* @details +Здесь нужно собрать библиотеки и дефайны, которые должны быть видны во всем проекте, +чтобы не подключать 100 инклюдов в каждом ".c" файле +************************************************************************** +* @defgroup MYLIBS_ALL My Libs +* @brief Все используемые MyLibs библиотеки +* @details +Для подключения библиотеки необходимо: +- Сконфигурировать mylibs_config.h: + - Подключить заголовочный файл HAL библиотеки конкретного МК (напр. stm32f4xx_hal.h) + - Подключить другие заголовочные файлы которые общие для всего проекта и должны быть видны + - Подключить mylibs_include.h туда, где необходим доступ к библиотекам. + +*************************************************************************/ +#ifndef __MYLIBS_INCLUDE_H_ +#define __MYLIBS_INCLUDE_H_ + +#include "mylibs_defs.h" + + +#ifdef ARM_MATH_CM4 + #include "arm_math.h" +#else + #include "math.h" +#endif + + +#ifdef INCLUDE_BIT_ACCESS_LIB +#include "bit_access.h" +#endif + +#ifdef INCLUDE_TRACKERS_LIB +#include "trackers.h" +#else + #define TrackerTypeDef(num_user_vars) void * + #define num_of_usercnts(_user_) 0 + #define assert_tracecnt(_cntstruct_, _uservarnumb_) 0 + #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0) + #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0 + #define TrackerGet_Ok(_cntstruct_) dummy + #define TrackerGet_Err(_cntstruct_) dummy + #define TrackerGet_Warn(_cntstruct_) dummy + #define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy + #define TrackerCnt_Ok(_cntstruct_) + #define TrackerCnt_Err(_cntstruct_) + #define TrackerCnt_Warn(_cntstruct_) + #define TrackerCnt_User(_cntstruct_, _uservarnumb_) + #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) + #define TrackerClear_All(_cntstruct_) + #define TrackerClear_Ok(_cntstruct_) + #define TrackerClear_Err(_cntstruct_) + #define TrackerClear_Warn(_cntstruct_) + #define TrackerClear_User(_cntstruct_) + #define TrackerClear_UserAll(_cntstruct_) +#endif + +#ifdef INCLUDE_TRACE_LIB +#include "trace.h" +#else +#define my_printf(...) +#define log_printf(TAG, fmt, ...) +#define TRACE_GPIO_SET(_gpio_,_pin_) +#define TRACE_GPIO_RESET(_gpio_,_pin_) +#define RTT_FlashPrepare(...) +#define RTT_EraseFlash(...) 0 +#define RTT_SaveToFlash(...) 0 +#define RTT_ReadFromFlash(...) 0 +#define HF_CheckRecovered(...) 0 +#define HF_HandleFault(...) +#endif + +#ifdef INCLUDE_GEN_OPTIMIZER +#include "gen_optimizer.h" +#else +typedef struct { + uint16_t n_params; + uint16_t n_cand; + uint16_t n_best; + uint16_t iq_mutation; + int32_t loss[0]; + int32_t candidates[0][0]; +} GenOptimizer_t; +#define GenOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params) +#define GenOptimizer_Step(opt, params, LossFunc) +#define PARAM_SCALE_Q16(x, min_val, max_val) (x) +#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) (q16_val) +#endif + + + +#ifdef INCLUDE_BENCH_TIME +#include "bench_time.h" +#else //BENCH_TIME_ENABLE +#define BenchTime_Init() +#define BenchTime_Start(channel, ticks, tick_period) 0 +#define BenchTime_End(channel, ticks) 0 +#define BenchTime_GetMin(channel) 0 +#define BenchTime_GetMax(channel) 0 +#define BenchTime_GetAverage(channel) 0 +#define BenchTime_GetCount(channel) 0 +#define BenchTime_GetLast(channel) 0 +#define BenchTime_ResetStats(channel) +#endif //BENCH_TIME_ENABLE + +#ifdef INCLUDE_FILTERS +#include "filters.h" +#else //INCLUDE_FILTERS +#endif //INCLUDE_FILTERS + +#ifdef INCLUDE_GENERAL_PERIPH_LIBS + +#include "__general_flash.h" +#include "general_gpio.h" +#ifdef HAL_SPI_MODULE_ENABLED +#include "general_spi.h" +#endif +#ifdef HAL_UART_MODULE_ENABLED +#include "general_uart.h" +#endif +#ifdef HAL_TIM_MODULE_ENABLED +#include "general_tim.h" +#endif + +#endif //INCLUDE_GENERAL_PERIPH_LIBS + + + + +/////////////////////////---USER SETTINGS---///////////////////////// +// user includes + +// user settings +/////////////////////////---USER SETTINGS---///////////////////////// + + +#endif // __MYLIBS_INCLUDE_H_ diff --git a/Core/ExtendedLibs b/Core/ExtendedLibs new file mode 160000 index 0000000..0031156 --- /dev/null +++ b/Core/ExtendedLibs @@ -0,0 +1 @@ +Subproject commit 0031156d5c898acb87ab3909260e82c95e1eb21a diff --git a/Listings/Firmware.map b/Listings/Firmware.map new file mode 100644 index 0000000..42cbdde --- /dev/null +++ b/Listings/Firmware.map @@ -0,0 +1,1953 @@ +Component: ARM Compiler 5.06 update 7 (build 960) Tool: armlink [4d3601] + +============================================================================== + +Section Cross References + + main.o(i.GenOptimizer_Init) refers to rand.o(.text) for srand + main.o(i.GenOptimizer_Init) refers to rand.o(.emb_text) for rand + main.o(i.GenOptimizer_Init) refers to system_k1921vk035.o(.data) for uwTick + main.o(i.GenOptimizer_Step) refers to qsortnoex.o(.text) for qsort + main.o(i.GenOptimizer_Step) refers to rand.o(.emb_text) for rand + main.o(i.GenOptimizer_Step) refers to main.o(.data) for g_sort_opt + main.o(i.GenOptimizer_Step) refers to main.o(i.cmp_idx) for cmp_idx + main.o(i.assert_failed) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + main.o(i.assert_failed) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d + main.o(i.assert_failed) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s + main.o(i.assert_failed) refers to _printf_dec.o(.text) for _printf_int_dec + main.o(i.assert_failed) refers to _printf_str.o(.text) for _printf_str + main.o(i.assert_failed) refers to noretval__2printf.o(.text) for __2printf + main.o(i.cmp_idx) refers to main.o(.data) for g_sort_opt + main.o(i.main) refers to main.o(i.periph_init) for periph_init + main.o(i.periph_init) refers to _printf_pad.o(.text) for _printf_pre_padding + main.o(i.periph_init) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + main.o(i.periph_init) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d + main.o(i.periph_init) refers to _printf_dec.o(.text) for _printf_int_dec + main.o(i.periph_init) refers to system_k1921vk035.o(i.SystemCoreClockUpdate) for SystemCoreClockUpdate + main.o(i.periph_init) refers to rcu.o(i.sysclk_init) for sysclk_init + main.o(i.periph_init) refers to gpio.o(i.gpio_init) for gpio_init + main.o(i.periph_init) refers to retarget_conf.o(i.retarget_init) for retarget_init + main.o(i.periph_init) refers to dflt_clz.o(x$fpl$dfltu) for __aeabi_ui2d + main.o(i.periph_init) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv + main.o(i.periph_init) refers to dfix.o(x$fpl$dfix) for __aeabi_d2iz + main.o(i.periph_init) refers to noretval__2printf.o(.text) for __2printf + main.o(i.periph_init) refers to system_k1921vk035.o(.data) for SystemCoreClock + gpio.o(i.GenOptimizer_Init) refers to rand.o(.text) for srand + gpio.o(i.GenOptimizer_Init) refers to rand.o(.emb_text) for rand + gpio.o(i.GenOptimizer_Init) refers to system_k1921vk035.o(.data) for uwTick + gpio.o(i.GenOptimizer_Step) refers to qsortnoex.o(.text) for qsort + gpio.o(i.GenOptimizer_Step) refers to rand.o(.emb_text) for rand + gpio.o(i.GenOptimizer_Step) refers to gpio.o(.data) for g_sort_opt + gpio.o(i.GenOptimizer_Step) refers to gpio.o(i.cmp_idx) for cmp_idx + gpio.o(i.RCU_AHBClkCmd) refers to main.o(i.assert_failed) for assert_failed + gpio.o(i.RCU_AHBRstCmd) refers to main.o(i.assert_failed) for assert_failed + gpio.o(i.RCU_AHBRstCmd) refers to gpio.o(i.RCU_AHBClkCmd) for i.RCU_AHBClkCmd + gpio.o(i.cmp_idx) refers to gpio.o(.data) for g_sort_opt + gpio.o(i.gpio_init) refers to gpio.o(i.RCU_AHBClkCmd) for RCU_AHBClkCmd + gpio.o(i.gpio_init) refers to gpio.o(i.RCU_AHBRstCmd) for RCU_AHBRstCmd + gpio.o(i.gpio_init) refers to plib035_gpio.o(i.GPIO_DeInit) for GPIO_DeInit + gpio.o(i.gpio_init) refers to plib035_gpio.o(i.GPIO_Init) for GPIO_Init + gpio.o(i.gpio_init) refers to gpio.o(.data) for gpioa_config + rcu.o(i.GenOptimizer_Init) refers to rand.o(.text) for srand + rcu.o(i.GenOptimizer_Init) refers to rand.o(.emb_text) for rand + rcu.o(i.GenOptimizer_Init) refers to system_k1921vk035.o(.data) for uwTick + rcu.o(i.GenOptimizer_Step) refers to qsortnoex.o(.text) for qsort + rcu.o(i.GenOptimizer_Step) refers to rand.o(.emb_text) for rand + rcu.o(i.GenOptimizer_Step) refers to rcu.o(.data) for g_sort_opt + rcu.o(i.GenOptimizer_Step) refers to rcu.o(i.cmp_idx) for cmp_idx + rcu.o(i.RCU_ClkOutConfig) refers to main.o(i.assert_failed) for assert_failed + rcu.o(i.RCU_ClkOutConfig) refers to rcu.o(i.sysclk_init) for i.sysclk_init + rcu.o(i.cmp_idx) refers to rcu.o(.data) for g_sort_opt + rcu.o(i.sysclk_init) refers to plib035_rcu.o(i.RCU_PLL_AutoConfig) for RCU_PLL_AutoConfig + rcu.o(i.sysclk_init) refers to main.o(i.Error_Handler) for Error_Handler + rcu.o(i.sysclk_init) refers to system_k1921vk035.o(i.SystemCoreClockUpdate) for SystemCoreClockUpdate + rcu.o(i.sysclk_init) refers to rcu.o(i.RCU_ClkOutConfig) for RCU_ClkOutConfig + rcu.o(i.sysclk_init) refers to main.o(i.assert_failed) for assert_failed + rcu.o(i.sysclk_init) refers to rcu.o(.data) for OS_Type + vk035_it.o(i.GenOptimizer_Init) refers to rand.o(.text) for srand + vk035_it.o(i.GenOptimizer_Init) refers to rand.o(.emb_text) for rand + vk035_it.o(i.GenOptimizer_Init) refers to system_k1921vk035.o(.data) for uwTick + vk035_it.o(i.GenOptimizer_Step) refers to qsortnoex.o(.text) for qsort + vk035_it.o(i.GenOptimizer_Step) refers to rand.o(.emb_text) for rand + vk035_it.o(i.GenOptimizer_Step) refers to vk035_it.o(.data) for g_sort_opt + vk035_it.o(i.GenOptimizer_Step) refers to vk035_it.o(i.cmp_idx) for cmp_idx + vk035_it.o(i.SysTick_Handler) refers to system_k1921vk035.o(.data) for uwTick + vk035_it.o(i.cmp_idx) refers to vk035_it.o(.data) for g_sort_opt + segger_rtt.o(i.SEGGER_RTT_AllocDownBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_AllocDownBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_AllocUpBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_AllocUpBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_ConfigDownBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_ConfigDownBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_ConfigUpBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_ConfigUpBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_GetAvailWriteSpace) refers to segger_rtt.o(i._GetAvailWriteSpace) for _GetAvailWriteSpace + segger_rtt.o(i.SEGGER_RTT_GetAvailWriteSpace) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_GetBytesInBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_GetKey) refers to segger_rtt.o(i.SEGGER_RTT_Read) for SEGGER_RTT_Read + segger_rtt.o(i.SEGGER_RTT_HasData) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_HasDataUp) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_HasKey) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_HasKey) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_Init) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_PutChar) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_PutChar) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_PutCharSkip) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_PutCharSkip) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_PutCharSkipNoLock) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_Read) refers to segger_rtt.o(i.SEGGER_RTT_ReadNoLock) for SEGGER_RTT_ReadNoLock + segger_rtt.o(i.SEGGER_RTT_ReadNoLock) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_ReadNoLock) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy + segger_rtt.o(i.SEGGER_RTT_ReadNoLock) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_ReadUpBuffer) refers to segger_rtt.o(i.SEGGER_RTT_ReadUpBufferNoLock) for SEGGER_RTT_ReadUpBufferNoLock + segger_rtt.o(i.SEGGER_RTT_ReadUpBufferNoLock) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_ReadUpBufferNoLock) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy + segger_rtt.o(i.SEGGER_RTT_ReadUpBufferNoLock) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_SetFlagsDownBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_SetFlagsDownBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_SetFlagsUpBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_SetFlagsUpBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_SetNameDownBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_SetNameDownBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_SetNameUpBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_SetNameUpBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_SetTerminal) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_SetTerminal) refers to segger_rtt.o(i._WriteBlocking) for _WriteBlocking + segger_rtt.o(i.SEGGER_RTT_SetTerminal) refers to segger_rtt.o(i._GetAvailWriteSpace) for _GetAvailWriteSpace + segger_rtt.o(i.SEGGER_RTT_SetTerminal) refers to segger_rtt.o(i._WriteNoCheck) for _WriteNoCheck + segger_rtt.o(i.SEGGER_RTT_SetTerminal) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_SetTerminal) refers to segger_rtt.o(.constdata) for _aTerminalId + segger_rtt.o(i.SEGGER_RTT_SetTerminal) refers to segger_rtt.o(.data) for _ActiveTerminal + segger_rtt.o(i.SEGGER_RTT_TerminalOut) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_TerminalOut) refers to strlen.o(.text) for strlen + segger_rtt.o(i.SEGGER_RTT_TerminalOut) refers to segger_rtt.o(i._GetAvailWriteSpace) for _GetAvailWriteSpace + segger_rtt.o(i.SEGGER_RTT_TerminalOut) refers to segger_rtt.o(i._PostTerminalSwitch) for _PostTerminalSwitch + segger_rtt.o(i.SEGGER_RTT_TerminalOut) refers to segger_rtt.o(i._WriteBlocking) for _WriteBlocking + segger_rtt.o(i.SEGGER_RTT_TerminalOut) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_TerminalOut) refers to segger_rtt.o(.data) for _ActiveTerminal + segger_rtt.o(i.SEGGER_RTT_WaitKey) refers to segger_rtt.o(i.SEGGER_RTT_GetKey) for SEGGER_RTT_GetKey + segger_rtt.o(i.SEGGER_RTT_Write) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_Write) refers to segger_rtt.o(i.SEGGER_RTT_WriteNoLock) for SEGGER_RTT_WriteNoLock + segger_rtt.o(i.SEGGER_RTT_Write) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_WriteDownBuffer) refers to segger_rtt.o(i._DoInit) for _DoInit + segger_rtt.o(i.SEGGER_RTT_WriteDownBuffer) refers to segger_rtt.o(i.SEGGER_RTT_WriteDownBufferNoLock) for SEGGER_RTT_WriteDownBufferNoLock + segger_rtt.o(i.SEGGER_RTT_WriteDownBuffer) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_WriteDownBufferNoLock) refers to segger_rtt.o(i._GetAvailWriteSpace) for _GetAvailWriteSpace + segger_rtt.o(i.SEGGER_RTT_WriteDownBufferNoLock) refers to segger_rtt.o(i._WriteNoCheck) for _WriteNoCheck + segger_rtt.o(i.SEGGER_RTT_WriteDownBufferNoLock) refers to segger_rtt.o(i._WriteBlocking) for _WriteBlocking + segger_rtt.o(i.SEGGER_RTT_WriteDownBufferNoLock) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_WriteNoLock) refers to segger_rtt.o(i._GetAvailWriteSpace) for _GetAvailWriteSpace + segger_rtt.o(i.SEGGER_RTT_WriteNoLock) refers to segger_rtt.o(i._WriteNoCheck) for _WriteNoCheck + segger_rtt.o(i.SEGGER_RTT_WriteNoLock) refers to segger_rtt.o(i._WriteBlocking) for _WriteBlocking + segger_rtt.o(i.SEGGER_RTT_WriteNoLock) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_WriteSkipNoLock) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy + segger_rtt.o(i.SEGGER_RTT_WriteSkipNoLock) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i.SEGGER_RTT_WriteString) refers to strlen.o(.text) for strlen + segger_rtt.o(i.SEGGER_RTT_WriteString) refers to segger_rtt.o(i.SEGGER_RTT_Write) for SEGGER_RTT_Write + segger_rtt.o(i.SEGGER_RTT_WriteWithOverwriteNoLock) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy + segger_rtt.o(i.SEGGER_RTT_WriteWithOverwriteNoLock) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i._DoInit) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 + segger_rtt.o(i._DoInit) refers to segger_rtt.o(.bss) for _SEGGER_RTT + segger_rtt.o(i._DoInit) refers to segger_rtt.o(.constdata) for _aInitStr + segger_rtt.o(i._PostTerminalSwitch) refers to segger_rtt.o(i._WriteBlocking) for _WriteBlocking + segger_rtt.o(i._PostTerminalSwitch) refers to segger_rtt.o(.constdata) for _aTerminalId + segger_rtt.o(i._WriteBlocking) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy + segger_rtt.o(i._WriteNoCheck) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy + segger_rtt_printf.o(i.SEGGER_RTT_printf) refers to segger_rtt_printf.o(i.SEGGER_RTT_vprintf) for SEGGER_RTT_vprintf + segger_rtt_printf.o(i.SEGGER_RTT_vprintf) refers to segger_rtt_printf.o(i._StoreChar) for _StoreChar + segger_rtt_printf.o(i.SEGGER_RTT_vprintf) refers to segger_rtt_printf.o(i._PrintInt) for _PrintInt + segger_rtt_printf.o(i.SEGGER_RTT_vprintf) refers to segger_rtt_printf.o(i._PrintUnsigned) for _PrintUnsigned + segger_rtt_printf.o(i.SEGGER_RTT_vprintf) refers to segger_rtt.o(i.SEGGER_RTT_Write) for SEGGER_RTT_Write + segger_rtt_printf.o(i._PrintInt) refers to segger_rtt_printf.o(i._StoreChar) for _StoreChar + segger_rtt_printf.o(i._PrintInt) refers to segger_rtt_printf.o(i._PrintUnsigned) for _PrintUnsigned + segger_rtt_printf.o(i._PrintUnsigned) refers to segger_rtt_printf.o(i._StoreChar) for _StoreChar + segger_rtt_printf.o(i._PrintUnsigned) refers to segger_rtt_printf.o(.constdata) for _aV2C + segger_rtt_printf.o(i._StoreChar) refers to segger_rtt.o(i.SEGGER_RTT_Write) for SEGGER_RTT_Write + filters.o(i.FilterAverageInt_Init) refers to filters.o(i.FilterAverageInt_Process) for FilterAverageInt_Process + filters.o(i.FilterAverageInt_Process) refers to llsdiv.o(.text) for __aeabi_ldivmod + filters.o(i.FilterAverage_Init) refers to filters.o(i.FilterAverage_Process) for FilterAverage_Process + filters.o(i.FilterBandPassDerivative_Init) refers to sinf.o(i.__hardfp_sinf) for __hardfp_sinf + filters.o(i.FilterBandPassDerivative_Init) refers to cosf.o(i.__hardfp_cosf) for __hardfp_cosf + filters.o(i.FilterBandPassDerivative_Init) refers to filters.o(i.FilterBandPassDerivative_Process) for FilterBandPassDerivative_Process + filters.o(i.FilterExpInt_Init) refers to filters.o(i.FilterExpInt_Process) for FilterExpInt_Process + filters.o(i.FilterExpInt_Process) refers to llsdiv.o(.text) for __aeabi_ldivmod + filters.o(i.FilterExp_Init) refers to filters.o(i.FilterExp_Process) for FilterExp_Process + filters.o(i.FilterLUTInt_Init) refers to filters.o(i.FilterLUTInt_Process) for FilterLUTInt_Process + filters.o(i.FilterLUTInt_Process) refers to llsdiv.o(.text) for __aeabi_ldivmod + filters.o(i.FilterLUT_Init) refers to filters.o(i.FilterLUT_Process) for FilterLUT_Process + filters.o(i.FilterMedianInt_Init) refers to filters.o(i.FilterMedianInt_Process) for FilterMedianInt_Process + filters.o(i.FilterMedian_Init) refers to filters.o(i.FilterMedian_Process) for FilterMedian_Process + filters.o(i.FilterMedian_Process) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 + filters.o(i.FilterMedian_Process) refers to qsortnoex.o(.text) for qsort + filters.o(i.FilterMedian_Process) refers to filters.o(i.Filter_float_compare) for Filter_float_compare + filters.o(i.FilterPolyInt_Init) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 + filters.o(i.FilterPolyInt_Init) refers to filters.o(i.FilterPolyInt_Process) for FilterPolyInt_Process + filters.o(i.FilterPolyInt_Process) refers to llsdiv.o(.text) for __aeabi_ldivmod + filters.o(i.FilterPoly_Init) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 + filters.o(i.FilterPoly_Init) refers to filters.o(i.FilterPoly_Process) for FilterPoly_Process + filters.o(i.FilterRMSInt_Init) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 + filters.o(i.FilterRMSInt_Init) refers to filters.o(i.FilterRMSInt_Process) for FilterRMSInt_Process + filters.o(i.FilterRMSInt_Process) refers to llsdiv.o(.text) for __aeabi_ldivmod + filters.o(i.FilterRMSInt_Process) refers to ffltll_clz.o(x$fpl$ffltll) for __aeabi_l2f + filters.o(i.FilterRMS_Init) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 + filters.o(i.FilterRMS_Init) refers to filters.o(i.FilterRMS_Process) for FilterRMS_Process + system_k1921vk035.o(i.SystemCoreClockUpdate) refers to system_k1921vk035.o(.data) for SystemCoreClock + system_k1921vk035.o(i.SystemInit) refers to system_k1921vk035.o(i.ClkInit) for ClkInit + system_k1921vk035.o(i.SystemInit) refers to system_k1921vk035.o(i.FPUInit) for FPUInit + startup_k1921vk035.o(STACK) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(HEAP) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(RESET) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(RESET) refers to startup_k1921vk035.o(STACK) for __initial_sp + startup_k1921vk035.o(RESET) refers to startup_k1921vk035.o(.text) for Reset_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.NMI_Handler) for NMI_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.HardFault_Handler) for HardFault_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.MemManage_Handler) for MemManage_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.BusFault_Handler) for BusFault_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.UsageFault_Handler) for UsageFault_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.SVC_Handler) for SVC_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.DebugMon_Handler) for DebugMon_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.PendSV_Handler) for PendSV_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.SysTick_Handler) for SysTick_Handler + startup_k1921vk035.o(.text) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(.text) refers to system_k1921vk035.o(i.SystemInit) for SystemInit + startup_k1921vk035.o(.text) refers to __main.o(!!!main) for __main + startup_k1921vk035.o(.text) refers to startup_k1921vk035.o(HEAP) for Heap_Mem + startup_k1921vk035.o(.text) refers to startup_k1921vk035.o(STACK) for Stack_Mem + plib035_adc.o(i.ADC_DC_ChannelConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_ChannelConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DC_Config) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_Config) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_DC_OutputCmd) for ADC_DC_OutputCmd + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_DC_SetThresholdLow) for ADC_DC_SetThresholdLow + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_DC_SetThresholdHigh) for ADC_DC_SetThresholdHigh + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_DC_SourceConfig) for ADC_DC_SourceConfig + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_DC_ChannelConfig) for ADC_DC_ChannelConfig + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_DC_Config) for ADC_DC_Config + plib035_adc.o(i.ADC_DC_OutputCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_OutputCmd) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DC_SetThresholdHigh) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_SetThresholdHigh) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DC_SetThresholdLow) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_SetThresholdLow) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DC_SourceConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_SourceConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DeInit) refers to plib035_adc.o(i.RCU_ADCRstCmd) for RCU_ADCRstCmd + plib035_adc.o(i.ADC_SEQ_DCEnableCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_DCEnableCmd) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_DMACmd) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_DMACmd) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_DMAConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_DMAConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_SwStartEnCmd) for ADC_SEQ_SwStartEnCmd + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_ReqConfig) for ADC_SEQ_ReqConfig + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_ReqMaxConfig) for ADC_SEQ_ReqMaxConfig + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_ReqAverageConfig) for ADC_SEQ_ReqAverageConfig + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_ReqAverageCmd) for ADC_SEQ_ReqAverageCmd + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_RestartConfig) for ADC_SEQ_RestartConfig + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_RestartAverageCmd) for ADC_SEQ_RestartAverageCmd + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_SetRestartTimer) for ADC_SEQ_SetRestartTimer + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_DCEnableCmd) for ADC_SEQ_DCEnableCmd + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_DMAConfig) for ADC_SEQ_DMAConfig + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_DMACmd) for ADC_SEQ_DMACmd + plib035_adc.o(i.ADC_SEQ_ReqAverageCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_ReqAverageCmd) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_ReqAverageConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_ReqAverageConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_ReqConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_ReqConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_ReqMaxConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_ReqMaxConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_RestartAverageCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_RestartAverageCmd) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_RestartConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_RestartConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_SetRestartTimer) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_SetRestartTimer) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_SwStartEnCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_SwStartEnCmd) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.RCU_ADCRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_AltCtrlCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_AltCtrlCmd) refers to plib035_dma.o(i.DMA_ProtectConfig) for i.DMA_ProtectConfig + plib035_dma.o(i.DMA_ChannelEnableCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_ChannelEnableCmd) refers to plib035_dma.o(i.DMA_ProtectConfig) for i.DMA_ProtectConfig + plib035_dma.o(i.DMA_ChannelInit) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_HighPriorityCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_HighPriorityCmd) refers to plib035_dma.o(i.DMA_ProtectConfig) for i.DMA_ProtectConfig + plib035_dma.o(i.DMA_Init) refers to plib035_dma.o(i.DMA_ProtectConfig) for DMA_ProtectConfig + plib035_dma.o(i.DMA_Init) refers to plib035_dma.o(i.DMA_UseBurstCmd) for DMA_UseBurstCmd + plib035_dma.o(i.DMA_Init) refers to plib035_dma.o(i.DMA_AltCtrlCmd) for DMA_AltCtrlCmd + plib035_dma.o(i.DMA_Init) refers to plib035_dma.o(i.DMA_HighPriorityCmd) for DMA_HighPriorityCmd + plib035_dma.o(i.DMA_Init) refers to plib035_dma.o(i.DMA_ReqMaskCmd) for DMA_ReqMaskCmd + plib035_dma.o(i.DMA_Init) refers to plib035_dma.o(i.DMA_ChannelEnableCmd) for DMA_ChannelEnableCmd + plib035_dma.o(i.DMA_ProtectConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_ReqMaskCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_ReqMaskCmd) refers to plib035_dma.o(i.DMA_ProtectConfig) for i.DMA_ProtectConfig + plib035_dma.o(i.DMA_UseBurstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_UseBurstCmd) refers to plib035_dma.o(i.DMA_ProtectConfig) for i.DMA_ProtectConfig + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_ModeConfig) for ECAP_Capture_ModeConfig + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_StopConfig) for ECAP_Capture_StopConfig + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_PrescaleConfig) for ECAP_Capture_PrescaleConfig + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_PolarityEvt0Config) for ECAP_Capture_PolarityEvt0Config + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_PolarityEvt1Config) for ECAP_Capture_PolarityEvt1Config + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_PolarityEvt2Config) for ECAP_Capture_PolarityEvt2Config + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_PolarityEvt3Config) for ECAP_Capture_PolarityEvt3Config + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_RstEvt0Cmd) for ECAP_Capture_RstEvt0Cmd + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_RstEvt1Cmd) for ECAP_Capture_RstEvt1Cmd + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_RstEvt2Cmd) for ECAP_Capture_RstEvt2Cmd + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Capture_RstEvt3Cmd) for ECAP_Capture_RstEvt3Cmd + plib035_ecap.o(i.ECAP_Capture_ModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_ModeConfig) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_PolarityEvt0Config) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_PolarityEvt0Config) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_PolarityEvt1Config) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_PolarityEvt1Config) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_PolarityEvt2Config) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_PolarityEvt2Config) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_PolarityEvt3Config) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_PolarityEvt3Config) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_PrescaleConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_PrescaleConfig) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_RstEvt0Cmd) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_RstEvt0Cmd) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_RstEvt1Cmd) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_RstEvt1Cmd) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_RstEvt2Cmd) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_RstEvt2Cmd) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_RstEvt3Cmd) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_RstEvt3Cmd) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Capture_StopConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_StopConfig) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_DeInit) refers to plib035_ecap.o(i.RCU_APBRstCmd) for RCU_APBRstCmd + plib035_ecap.o(i.ECAP_HaltConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_HaltConfig) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_Init) refers to plib035_ecap.o(i.ECAP_HaltConfig) for ECAP_HaltConfig + plib035_ecap.o(i.ECAP_Init) refers to plib035_ecap.o(i.ECAP_SyncOutConfig) for ECAP_SyncOutConfig + plib035_ecap.o(i.ECAP_Init) refers to plib035_ecap.o(i.ECAP_SyncCmd) for ECAP_SyncCmd + plib035_ecap.o(i.ECAP_Init) refers to plib035_ecap.o(i.ECAP_ModeConfig) for ECAP_ModeConfig + plib035_ecap.o(i.ECAP_ModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_ModeConfig) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_PWM_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_PWM_Init) refers to plib035_ecap.o(i.ECAP_PWM_PolarityConfig) for ECAP_PWM_PolarityConfig + plib035_ecap.o(i.ECAP_PWM_PolarityConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_PWM_PolarityConfig) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_SyncCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_SyncCmd) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.ECAP_SyncOutConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_SyncOutConfig) refers to plib035_ecap.o(i.ECAP_PWM_Init) for i.ECAP_PWM_Init + plib035_ecap.o(i.RCU_APBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_AltFuncCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_AltFuncCmd) refers to plib035_gpio.o(i.GPIO_DigitalCmd) for i.GPIO_DigitalCmd + plib035_gpio.o(i.GPIO_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_DeInit) refers to plib035_gpio.o(i.RCU_AHBRstCmd) for RCU_AHBRstCmd + plib035_gpio.o(i.GPIO_DigitalCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_DriveModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_DriveModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.GPIO_InModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_InModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_OutCmd) for GPIO_OutCmd + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_AltFuncCmd) for GPIO_AltFuncCmd + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_OutModeConfig) for GPIO_OutModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_InModeConfig) for GPIO_InModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_PullModeConfig) for GPIO_PullModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_DriveModeConfig) for GPIO_DriveModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_DigitalCmd) for GPIO_DigitalCmd + plib035_gpio.o(i.GPIO_OutCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_OutCmd) refers to plib035_gpio.o(i.GPIO_DigitalCmd) for i.GPIO_DigitalCmd + plib035_gpio.o(i.GPIO_OutModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_OutModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.GPIO_PullModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_PullModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.RCU_AHBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_i2c.o(i.I2C_FSFreqConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_i2c.o(i.I2C_HSFreqConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_i2c.o(i.I2C_HSFreqConfig) refers to plib035_i2c.o(i.I2C_FSFreqConfig) for i.I2C_FSFreqConfig + plib035_mflash.o(i.MFLASH_EraseFull) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_EraseFull) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_EraseFull) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_ErasePage) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_ErasePage) refers to plib035_mflash.o(i.MFLASH_SetAddr) for MFLASH_SetAddr + plib035_mflash.o(i.MFLASH_ErasePage) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_ErasePage) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_ReadData) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_ReadData) refers to plib035_mflash.o(i.MFLASH_SetAddr) for MFLASH_SetAddr + plib035_mflash.o(i.MFLASH_ReadData) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_ReadData) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_WriteData) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_WriteData) refers to plib035_mflash.o(i.MFLASH_SetAddr) for MFLASH_SetAddr + plib035_mflash.o(i.MFLASH_WriteData) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_WriteData) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_WriteData) refers to plib035_mflash.o(i.MFLASH_ReadData) for i.MFLASH_ReadData + plib035_pwm.o(i.PWM_AQ_ActionAConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_AQ_ActionBConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_AQ_Init) refers to plib035_pwm.o(i.PWM_AQ_ActionAConfig) for PWM_AQ_ActionAConfig + plib035_pwm.o(i.PWM_AQ_Init) refers to plib035_pwm.o(i.PWM_AQ_ActionBConfig) for PWM_AQ_ActionBConfig + plib035_pwm.o(i.PWM_CMP_CmpADirectLoadCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_CMP_CmpALoadEventConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_CMP_Init) refers to plib035_pwm.o(i.PWM_CMP_CmpALoadEventConfig) for PWM_CMP_CmpALoadEventConfig + plib035_pwm.o(i.PWM_CMP_Init) refers to plib035_pwm.o(i.PWM_CMP_CmpADirectLoadCmd) for PWM_CMP_CmpADirectLoadCmd + plib035_pwm.o(i.PWM_CMP_Init) refers to plib035_pwm.o(i.PWM_CMP_SetCmpA) for PWM_CMP_SetCmpA + plib035_pwm.o(i.PWM_CMP_Init) refers to plib035_pwm.o(i.PWM_CMP_SetCmpB) for PWM_CMP_SetCmpB + plib035_pwm.o(i.PWM_CMP_SetCmpA) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_CMP_SetCmpA) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_CMP_SetCmpB) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_CMP_SetCmpB) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_DB_InConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_DB_InConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_DB_Init) refers to plib035_pwm.o(i.PWM_DB_InConfig) for PWM_DB_InConfig + plib035_pwm.o(i.PWM_DB_Init) refers to plib035_pwm.o(i.PWM_DB_OutConfig) for PWM_DB_OutConfig + plib035_pwm.o(i.PWM_DB_Init) refers to plib035_pwm.o(i.PWM_DB_PolarityConfig) for PWM_DB_PolarityConfig + plib035_pwm.o(i.PWM_DB_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_DB_Init) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_DB_OutConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_DB_OutConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_DB_PolarityConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_DB_PolarityConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_DeInit) refers to plib035_pwm.o(i.RCU_APBRstCmd) for RCU_APBRstCmd + plib035_pwm.o(i.PWM_ET_DRQACmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_DRQACmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_DRQAEventConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_DRQAEventConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_DRQAPeriodConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_DRQAPeriodConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_DRQBCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_DRQBCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_DRQBEventConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_DRQBEventConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_DRQBPeriodConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_DRQBPeriodConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_SOCAEventConfig) for PWM_ET_SOCAEventConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_SOCAPeriodConfig) for PWM_ET_SOCAPeriodConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_SOCACmd) for PWM_ET_SOCACmd + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_SOCBEventConfig) for PWM_ET_SOCBEventConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_SOCBPeriodConfig) for PWM_ET_SOCBPeriodConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_SOCBCmd) for PWM_ET_SOCBCmd + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_DRQAEventConfig) for PWM_ET_DRQAEventConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_DRQAPeriodConfig) for PWM_ET_DRQAPeriodConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_DRQACmd) for PWM_ET_DRQACmd + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_DRQBEventConfig) for PWM_ET_DRQBEventConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_DRQBPeriodConfig) for PWM_ET_DRQBPeriodConfig + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_ET_DRQBCmd) for PWM_ET_DRQBCmd + plib035_pwm.o(i.PWM_ET_SOCACmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_SOCACmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_SOCAEventConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_SOCAEventConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_SOCAPeriodConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_SOCAPeriodConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_SOCBCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_SOCBCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_SOCBEventConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_SOCBEventConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_ET_SOCBPeriodConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_SOCBPeriodConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_HD_ActionAConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_HD_ActionAConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_HD_ActionBConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_HD_ActionBConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_HD_CycleCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_HD_CycleCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_HD_Init) refers to plib035_pwm.o(i.PWM_HD_ActionAConfig) for PWM_HD_ActionAConfig + plib035_pwm.o(i.PWM_HD_Init) refers to plib035_pwm.o(i.PWM_HD_ActionBConfig) for PWM_HD_ActionBConfig + plib035_pwm.o(i.PWM_HD_Init) refers to plib035_pwm.o(i.PWM_HD_SourceCmd) for PWM_HD_SourceCmd + plib035_pwm.o(i.PWM_HD_Init) refers to plib035_pwm.o(i.PWM_HD_CycleCmd) for PWM_HD_CycleCmd + plib035_pwm.o(i.PWM_HD_Init) refers to plib035_pwm.o(i.PWM_HD_OneShotCmd) for PWM_HD_OneShotCmd + plib035_pwm.o(i.PWM_HD_OneShotCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_HD_OneShotCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_HD_SourceCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_HD_SourceCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_ClkDivConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_HaltConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_HaltConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_HaltConfig) for PWM_TB_HaltConfig + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_PhaseSyncCmd) for PWM_TB_PhaseSyncCmd + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_PhaseSyncDirConfig) for PWM_TB_PhaseSyncDirConfig + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_ClkDivConfig) for PWM_TB_ClkDivConfig + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_SyncOutConfig) for PWM_TB_SyncOutConfig + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_PeriodDirectLoadCmd) for PWM_TB_PeriodDirectLoadCmd + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_ModeConfig) for PWM_TB_ModeConfig + plib035_pwm.o(i.PWM_TB_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_ModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_ModeConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_PeriodDirectLoadCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_PeriodDirectLoadCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_PhaseSyncCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_PhaseSyncCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_PhaseSyncDirConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_PhaseSyncDirConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_SyncOutConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_SyncOutConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TZ_ActionAConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TZ_ActionAConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TZ_ActionBConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TZ_ActionBConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TZ_CycleCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TZ_CycleCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TZ_Init) refers to plib035_pwm.o(i.PWM_TZ_ActionAConfig) for PWM_TZ_ActionAConfig + plib035_pwm.o(i.PWM_TZ_Init) refers to plib035_pwm.o(i.PWM_TZ_ActionBConfig) for PWM_TZ_ActionBConfig + plib035_pwm.o(i.PWM_TZ_Init) refers to plib035_pwm.o(i.PWM_TZ_CycleCmd) for PWM_TZ_CycleCmd + plib035_pwm.o(i.PWM_TZ_Init) refers to plib035_pwm.o(i.PWM_TZ_OneShotCmd) for PWM_TZ_OneShotCmd + plib035_pwm.o(i.PWM_TZ_OneShotCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TZ_OneShotCmd) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.RCU_APBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.QEP_CAP_DivConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.QEP_CAP_DivConfig) refers to plib035_qep.o(i.QEP_PC_Init) for i.QEP_PC_Init + plib035_qep.o(i.QEP_CAP_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.QEP_CAP_Init) refers to plib035_qep.o(i.QEP_CAP_DivConfig) for QEP_CAP_DivConfig + plib035_qep.o(i.QEP_CAP_Init) refers to plib035_qep.o(i.QEP_PC_Init) for i.QEP_PC_Init + plib035_qep.o(i.QEP_CMP_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.QEP_CMP_Init) refers to plib035_qep.o(i.QEP_PC_Init) for i.QEP_PC_Init + plib035_qep.o(i.QEP_DeInit) refers to plib035_qep.o(i.RCU_APBRstCmd) for RCU_APBRstCmd + plib035_qep.o(i.QEP_PC_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.RCU_APBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.MFLASH_LatencyConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.RCU_GetADCClkFreq) refers to plib035_rcu.o(i.getPeriphClkFreq) for getPeriphClkFreq + plib035_rcu.o(i.RCU_GetClkOutFreq) refers to plib035_rcu.o(i.getSysPeriphClkFreq) for getSysPeriphClkFreq + plib035_rcu.o(i.RCU_GetPLLDivClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.RCU_GetSPIClkFreq) refers to plib035_rcu.o(i.getPeriphClkFreq) for getPeriphClkFreq + plib035_rcu.o(i.RCU_GetSysClkFreq) refers to plib035_rcu.o(i.getSysClkFreq) for getSysClkFreq + plib035_rcu.o(i.RCU_GetTraceClkFreq) refers to plib035_rcu.o(i.getSysPeriphClkFreq) for getSysPeriphClkFreq + plib035_rcu.o(i.RCU_GetUARTClkFreq) refers to plib035_rcu.o(i.getPeriphClkFreq) for getPeriphClkFreq + plib035_rcu.o(i.RCU_GetWDTClkFreq) refers to plib035_rcu.o(i.getSysPeriphClkFreq) for getSysPeriphClkFreq + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.RCU_PLL_StructInit) for RCU_PLL_StructInit + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.RCU_PLL_Init) for RCU_PLL_Init + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.MFLASH_LatencyConfig) for MFLASH_LatencyConfig + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.RCU_SysClkChangeCmd) for RCU_SysClkChangeCmd + plib035_rcu.o(i.RCU_PLL_DeInit) refers to plib035_rcu.o(i.RCU_PLL_OutCmd) for RCU_PLL_OutCmd + plib035_rcu.o(i.RCU_PLL_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.RCU_PLL_Init) refers to plib035_rcu.o(i.RCU_PLL_OutCmd) for RCU_PLL_OutCmd + plib035_rcu.o(i.RCU_PLL_OutCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.RCU_SysClkChangeCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSEClkFreq) for RCU_GetOSEClkFreq + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLDivClkFreq) for RCU_GetPLLDivClkFreq + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSIClkFreq) for RCU_GetOSIClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetOSIClkFreq) for RCU_GetOSIClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetOSEClkFreq) for RCU_GetOSEClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLDivClkFreq) for RCU_GetPLLDivClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSEClkFreq) for RCU_GetOSEClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLDivClkFreq) for RCU_GetPLLDivClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSIClkFreq) for RCU_GetOSIClkFreq + plib035_spi.o(i.RCU_SPIRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_spi.o(i.SPI_DataWidthConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_spi.o(i.SPI_DataWidthConfig) refers to plib035_spi.o(i.SPI_Init) for i.SPI_Init + plib035_spi.o(i.SPI_DeInit) refers to plib035_spi.o(i.RCU_SPIRstCmd) for RCU_SPIRstCmd + plib035_spi.o(i.SPI_Init) refers to plib035_spi.o(i.SPI_SCKDivConfig) for SPI_SCKDivConfig + plib035_spi.o(i.SPI_Init) refers to plib035_spi.o(i.SPI_DataWidthConfig) for SPI_DataWidthConfig + plib035_spi.o(i.SPI_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_spi.o(i.SPI_SCKDivConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_spi.o(i.SPI_SCKDivConfig) refers to plib035_spi.o(i.SPI_Init) for i.SPI_Init + plib035_tmr.o(i.TMR_FreqConfig) refers to plib035_tmr.o(i.TMR_SetLoad) for TMR_SetLoad + plib035_tmr.o(i.TMR_PeriodConfig) refers to plib035_tmr.o(i.TMR_SetLoad) for TMR_SetLoad + plib035_tmr.o(i.TMR_SetLoad) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.RCU_UARTRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_AutoBaudConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_AutoBaudConfig) refers to plib035_rcu.o(i.RCU_GetUARTClkFreq) for RCU_GetUARTClkFreq + plib035_uart.o(i.UART_AutoBaudConfig) refers to plib035_uart.o(i.UART_BaudDivConfig) for UART_BaudDivConfig + plib035_uart.o(i.UART_BaudDivConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_BaudDivConfig) refers to plib035_uart.o(i.UART_DataWidthConfig) for i.UART_DataWidthConfig + plib035_uart.o(i.UART_DataWidthConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_DeInit) refers to plib035_uart.o(i.RCU_UARTRstCmd) for RCU_UARTRstCmd + plib035_uart.o(i.UART_FIFOCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_FIFOCmd) refers to plib035_uart.o(i.UART_DataWidthConfig) for i.UART_DataWidthConfig + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_AutoBaudConfig) for UART_AutoBaudConfig + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_DataWidthConfig) for UART_DataWidthConfig + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_StopBitConfig) for UART_StopBitConfig + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_ParityBitConfig) for UART_ParityBitConfig + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_FIFOCmd) for UART_FIFOCmd + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_TxCmd) for UART_TxCmd + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_RxCmd) for UART_RxCmd + plib035_uart.o(i.UART_ParityBitConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_ParityBitConfig) refers to plib035_uart.o(i.UART_DataWidthConfig) for i.UART_DataWidthConfig + plib035_uart.o(i.UART_RxCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_RxCmd) refers to plib035_uart.o(i.UART_DataWidthConfig) for i.UART_DataWidthConfig + plib035_uart.o(i.UART_StopBitConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_StopBitConfig) refers to plib035_uart.o(i.UART_DataWidthConfig) for i.UART_DataWidthConfig + plib035_uart.o(i.UART_TxCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_TxCmd) refers to plib035_uart.o(i.UART_DataWidthConfig) for i.UART_DataWidthConfig + retarget.o(.rev16_text) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(.revsh_text) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(.rrx_text) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i._sys_exit) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i._ttywrch) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i._ttywrch) refers to retarget_conf.o(i.retarget_put_char) for retarget_put_char + retarget.o(i.ferror) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i.fgetc) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i.fgetc) refers to retarget_conf.o(i.retarget_get_char) for retarget_get_char + retarget.o(i.fputc) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i.fputc) refers to retarget_conf.o(i.retarget_put_char) for retarget_put_char + retarget.o(.data) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget_conf.o(i.retarget_init) refers to system_k1921vk035.o(.data) for SystemCoreClock + llsdiv.o(.text) refers to lludivv7m.o(.text) for __aeabi_uldivmod + __2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file + __2printf.o(.text) refers to retarget.o(.data) for __stdout + noretval__2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file + noretval__2printf.o(.text) refers to retarget.o(.data) for __stdout + __printf.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + _printf_str.o(.text) refers (Special) to _printf_char.o(.text) for _printf_cs_common + _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding + _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding + _printf_dec.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common + __printf_flags.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags.o(.text) refers to __printf_flags.o(.constdata) for .constdata + __printf_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss.o(.text) refers to __printf_flags_ss.o(.constdata) for .constdata + __printf_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_flags_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_wp.o(.text) refers to __printf_flags_wp.o(.constdata) for .constdata + __printf_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_flags_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss_wp.o(.text) refers to __printf_flags_ss_wp.o(.constdata) for .constdata + _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) refers (Weak) to _printf_char.o(.text) for _printf_string + _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) refers (Weak) to _printf_dec.o(.text) for _printf_int_dec + _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) refers (Special) to _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) for _printf_percent_end + rand.o(.emb_text) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000D) for __rt_lib_init_rand_2 + rand.o(.emb_text) refers to rand.o(.text) for _rand_init + rand.o(.emb_text) refers to rand.o(.bss) for _random_number_data + rand.o(.text) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000D) for __rt_lib_init_rand_2 + rand.o(.text) refers to rand.o(.bss) for .bss + rand.o(.bss) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000D) for __rt_lib_init_rand_2 + rt_memcpy_v6.o(.text) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 + __main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry + ddiv.o(x$fpl$drdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + ddiv.o(x$fpl$drdiv) refers to ddiv.o(x$fpl$ddiv) for ddiv_entry + ddiv.o(x$fpl$ddiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + ddiv.o(x$fpl$ddiv) refers to dretinf.o(x$fpl$dretinf) for __fpl_dretinf + ddiv.o(x$fpl$ddiv) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf + dfix.o(x$fpl$dfix) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dfix.o(x$fpl$dfix) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf + dfix.o(x$fpl$dfixr) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dfix.o(x$fpl$dfixr) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf + dflt_clz.o(x$fpl$dfltu) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dflt_clz.o(x$fpl$dflt) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dflt_clz.o(x$fpl$dfltn) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + ffltll_clz.o(x$fpl$ffltll) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + cosf.o(i.__hardfp_cosf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + cosf.o(i.__hardfp_cosf) refers to rredf.o(i.__mathlib_rredf2) for __mathlib_rredf2 + cosf.o(i.__hardfp_cosf) refers to _rserrno.o(.text) for __set_errno + cosf.o(i.__hardfp_cosf) refers to funder.o(i.__mathlib_flt_invalid) for __mathlib_flt_invalid + cosf.o(i.__hardfp_cosf) refers to funder.o(i.__mathlib_flt_infnan) for __mathlib_flt_infnan + cosf.o(i.__softfp_cosf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + cosf.o(i.__softfp_cosf) refers to cosf.o(i.__hardfp_cosf) for __hardfp_cosf + cosf.o(i.cosf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + cosf.o(i.cosf) refers to cosf.o(i.__hardfp_cosf) for __hardfp_cosf + cosf_x.o(i.____hardfp_cosf$lsc) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + cosf_x.o(i.____hardfp_cosf$lsc) refers to rredf.o(i.__mathlib_rredf2) for __mathlib_rredf2 + cosf_x.o(i.____hardfp_cosf$lsc) refers to _rserrno.o(.text) for __set_errno + cosf_x.o(i.____hardfp_cosf$lsc) refers to funder.o(i.__mathlib_flt_infnan) for __mathlib_flt_infnan + cosf_x.o(i.____softfp_cosf$lsc) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + cosf_x.o(i.____softfp_cosf$lsc) refers to cosf_x.o(i.____hardfp_cosf$lsc) for ____hardfp_cosf$lsc + cosf_x.o(i.__cosf$lsc) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + cosf_x.o(i.__cosf$lsc) refers to cosf_x.o(i.____hardfp_cosf$lsc) for ____hardfp_cosf$lsc + sinf.o(i.__hardfp_sinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + sinf.o(i.__hardfp_sinf) refers to rredf.o(i.__mathlib_rredf2) for __mathlib_rredf2 + sinf.o(i.__hardfp_sinf) refers to fpclassifyf.o(i.__ARM_fpclassifyf) for __ARM_fpclassifyf + sinf.o(i.__hardfp_sinf) refers to funder.o(i.__mathlib_flt_underflow) for __mathlib_flt_underflow + sinf.o(i.__hardfp_sinf) refers to _rserrno.o(.text) for __set_errno + sinf.o(i.__hardfp_sinf) refers to funder.o(i.__mathlib_flt_invalid) for __mathlib_flt_invalid + sinf.o(i.__hardfp_sinf) refers to funder.o(i.__mathlib_flt_infnan) for __mathlib_flt_infnan + sinf.o(i.__softfp_sinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + sinf.o(i.__softfp_sinf) refers to sinf.o(i.__hardfp_sinf) for __hardfp_sinf + sinf.o(i.sinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + sinf.o(i.sinf) refers to sinf.o(i.__hardfp_sinf) for __hardfp_sinf + sinf_x.o(i.____hardfp_sinf$lsc) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + sinf_x.o(i.____hardfp_sinf$lsc) refers to rredf.o(i.__mathlib_rredf2) for __mathlib_rredf2 + sinf_x.o(i.____hardfp_sinf$lsc) refers to _rserrno.o(.text) for __set_errno + sinf_x.o(i.____hardfp_sinf$lsc) refers to funder.o(i.__mathlib_flt_infnan) for __mathlib_flt_infnan + sinf_x.o(i.____softfp_sinf$lsc) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + sinf_x.o(i.____softfp_sinf$lsc) refers to sinf_x.o(i.____hardfp_sinf$lsc) for ____hardfp_sinf$lsc + sinf_x.o(i.__sinf$lsc) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + sinf_x.o(i.__sinf$lsc) refers to sinf_x.o(i.____hardfp_sinf$lsc) for ____hardfp_sinf$lsc + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for __rt_entry_li + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for __rt_entry_main + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) for __rt_entry_postli_1 + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000009) for __rt_entry_postsh_1 + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000002) for __rt_entry_presh_1 + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for __rt_entry_sh + _rserrno.o(.text) refers to rt_errno_addr_intlibspace.o(.text) for __aeabi_errno_addr + _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding + _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding + _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding + _printf_char.o(.text) refers (Weak) to _printf_str.o(.text) for _printf_str + _printf_char_file.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common + _printf_char_file.o(.text) refers to retarget.o(i.ferror) for ferror + _printf_char_file.o(.text) refers to retarget.o(i.fputc) for fputc + libinit2.o(.ARM.Collect$$libinit$$00000001) refers to fpinit.o(x$fpl$fpinit) for _fp_init + libinit2.o(.ARM.Collect$$libinit$$0000000D) refers (Weak) to rand.o(.text) for _rand_init + libinit2.o(.ARM.Collect$$libinit$$00000010) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000012) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000014) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000016) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000018) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000026) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer + libinit2.o(.ARM.Collect$$libinit$$00000027) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer + dnaninf.o(x$fpl$dnaninf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dretinf.o(x$fpl$dretinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + fpclassifyf.o(i.__ARM_fpclassifyf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + rredf.o(i.__mathlib_rredf2) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + rredf.o(i.__mathlib_rredf2) refers to rredf.o(.constdata) for .constdata + rredf.o(.constdata) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + __rtentry2.o(.ARM.Collect$$rtentry$$00000008) refers to boardinit2.o(.text) for _platform_post_stackheap_init + __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) refers to libinit.o(.ARM.Collect$$libinit$$00000000) for __rt_lib_init + __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) refers to boardinit3.o(.text) for _platform_post_lib_init + __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to main.o(i.main) for main + __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to exit.o(.text) for exit + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000001) for .ARM.Collect$$rtentry$$00000001 + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000008) for .ARM.Collect$$rtentry$$00000008 + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for .ARM.Collect$$rtentry$$0000000A + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) for .ARM.Collect$$rtentry$$0000000B + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for .ARM.Collect$$rtentry$$0000000D + __rtentry4.o(.ARM.Collect$$rtentry$$00000004) refers to sys_stackheap_outer.o(.text) for __user_setup_stackheap + __rtentry4.o(.ARM.exidx) refers to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for .ARM.Collect$$rtentry$$00000004 + aeabi_ldiv0_sigfpe.o(.text) refers to rt_div0.o(.text) for __rt_div0 + rt_errno_addr.o(.text) refers to rt_errno_addr.o(.bss) for __aeabi_errno_addr_data + rt_errno_addr_intlibspace.o(.text) refers to libspace.o(.bss) for __libspace_start + _printf_char_common.o(.text) refers to __printf_wp.o(.text) for __printf + argv_veneer.o(.emb_text) refers to no_argv.o(.text) for __ARM_get_argv + libspace.o(.text) refers to libspace.o(.bss) for __libspace_start + sys_stackheap_outer.o(.text) refers to libspace.o(.text) for __user_perproc_libspace + sys_stackheap_outer.o(.text) refers to startup_k1921vk035.o(.text) for __user_initial_stackheap + rt_div0.o(.text) refers to defsig_fpe_outer.o(.text) for __rt_SIGFPE + exit.o(.text) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for __rt_exit + _get_argv_nomalloc.o(.text) refers (Special) to hrguard.o(.text) for __heap_region$guard + _get_argv_nomalloc.o(.text) refers to defsig_rtmem_outer.o(.text) for __rt_SIGRTMEM + _get_argv_nomalloc.o(.text) refers to sys_command.o(.text) for _sys_command_string + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002E) for __rt_lib_init_alloca_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002C) for __rt_lib_init_argv_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001B) for __rt_lib_init_atexit_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000021) for __rt_lib_init_clock_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000032) for __rt_lib_init_cpp_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000030) for __rt_lib_init_exceptions_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000001) for __rt_lib_init_fp_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001F) for __rt_lib_init_fp_trap_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000023) for __rt_lib_init_getenv_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000A) for __rt_lib_init_heap_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000011) for __rt_lib_init_lc_collate_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000013) for __rt_lib_init_lc_ctype_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000015) for __rt_lib_init_lc_monetary_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000017) for __rt_lib_init_lc_numeric_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000019) for __rt_lib_init_lc_time_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000004) for __rt_lib_init_preinit_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000E) for __rt_lib_init_rand_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000033) for __rt_lib_init_return + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001D) for __rt_lib_init_signal_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000025) for __rt_lib_init_stdio_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000C) for __rt_lib_init_user_alloc_1 + sys_command.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting + sys_command.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function + rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit + rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls + rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 + rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit + rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls + rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 + rtexit.o(.ARM.exidx) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for .ARM.Collect$$rtexit$$00000000 + defsig_fpe_outer.o(.text) refers to defsig_fpe_inner.o(.text) for __rt_SIGFPE_inner + defsig_fpe_outer.o(.text) refers to defsig_exit.o(.text) for __sig_exit + defsig_fpe_formal.o(.text) refers to rt_raise.o(.text) for __rt_raise + defsig_rtmem_outer.o(.text) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner + defsig_rtmem_outer.o(.text) refers to defsig_exit.o(.text) for __sig_exit + defsig_rtmem_formal.o(.text) refers to rt_raise.o(.text) for __rt_raise + rtexit2.o(.ARM.Collect$$rtexit$$00000003) refers to libshutdown.o(.ARM.Collect$$libshutdown$$00000000) for __rt_lib_shutdown + rtexit2.o(.ARM.Collect$$rtexit$$00000004) refers to retarget.o(i._sys_exit) for _sys_exit + rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000001) for .ARM.Collect$$rtexit$$00000001 + rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for .ARM.Collect$$rtexit$$00000003 + rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for .ARM.Collect$$rtexit$$00000004 + rt_raise.o(.text) refers to __raise.o(.text) for __raise + rt_raise.o(.text) refers to retarget.o(i._sys_exit) for _sys_exit + defsig_exit.o(.text) refers to retarget.o(i._sys_exit) for _sys_exit + defsig_fpe_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_rtmem_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + __raise.o(.text) refers to defsig.o(CL$$defsig) for __default_signal_handler + defsig_general.o(.text) refers to retarget.o(i._ttywrch) for _ttywrch + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) for __rt_lib_shutdown_cpp_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) for __rt_lib_shutdown_fini_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) for __rt_lib_shutdown_fp_trap_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) for __rt_lib_shutdown_heap_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) for __rt_lib_shutdown_return + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) for __rt_lib_shutdown_signal_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) for __rt_lib_shutdown_stdio_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) for __rt_lib_shutdown_user_alloc_1 + defsig.o(CL$$defsig) refers to defsig_fpe_inner.o(.text) for __rt_SIGFPE_inner + defsig.o(CL$$defsig) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner + defsig_abrt_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_rtred_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_stak_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_pvfn_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_cppl_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_segv_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_other.o(.text) refers to defsig_general.o(.text) for __default_signal_display + + +============================================================================== + +Removing Unused input sections from the image. + + Removing main.o(.rev16_text), (4 bytes). + Removing main.o(.revsh_text), (4 bytes). + Removing main.o(.rrx_text), (6 bytes). + Removing main.o(i.GenOptimizer_Init), (416 bytes). + Removing main.o(i.GenOptimizer_Step), (980 bytes). + Removing main.o(i.cmp_idx), (104 bytes). + Removing main.o(.bss), (512 bytes). + Removing main.o(.data), (396 bytes). + Removing gpio.o(.rev16_text), (4 bytes). + Removing gpio.o(.revsh_text), (4 bytes). + Removing gpio.o(.rrx_text), (6 bytes). + Removing gpio.o(i.GenOptimizer_Init), (416 bytes). + Removing gpio.o(i.GenOptimizer_Step), (980 bytes). + Removing gpio.o(i.cmp_idx), (104 bytes). + Removing gpio.o(.bss), (512 bytes). + Removing rcu.o(.rev16_text), (4 bytes). + Removing rcu.o(.revsh_text), (4 bytes). + Removing rcu.o(.rrx_text), (6 bytes). + Removing rcu.o(i.GenOptimizer_Init), (416 bytes). + Removing rcu.o(i.GenOptimizer_Step), (980 bytes). + Removing rcu.o(i.cmp_idx), (104 bytes). + Removing rcu.o(.bss), (512 bytes). + Removing vk035_it.o(.rev16_text), (4 bytes). + Removing vk035_it.o(.revsh_text), (4 bytes). + Removing vk035_it.o(.rrx_text), (6 bytes). + Removing vk035_it.o(i.GenOptimizer_Init), (416 bytes). + Removing vk035_it.o(i.GenOptimizer_Step), (980 bytes). + Removing vk035_it.o(i.cmp_idx), (104 bytes). + Removing vk035_it.o(.bss), (512 bytes). + Removing vk035_it.o(.data), (8 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_AllocDownBuffer), (200 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_AllocUpBuffer), (200 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_ConfigDownBuffer), (120 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_ConfigUpBuffer), (120 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_GetAvailWriteSpace), (28 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_GetBytesInBuffer), (68 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_GetKey), (32 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_HasData), (28 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_HasDataUp), (28 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_HasKey), (48 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_Init), (8 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_PutChar), (128 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_PutCharSkip), (116 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_PutCharSkipNoLock), (56 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_Read), (56 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_ReadNoLock), (172 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_ReadUpBuffer), (56 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_ReadUpBufferNoLock), (172 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_SetFlagsDownBuffer), (96 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_SetFlagsUpBuffer), (96 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_SetNameDownBuffer), (96 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_SetNameUpBuffer), (96 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_SetTerminal), (160 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_TerminalOut), (260 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_WaitKey), (14 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_Write), (76 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_WriteDownBuffer), (76 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_WriteDownBufferNoLock), (132 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_WriteNoLock), (132 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_WriteSkipNoLock), (160 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_WriteString), (26 bytes). + Removing segger_rtt.o(i.SEGGER_RTT_WriteWithOverwriteNoLock), (180 bytes). + Removing segger_rtt.o(i._DoInit), (116 bytes). + Removing segger_rtt.o(i._GetAvailWriteSpace), (28 bytes). + Removing segger_rtt.o(i._PostTerminalSwitch), (36 bytes). + Removing segger_rtt.o(i._WriteBlocking), (118 bytes). + Removing segger_rtt.o(i._WriteNoCheck), (88 bytes). + Removing segger_rtt.o(.bss), (4280 bytes). + Removing segger_rtt.o(.constdata), (33 bytes). + Removing segger_rtt.o(.data), (1 bytes). + Removing segger_rtt_printf.o(i.SEGGER_RTT_printf), (34 bytes). + Removing segger_rtt_printf.o(i.SEGGER_RTT_vprintf), (544 bytes). + Removing segger_rtt_printf.o(i._PrintInt), (236 bytes). + Removing segger_rtt_printf.o(i._PrintUnsigned), (236 bytes). + Removing segger_rtt_printf.o(i._StoreChar), (68 bytes). + Removing segger_rtt_printf.o(.constdata), (16 bytes). + Removing filters.o(.rev16_text), (4 bytes). + Removing filters.o(.revsh_text), (4 bytes). + Removing filters.o(.rrx_text), (6 bytes). + Removing filters.o(i.FilterAverageInt_Init), (72 bytes). + Removing filters.o(i.FilterAverageInt_Process), (94 bytes). + Removing filters.o(i.FilterAverage_Init), (76 bytes). + Removing filters.o(i.FilterAverage_Process), (104 bytes). + Removing filters.o(i.FilterBandPassDerivative_Init), (308 bytes). + Removing filters.o(i.FilterBandPassDerivative_Process), (126 bytes). + Removing filters.o(i.FilterExpInt_Init), (48 bytes). + Removing filters.o(i.FilterExpInt_Process), (88 bytes). + Removing filters.o(i.FilterExp_Init), (60 bytes). + Removing filters.o(i.FilterExp_Process), (78 bytes). + Removing filters.o(i.FilterLUTInt_Init), (64 bytes). + Removing filters.o(i.FilterLUTInt_Process), (318 bytes). + Removing filters.o(i.FilterLUT_Init), (64 bytes). + Removing filters.o(i.FilterLUT_Process), (248 bytes). + Removing filters.o(i.FilterMedianInt_Init), (88 bytes). + Removing filters.o(i.FilterMedianInt_Process), (218 bytes). + Removing filters.o(i.FilterMedian_Init), (84 bytes). + Removing filters.o(i.FilterMedian_Process), (124 bytes). + Removing filters.o(i.FilterPolyInt_Init), (80 bytes). + Removing filters.o(i.FilterPolyInt_Process), (160 bytes). + Removing filters.o(i.FilterPoly_Init), (72 bytes). + Removing filters.o(i.FilterPoly_Process), (84 bytes). + Removing filters.o(i.FilterRMSInt_Init), (96 bytes). + Removing filters.o(i.FilterRMSInt_Process), (286 bytes). + Removing filters.o(i.FilterRMS_Init), (104 bytes). + Removing filters.o(i.FilterRMS_Process), (224 bytes). + Removing filters.o(i.Filter_float_compare), (52 bytes). + Removing filters.o(.data), (4 bytes). + Removing system_k1921vk035.o(.rev16_text), (4 bytes). + Removing system_k1921vk035.o(.revsh_text), (4 bytes). + Removing system_k1921vk035.o(.rrx_text), (6 bytes). + Removing plib035_adc.o(.rev16_text), (4 bytes). + Removing plib035_adc.o(.revsh_text), (4 bytes). + Removing plib035_adc.o(.rrx_text), (6 bytes). + Removing plib035_adc.o(i.ADC_DC_ChannelConfig), (92 bytes). + Removing plib035_adc.o(i.ADC_DC_Config), (124 bytes). + Removing plib035_adc.o(i.ADC_DC_Init), (58 bytes). + Removing plib035_adc.o(i.ADC_DC_OutputCmd), (84 bytes). + Removing plib035_adc.o(i.ADC_DC_SetThresholdHigh), (88 bytes). + Removing plib035_adc.o(i.ADC_DC_SetThresholdLow), (88 bytes). + Removing plib035_adc.o(i.ADC_DC_SourceConfig), (84 bytes). + Removing plib035_adc.o(i.ADC_DC_StructInit), (18 bytes). + Removing plib035_adc.o(i.ADC_DeInit), (16 bytes). + Removing plib035_adc.o(i.ADC_SEQ_DCEnableCmd), (124 bytes). + Removing plib035_adc.o(i.ADC_SEQ_DMACmd), (88 bytes). + Removing plib035_adc.o(i.ADC_SEQ_DMAConfig), (108 bytes). + Removing plib035_adc.o(i.ADC_SEQ_Init), (224 bytes). + Removing plib035_adc.o(i.ADC_SEQ_ReqAverageCmd), (88 bytes). + Removing plib035_adc.o(i.ADC_SEQ_ReqAverageConfig), (108 bytes). + Removing plib035_adc.o(i.ADC_SEQ_ReqConfig), (132 bytes). + Removing plib035_adc.o(i.ADC_SEQ_ReqMaxConfig), (96 bytes). + Removing plib035_adc.o(i.ADC_SEQ_RestartAverageCmd), (88 bytes). + Removing plib035_adc.o(i.ADC_SEQ_RestartConfig), (88 bytes). + Removing plib035_adc.o(i.ADC_SEQ_SetRestartTimer), (88 bytes). + Removing plib035_adc.o(i.ADC_SEQ_StructInit), (68 bytes). + Removing plib035_adc.o(i.ADC_SEQ_SwStartEnCmd), (72 bytes). + Removing plib035_adc.o(i.RCU_ADCRstCmd), (84 bytes). + Removing plib035_can.o(.rev16_text), (4 bytes). + Removing plib035_can.o(.revsh_text), (4 bytes). + Removing plib035_can.o(.rrx_text), (6 bytes). + Removing plib035_dma.o(.rev16_text), (4 bytes). + Removing plib035_dma.o(.revsh_text), (4 bytes). + Removing plib035_dma.o(.rrx_text), (6 bytes). + Removing plib035_dma.o(i.DMA_AltCtrlCmd), (68 bytes). + Removing plib035_dma.o(i.DMA_ChannelDeInit), (10 bytes). + Removing plib035_dma.o(i.DMA_ChannelEnableCmd), (68 bytes). + Removing plib035_dma.o(i.DMA_ChannelInit), (584 bytes). + Removing plib035_dma.o(i.DMA_ChannelStructInit), (50 bytes). + Removing plib035_dma.o(i.DMA_DeInit), (28 bytes). + Removing plib035_dma.o(i.DMA_HighPriorityCmd), (68 bytes). + Removing plib035_dma.o(i.DMA_Init), (52 bytes). + Removing plib035_dma.o(i.DMA_ProtectConfig), (148 bytes). + Removing plib035_dma.o(i.DMA_ReqMaskCmd), (68 bytes). + Removing plib035_dma.o(i.DMA_StructInit), (28 bytes). + Removing plib035_dma.o(i.DMA_UseBurstCmd), (68 bytes). + Removing plib035_ecap.o(.rev16_text), (4 bytes). + Removing plib035_ecap.o(.revsh_text), (4 bytes). + Removing plib035_ecap.o(.rrx_text), (6 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_Init), (96 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_ModeConfig), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_PolarityEvt0Config), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_PolarityEvt1Config), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_PolarityEvt2Config), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_PolarityEvt3Config), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_PrescaleConfig), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_RstEvt0Cmd), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_RstEvt1Cmd), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_RstEvt2Cmd), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_RstEvt3Cmd), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_StopConfig), (80 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_StructInit), (28 bytes). + Removing plib035_ecap.o(i.ECAP_DeInit), (124 bytes). + Removing plib035_ecap.o(i.ECAP_HaltConfig), (84 bytes). + Removing plib035_ecap.o(i.ECAP_Init), (40 bytes). + Removing plib035_ecap.o(i.ECAP_ModeConfig), (80 bytes). + Removing plib035_ecap.o(i.ECAP_PWM_Init), (148 bytes). + Removing plib035_ecap.o(i.ECAP_PWM_PolarityConfig), (80 bytes). + Removing plib035_ecap.o(i.ECAP_PWM_StructInit), (18 bytes). + Removing plib035_ecap.o(i.ECAP_StructInit), (12 bytes). + Removing plib035_ecap.o(i.ECAP_SyncCmd), (80 bytes). + Removing plib035_ecap.o(i.ECAP_SyncOutConfig), (84 bytes). + Removing plib035_ecap.o(i.RCU_APBRstCmd), (160 bytes). + Removing plib035_gpio.o(.rev16_text), (4 bytes). + Removing plib035_gpio.o(.revsh_text), (4 bytes). + Removing plib035_gpio.o(.rrx_text), (6 bytes). + Removing plib035_gpio.o(i.GPIO_StructInit), (24 bytes). + Removing plib035_i2c.o(.rev16_text), (4 bytes). + Removing plib035_i2c.o(.revsh_text), (4 bytes). + Removing plib035_i2c.o(.rrx_text), (6 bytes). + Removing plib035_i2c.o(i.I2C_FSFreqConfig), (128 bytes). + Removing plib035_i2c.o(i.I2C_HSFreqConfig), (96 bytes). + Removing plib035_mflash.o(.rev16_text), (4 bytes). + Removing plib035_mflash.o(.revsh_text), (4 bytes). + Removing plib035_mflash.o(.rrx_text), (6 bytes). + Removing plib035_mflash.o(i.MFLASH_BusyStatus), (16 bytes). + Removing plib035_mflash.o(i.MFLASH_EraseFull), (92 bytes). + Removing plib035_mflash.o(i.MFLASH_ErasePage), (136 bytes). + Removing plib035_mflash.o(i.MFLASH_ReadData), (224 bytes). + Removing plib035_mflash.o(i.MFLASH_SetAddr), (12 bytes). + Removing plib035_mflash.o(i.MFLASH_SetCmd), (20 bytes). + Removing plib035_mflash.o(i.MFLASH_WriteData), (188 bytes). + Removing plib035_pmu.o(.rev16_text), (4 bytes). + Removing plib035_pmu.o(.revsh_text), (4 bytes). + Removing plib035_pmu.o(.rrx_text), (6 bytes). + Removing plib035_pwm.o(.rev16_text), (4 bytes). + Removing plib035_pwm.o(.revsh_text), (4 bytes). + Removing plib035_pwm.o(.rrx_text), (6 bytes). + Removing plib035_pwm.o(i.PWM_AQ_ActionAConfig), (168 bytes). + Removing plib035_pwm.o(i.PWM_AQ_ActionBConfig), (168 bytes). + Removing plib035_pwm.o(i.PWM_AQ_Init), (128 bytes). + Removing plib035_pwm.o(i.PWM_AQ_StructInit), (28 bytes). + Removing plib035_pwm.o(i.PWM_CMP_CmpADirectLoadCmd), (116 bytes). + Removing plib035_pwm.o(i.PWM_CMP_CmpALoadEventConfig), (124 bytes). + Removing plib035_pwm.o(i.PWM_CMP_Init), (56 bytes). + Removing plib035_pwm.o(i.PWM_CMP_SetCmpA), (80 bytes). + Removing plib035_pwm.o(i.PWM_CMP_SetCmpB), (80 bytes). + Removing plib035_pwm.o(i.PWM_CMP_StructInit), (16 bytes). + Removing plib035_pwm.o(i.PWM_DB_InConfig), (88 bytes). + Removing plib035_pwm.o(i.PWM_DB_Init), (164 bytes). + Removing plib035_pwm.o(i.PWM_DB_OutConfig), (88 bytes). + Removing plib035_pwm.o(i.PWM_DB_PolarityConfig), (88 bytes). + Removing plib035_pwm.o(i.PWM_DB_StructInit), (14 bytes). + Removing plib035_pwm.o(i.PWM_DeInit), (120 bytes). + Removing plib035_pwm.o(i.PWM_ET_DRQACmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_DRQAEventConfig), (100 bytes). + Removing plib035_pwm.o(i.PWM_ET_DRQAPeriodConfig), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_DRQBCmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_DRQBEventConfig), (100 bytes). + Removing plib035_pwm.o(i.PWM_ET_DRQBPeriodConfig), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_Init), (104 bytes). + Removing plib035_pwm.o(i.PWM_ET_SOCACmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_SOCAEventConfig), (100 bytes). + Removing plib035_pwm.o(i.PWM_ET_SOCAPeriodConfig), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_SOCBCmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_SOCBEventConfig), (100 bytes). + Removing plib035_pwm.o(i.PWM_ET_SOCBPeriodConfig), (80 bytes). + Removing plib035_pwm.o(i.PWM_ET_StructInit), (42 bytes). + Removing plib035_pwm.o(i.PWM_HD_ActionAConfig), (92 bytes). + Removing plib035_pwm.o(i.PWM_HD_ActionBConfig), (92 bytes). + Removing plib035_pwm.o(i.PWM_HD_CycleCmd), (84 bytes). + Removing plib035_pwm.o(i.PWM_HD_Init), (50 bytes). + Removing plib035_pwm.o(i.PWM_HD_OneShotCmd), (84 bytes). + Removing plib035_pwm.o(i.PWM_HD_SourceCmd), (96 bytes). + Removing plib035_pwm.o(i.PWM_HD_StructInit), (16 bytes). + Removing plib035_pwm.o(i.PWM_TB_ClkDivConfig), (192 bytes). + Removing plib035_pwm.o(i.PWM_TB_HaltConfig), (80 bytes). + Removing plib035_pwm.o(i.PWM_TB_Init), (236 bytes). + Removing plib035_pwm.o(i.PWM_TB_ModeConfig), (88 bytes). + Removing plib035_pwm.o(i.PWM_TB_PeriodDirectLoadCmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_TB_PhaseSyncCmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_TB_PhaseSyncDirConfig), (80 bytes). + Removing plib035_pwm.o(i.PWM_TB_StructInit), (24 bytes). + Removing plib035_pwm.o(i.PWM_TB_SyncOutConfig), (88 bytes). + Removing plib035_pwm.o(i.PWM_TZ_ActionAConfig), (88 bytes). + Removing plib035_pwm.o(i.PWM_TZ_ActionBConfig), (88 bytes). + Removing plib035_pwm.o(i.PWM_TZ_CycleCmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_TZ_Init), (40 bytes). + Removing plib035_pwm.o(i.PWM_TZ_OneShotCmd), (80 bytes). + Removing plib035_pwm.o(i.PWM_TZ_StructInit), (12 bytes). + Removing plib035_pwm.o(i.RCU_APBRstCmd), (160 bytes). + Removing plib035_qep.o(.rev16_text), (4 bytes). + Removing plib035_qep.o(.revsh_text), (4 bytes). + Removing plib035_qep.o(.rrx_text), (6 bytes). + Removing plib035_qep.o(i.QEP_CAP_DivConfig), (136 bytes). + Removing plib035_qep.o(i.QEP_CAP_Init), (136 bytes). + Removing plib035_qep.o(i.QEP_CAP_StructInit), (18 bytes). + Removing plib035_qep.o(i.QEP_CMP_Init), (224 bytes). + Removing plib035_qep.o(i.QEP_CMP_StructInit), (18 bytes). + Removing plib035_qep.o(i.QEP_DeInit), (22 bytes). + Removing plib035_qep.o(i.QEP_PC_Init), (340 bytes). + Removing plib035_qep.o(i.QEP_PC_StructInit), (24 bytes). + Removing plib035_qep.o(i.RCU_APBRstCmd), (160 bytes). + Removing plib035_rcu.o(.rev16_text), (4 bytes). + Removing plib035_rcu.o(.revsh_text), (4 bytes). + Removing plib035_rcu.o(.rrx_text), (6 bytes). + Removing plib035_rcu.o(i.RCU_GetADCClkFreq), (56 bytes). + Removing plib035_rcu.o(i.RCU_GetClkOutFreq), (52 bytes). + Removing plib035_rcu.o(i.RCU_GetOSEClkFreq), (8 bytes). + Removing plib035_rcu.o(i.RCU_GetOSIClkFreq), (8 bytes). + Removing plib035_rcu.o(i.RCU_GetPLLClkFreq), (72 bytes). + Removing plib035_rcu.o(i.RCU_GetPLLDivClkFreq), (28 bytes). + Removing plib035_rcu.o(i.RCU_GetSPIClkFreq), (56 bytes). + Removing plib035_rcu.o(i.RCU_GetSysClkFreq), (28 bytes). + Removing plib035_rcu.o(i.RCU_GetTraceClkFreq), (52 bytes). + Removing plib035_rcu.o(i.RCU_GetUARTClkFreq), (60 bytes). + Removing plib035_rcu.o(i.RCU_GetWDTClkFreq), (52 bytes). + Removing plib035_rcu.o(i.RCU_PLL_DeInit), (24 bytes). + Removing plib035_rcu.o(i.getPeriphClkFreq), (60 bytes). + Removing plib035_rcu.o(i.getSysClkFreq), (60 bytes). + Removing plib035_rcu.o(i.getSysPeriphClkFreq), (60 bytes). + Removing plib035_spi.o(.rev16_text), (4 bytes). + Removing plib035_spi.o(.revsh_text), (4 bytes). + Removing plib035_spi.o(.rrx_text), (6 bytes). + Removing plib035_spi.o(i.RCU_SPIRstCmd), (84 bytes). + Removing plib035_spi.o(i.SPI_DataWidthConfig), (88 bytes). + Removing plib035_spi.o(i.SPI_DeInit), (16 bytes). + Removing plib035_spi.o(i.SPI_Init), (136 bytes). + Removing plib035_spi.o(i.SPI_SCKDivConfig), (72 bytes). + Removing plib035_spi.o(i.SPI_StructInit), (20 bytes). + Removing plib035_tmr.o(.rev16_text), (4 bytes). + Removing plib035_tmr.o(.revsh_text), (4 bytes). + Removing plib035_tmr.o(.rrx_text), (6 bytes). + Removing plib035_tmr.o(i.TMR_FreqConfig), (26 bytes). + Removing plib035_tmr.o(i.TMR_PeriodConfig), (36 bytes). + Removing plib035_tmr.o(i.TMR_SetLoad), (100 bytes). + Removing plib035_uart.o(.rev16_text), (4 bytes). + Removing plib035_uart.o(.revsh_text), (4 bytes). + Removing plib035_uart.o(.rrx_text), (6 bytes). + Removing plib035_uart.o(i.RCU_UARTRstCmd), (88 bytes). + Removing plib035_uart.o(i.UART_AutoBaudConfig), (184 bytes). + Removing plib035_uart.o(i.UART_BaudDivConfig), (88 bytes). + Removing plib035_uart.o(i.UART_DataWidthConfig), (112 bytes). + Removing plib035_uart.o(i.UART_DeInit), (100 bytes). + Removing plib035_uart.o(i.UART_FIFOCmd), (72 bytes). + Removing plib035_uart.o(i.UART_Init), (64 bytes). + Removing plib035_uart.o(i.UART_ParityBitConfig), (84 bytes). + Removing plib035_uart.o(i.UART_RxCmd), (72 bytes). + Removing plib035_uart.o(i.UART_StopBitConfig), (68 bytes). + Removing plib035_uart.o(i.UART_StructInit), (24 bytes). + Removing plib035_uart.o(i.UART_TxCmd), (72 bytes). + Removing plib035_wdt.o(.rev16_text), (4 bytes). + Removing plib035_wdt.o(.revsh_text), (4 bytes). + Removing plib035_wdt.o(.rrx_text), (6 bytes). + Removing retarget.o(.rev16_text), (4 bytes). + Removing retarget.o(.revsh_text), (4 bytes). + Removing retarget.o(.rrx_text), (6 bytes). + Removing retarget.o(i._ttywrch), (12 bytes). + Removing retarget.o(i.fgetc), (10 bytes). + Removing retarget_conf.o(.rev16_text), (4 bytes). + Removing retarget_conf.o(.revsh_text), (4 bytes). + Removing retarget_conf.o(.rrx_text), (6 bytes). + Removing retarget_conf.o(i.retarget_get_char), (28 bytes). + +331 unused section(s) (total 35598 bytes) removed from the image. + +============================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Ov Type Size Object(Section) + + RESET 0x00000000 Section 344 startup_k1921vk035.o(RESET) + ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE + ../clib/angel/dczerorl2.s 0x00000000 Number 0 __dczerorl2.o ABSOLUTE + ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_div0.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 aeabi_ldiv0_sigfpe.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_errno_addr.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_errno_addr_intlibspace.o ABSOLUTE + ../clib/angel/scatter.s 0x00000000 Number 0 __scatter.o ABSOLUTE + ../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE + ../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE + ../clib/fenv.c 0x00000000 Number 0 _rserrno.o ABSOLUTE + ../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE + ../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE + ../clib/longlong.s 0x00000000 Number 0 llsdiv.o ABSOLUTE + ../clib/longlong.s 0x00000000 Number 0 lludivv7m.o ABSOLUTE + ../clib/memcpset.s 0x00000000 Number 0 rt_memclr_w.o ABSOLUTE + ../clib/memcpset.s 0x00000000 Number 0 rt_memcpy_w.o ABSOLUTE + ../clib/memcpset.s 0x00000000 Number 0 rt_memcpy_v6.o ABSOLUTE + ../clib/misc.s 0x00000000 Number 0 printf_stubs.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_file.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_ss.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_str.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_ss_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 noretval__2printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __2printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_pad.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_s.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_d.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_formal.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE + ../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE + ../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE + ../clib/stdlib.c 0x00000000 Number 0 qsortnoex.o ABSOLUTE + ../clib/stdlib.c 0x00000000 Number 0 rand.o ABSOLUTE + ../clib/stdlib.c 0x00000000 Number 0 rand.o ABSOLUTE + ../clib/string.c 0x00000000 Number 0 strlen.o ABSOLUTE + ../fplib/ddiv.s 0x00000000 Number 0 ddiv.o ABSOLUTE + ../fplib/dfix.s 0x00000000 Number 0 dfix.o ABSOLUTE + ../fplib/dflt.s 0x00000000 Number 0 dflt_clz.o ABSOLUTE + ../fplib/dnaninf.s 0x00000000 Number 0 dnaninf.o ABSOLUTE + ../fplib/dretinf.s 0x00000000 Number 0 dretinf.o ABSOLUTE + ../fplib/ffltll.s 0x00000000 Number 0 ffltll_clz.o ABSOLUTE + ../fplib/fpinit.s 0x00000000 Number 0 fpinit.o ABSOLUTE + ../fplib/usenofp.s 0x00000000 Number 0 usenofp.o ABSOLUTE + ../mathlib/cosf.c 0x00000000 Number 0 cosf.o ABSOLUTE + ../mathlib/cosf.c 0x00000000 Number 0 cosf_x.o ABSOLUTE + ../mathlib/fpclassifyf.c 0x00000000 Number 0 fpclassifyf.o ABSOLUTE + ../mathlib/funder.c 0x00000000 Number 0 funder.o ABSOLUTE + ../mathlib/rredf.c 0x00000000 Number 0 rredf.o ABSOLUTE + ../mathlib/sinf.c 0x00000000 Number 0 sinf_x.o ABSOLUTE + ../mathlib/sinf.c 0x00000000 Number 0 sinf.o ABSOLUTE + Core\App\gpio.c 0x00000000 Number 0 gpio.o ABSOLUTE + Core\App\main.c 0x00000000 Number 0 main.o ABSOLUTE + Core\App\rcu.c 0x00000000 Number 0 rcu.o ABSOLUTE + Core\App\vk035_it.c 0x00000000 Number 0 vk035_it.o ABSOLUTE + Core\ExtendedLibs\MyLibs\Src\filters.c 0x00000000 Number 0 filters.o ABSOLUTE + Core\ExtendedLibs\RTT\SEGGER_RTT.c 0x00000000 Number 0 segger_rtt.o ABSOLUTE + Core\ExtendedLibs\RTT\SEGGER_RTT_printf.c 0x00000000 Number 0 segger_rtt_printf.o ABSOLUTE + Core\\App\\gpio.c 0x00000000 Number 0 gpio.o ABSOLUTE + Core\\App\\main.c 0x00000000 Number 0 main.o ABSOLUTE + Core\\App\\rcu.c 0x00000000 Number 0 rcu.o ABSOLUTE + Core\\App\\vk035_it.c 0x00000000 Number 0 vk035_it.o ABSOLUTE + Core\\ExtendedLibs\\MyLibs\\Src\\filters.c 0x00000000 Number 0 filters.o ABSOLUTE + dc.s 0x00000000 Number 0 dc.o ABSOLUTE + platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1921VK035.s 0x00000000 Number 0 startup_k1921vk035.o ABSOLUTE + platform\Device\NIIET\K1921VK035\Source\system_K1921VK035.c 0x00000000 Number 0 system_k1921vk035.o ABSOLUTE + platform\\Device\\NIIET\\K1921VK035\\Source\\system_K1921VK035.c 0x00000000 Number 0 system_k1921vk035.o ABSOLUTE + platform\\plib035\\src\\plib035_adc.c 0x00000000 Number 0 plib035_adc.o ABSOLUTE + platform\\plib035\\src\\plib035_can.c 0x00000000 Number 0 plib035_can.o ABSOLUTE + platform\\plib035\\src\\plib035_dma.c 0x00000000 Number 0 plib035_dma.o ABSOLUTE + platform\\plib035\\src\\plib035_ecap.c 0x00000000 Number 0 plib035_ecap.o ABSOLUTE + platform\\plib035\\src\\plib035_gpio.c 0x00000000 Number 0 plib035_gpio.o ABSOLUTE + platform\\plib035\\src\\plib035_i2c.c 0x00000000 Number 0 plib035_i2c.o ABSOLUTE + platform\\plib035\\src\\plib035_mflash.c 0x00000000 Number 0 plib035_mflash.o ABSOLUTE + platform\\plib035\\src\\plib035_pmu.c 0x00000000 Number 0 plib035_pmu.o ABSOLUTE + platform\\plib035\\src\\plib035_pwm.c 0x00000000 Number 0 plib035_pwm.o ABSOLUTE + platform\\plib035\\src\\plib035_qep.c 0x00000000 Number 0 plib035_qep.o ABSOLUTE + platform\\plib035\\src\\plib035_rcu.c 0x00000000 Number 0 plib035_rcu.o ABSOLUTE + platform\\plib035\\src\\plib035_spi.c 0x00000000 Number 0 plib035_spi.o ABSOLUTE + platform\\plib035\\src\\plib035_tmr.c 0x00000000 Number 0 plib035_tmr.o ABSOLUTE + platform\\plib035\\src\\plib035_uart.c 0x00000000 Number 0 plib035_uart.o ABSOLUTE + platform\\plib035\\src\\plib035_wdt.c 0x00000000 Number 0 plib035_wdt.o ABSOLUTE + platform\\retarget\\retarget.c 0x00000000 Number 0 retarget.o ABSOLUTE + platform\\retarget\\retarget_conf.c 0x00000000 Number 0 retarget_conf.o ABSOLUTE + platform\plib035\src\plib035_adc.c 0x00000000 Number 0 plib035_adc.o ABSOLUTE + platform\plib035\src\plib035_can.c 0x00000000 Number 0 plib035_can.o ABSOLUTE + platform\plib035\src\plib035_dma.c 0x00000000 Number 0 plib035_dma.o ABSOLUTE + platform\plib035\src\plib035_ecap.c 0x00000000 Number 0 plib035_ecap.o ABSOLUTE + platform\plib035\src\plib035_gpio.c 0x00000000 Number 0 plib035_gpio.o ABSOLUTE + platform\plib035\src\plib035_i2c.c 0x00000000 Number 0 plib035_i2c.o ABSOLUTE + platform\plib035\src\plib035_mflash.c 0x00000000 Number 0 plib035_mflash.o ABSOLUTE + platform\plib035\src\plib035_pmu.c 0x00000000 Number 0 plib035_pmu.o ABSOLUTE + platform\plib035\src\plib035_pwm.c 0x00000000 Number 0 plib035_pwm.o ABSOLUTE + platform\plib035\src\plib035_qep.c 0x00000000 Number 0 plib035_qep.o ABSOLUTE + platform\plib035\src\plib035_rcu.c 0x00000000 Number 0 plib035_rcu.o ABSOLUTE + platform\plib035\src\plib035_spi.c 0x00000000 Number 0 plib035_spi.o ABSOLUTE + platform\plib035\src\plib035_tmr.c 0x00000000 Number 0 plib035_tmr.o ABSOLUTE + platform\plib035\src\plib035_uart.c 0x00000000 Number 0 plib035_uart.o ABSOLUTE + platform\plib035\src\plib035_wdt.c 0x00000000 Number 0 plib035_wdt.o ABSOLUTE + platform\retarget\retarget.c 0x00000000 Number 0 retarget.o ABSOLUTE + platform\retarget\retarget_conf.c 0x00000000 Number 0 retarget_conf.o ABSOLUTE + !!!main 0x00000158 Section 8 __main.o(!!!main) + !!!scatter 0x00000160 Section 52 __scatter.o(!!!scatter) + !!dczerorl2 0x00000194 Section 90 __dczerorl2.o(!!dczerorl2) + !!handler_zi 0x000001f0 Section 28 __scatter_zi.o(!!handler_zi) + .ARM.Collect$$_printf_percent$$00000000 0x0000020c Section 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) + .ARM.Collect$$_printf_percent$$00000009 0x0000020c Section 6 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) + .ARM.Collect$$_printf_percent$$00000014 0x00000212 Section 6 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) + .ARM.Collect$$_printf_percent$$00000017 0x00000218 Section 4 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) + .ARM.Collect$$libinit$$00000000 0x0000021c Section 2 libinit.o(.ARM.Collect$$libinit$$00000000) + .ARM.Collect$$libinit$$00000001 0x0000021e Section 4 libinit2.o(.ARM.Collect$$libinit$$00000001) + .ARM.Collect$$libinit$$00000004 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000004) + .ARM.Collect$$libinit$$0000000A 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) + .ARM.Collect$$libinit$$0000000C 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) + .ARM.Collect$$libinit$$0000000E 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) + .ARM.Collect$$libinit$$00000011 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000011) + .ARM.Collect$$libinit$$00000013 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000013) + .ARM.Collect$$libinit$$00000015 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000015) + .ARM.Collect$$libinit$$00000017 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000017) + .ARM.Collect$$libinit$$00000019 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000019) + .ARM.Collect$$libinit$$0000001B 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) + .ARM.Collect$$libinit$$0000001D 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) + .ARM.Collect$$libinit$$0000001F 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) + .ARM.Collect$$libinit$$00000021 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000021) + .ARM.Collect$$libinit$$00000023 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000023) + .ARM.Collect$$libinit$$00000025 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000025) + .ARM.Collect$$libinit$$0000002C 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) + .ARM.Collect$$libinit$$0000002E 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) + .ARM.Collect$$libinit$$00000030 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000030) + .ARM.Collect$$libinit$$00000032 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000032) + .ARM.Collect$$libinit$$00000033 0x00000222 Section 2 libinit2.o(.ARM.Collect$$libinit$$00000033) + .ARM.Collect$$libshutdown$$00000000 0x00000224 Section 2 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) + .ARM.Collect$$libshutdown$$00000002 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) + .ARM.Collect$$libshutdown$$00000004 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) + .ARM.Collect$$libshutdown$$00000006 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) + .ARM.Collect$$libshutdown$$00000009 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) + .ARM.Collect$$libshutdown$$0000000C 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) + .ARM.Collect$$libshutdown$$0000000E 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) + .ARM.Collect$$libshutdown$$00000011 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) + .ARM.Collect$$libshutdown$$00000012 0x00000226 Section 2 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) + .ARM.Collect$$rtentry$$00000000 0x00000228 Section 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) + .ARM.Collect$$rtentry$$00000002 0x00000228 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) + .ARM.Collect$$rtentry$$00000004 0x00000228 Section 6 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) + .ARM.Collect$$rtentry$$00000009 0x0000022e Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) + .ARM.Collect$$rtentry$$0000000A 0x0000022e Section 4 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) + .ARM.Collect$$rtentry$$0000000C 0x00000232 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) + .ARM.Collect$$rtentry$$0000000D 0x00000232 Section 8 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) + .ARM.Collect$$rtexit$$00000000 0x0000023a Section 2 rtexit.o(.ARM.Collect$$rtexit$$00000000) + .ARM.Collect$$rtexit$$00000002 0x0000023c Section 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) + .ARM.Collect$$rtexit$$00000003 0x0000023c Section 4 rtexit2.o(.ARM.Collect$$rtexit$$00000003) + .ARM.Collect$$rtexit$$00000004 0x00000240 Section 6 rtexit2.o(.ARM.Collect$$rtexit$$00000004) + .text 0x00000248 Section 64 startup_k1921vk035.o(.text) + $v0 0x00000248 Number 0 startup_k1921vk035.o(.text) + .text 0x00000288 Section 2 use_no_semi.o(.text) + .text 0x0000028c Section 0 noretval__2printf.o(.text) + .text 0x000002a4 Section 0 _printf_pad.o(.text) + .text 0x000002f2 Section 0 _printf_str.o(.text) + .text 0x00000344 Section 0 _printf_dec.o(.text) + .text 0x000003bc Section 0 __printf_wp.o(.text) + .text 0x000004ca Section 0 heapauxi.o(.text) + .text 0x000004d0 Section 0 _printf_intcommon.o(.text) + .text 0x00000582 Section 0 _printf_char.o(.text) + .text 0x000005b0 Section 0 _printf_char_file.o(.text) + .text 0x000005d4 Section 0 _printf_char_common.o(.text) + _printf_input_char 0x000005d5 Thumb Code 10 _printf_char_common.o(.text) + .text 0x00000604 Section 8 libspace.o(.text) + .text 0x0000060c Section 74 sys_stackheap_outer.o(.text) + .text 0x00000656 Section 0 exit.o(.text) + i.BusFault_Handler 0x00000668 Section 0 vk035_it.o(i.BusFault_Handler) + i.ClkInit 0x0000066c Section 0 system_k1921vk035.o(i.ClkInit) + i.DebugMon_Handler 0x00000710 Section 0 vk035_it.o(i.DebugMon_Handler) + i.Error_Handler 0x00000712 Section 0 main.o(i.Error_Handler) + i.FPUInit 0x00000718 Section 0 system_k1921vk035.o(i.FPUInit) + i.GPIO_AltFuncCmd 0x00000748 Section 0 plib035_gpio.o(i.GPIO_AltFuncCmd) + GPIO_AltFuncCmd 0x00000749 Thumb Code 82 plib035_gpio.o(i.GPIO_AltFuncCmd) + i.GPIO_DeInit 0x000007a8 Section 0 plib035_gpio.o(i.GPIO_DeInit) + i.GPIO_DigitalCmd 0x0000080c Section 0 plib035_gpio.o(i.GPIO_DigitalCmd) + GPIO_DigitalCmd 0x0000080d Thumb Code 82 plib035_gpio.o(i.GPIO_DigitalCmd) + i.GPIO_DriveModeConfig 0x00000890 Section 0 plib035_gpio.o(i.GPIO_DriveModeConfig) + i.GPIO_InModeConfig 0x00000914 Section 0 plib035_gpio.o(i.GPIO_InModeConfig) + i.GPIO_Init 0x00000994 Section 0 plib035_gpio.o(i.GPIO_Init) + i.GPIO_ModeConfig 0x000009e2 Section 0 plib035_gpio.o(i.GPIO_ModeConfig) + GPIO_ModeConfig 0x000009e3 Thumb Code 46 plib035_gpio.o(i.GPIO_ModeConfig) + i.GPIO_OutCmd 0x00000a10 Section 0 plib035_gpio.o(i.GPIO_OutCmd) + GPIO_OutCmd 0x00000a11 Thumb Code 82 plib035_gpio.o(i.GPIO_OutCmd) + i.GPIO_OutModeConfig 0x00000a70 Section 0 plib035_gpio.o(i.GPIO_OutModeConfig) + i.GPIO_PullModeConfig 0x00000af0 Section 0 plib035_gpio.o(i.GPIO_PullModeConfig) + i.HardFault_Handler 0x00000b70 Section 0 vk035_it.o(i.HardFault_Handler) + i.MFLASH_LatencyConfig 0x00000b74 Section 0 plib035_rcu.o(i.MFLASH_LatencyConfig) + MFLASH_LatencyConfig 0x00000b75 Thumb Code 32 plib035_rcu.o(i.MFLASH_LatencyConfig) + i.MemManage_Handler 0x00000bc0 Section 0 vk035_it.o(i.MemManage_Handler) + i.NMI_Handler 0x00000bc4 Section 0 vk035_it.o(i.NMI_Handler) + i.PendSV_Handler 0x00000bc8 Section 0 vk035_it.o(i.PendSV_Handler) + i.RCU_AHBClkCmd 0x00000bcc Section 0 gpio.o(i.RCU_AHBClkCmd) + RCU_AHBClkCmd 0x00000bcd Thumb Code 70 gpio.o(i.RCU_AHBClkCmd) + i.RCU_AHBRstCmd 0x00000c40 Section 0 gpio.o(i.RCU_AHBRstCmd) + RCU_AHBRstCmd 0x00000c41 Thumb Code 70 gpio.o(i.RCU_AHBRstCmd) + i.RCU_AHBRstCmd 0x00000c90 Section 0 plib035_gpio.o(i.RCU_AHBRstCmd) + RCU_AHBRstCmd 0x00000c91 Thumb Code 70 plib035_gpio.o(i.RCU_AHBRstCmd) + i.RCU_ClkOutConfig 0x00000d04 Section 0 rcu.o(i.RCU_ClkOutConfig) + RCU_ClkOutConfig 0x00000d05 Thumb Code 96 rcu.o(i.RCU_ClkOutConfig) + i.RCU_PLL_AutoConfig 0x00000d70 Section 0 plib035_rcu.o(i.RCU_PLL_AutoConfig) + i.RCU_PLL_Init 0x00000f18 Section 0 plib035_rcu.o(i.RCU_PLL_Init) + i.RCU_PLL_OutCmd 0x00001040 Section 0 plib035_rcu.o(i.RCU_PLL_OutCmd) + RCU_PLL_OutCmd 0x00001041 Thumb Code 36 plib035_rcu.o(i.RCU_PLL_OutCmd) + i.RCU_PLL_StructInit 0x00001090 Section 0 plib035_rcu.o(i.RCU_PLL_StructInit) + i.RCU_SysClkChangeCmd 0x000010a0 Section 0 plib035_rcu.o(i.RCU_SysClkChangeCmd) + i.SVC_Handler 0x00001174 Section 0 vk035_it.o(i.SVC_Handler) + i.SysTick_Handler 0x00001178 Section 0 vk035_it.o(i.SysTick_Handler) + i.SystemCoreClockUpdate 0x00001188 Section 0 system_k1921vk035.o(i.SystemCoreClockUpdate) + i.SystemInit 0x00001218 Section 0 system_k1921vk035.o(i.SystemInit) + i.UsageFault_Handler 0x00001224 Section 0 vk035_it.o(i.UsageFault_Handler) + i._is_digit 0x00001228 Section 0 __printf_wp.o(i._is_digit) + i._sys_exit 0x00001236 Section 0 retarget.o(i._sys_exit) + i.assert_failed 0x0000123c Section 0 main.o(i.assert_failed) + i.ferror 0x00001274 Section 0 retarget.o(i.ferror) + i.fputc 0x0000127c Section 0 retarget.o(i.fputc) + i.gpio_init 0x0000128c Section 0 gpio.o(i.gpio_init) + i.main 0x000012f0 Section 0 main.o(i.main) + i.periph_init 0x000012f8 Section 0 main.o(i.periph_init) + i.retarget_init 0x00001378 Section 0 retarget_conf.o(i.retarget_init) + i.retarget_put_char 0x0000145c Section 0 retarget_conf.o(i.retarget_put_char) + i.sysclk_init 0x00001478 Section 0 rcu.o(i.sysclk_init) + x$fpl$ddiv 0x00001554 Section 688 ddiv.o(x$fpl$ddiv) + $v0 0x00001554 Number 0 ddiv.o(x$fpl$ddiv) + ddiv_entry 0x0000155b Thumb Code 0 ddiv.o(x$fpl$ddiv) + x$fpl$dfix 0x00001804 Section 94 dfix.o(x$fpl$dfix) + $v0 0x00001804 Number 0 dfix.o(x$fpl$dfix) + x$fpl$dfltu 0x00001862 Section 38 dflt_clz.o(x$fpl$dfltu) + $v0 0x00001862 Number 0 dflt_clz.o(x$fpl$dfltu) + x$fpl$dnaninf 0x00001888 Section 156 dnaninf.o(x$fpl$dnaninf) + $v0 0x00001888 Number 0 dnaninf.o(x$fpl$dnaninf) + x$fpl$dretinf 0x00001924 Section 12 dretinf.o(x$fpl$dretinf) + $v0 0x00001924 Number 0 dretinf.o(x$fpl$dretinf) + x$fpl$fpinit 0x00001930 Section 10 fpinit.o(x$fpl$fpinit) + $v0 0x00001930 Number 0 fpinit.o(x$fpl$fpinit) + x$fpl$usenofp 0x0000193a Section 0 usenofp.o(x$fpl$usenofp) + .data 0x20000000 Section 392 gpio.o(.data) + dummy 0x20000000 Data 4 gpio.o(.data) + g_sort_opt 0x20000004 Data 4 gpio.o(.data) + gpioa_config 0x20000008 Data 192 gpio.o(.data) + gpiob_config 0x200000c8 Data 192 gpio.o(.data) + .data 0x20000188 Section 9 rcu.o(.data) + dummy 0x20000188 Data 4 rcu.o(.data) + g_sort_opt 0x2000018c Data 4 rcu.o(.data) + OS_Type 0x20000190 Data 1 rcu.o(.data) + .data 0x20000194 Section 8 system_k1921vk035.o(.data) + .data 0x2000019c Section 8 retarget.o(.data) + .bss 0x200001a4 Section 96 libspace.o(.bss) + HEAP 0x20000208 Section 512 startup_k1921vk035.o(HEAP) + Heap_Mem 0x20000208 Data 512 startup_k1921vk035.o(HEAP) + STACK 0x20000408 Section 1024 startup_k1921vk035.o(STACK) + Stack_Mem 0x20000408 Data 1024 startup_k1921vk035.o(STACK) + __initial_sp 0x20000808 Data 0 startup_k1921vk035.o(STACK) + + Global Symbols + + Symbol Name Value Ov Type Size Object(Section) + + BuildAttributes$$THM_ISAv4$E$P$D$K$B$S$7EM$VFPi3$EXTD16$VFPS$VFMA$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$IEEEX$EBA8$UX$STANDARDLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE + __ARM_use_no_argv 0x00000000 Number 0 main.o ABSOLUTE + __Vectors 0x00000000 Data 4 startup_k1921vk035.o(RESET) + _printf_flags 0x00000000 Number 0 printf_stubs.o ABSOLUTE + _printf_return_value 0x00000000 Number 0 printf_stubs.o ABSOLUTE + _printf_sizespec 0x00000000 Number 0 printf_stubs.o ABSOLUTE + _printf_widthprec 0x00000000 Number 0 printf_stubs.o ABSOLUTE + __ARM_exceptions_init - Undefined Weak Reference + __alloca_initialize - Undefined Weak Reference + __arm_fini_ - Undefined Weak Reference + __arm_preinit_ - Undefined Weak Reference + __cpp_initialize__aeabi_ - Undefined Weak Reference + __cxa_finalize - Undefined Weak Reference + __rt_locale - Undefined Weak Reference + __sigvec_lookup - Undefined Weak Reference + _atexit_init - Undefined Weak Reference + _call_atexit_fns - Undefined Weak Reference + _clock_init - Undefined Weak Reference + _fp_trap_init - Undefined Weak Reference + _fp_trap_shutdown - Undefined Weak Reference + _get_lc_collate - Undefined Weak Reference + _get_lc_ctype - Undefined Weak Reference + _get_lc_monetary - Undefined Weak Reference + _get_lc_numeric - Undefined Weak Reference + _get_lc_time - Undefined Weak Reference + _getenv_init - Undefined Weak Reference + _handle_redirection - Undefined Weak Reference + _init_alloc - Undefined Weak Reference + _init_user_alloc - Undefined Weak Reference + _initio - Undefined Weak Reference + _printf_mbtowc - Undefined Weak Reference + _printf_truncate_signed - Undefined Weak Reference + _printf_truncate_unsigned - Undefined Weak Reference + _signal_finish - Undefined Weak Reference + _signal_init - Undefined Weak Reference + _terminate_alloc - Undefined Weak Reference + _terminate_user_alloc - Undefined Weak Reference + _terminateio - Undefined Weak Reference + __Vectors_End 0x00000158 Data 0 startup_k1921vk035.o(RESET) + __Vectors_Size 0x00000158 Number 0 startup_k1921vk035.o ABSOLUTE + __main 0x00000159 Thumb Code 8 __main.o(!!!main) + __scatterload 0x00000161 Thumb Code 0 __scatter.o(!!!scatter) + __scatterload_rt2 0x00000161 Thumb Code 44 __scatter.o(!!!scatter) + __scatterload_rt2_thumb_only 0x00000161 Thumb Code 0 __scatter.o(!!!scatter) + __scatterload_null 0x0000016f Thumb Code 0 __scatter.o(!!!scatter) + __decompress 0x00000195 Thumb Code 90 __dczerorl2.o(!!dczerorl2) + __decompress1 0x00000195 Thumb Code 0 __dczerorl2.o(!!dczerorl2) + __scatterload_zeroinit 0x000001f1 Thumb Code 28 __scatter_zi.o(!!handler_zi) + _printf_d 0x0000020d Thumb Code 0 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) + _printf_percent 0x0000020d Thumb Code 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) + _printf_s 0x00000213 Thumb Code 0 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) + _printf_percent_end 0x00000219 Thumb Code 0 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) + __rt_lib_init 0x0000021d Thumb Code 0 libinit.o(.ARM.Collect$$libinit$$00000000) + __rt_lib_init_fp_1 0x0000021f Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000001) + __rt_lib_init_alloca_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) + __rt_lib_init_argv_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) + __rt_lib_init_atexit_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) + __rt_lib_init_clock_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000021) + __rt_lib_init_cpp_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000032) + __rt_lib_init_exceptions_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000030) + __rt_lib_init_fp_trap_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) + __rt_lib_init_getenv_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000023) + __rt_lib_init_heap_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) + __rt_lib_init_lc_collate_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000011) + __rt_lib_init_lc_ctype_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000013) + __rt_lib_init_lc_monetary_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000015) + __rt_lib_init_lc_numeric_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000017) + __rt_lib_init_lc_time_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000019) + __rt_lib_init_preinit_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000004) + __rt_lib_init_rand_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) + __rt_lib_init_return 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000033) + __rt_lib_init_signal_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) + __rt_lib_init_stdio_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000025) + __rt_lib_init_user_alloc_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) + __rt_lib_shutdown 0x00000225 Thumb Code 0 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) + __rt_lib_shutdown_cpp_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) + __rt_lib_shutdown_fini_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) + __rt_lib_shutdown_fp_trap_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) + __rt_lib_shutdown_heap_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) + __rt_lib_shutdown_return 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) + __rt_lib_shutdown_signal_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) + __rt_lib_shutdown_stdio_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) + __rt_lib_shutdown_user_alloc_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) + __rt_entry 0x00000229 Thumb Code 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) + __rt_entry_presh_1 0x00000229 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) + __rt_entry_sh 0x00000229 Thumb Code 0 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) + __rt_entry_li 0x0000022f Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) + __rt_entry_postsh_1 0x0000022f Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) + __rt_entry_main 0x00000233 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) + __rt_entry_postli_1 0x00000233 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) + __rt_exit 0x0000023b Thumb Code 0 rtexit.o(.ARM.Collect$$rtexit$$00000000) + __rt_exit_ls 0x0000023d Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000003) + __rt_exit_prels_1 0x0000023d Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) + __rt_exit_exit 0x00000241 Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000004) + Reset_Handler 0x00000249 Thumb Code 8 startup_k1921vk035.o(.text) + ADC_DC_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ADC_SEQ0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ADC_SEQ1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN10_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN11_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN12_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN13_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN14_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN15_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN3_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN4_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN5_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN6_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN7_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN8_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN9_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH10_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH11_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH12_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH13_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH14_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH15_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH3_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH4_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH5_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH6_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH7_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH8_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH9_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ECAP0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ECAP1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ECAP2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + FPU_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + GPIOA_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + GPIOB_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + I2C_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + MFLASH_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM0_HD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM0_TZ_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM1_HD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM1_TZ_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM2_HD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM2_TZ_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + QEP_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + RCU_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + SPI_RO_RT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + SPI_RX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + SPI_TX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR3_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_E_RT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_RX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_TD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_TX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_E_RT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_RX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_TD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_TX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + WDT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + __user_initial_stackheap 0x00000265 Thumb Code 0 startup_k1921vk035.o(.text) + __I$use$semihosting 0x00000289 Thumb Code 0 use_no_semi.o(.text) + __use_no_semihosting_swi 0x00000289 Thumb Code 2 use_no_semi.o(.text) + __2printf 0x0000028d Thumb Code 20 noretval__2printf.o(.text) + _printf_pre_padding 0x000002a5 Thumb Code 44 _printf_pad.o(.text) + _printf_post_padding 0x000002d1 Thumb Code 34 _printf_pad.o(.text) + _printf_str 0x000002f3 Thumb Code 82 _printf_str.o(.text) + _printf_int_dec 0x00000345 Thumb Code 104 _printf_dec.o(.text) + __printf 0x000003bd Thumb Code 270 __printf_wp.o(.text) + __use_two_region_memory 0x000004cb Thumb Code 2 heapauxi.o(.text) + __rt_heap_escrow$2region 0x000004cd Thumb Code 2 heapauxi.o(.text) + __rt_heap_expand$2region 0x000004cf Thumb Code 2 heapauxi.o(.text) + _printf_int_common 0x000004d1 Thumb Code 178 _printf_intcommon.o(.text) + _printf_cs_common 0x00000583 Thumb Code 20 _printf_char.o(.text) + _printf_char 0x00000597 Thumb Code 16 _printf_char.o(.text) + _printf_string 0x000005a7 Thumb Code 8 _printf_char.o(.text) + _printf_char_file 0x000005b1 Thumb Code 32 _printf_char_file.o(.text) + _printf_char_common 0x000005df Thumb Code 32 _printf_char_common.o(.text) + __user_libspace 0x00000605 Thumb Code 8 libspace.o(.text) + __user_perproc_libspace 0x00000605 Thumb Code 0 libspace.o(.text) + __user_perthread_libspace 0x00000605 Thumb Code 0 libspace.o(.text) + __user_setup_stackheap 0x0000060d Thumb Code 74 sys_stackheap_outer.o(.text) + exit 0x00000657 Thumb Code 18 exit.o(.text) + BusFault_Handler 0x00000669 Thumb Code 4 vk035_it.o(i.BusFault_Handler) + ClkInit 0x0000066d Thumb Code 154 system_k1921vk035.o(i.ClkInit) + DebugMon_Handler 0x00000711 Thumb Code 2 vk035_it.o(i.DebugMon_Handler) + Error_Handler 0x00000713 Thumb Code 6 main.o(i.Error_Handler) + FPUInit 0x00000719 Thumb Code 42 system_k1921vk035.o(i.FPUInit) + GPIO_DeInit 0x000007a9 Thumb Code 56 plib035_gpio.o(i.GPIO_DeInit) + GPIO_DriveModeConfig 0x00000891 Thumb Code 86 plib035_gpio.o(i.GPIO_DriveModeConfig) + GPIO_InModeConfig 0x00000915 Thumb Code 82 plib035_gpio.o(i.GPIO_InModeConfig) + GPIO_Init 0x00000995 Thumb Code 78 plib035_gpio.o(i.GPIO_Init) + GPIO_OutModeConfig 0x00000a71 Thumb Code 82 plib035_gpio.o(i.GPIO_OutModeConfig) + GPIO_PullModeConfig 0x00000af1 Thumb Code 82 plib035_gpio.o(i.GPIO_PullModeConfig) + HardFault_Handler 0x00000b71 Thumb Code 4 vk035_it.o(i.HardFault_Handler) + MemManage_Handler 0x00000bc1 Thumb Code 4 vk035_it.o(i.MemManage_Handler) + NMI_Handler 0x00000bc5 Thumb Code 4 vk035_it.o(i.NMI_Handler) + PendSV_Handler 0x00000bc9 Thumb Code 2 vk035_it.o(i.PendSV_Handler) + RCU_PLL_AutoConfig 0x00000d71 Thumb Code 374 plib035_rcu.o(i.RCU_PLL_AutoConfig) + RCU_PLL_Init 0x00000f19 Thumb Code 250 plib035_rcu.o(i.RCU_PLL_Init) + RCU_PLL_StructInit 0x00001091 Thumb Code 16 plib035_rcu.o(i.RCU_PLL_StructInit) + RCU_SysClkChangeCmd 0x000010a1 Thumb Code 130 plib035_rcu.o(i.RCU_SysClkChangeCmd) + SVC_Handler 0x00001175 Thumb Code 2 vk035_it.o(i.SVC_Handler) + SysTick_Handler 0x00001179 Thumb Code 12 vk035_it.o(i.SysTick_Handler) + SystemCoreClockUpdate 0x00001189 Thumb Code 126 system_k1921vk035.o(i.SystemCoreClockUpdate) + SystemInit 0x00001219 Thumb Code 12 system_k1921vk035.o(i.SystemInit) + UsageFault_Handler 0x00001225 Thumb Code 4 vk035_it.o(i.UsageFault_Handler) + _is_digit 0x00001229 Thumb Code 14 __printf_wp.o(i._is_digit) + _sys_exit 0x00001237 Thumb Code 4 retarget.o(i._sys_exit) + assert_failed 0x0000123d Thumb Code 18 main.o(i.assert_failed) + ferror 0x00001275 Thumb Code 8 retarget.o(i.ferror) + fputc 0x0000127d Thumb Code 14 retarget.o(i.fputc) + gpio_init 0x0000128d Thumb Code 84 gpio.o(i.gpio_init) + main 0x000012f1 Thumb Code 8 main.o(i.main) + periph_init 0x000012f9 Thumb Code 70 main.o(i.periph_init) + retarget_init 0x00001379 Thumb Code 198 retarget_conf.o(i.retarget_init) + retarget_put_char 0x0000145d Thumb Code 24 retarget_conf.o(i.retarget_put_char) + sysclk_init 0x00001479 Thumb Code 152 rcu.o(i.sysclk_init) + __aeabi_ddiv 0x00001555 Thumb Code 0 ddiv.o(x$fpl$ddiv) + _ddiv 0x00001555 Thumb Code 552 ddiv.o(x$fpl$ddiv) + __aeabi_d2iz 0x00001805 Thumb Code 0 dfix.o(x$fpl$dfix) + _dfix 0x00001805 Thumb Code 94 dfix.o(x$fpl$dfix) + __aeabi_ui2d 0x00001863 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) + _dfltu 0x00001863 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) + __fpl_dnaninf 0x00001889 Thumb Code 156 dnaninf.o(x$fpl$dnaninf) + __fpl_dretinf 0x00001925 Thumb Code 12 dretinf.o(x$fpl$dretinf) + _fp_init 0x00001931 Thumb Code 10 fpinit.o(x$fpl$fpinit) + __fplib_config_fpu_vfp 0x00001939 Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fplib_config_pureend_doubles 0x00001939 Thumb Code 0 fpinit.o(x$fpl$fpinit) + __I$use$fp 0x0000193a Number 0 usenofp.o(x$fpl$usenofp) + Region$$Table$$Base 0x0000193c Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x0000195c Number 0 anon$$obj.o(Region$$Table) + SystemCoreClock 0x20000194 Data 4 system_k1921vk035.o(.data) + uwTick 0x20000198 Data 4 system_k1921vk035.o(.data) + __stdout 0x2000019c Data 4 retarget.o(.data) + __stdin 0x200001a0 Data 4 retarget.o(.data) + __libspace_start 0x200001a4 Data 96 libspace.o(.bss) + __temporary_stack_top$libspace 0x20000204 Data 0 libspace.o(.bss) + + + +============================================================================== + +Memory Map of the image + + Image Entry point : 0x00000249 + + Load Region LR_1 (Base: 0x00000000, Size: 0x00001b00, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x00001980]) + + Execution Region ER_RO (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x0000195c, Max: 0xffffffff, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x00000000 0x00000000 0x00000158 Data RO 926 RESET startup_k1921vk035.o + 0x00000158 0x00000158 0x00000008 Code RO 2411 * !!!main c_w.l(__main.o) + 0x00000160 0x00000160 0x00000034 Code RO 2660 !!!scatter c_w.l(__scatter.o) + 0x00000194 0x00000194 0x0000005a Code RO 2658 !!dczerorl2 c_w.l(__dczerorl2.o) + 0x000001ee 0x000001ee 0x00000002 PAD + 0x000001f0 0x000001f0 0x0000001c Code RO 2662 !!handler_zi c_w.l(__scatter_zi.o) + 0x0000020c 0x0000020c 0x00000000 Code RO 2393 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) + 0x0000020c 0x0000020c 0x00000006 Code RO 2392 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) + 0x00000212 0x00000212 0x00000006 Code RO 2391 .ARM.Collect$$_printf_percent$$00000014 c_w.l(_printf_s.o) + 0x00000218 0x00000218 0x00000004 Code RO 2464 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) + 0x0000021c 0x0000021c 0x00000002 Code RO 2584 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x0000021e 0x0000021e 0x00000004 Code RO 2465 .ARM.Collect$$libinit$$00000001 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2468 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2471 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2473 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2475 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2478 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2480 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2482 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2484 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2486 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2488 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2490 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2492 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2494 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2496 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2498 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2502 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2504 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2506 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 2508 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000002 Code RO 2509 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) + 0x00000224 0x00000224 0x00000002 Code RO 2621 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x00000226 0x00000226 0x00000000 Code RO 2625 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 2627 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 2629 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 2632 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 2635 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 2637 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 2640 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000002 Code RO 2641 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) + 0x00000228 0x00000228 0x00000000 Code RO 2453 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x00000228 0x00000228 0x00000000 Code RO 2535 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x00000228 0x00000228 0x00000006 Code RO 2547 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x0000022e 0x0000022e 0x00000000 Code RO 2537 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x0000022e 0x0000022e 0x00000004 Code RO 2538 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x00000232 0x00000232 0x00000000 Code RO 2540 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x00000232 0x00000232 0x00000008 Code RO 2541 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x0000023a 0x0000023a 0x00000002 Code RO 2587 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x0000023c 0x0000023c 0x00000000 Code RO 2601 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x0000023c 0x0000023c 0x00000004 Code RO 2602 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x00000240 0x00000240 0x00000006 Code RO 2603 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x00000246 0x00000246 0x00000002 PAD + 0x00000248 0x00000248 0x00000040 Code RO 927 * .text startup_k1921vk035.o + 0x00000288 0x00000288 0x00000002 Code RO 2355 .text c_w.l(use_no_semi.o) + 0x0000028a 0x0000028a 0x00000002 PAD + 0x0000028c 0x0000028c 0x00000018 Code RO 2361 .text c_w.l(noretval__2printf.o) + 0x000002a4 0x000002a4 0x0000004e Code RO 2365 .text c_w.l(_printf_pad.o) + 0x000002f2 0x000002f2 0x00000052 Code RO 2367 .text c_w.l(_printf_str.o) + 0x00000344 0x00000344 0x00000078 Code RO 2369 .text c_w.l(_printf_dec.o) + 0x000003bc 0x000003bc 0x0000010e Code RO 2379 .text c_w.l(__printf_wp.o) + 0x000004ca 0x000004ca 0x00000006 Code RO 2409 .text c_w.l(heapauxi.o) + 0x000004d0 0x000004d0 0x000000b2 Code RO 2458 .text c_w.l(_printf_intcommon.o) + 0x00000582 0x00000582 0x0000002c Code RO 2460 .text c_w.l(_printf_char.o) + 0x000005ae 0x000005ae 0x00000002 PAD + 0x000005b0 0x000005b0 0x00000024 Code RO 2462 .text c_w.l(_printf_char_file.o) + 0x000005d4 0x000005d4 0x00000030 Code RO 2558 .text c_w.l(_printf_char_common.o) + 0x00000604 0x00000604 0x00000008 Code RO 2564 .text c_w.l(libspace.o) + 0x0000060c 0x0000060c 0x0000004a Code RO 2567 .text c_w.l(sys_stackheap_outer.o) + 0x00000656 0x00000656 0x00000012 Code RO 2573 .text c_w.l(exit.o) + 0x00000668 0x00000668 0x00000004 Code RO 322 i.BusFault_Handler vk035_it.o + 0x0000066c 0x0000066c 0x000000a4 Code RO 879 i.ClkInit system_k1921vk035.o + 0x00000710 0x00000710 0x00000002 Code RO 323 i.DebugMon_Handler vk035_it.o + 0x00000712 0x00000712 0x00000006 Code RO 4 i.Error_Handler main.o + 0x00000718 0x00000718 0x00000030 Code RO 880 i.FPUInit system_k1921vk035.o + 0x00000748 0x00000748 0x00000060 Code RO 1334 i.GPIO_AltFuncCmd plib035_gpio.o + 0x000007a8 0x000007a8 0x00000064 Code RO 1335 i.GPIO_DeInit plib035_gpio.o + 0x0000080c 0x0000080c 0x00000084 Code RO 1336 i.GPIO_DigitalCmd plib035_gpio.o + 0x00000890 0x00000890 0x00000084 Code RO 1337 i.GPIO_DriveModeConfig plib035_gpio.o + 0x00000914 0x00000914 0x00000080 Code RO 1338 i.GPIO_InModeConfig plib035_gpio.o + 0x00000994 0x00000994 0x0000004e Code RO 1339 i.GPIO_Init plib035_gpio.o + 0x000009e2 0x000009e2 0x0000002e Code RO 1340 i.GPIO_ModeConfig plib035_gpio.o + 0x00000a10 0x00000a10 0x00000060 Code RO 1341 i.GPIO_OutCmd plib035_gpio.o + 0x00000a70 0x00000a70 0x00000080 Code RO 1342 i.GPIO_OutModeConfig plib035_gpio.o + 0x00000af0 0x00000af0 0x00000080 Code RO 1343 i.GPIO_PullModeConfig plib035_gpio.o + 0x00000b70 0x00000b70 0x00000004 Code RO 326 i.HardFault_Handler vk035_it.o + 0x00000b74 0x00000b74 0x0000004c Code RO 1910 i.MFLASH_LatencyConfig plib035_rcu.o + 0x00000bc0 0x00000bc0 0x00000004 Code RO 327 i.MemManage_Handler vk035_it.o + 0x00000bc4 0x00000bc4 0x00000004 Code RO 328 i.NMI_Handler vk035_it.o + 0x00000bc8 0x00000bc8 0x00000002 Code RO 329 i.PendSV_Handler vk035_it.o + 0x00000bca 0x00000bca 0x00000002 PAD + 0x00000bcc 0x00000bcc 0x00000074 Code RO 215 i.RCU_AHBClkCmd gpio.o + 0x00000c40 0x00000c40 0x00000050 Code RO 216 i.RCU_AHBRstCmd gpio.o + 0x00000c90 0x00000c90 0x00000074 Code RO 1345 i.RCU_AHBRstCmd plib035_gpio.o + 0x00000d04 0x00000d04 0x0000006c Code RO 270 i.RCU_ClkOutConfig rcu.o + 0x00000d70 0x00000d70 0x000001a8 Code RO 1922 i.RCU_PLL_AutoConfig plib035_rcu.o + 0x00000f18 0x00000f18 0x00000128 Code RO 1924 i.RCU_PLL_Init plib035_rcu.o + 0x00001040 0x00001040 0x00000050 Code RO 1925 i.RCU_PLL_OutCmd plib035_rcu.o + 0x00001090 0x00001090 0x00000010 Code RO 1926 i.RCU_PLL_StructInit plib035_rcu.o + 0x000010a0 0x000010a0 0x000000d4 Code RO 1927 i.RCU_SysClkChangeCmd plib035_rcu.o + 0x00001174 0x00001174 0x00000002 Code RO 330 i.SVC_Handler vk035_it.o + 0x00001176 0x00001176 0x00000002 PAD + 0x00001178 0x00001178 0x00000010 Code RO 331 i.SysTick_Handler vk035_it.o + 0x00001188 0x00001188 0x00000090 Code RO 881 i.SystemCoreClockUpdate system_k1921vk035.o + 0x00001218 0x00001218 0x0000000c Code RO 882 i.SystemInit system_k1921vk035.o + 0x00001224 0x00001224 0x00000004 Code RO 332 i.UsageFault_Handler vk035_it.o + 0x00001228 0x00001228 0x0000000e Code RO 2381 i._is_digit c_w.l(__printf_wp.o) + 0x00001236 0x00001236 0x00000004 Code RO 2256 i._sys_exit retarget.o + 0x0000123a 0x0000123a 0x00000002 PAD + 0x0000123c 0x0000123c 0x00000038 Code RO 7 i.assert_failed main.o + 0x00001274 0x00001274 0x00000008 Code RO 2258 i.ferror retarget.o + 0x0000127c 0x0000127c 0x0000000e Code RO 2260 i.fputc retarget.o + 0x0000128a 0x0000128a 0x00000002 PAD + 0x0000128c 0x0000128c 0x00000064 Code RO 218 i.gpio_init gpio.o + 0x000012f0 0x000012f0 0x00000008 Code RO 9 i.main main.o + 0x000012f8 0x000012f8 0x00000080 Code RO 10 i.periph_init main.o + 0x00001378 0x00001378 0x000000e4 Code RO 2321 i.retarget_init retarget_conf.o + 0x0000145c 0x0000145c 0x0000001c Code RO 2322 i.retarget_put_char retarget_conf.o + 0x00001478 0x00001478 0x000000dc Code RO 272 i.sysclk_init rcu.o + 0x00001554 0x00001554 0x000002b0 Code RO 2414 x$fpl$ddiv fz_wm.l(ddiv.o) + 0x00001804 0x00001804 0x0000005e Code RO 2417 x$fpl$dfix fz_wm.l(dfix.o) + 0x00001862 0x00001862 0x00000026 Code RO 2421 x$fpl$dfltu fz_wm.l(dflt_clz.o) + 0x00001888 0x00001888 0x0000009c Code RO 2510 x$fpl$dnaninf fz_wm.l(dnaninf.o) + 0x00001924 0x00001924 0x0000000c Code RO 2512 x$fpl$dretinf fz_wm.l(dretinf.o) + 0x00001930 0x00001930 0x0000000a Code RO 2562 x$fpl$fpinit fz_wm.l(fpinit.o) + 0x0000193a 0x0000193a 0x00000000 Code RO 2514 x$fpl$usenofp fz_wm.l(usenofp.o) + 0x0000193a 0x0000193a 0x00000002 PAD + 0x0000193c 0x0000193c 0x00000020 Data RO 2656 Region$$Table anon$$obj.o + + + Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x0000195c, Size: 0x000001a4, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x00000024]) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x20000000 COMPRESSED 0x00000188 Data RW 220 .data gpio.o + 0x20000188 COMPRESSED 0x00000009 Data RW 274 .data rcu.o + 0x20000191 COMPRESSED 0x00000003 PAD + 0x20000194 COMPRESSED 0x00000008 Data RW 883 .data system_k1921vk035.o + 0x2000019c COMPRESSED 0x00000008 Data RW 2261 .data retarget.o + + + Execution Region ER_ZI (Exec base: 0x200001a4, Load base: 0x00001980, Size: 0x00000664, Max: 0xffffffff, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x200001a4 - 0x00000060 Zero RW 2565 .bss c_w.l(libspace.o) + 0x20000204 0x00001980 0x00000004 PAD + 0x20000208 - 0x00000200 Zero RW 925 HEAP startup_k1921vk035.o + 0x20000408 - 0x00000400 Zero RW 924 STACK startup_k1921vk035.o + + +============================================================================== + +Image component sizes + + + Code (inc. data) RO Data RW Data ZI Data Debug Object Name + + 296 72 0 392 0 11008 gpio.o + 198 96 0 0 0 206397 main.o + 1180 352 0 0 0 12760 plib035_gpio.o + 1104 266 0 0 0 13951 plib035_rcu.o + 328 80 0 9 0 40469 rcu.o + 26 0 0 8 0 3375 retarget.o + 256 34 0 0 0 1204 retarget_conf.o + 64 26 344 0 1536 892 startup_k1921vk035.o + 368 34 0 8 0 2906 system_k1921vk035.o + 42 4 0 0 0 3994 vk035_it.o + + ---------------------------------------------------------------------- + 3870 964 376 420 1536 296956 Object Totals + 0 0 32 0 0 0 (incl. Generated) + 8 0 0 3 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name + + 90 0 0 0 0 0 __dczerorl2.o + 8 0 0 0 0 68 __main.o + 284 0 0 0 0 156 __printf_wp.o + 0 0 0 0 0 0 __rtentry.o + 12 0 0 0 0 0 __rtentry2.o + 6 0 0 0 0 0 __rtentry4.o + 52 8 0 0 0 0 __scatter.o + 28 0 0 0 0 0 __scatter_zi.o + 44 0 0 0 0 108 _printf_char.o + 48 6 0 0 0 96 _printf_char_common.o + 36 4 0 0 0 80 _printf_char_file.o + 6 0 0 0 0 0 _printf_d.o + 120 16 0 0 0 92 _printf_dec.o + 178 0 0 0 0 88 _printf_intcommon.o + 78 0 0 0 0 108 _printf_pad.o + 0 0 0 0 0 0 _printf_percent.o + 4 0 0 0 0 0 _printf_percent_end.o + 6 0 0 0 0 0 _printf_s.o + 82 0 0 0 0 80 _printf_str.o + 18 0 0 0 0 80 exit.o + 6 0 0 0 0 152 heapauxi.o + 2 0 0 0 0 0 libinit.o + 6 0 0 0 0 0 libinit2.o + 2 0 0 0 0 0 libshutdown.o + 2 0 0 0 0 0 libshutdown2.o + 8 4 0 0 96 68 libspace.o + 24 4 0 0 0 84 noretval__2printf.o + 2 0 0 0 0 0 rtexit.o + 10 0 0 0 0 0 rtexit2.o + 74 0 0 0 0 80 sys_stackheap_outer.o + 2 0 0 0 0 68 use_no_semi.o + 688 140 0 0 0 256 ddiv.o + 94 4 0 0 0 140 dfix.o + 38 0 0 0 0 116 dflt_clz.o + 156 4 0 0 0 140 dnaninf.o + 12 0 0 0 0 116 dretinf.o + 10 0 0 0 0 116 fpinit.o + 0 0 0 0 0 0 usenofp.o + + ---------------------------------------------------------------------- + 2246 190 0 0 100 2292 Library Totals + 10 0 0 0 4 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Name + + 1238 42 0 0 96 1408 c_w.l + 998 148 0 0 0 884 fz_wm.l + + ---------------------------------------------------------------------- + 2246 190 0 0 100 2292 Library Totals + + ---------------------------------------------------------------------- + +============================================================================== + + + Code (inc. data) RO Data RW Data ZI Data Debug + + 6116 1154 376 420 1636 294324 Grand Totals + 6116 1154 376 36 1636 294324 ELF Image Totals (compressed) + 6116 1154 376 36 0 0 ROM Totals + +============================================================================== + + Total RO Size (Code + RO Data) 6492 ( 6.34kB) + Total RW Size (RW Data + ZI Data) 2056 ( 2.01kB) + Total ROM Size (Code + RO Data + RW Data) 6528 ( 6.38kB) + +============================================================================== + diff --git a/Listings/startup_k1921vk035.lst b/Listings/startup_k1921vk035.lst new file mode 100644 index 0000000..04037aa --- /dev/null +++ b/Listings/startup_k1921vk035.lst @@ -0,0 +1,1961 @@ + + + +ARM Macro Assembler Page 1 + + + 1 00000000 ;******************** (C) COPYRIGHT 2018 NIIET ********* + *********** + 2 00000000 ;* File Name : startup_K1921VK035.s + 3 00000000 ;* Author : NIIET + 4 00000000 ;* Version : V1.7 + 5 00000000 ;* Date : 02.05.2018 + 6 00000000 ;* Description : K1921VK035 vector table for MDK- + ARM + 7 00000000 ;* toolchain. + 8 00000000 ;* This module performs: + 9 00000000 ;* - Set the initial SP + 10 00000000 ;* - Set the initial PC == Reset_Ha + ndler + 11 00000000 ;* - Set the vector table entries w + ith the exceptions ISR address + 12 00000000 ;* - Configure the clock system + 13 00000000 ;* - Branches to __main in the C li + brary (which eventually + 14 00000000 ;* calls main()). + 15 00000000 ;* After Reset the CortexM4 process + or is in Thread mode, + 16 00000000 ;* priority is Privileged, and the + Stack is set to Main. + 17 00000000 ;* <<< Use Configuration Wizard in Context Menu >>> + 18 00000000 ;******************************************************* + ************************ + 19 00000000 ; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS A + T PROVIDING CUSTOMERS + 20 00000000 ; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN OR + DER FOR THEM TO SAVE TIME. + 21 00000000 ; AS A RESULT, NIIET SHALL NOT BE HELD LIABLE FOR ANY DI + RECT, + 22 00000000 ; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY + CLAIMS ARISING FROM THE + 23 00000000 ; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOM + ERS OF THE CODING + 24 00000000 ; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR + PRODUCTS. + 25 00000000 ;******************************************************* + ************************ + 26 00000000 + 27 00000000 ; Amount of memory (in bytes) allocated for Stack + 28 00000000 ; Tailor this value to your application needs + 29 00000000 ; Stack Configuration + 30 00000000 ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> + 31 00000000 ; + 32 00000000 + 33 00000000 00000400 + Stack_Size + EQU 0x00000400 + 34 00000000 + 35 00000000 AREA STACK, NOINIT, READWRITE, ALIGN +=3 + 36 00000000 Stack_Mem + SPACE Stack_Size + 37 00000400 __initial_sp + 38 00000400 + 39 00000400 + 40 00000400 ; Heap Configuration + + + +ARM Macro Assembler Page 2 + + + 41 00000400 ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> + 42 00000400 ; + 43 00000400 + 44 00000400 00000200 + Heap_Size + EQU 0x00000200 + 45 00000400 + 46 00000400 AREA HEAP, NOINIT, READWRITE, ALIGN= +3 + 47 00000000 __heap_base + 48 00000000 Heap_Mem + SPACE Heap_Size + 49 00000200 __heap_limit + 50 00000200 + 51 00000200 PRESERVE8 + 52 00000200 THUMB + 53 00000200 + 54 00000200 + 55 00000200 ; Vector Table Mapped to Address 0 at Reset + 56 00000200 AREA RESET, DATA, READONLY + 57 00000000 EXPORT __Vectors + 58 00000000 EXPORT __Vectors_End + 59 00000000 EXPORT __Vectors_Size + 60 00000000 + 61 00000000 00000000 + __Vectors + DCD __initial_sp ; Top of Stack + 62 00000004 00000000 DCD Reset_Handler ; Reset Handler + 63 00000008 00000000 DCD NMI_Handler ; NMI Handler + 64 0000000C 00000000 DCD HardFault_Handler ; Hard Fault + Handler + 65 00000010 00000000 DCD MemManage_Handler + ; MPU Fault Handler + + 66 00000014 00000000 DCD BusFault_Handler + ; Bus Fault Handler + + 67 00000018 00000000 DCD UsageFault_Handler ; Usage Faul + t Handler + 68 0000001C 00000000 DCD 0 ; Reserved + 69 00000020 00000000 DCD 0 ; Reserved + 70 00000024 00000000 DCD 0 ; Reserved + 71 00000028 00000000 DCD 0 ; Reserved + 72 0000002C 00000000 DCD SVC_Handler ; SVCall Handler + 73 00000030 00000000 DCD DebugMon_Handler ; Debug Monito + r Handler + 74 00000034 00000000 DCD 0 ; Reserved + 75 00000038 00000000 DCD PendSV_Handler ; PendSV Handler + + 76 0000003C 00000000 DCD SysTick_Handler + ; SysTick Handler + 77 00000040 + 78 00000040 ; External Interrupts + 79 00000040 00000000 DCD WDT_IRQHandler ; Watchdog timer + interrupt + 80 00000044 00000000 DCD RCU_IRQHandler ; Reset and cloc + k unit interrupt + 81 00000048 00000000 DCD MFLASH_IRQHandler + ; MFLASH interrupt + + + +ARM Macro Assembler Page 3 + + + 82 0000004C 00000000 DCD GPIOA_IRQHandler + ; GPIO A interrupt + 83 00000050 00000000 DCD GPIOB_IRQHandler + ; GPIO B interrupt + 84 00000054 00000000 DCD DMA_CH0_IRQHandler ; DMA channe + l 0 interrupt + 85 00000058 00000000 DCD DMA_CH1_IRQHandler ; DMA channe + l 1 interrupt + 86 0000005C 00000000 DCD DMA_CH2_IRQHandler ; DMA channe + l 2 interrupt + 87 00000060 00000000 DCD DMA_CH3_IRQHandler ; DMA channe + l 3 interrupt + 88 00000064 00000000 DCD DMA_CH4_IRQHandler ; DMA channe + l 4 interrupt + 89 00000068 00000000 DCD DMA_CH5_IRQHandler ; DMA channe + l 5 interrupt + 90 0000006C 00000000 DCD DMA_CH6_IRQHandler ; DMA channe + l 6 interrupt + 91 00000070 00000000 DCD DMA_CH7_IRQHandler ; DMA channe + l 7 interrupt + 92 00000074 00000000 DCD DMA_CH8_IRQHandler ; DMA channe + l 8 interrupt + 93 00000078 00000000 DCD DMA_CH9_IRQHandler ; DMA channe + l 9 interrupt + 94 0000007C 00000000 DCD DMA_CH10_IRQHandler ; DMA chann + el 10 interrupt + 95 00000080 00000000 DCD DMA_CH11_IRQHandler ; DMA chann + el 11 interrupt + 96 00000084 00000000 DCD DMA_CH12_IRQHandler ; DMA chann + el 12 interrupt + 97 00000088 00000000 DCD DMA_CH13_IRQHandler ; DMA chann + el 13 interrupt + 98 0000008C 00000000 DCD DMA_CH14_IRQHandler ; DMA chann + el 14 interrupt + 99 00000090 00000000 DCD DMA_CH15_IRQHandler ; DMA chann + el 15 interrupt + 100 00000094 00000000 DCD TMR0_IRQHandler + ; Timer 0 interrupt + + 101 00000098 00000000 DCD TMR1_IRQHandler + ; Timer 1 interrupt + + 102 0000009C 00000000 DCD TMR2_IRQHandler + ; Timer 2 interrupt + + 103 000000A0 00000000 DCD TMR3_IRQHandler + ; Timer 3 interrupt + + 104 000000A4 00000000 DCD UART0_TD_IRQHandler ; UART0 Tra + nsmit Done interrup + t + 105 000000A8 00000000 DCD UART0_RX_IRQHandler ; UART0 Rec + ieve interrupt + 106 000000AC 00000000 DCD UART0_TX_IRQHandler ; UART0 Tra + nsmit interrupt + 107 000000B0 00000000 DCD UART0_E_RT_IRQHandler ; UART0 E + rror and Receive Ti + meout interrupt + 108 000000B4 00000000 DCD UART1_TD_IRQHandler ; UART1 Tra + + + +ARM Macro Assembler Page 4 + + + nsmit Done interrup + t + 109 000000B8 00000000 DCD UART1_RX_IRQHandler ; UART1 Rec + ieve interrupt + 110 000000BC 00000000 DCD UART1_TX_IRQHandler ; UART1 Tra + nsmit interrupt + 111 000000C0 00000000 DCD UART1_E_RT_IRQHandler ; UART1 E + rror and Receive Ti + meout interrupt + 112 000000C4 00000000 DCD SPI_RO_RT_IRQHandler ; SPI RX F + IFO overrun and Rec + eive Timeout interr + upt + 113 000000C8 00000000 DCD SPI_RX_IRQHandler ; SPI Receive + interrupt + 114 000000CC 00000000 DCD SPI_TX_IRQHandler ; SPI Transmi + t interrupt + 115 000000D0 00000000 DCD I2C_IRQHandler ; I2C interrupt + 116 000000D4 00000000 DCD ECAP0_IRQHandler + ; ECAP0 interrupt + 117 000000D8 00000000 DCD ECAP1_IRQHandler + ; ECAP1 interrupt + 118 000000DC 00000000 DCD ECAP2_IRQHandler + ; ECAP2 interrupt + 119 000000E0 00000000 DCD PWM0_IRQHandler + ; PWM0 interrupt + 120 000000E4 00000000 DCD PWM0_HD_IRQHandler + ; PWM0 HD interrupt + + 121 000000E8 00000000 DCD PWM0_TZ_IRQHandler + ; PWM0 TZ interrupt + + 122 000000EC 00000000 DCD PWM1_IRQHandler + ; PWM1 interrupt + 123 000000F0 00000000 DCD PWM1_HD_IRQHandler + ; PWM1 HD interrupt + + 124 000000F4 00000000 DCD PWM1_TZ_IRQHandler + ; PWM1 TZ interrupt + + 125 000000F8 00000000 DCD PWM2_IRQHandler + ; PWM2 interrupt + 126 000000FC 00000000 DCD PWM2_HD_IRQHandler + ; PWM2 HD interrupt + + 127 00000100 00000000 DCD PWM2_TZ_IRQHandler + ; PWM2 TZ interrupt + + 128 00000104 00000000 DCD QEP_IRQHandler ; QEP interrupt + 129 00000108 00000000 DCD ADC_SEQ0_IRQHandler ; ADC Seque + ncer 0 interrupt + 130 0000010C 00000000 DCD ADC_SEQ1_IRQHandler ; ADC Seque + ncer 1 interrupt + 131 00000110 00000000 DCD ADC_DC_IRQHandler ; ADC Digital + Comparator interru + pt + 132 00000114 00000000 DCD CAN0_IRQHandler + ; CAN0 interrupt + 133 00000118 00000000 DCD CAN1_IRQHandler + + + +ARM Macro Assembler Page 5 + + + ; CAN1 interrupt + 134 0000011C 00000000 DCD CAN2_IRQHandler + ; CAN2 interrupt + 135 00000120 00000000 DCD CAN3_IRQHandler + ; CAN3 interrupt + 136 00000124 00000000 DCD CAN4_IRQHandler + ; CAN4 interrupt + 137 00000128 00000000 DCD CAN5_IRQHandler + ; CAN5 interrupt + 138 0000012C 00000000 DCD CAN6_IRQHandler + ; CAN6 interrupt + 139 00000130 00000000 DCD CAN7_IRQHandler + ; CAN7 interrupt + 140 00000134 00000000 DCD CAN8_IRQHandler + ; CAN8 interrupt + 141 00000138 00000000 DCD CAN9_IRQHandler + ; CAN9 interrupt + 142 0000013C 00000000 DCD CAN10_IRQHandler + ; CAN10 interrupt + 143 00000140 00000000 DCD CAN11_IRQHandler + ; CAN11 interrupt + 144 00000144 00000000 DCD CAN12_IRQHandler + ; CAN12 interrupt + 145 00000148 00000000 DCD CAN13_IRQHandler + ; CAN13 interrupt + 146 0000014C 00000000 DCD CAN14_IRQHandler + ; CAN14 interrupt + 147 00000150 00000000 DCD CAN15_IRQHandler + ; CAN15 interrupt + 148 00000154 00000000 DCD FPU_IRQHandler ; FPU exception + interrupt + 149 00000158 + 150 00000158 __Vectors_End + 151 00000158 + 152 00000158 00000158 + __Vectors_Size + EQU __Vectors_End - __Vectors + 153 00000158 + 154 00000158 AREA |.text|, CODE, READONLY + 155 00000000 + 156 00000000 ; Reset handler + 157 00000000 Reset_Handler + PROC + 158 00000000 EXPORT Reset_Handler [WEAK +] + 159 00000000 IMPORT __main + 160 00000000 IMPORT SystemInit + 161 00000000 4809 LDR R0, =SystemInit + 162 00000002 4780 BLX R0 + 163 00000004 4809 LDR R0, =__main + 164 00000006 4700 BX R0 + 165 00000008 ENDP + 166 00000008 + 167 00000008 ; Dummy Exception Handlers (infinite loops which can be + modified) + 168 00000008 + 169 00000008 NMI_Handler + PROC + 170 00000008 EXPORT NMI_Handler [WEA + + + +ARM Macro Assembler Page 6 + + +K] + 171 00000008 E7FE B . + 172 0000000A ENDP + 174 0000000A HardFault_Handler + PROC + 175 0000000A EXPORT HardFault_Handler [WEA +K] + 176 0000000A E7FE B . + 177 0000000C ENDP + 179 0000000C MemManage_Handler + PROC + 180 0000000C EXPORT MemManage_Handler [WEA +K] + 181 0000000C E7FE B . + 182 0000000E ENDP + 184 0000000E BusFault_Handler + PROC + 185 0000000E EXPORT BusFault_Handler [WEA +K] + 186 0000000E E7FE B . + 187 00000010 ENDP + 189 00000010 UsageFault_Handler + PROC + 190 00000010 EXPORT UsageFault_Handler [WEA +K] + 191 00000010 E7FE B . + 192 00000012 ENDP + 193 00000012 SVC_Handler + PROC + 194 00000012 EXPORT SVC_Handler [WEA +K] + 195 00000012 E7FE B . + 196 00000014 ENDP + 198 00000014 DebugMon_Handler + PROC + 199 00000014 EXPORT DebugMon_Handler [WEA +K] + 200 00000014 E7FE B . + 201 00000016 ENDP + 202 00000016 PendSV_Handler + PROC + 203 00000016 EXPORT PendSV_Handler [WEA +K] + 204 00000016 E7FE B . + 205 00000018 ENDP + 206 00000018 SysTick_Handler + PROC + 207 00000018 EXPORT SysTick_Handler [WEA +K] + 208 00000018 E7FE B . + 209 0000001A ENDP + 210 0000001A + 211 0000001A Default_Handler + PROC + 212 0000001A + 213 0000001A EXPORT WDT_IRQHandler [WEAK] + 214 0000001A EXPORT RCU_IRQHandler [WEAK] + 215 0000001A EXPORT MFLASH_IRQHandler [WE +AK] + + + +ARM Macro Assembler Page 7 + + + 216 0000001A EXPORT GPIOA_IRQHandler [WEA +K] + 217 0000001A EXPORT GPIOB_IRQHandler [WEA +K] + 218 0000001A EXPORT DMA_CH0_IRQHandler [W +EAK] + 219 0000001A EXPORT DMA_CH1_IRQHandler [W +EAK] + 220 0000001A EXPORT DMA_CH2_IRQHandler [W +EAK] + 221 0000001A EXPORT DMA_CH3_IRQHandler [W +EAK] + 222 0000001A EXPORT DMA_CH4_IRQHandler [W +EAK] + 223 0000001A EXPORT DMA_CH5_IRQHandler [W +EAK] + 224 0000001A EXPORT DMA_CH6_IRQHandler [W +EAK] + 225 0000001A EXPORT DMA_CH7_IRQHandler [W +EAK] + 226 0000001A EXPORT DMA_CH8_IRQHandler [W +EAK] + 227 0000001A EXPORT DMA_CH9_IRQHandler [W +EAK] + 228 0000001A EXPORT DMA_CH10_IRQHandler [ +WEAK] + 229 0000001A EXPORT DMA_CH11_IRQHandler [ +WEAK] + 230 0000001A EXPORT DMA_CH12_IRQHandler [ +WEAK] + 231 0000001A EXPORT DMA_CH13_IRQHandler [ +WEAK] + 232 0000001A EXPORT DMA_CH14_IRQHandler [ +WEAK] + 233 0000001A EXPORT DMA_CH15_IRQHandler [ +WEAK] + 234 0000001A EXPORT TMR0_IRQHandler [WEAK +] + 235 0000001A EXPORT TMR1_IRQHandler [WEAK +] + 236 0000001A EXPORT TMR2_IRQHandler [WEAK +] + 237 0000001A EXPORT TMR3_IRQHandler [WEAK +] + 238 0000001A EXPORT UART0_TD_IRQHandler [ +WEAK] + 239 0000001A EXPORT UART0_RX_IRQHandler [ +WEAK] + 240 0000001A EXPORT UART0_TX_IRQHandler [ +WEAK] + 241 0000001A EXPORT UART0_E_RT_IRQHandler + [WEAK] + 242 0000001A EXPORT UART1_TD_IRQHandler [ +WEAK] + 243 0000001A EXPORT UART1_RX_IRQHandler [ +WEAK] + 244 0000001A EXPORT UART1_TX_IRQHandler [ +WEAK] + 245 0000001A EXPORT UART1_E_RT_IRQHandler + + + +ARM Macro Assembler Page 8 + + + [WEAK] + 246 0000001A EXPORT SPI_RO_RT_IRQHandler +[WEAK] + 247 0000001A EXPORT SPI_RX_IRQHandler [WE +AK] + 248 0000001A EXPORT SPI_TX_IRQHandler [WE +AK] + 249 0000001A EXPORT I2C_IRQHandler [WEAK] + 250 0000001A EXPORT ECAP0_IRQHandler [WEA +K] + 251 0000001A EXPORT ECAP1_IRQHandler [WEA +K] + 252 0000001A EXPORT ECAP2_IRQHandler [WEA +K] + 253 0000001A EXPORT PWM0_IRQHandler [WEAK +] + 254 0000001A EXPORT PWM0_HD_IRQHandler [W +EAK] + 255 0000001A EXPORT PWM0_TZ_IRQHandler [W +EAK] + 256 0000001A EXPORT PWM1_IRQHandler [WEAK +] + 257 0000001A EXPORT PWM1_HD_IRQHandler [W +EAK] + 258 0000001A EXPORT PWM1_TZ_IRQHandler [W +EAK] + 259 0000001A EXPORT PWM2_IRQHandler [WEAK +] + 260 0000001A EXPORT PWM2_HD_IRQHandler [W +EAK] + 261 0000001A EXPORT PWM2_TZ_IRQHandler [W +EAK] + 262 0000001A EXPORT QEP_IRQHandler [WEAK] + 263 0000001A EXPORT ADC_SEQ0_IRQHandler [ +WEAK] + 264 0000001A EXPORT ADC_SEQ1_IRQHandler [ +WEAK] + 265 0000001A EXPORT ADC_DC_IRQHandler [WE +AK] + 266 0000001A EXPORT CAN0_IRQHandler [WEAK +] + 267 0000001A EXPORT CAN1_IRQHandler [WEAK +] + 268 0000001A EXPORT CAN2_IRQHandler [WEAK +] + 269 0000001A EXPORT CAN3_IRQHandler [WEAK +] + 270 0000001A EXPORT CAN4_IRQHandler [WEAK +] + 271 0000001A EXPORT CAN5_IRQHandler [WEAK +] + 272 0000001A EXPORT CAN6_IRQHandler [WEAK +] + 273 0000001A EXPORT CAN7_IRQHandler [WEAK +] + 274 0000001A EXPORT CAN8_IRQHandler [WEAK +] + 275 0000001A EXPORT CAN9_IRQHandler [WEAK +] + + + +ARM Macro Assembler Page 9 + + + 276 0000001A EXPORT CAN10_IRQHandler [WEA +K] + 277 0000001A EXPORT CAN11_IRQHandler [WEA +K] + 278 0000001A EXPORT CAN12_IRQHandler [WEA +K] + 279 0000001A EXPORT CAN13_IRQHandler [WEA +K] + 280 0000001A EXPORT CAN14_IRQHandler [WEA +K] + 281 0000001A EXPORT CAN15_IRQHandler [WEA +K] + 282 0000001A EXPORT FPU_IRQHandler [WEAK] + 283 0000001A + 284 0000001A + 285 0000001A + 286 0000001A WDT_IRQHandler + 287 0000001A RCU_IRQHandler + 288 0000001A MFLASH_IRQHandler + 289 0000001A GPIOA_IRQHandler + 290 0000001A GPIOB_IRQHandler + 291 0000001A DMA_CH0_IRQHandler + 292 0000001A DMA_CH1_IRQHandler + 293 0000001A DMA_CH2_IRQHandler + 294 0000001A DMA_CH3_IRQHandler + 295 0000001A DMA_CH4_IRQHandler + 296 0000001A DMA_CH5_IRQHandler + 297 0000001A DMA_CH6_IRQHandler + 298 0000001A DMA_CH7_IRQHandler + 299 0000001A DMA_CH8_IRQHandler + 300 0000001A DMA_CH9_IRQHandler + 301 0000001A DMA_CH10_IRQHandler + 302 0000001A DMA_CH11_IRQHandler + 303 0000001A DMA_CH12_IRQHandler + 304 0000001A DMA_CH13_IRQHandler + 305 0000001A DMA_CH14_IRQHandler + 306 0000001A DMA_CH15_IRQHandler + 307 0000001A TMR0_IRQHandler + 308 0000001A TMR1_IRQHandler + 309 0000001A TMR2_IRQHandler + 310 0000001A TMR3_IRQHandler + 311 0000001A UART0_TD_IRQHandler + 312 0000001A UART0_RX_IRQHandler + 313 0000001A UART0_TX_IRQHandler + 314 0000001A UART0_E_RT_IRQHandler + 315 0000001A UART1_TD_IRQHandler + 316 0000001A UART1_RX_IRQHandler + 317 0000001A UART1_TX_IRQHandler + 318 0000001A UART1_E_RT_IRQHandler + 319 0000001A SPI_RO_RT_IRQHandler + 320 0000001A SPI_RX_IRQHandler + 321 0000001A SPI_TX_IRQHandler + 322 0000001A I2C_IRQHandler + 323 0000001A ECAP0_IRQHandler + 324 0000001A ECAP1_IRQHandler + 325 0000001A ECAP2_IRQHandler + 326 0000001A PWM0_IRQHandler + 327 0000001A PWM0_HD_IRQHandler + 328 0000001A PWM0_TZ_IRQHandler + + + +ARM Macro Assembler Page 10 + + + 329 0000001A PWM1_IRQHandler + 330 0000001A PWM1_HD_IRQHandler + 331 0000001A PWM1_TZ_IRQHandler + 332 0000001A PWM2_IRQHandler + 333 0000001A PWM2_HD_IRQHandler + 334 0000001A PWM2_TZ_IRQHandler + 335 0000001A QEP_IRQHandler + 336 0000001A ADC_SEQ0_IRQHandler + 337 0000001A ADC_SEQ1_IRQHandler + 338 0000001A ADC_DC_IRQHandler + 339 0000001A CAN0_IRQHandler + 340 0000001A CAN1_IRQHandler + 341 0000001A CAN2_IRQHandler + 342 0000001A CAN3_IRQHandler + 343 0000001A CAN4_IRQHandler + 344 0000001A CAN5_IRQHandler + 345 0000001A CAN6_IRQHandler + 346 0000001A CAN7_IRQHandler + 347 0000001A CAN8_IRQHandler + 348 0000001A CAN9_IRQHandler + 349 0000001A CAN10_IRQHandler + 350 0000001A CAN11_IRQHandler + 351 0000001A CAN12_IRQHandler + 352 0000001A CAN13_IRQHandler + 353 0000001A CAN14_IRQHandler + 354 0000001A CAN15_IRQHandler + 355 0000001A FPU_IRQHandler + 356 0000001A + 357 0000001A + 358 0000001A + 359 0000001A E7FE B . + 360 0000001C + 361 0000001C ENDP + 362 0000001C + 363 0000001C ALIGN + 364 0000001C + 365 0000001C ;******************************************************* + ************************ + 366 0000001C ; User Stack and Heap initialization + 367 0000001C ;******************************************************* + ************************ + 368 0000001C IF :DEF:__MICROLIB + 375 0000001C + 376 0000001C IMPORT __use_two_region_memory + 377 0000001C EXPORT __user_initial_stackheap + 378 0000001C + 379 0000001C __user_initial_stackheap + 380 0000001C + 381 0000001C 4804 LDR R0, = Heap_Mem + 382 0000001E 4905 LDR R1, =(Stack_Mem + Stack_Size) + 383 00000020 4A05 LDR R2, = (Heap_Mem + Heap_Size) + 384 00000022 4B06 LDR R3, = Stack_Mem + 385 00000024 4770 BX LR + 386 00000026 + 387 00000026 00 00 ALIGN + 388 00000028 + 389 00000028 ENDIF + 390 00000028 + 391 00000028 END + + + +ARM Macro Assembler Page 11 + + + 00000000 + 00000000 + 00000000 + 00000400 + 00000200 + 00000000 +Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M4.fp.sp --apcs= +interwork --depend=.\objects\startup_k1921vk035.d -o.\objects\startup_k1921vk03 +5.o -IC:\Users\I\AppData\Local\Arm\Packs\NIIET\K1921VK035_DFP\2.0.6\Device\Incl +ude --predefine="__UVISION_VERSION SETA 538" --predefine="K1921VK035 SETA 1" -- +list=.\listings\startup_k1921vk035.lst platform\Device\NIIET\K1921VK035\Source\ +ARM\startup_K1921VK035.s + + + +ARM Macro Assembler Page 1 Alphabetic symbol ordering +Relocatable symbols + +STACK 00000000 + +Symbol: STACK + Definitions + At line 35 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + None +Comment: STACK unused +Stack_Mem 00000000 + +Symbol: Stack_Mem + Definitions + At line 36 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + At line 382 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 384 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +__initial_sp 00000400 + +Symbol: __initial_sp + Definitions + At line 37 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + At line 61 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s +Comment: __initial_sp used once +3 symbols + + + +ARM Macro Assembler Page 1 Alphabetic symbol ordering +Relocatable symbols + +HEAP 00000000 + +Symbol: HEAP + Definitions + At line 46 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + None +Comment: HEAP unused +Heap_Mem 00000000 + +Symbol: Heap_Mem + Definitions + At line 48 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + At line 381 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 383 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +__heap_base 00000000 + +Symbol: __heap_base + Definitions + At line 47 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + None +Comment: __heap_base unused +__heap_limit 00000200 + +Symbol: __heap_limit + Definitions + At line 49 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + None +Comment: __heap_limit unused +4 symbols + + + +ARM Macro Assembler Page 1 Alphabetic symbol ordering +Relocatable symbols + +RESET 00000000 + +Symbol: RESET + Definitions + At line 56 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + None +Comment: RESET unused +__Vectors 00000000 + +Symbol: __Vectors + Definitions + At line 61 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + At line 57 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 152 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +__Vectors_End 00000158 + +Symbol: __Vectors_End + Definitions + At line 150 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 58 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 152 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +3 symbols + + + +ARM Macro Assembler Page 1 Alphabetic symbol ordering +Relocatable symbols + +.text 00000000 + +Symbol: .text + Definitions + At line 154 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + None +Comment: .text unused +ADC_DC_IRQHandler 0000001A + +Symbol: ADC_DC_IRQHandler + Definitions + At line 338 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 131 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 265 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +ADC_SEQ0_IRQHandler 0000001A + +Symbol: ADC_SEQ0_IRQHandler + Definitions + At line 336 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 129 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 263 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +ADC_SEQ1_IRQHandler 0000001A + +Symbol: ADC_SEQ1_IRQHandler + Definitions + At line 337 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 130 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 264 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +BusFault_Handler 0000000E + +Symbol: BusFault_Handler + Definitions + At line 184 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 66 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 185 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN0_IRQHandler 0000001A + + + + +ARM Macro Assembler Page 2 Alphabetic symbol ordering +Relocatable symbols + +Symbol: CAN0_IRQHandler + Definitions + At line 339 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 132 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 266 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN10_IRQHandler 0000001A + +Symbol: CAN10_IRQHandler + Definitions + At line 349 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 142 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 276 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN11_IRQHandler 0000001A + +Symbol: CAN11_IRQHandler + Definitions + At line 350 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 143 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 277 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN12_IRQHandler 0000001A + +Symbol: CAN12_IRQHandler + Definitions + At line 351 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 144 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 278 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN13_IRQHandler 0000001A + +Symbol: CAN13_IRQHandler + Definitions + At line 352 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 145 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 279 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN14_IRQHandler 0000001A + + + +ARM Macro Assembler Page 3 Alphabetic symbol ordering +Relocatable symbols + + +Symbol: CAN14_IRQHandler + Definitions + At line 353 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 146 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 280 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN15_IRQHandler 0000001A + +Symbol: CAN15_IRQHandler + Definitions + At line 354 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 147 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 281 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN1_IRQHandler 0000001A + +Symbol: CAN1_IRQHandler + Definitions + At line 340 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 133 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 267 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN2_IRQHandler 0000001A + +Symbol: CAN2_IRQHandler + Definitions + At line 341 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 134 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 268 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN3_IRQHandler 0000001A + +Symbol: CAN3_IRQHandler + Definitions + At line 342 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 135 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 269 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + + + + +ARM Macro Assembler Page 4 Alphabetic symbol ordering +Relocatable symbols + +CAN4_IRQHandler 0000001A + +Symbol: CAN4_IRQHandler + Definitions + At line 343 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 136 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 270 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN5_IRQHandler 0000001A + +Symbol: CAN5_IRQHandler + Definitions + At line 344 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 137 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 271 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN6_IRQHandler 0000001A + +Symbol: CAN6_IRQHandler + Definitions + At line 345 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 138 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 272 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN7_IRQHandler 0000001A + +Symbol: CAN7_IRQHandler + Definitions + At line 346 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 139 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 273 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +CAN8_IRQHandler 0000001A + +Symbol: CAN8_IRQHandler + Definitions + At line 347 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 140 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 274 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + + + +ARM Macro Assembler Page 5 Alphabetic symbol ordering +Relocatable symbols + + +CAN9_IRQHandler 0000001A + +Symbol: CAN9_IRQHandler + Definitions + At line 348 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 141 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 275 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH0_IRQHandler 0000001A + +Symbol: DMA_CH0_IRQHandler + Definitions + At line 291 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 84 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 218 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH10_IRQHandler 0000001A + +Symbol: DMA_CH10_IRQHandler + Definitions + At line 301 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 94 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 228 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH11_IRQHandler 0000001A + +Symbol: DMA_CH11_IRQHandler + Definitions + At line 302 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 95 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 229 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH12_IRQHandler 0000001A + +Symbol: DMA_CH12_IRQHandler + Definitions + At line 303 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 96 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 230 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K + + + +ARM Macro Assembler Page 6 Alphabetic symbol ordering +Relocatable symbols + +1921VK035.s + +DMA_CH13_IRQHandler 0000001A + +Symbol: DMA_CH13_IRQHandler + Definitions + At line 304 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 97 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 231 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH14_IRQHandler 0000001A + +Symbol: DMA_CH14_IRQHandler + Definitions + At line 305 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 98 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 232 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH15_IRQHandler 0000001A + +Symbol: DMA_CH15_IRQHandler + Definitions + At line 306 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 99 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 233 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH1_IRQHandler 0000001A + +Symbol: DMA_CH1_IRQHandler + Definitions + At line 292 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 85 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 219 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH2_IRQHandler 0000001A + +Symbol: DMA_CH2_IRQHandler + Definitions + At line 293 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 86 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + + + +ARM Macro Assembler Page 7 Alphabetic symbol ordering +Relocatable symbols + + At line 220 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH3_IRQHandler 0000001A + +Symbol: DMA_CH3_IRQHandler + Definitions + At line 294 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 87 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 221 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH4_IRQHandler 0000001A + +Symbol: DMA_CH4_IRQHandler + Definitions + At line 295 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 88 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 222 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH5_IRQHandler 0000001A + +Symbol: DMA_CH5_IRQHandler + Definitions + At line 296 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 89 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 223 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH6_IRQHandler 0000001A + +Symbol: DMA_CH6_IRQHandler + Definitions + At line 297 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 90 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 224 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH7_IRQHandler 0000001A + +Symbol: DMA_CH7_IRQHandler + Definitions + At line 298 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 91 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 + + + +ARM Macro Assembler Page 8 Alphabetic symbol ordering +Relocatable symbols + +921VK035.s + At line 225 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH8_IRQHandler 0000001A + +Symbol: DMA_CH8_IRQHandler + Definitions + At line 299 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 92 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 226 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DMA_CH9_IRQHandler 0000001A + +Symbol: DMA_CH9_IRQHandler + Definitions + At line 300 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 93 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 227 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +DebugMon_Handler 00000014 + +Symbol: DebugMon_Handler + Definitions + At line 198 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 73 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 199 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +Default_Handler 0000001A + +Symbol: Default_Handler + Definitions + At line 211 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + None +Comment: Default_Handler unused +ECAP0_IRQHandler 0000001A + +Symbol: ECAP0_IRQHandler + Definitions + At line 323 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 116 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 250 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K + + + +ARM Macro Assembler Page 9 Alphabetic symbol ordering +Relocatable symbols + +1921VK035.s + +ECAP1_IRQHandler 0000001A + +Symbol: ECAP1_IRQHandler + Definitions + At line 324 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 117 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 251 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +ECAP2_IRQHandler 0000001A + +Symbol: ECAP2_IRQHandler + Definitions + At line 325 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 118 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 252 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +FPU_IRQHandler 0000001A + +Symbol: FPU_IRQHandler + Definitions + At line 355 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 148 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 282 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +GPIOA_IRQHandler 0000001A + +Symbol: GPIOA_IRQHandler + Definitions + At line 289 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 82 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 216 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +GPIOB_IRQHandler 0000001A + +Symbol: GPIOB_IRQHandler + Definitions + At line 290 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 83 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + + + +ARM Macro Assembler Page 10 Alphabetic symbol ordering +Relocatable symbols + + At line 217 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +HardFault_Handler 0000000A + +Symbol: HardFault_Handler + Definitions + At line 174 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 64 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 175 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +I2C_IRQHandler 0000001A + +Symbol: I2C_IRQHandler + Definitions + At line 322 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 115 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 249 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +MFLASH_IRQHandler 0000001A + +Symbol: MFLASH_IRQHandler + Definitions + At line 288 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 81 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 215 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +MemManage_Handler 0000000C + +Symbol: MemManage_Handler + Definitions + At line 179 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 65 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 180 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +NMI_Handler 00000008 + +Symbol: NMI_Handler + Definitions + At line 169 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 63 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 + + + +ARM Macro Assembler Page 11 Alphabetic symbol ordering +Relocatable symbols + +921VK035.s + At line 170 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM0_HD_IRQHandler 0000001A + +Symbol: PWM0_HD_IRQHandler + Definitions + At line 327 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 120 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 254 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM0_IRQHandler 0000001A + +Symbol: PWM0_IRQHandler + Definitions + At line 326 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 119 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 253 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM0_TZ_IRQHandler 0000001A + +Symbol: PWM0_TZ_IRQHandler + Definitions + At line 328 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 121 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 255 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM1_HD_IRQHandler 0000001A + +Symbol: PWM1_HD_IRQHandler + Definitions + At line 330 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 123 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 257 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM1_IRQHandler 0000001A + +Symbol: PWM1_IRQHandler + Definitions + At line 329 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + + + +ARM Macro Assembler Page 12 Alphabetic symbol ordering +Relocatable symbols + + At line 122 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 256 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM1_TZ_IRQHandler 0000001A + +Symbol: PWM1_TZ_IRQHandler + Definitions + At line 331 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 124 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 258 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM2_HD_IRQHandler 0000001A + +Symbol: PWM2_HD_IRQHandler + Definitions + At line 333 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 126 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 260 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM2_IRQHandler 0000001A + +Symbol: PWM2_IRQHandler + Definitions + At line 332 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 125 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 259 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PWM2_TZ_IRQHandler 0000001A + +Symbol: PWM2_TZ_IRQHandler + Definitions + At line 334 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 127 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 261 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +PendSV_Handler 00000016 + +Symbol: PendSV_Handler + Definitions + At line 202 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + + + +ARM Macro Assembler Page 13 Alphabetic symbol ordering +Relocatable symbols + + Uses + At line 75 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 203 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +QEP_IRQHandler 0000001A + +Symbol: QEP_IRQHandler + Definitions + At line 335 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 128 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 262 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +RCU_IRQHandler 0000001A + +Symbol: RCU_IRQHandler + Definitions + At line 287 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 80 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 214 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +Reset_Handler 00000000 + +Symbol: Reset_Handler + Definitions + At line 157 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 62 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 158 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +SPI_RO_RT_IRQHandler 0000001A + +Symbol: SPI_RO_RT_IRQHandler + Definitions + At line 319 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 112 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 246 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +SPI_RX_IRQHandler 0000001A + +Symbol: SPI_RX_IRQHandler + Definitions + At line 320 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K + + + +ARM Macro Assembler Page 14 Alphabetic symbol ordering +Relocatable symbols + +1921VK035.s + Uses + At line 113 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 247 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +SPI_TX_IRQHandler 0000001A + +Symbol: SPI_TX_IRQHandler + Definitions + At line 321 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 114 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 248 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +SVC_Handler 00000012 + +Symbol: SVC_Handler + Definitions + At line 193 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 72 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 194 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +SysTick_Handler 00000018 + +Symbol: SysTick_Handler + Definitions + At line 206 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 76 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 207 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +TMR0_IRQHandler 0000001A + +Symbol: TMR0_IRQHandler + Definitions + At line 307 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 100 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 234 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +TMR1_IRQHandler 0000001A + +Symbol: TMR1_IRQHandler + Definitions + + + +ARM Macro Assembler Page 15 Alphabetic symbol ordering +Relocatable symbols + + At line 308 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 101 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 235 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +TMR2_IRQHandler 0000001A + +Symbol: TMR2_IRQHandler + Definitions + At line 309 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 102 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 236 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +TMR3_IRQHandler 0000001A + +Symbol: TMR3_IRQHandler + Definitions + At line 310 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 103 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 237 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART0_E_RT_IRQHandler 0000001A + +Symbol: UART0_E_RT_IRQHandler + Definitions + At line 314 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 107 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 241 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART0_RX_IRQHandler 0000001A + +Symbol: UART0_RX_IRQHandler + Definitions + At line 312 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 105 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 239 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART0_TD_IRQHandler 0000001A + +Symbol: UART0_TD_IRQHandler + + + +ARM Macro Assembler Page 16 Alphabetic symbol ordering +Relocatable symbols + + Definitions + At line 311 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 104 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 238 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART0_TX_IRQHandler 0000001A + +Symbol: UART0_TX_IRQHandler + Definitions + At line 313 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 106 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 240 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART1_E_RT_IRQHandler 0000001A + +Symbol: UART1_E_RT_IRQHandler + Definitions + At line 318 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 111 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 245 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART1_RX_IRQHandler 0000001A + +Symbol: UART1_RX_IRQHandler + Definitions + At line 316 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 109 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 243 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART1_TD_IRQHandler 0000001A + +Symbol: UART1_TD_IRQHandler + Definitions + At line 315 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 108 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 242 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UART1_TX_IRQHandler 0000001A + + + + +ARM Macro Assembler Page 17 Alphabetic symbol ordering +Relocatable symbols + +Symbol: UART1_TX_IRQHandler + Definitions + At line 317 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 110 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + At line 244 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +UsageFault_Handler 00000010 + +Symbol: UsageFault_Handler + Definitions + At line 189 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 67 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 190 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +WDT_IRQHandler 0000001A + +Symbol: WDT_IRQHandler + Definitions + At line 286 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 79 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 213 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +__user_initial_stackheap 0000001C + +Symbol: __user_initial_stackheap + Definitions + At line 379 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 377 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s +Comment: __user_initial_stackheap used once +83 symbols + + + +ARM Macro Assembler Page 1 Alphabetic symbol ordering +Absolute symbols + +Heap_Size 00000200 + +Symbol: Heap_Size + Definitions + At line 44 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + At line 48 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 383 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +Stack_Size 00000400 + +Symbol: Stack_Size + Definitions + At line 33 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + Uses + At line 36 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s + At line 382 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + +__Vectors_Size 00000158 + +Symbol: __Vectors_Size + Definitions + At line 152 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 59 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1 +921VK035.s +Comment: __Vectors_Size used once +3 symbols + + + +ARM Macro Assembler Page 1 Alphabetic symbol ordering +External symbols + +SystemInit 00000000 + +Symbol: SystemInit + Definitions + At line 160 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 161 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s +Comment: SystemInit used once +__main 00000000 + +Symbol: __main + Definitions + At line 159 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + At line 163 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s +Comment: __main used once +__use_two_region_memory 00000000 + +Symbol: __use_two_region_memory + Definitions + At line 376 in file platform\Device\NIIET\K1921VK035\Source\ARM\startup_K +1921VK035.s + Uses + None +Comment: __use_two_region_memory unused +3 symbols +436 symbols in table diff --git a/Listings/template.map b/Listings/template.map new file mode 100644 index 0000000..cdc10c8 --- /dev/null +++ b/Listings/template.map @@ -0,0 +1,1316 @@ +Component: ARM Compiler 5.06 update 7 (build 960) Tool: armlink [4d3601] + +============================================================================== + +Section Cross References + + system_k1921vk035.o(i.SystemCoreClockUpdate) refers to system_k1921vk035.o(.data) for .data + system_k1921vk035.o(i.SystemInit) refers to system_k1921vk035.o(i.ClkInit) for ClkInit + system_k1921vk035.o(i.SystemInit) refers to system_k1921vk035.o(i.FPUInit) for FPUInit + startup_k1921vk035.o(STACK) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(HEAP) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(RESET) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(RESET) refers to startup_k1921vk035.o(STACK) for __initial_sp + startup_k1921vk035.o(RESET) refers to startup_k1921vk035.o(.text) for Reset_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.NMI_Handler) for NMI_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.HardFault_Handler) for HardFault_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.MemManage_Handler) for MemManage_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.BusFault_Handler) for BusFault_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.UsageFault_Handler) for UsageFault_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.SVC_Handler) for SVC_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.DebugMon_Handler) for DebugMon_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.PendSV_Handler) for PendSV_Handler + startup_k1921vk035.o(RESET) refers to vk035_it.o(i.SysTick_Handler) for SysTick_Handler + startup_k1921vk035.o(.text) refers (Special) to heapauxi.o(.text) for __use_two_region_memory + startup_k1921vk035.o(.text) refers to system_k1921vk035.o(i.SystemInit) for SystemInit + startup_k1921vk035.o(.text) refers to __main.o(!!!main) for __main + startup_k1921vk035.o(.text) refers to startup_k1921vk035.o(HEAP) for Heap_Mem + startup_k1921vk035.o(.text) refers to startup_k1921vk035.o(STACK) for Stack_Mem + main.o(i.assert_failed) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + main.o(i.assert_failed) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d + main.o(i.assert_failed) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s + main.o(i.assert_failed) refers to _printf_dec.o(.text) for _printf_int_dec + main.o(i.assert_failed) refers to _printf_str.o(.text) for _printf_str + main.o(i.assert_failed) refers to noretval__2printf.o(.text) for __2printf + main.o(i.main) refers to main.o(i.periph_init) for periph_init + main.o(i.periph_init) refers to _printf_pad.o(.text) for _printf_pre_padding + main.o(i.periph_init) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + main.o(i.periph_init) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d + main.o(i.periph_init) refers to _printf_dec.o(.text) for _printf_int_dec + main.o(i.periph_init) refers to system_k1921vk035.o(i.SystemCoreClockUpdate) for SystemCoreClockUpdate + main.o(i.periph_init) refers to rcu.o(i.sysclk_init) for sysclk_init + main.o(i.periph_init) refers to gpio.o(i.gpio_init) for gpio_init + main.o(i.periph_init) refers to retarget_conf.o(i.retarget_init) for retarget_init + main.o(i.periph_init) refers to dflt_clz.o(x$fpl$dfltu) for __aeabi_ui2d + main.o(i.periph_init) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv + main.o(i.periph_init) refers to dfix.o(x$fpl$dfix) for __aeabi_d2iz + main.o(i.periph_init) refers to noretval__2printf.o(.text) for __2printf + main.o(i.periph_init) refers to system_k1921vk035.o(.data) for SystemCoreClock + gpio.o(i.gpio_init) refers to plib035_gpio.o(i.GPIO_DeInit) for GPIO_DeInit + gpio.o(i.gpio_init) refers to plib035_gpio.o(i.GPIO_Init) for GPIO_Init + gpio.o(i.gpio_init) refers to gpio.o(.data) for .data + rcu.o(i.RCU_ClkOutConfig) refers to main.o(i.assert_failed) for assert_failed + rcu.o(i.sysclk_init) refers to plib035_rcu.o(i.RCU_PLL_AutoConfig) for RCU_PLL_AutoConfig + rcu.o(i.sysclk_init) refers to main.o(i.Error_Handler) for Error_Handler + rcu.o(i.sysclk_init) refers to system_k1921vk035.o(i.SystemCoreClockUpdate) for SystemCoreClockUpdate + rcu.o(i.sysclk_init) refers to rcu.o(i.RCU_ClkOutConfig) for RCU_ClkOutConfig + rcu.o(i.sysclk_init) refers to rcu.o(.data) for .data + vk035_it.o(i.SysTick_Handler) refers to system_k1921vk035.o(.data) for uwTick + plib035_adc.o(i.ADC_DC_Config) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_Config) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DC_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_DC_Config) for ADC_DC_Config + plib035_adc.o(i.ADC_DC_Init) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_DeInit) refers to plib035_adc.o(i.RCU_ADCRstCmd) for RCU_ADCRstCmd + plib035_adc.o(i.ADC_SEQ_DCEnableCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_DCEnableCmd) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.ADC_SEQ_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_ReqConfig) for ADC_SEQ_ReqConfig + plib035_adc.o(i.ADC_SEQ_Init) refers to plib035_adc.o(i.ADC_SEQ_DCEnableCmd) for ADC_SEQ_DCEnableCmd + plib035_adc.o(i.ADC_SEQ_ReqConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_adc.o(i.ADC_SEQ_ReqConfig) refers to plib035_adc.o(i.ADC_SEQ_Init) for i.ADC_SEQ_Init + plib035_adc.o(i.RCU_ADCRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_ChannelInit) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_Init) refers to plib035_dma.o(i.DMA_ProtectConfig) for DMA_ProtectConfig + plib035_dma.o(i.DMA_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_ProtectConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_dma.o(i.DMA_ProtectConfig) refers to plib035_dma.o(i.DMA_Init) for i.DMA_Init + plib035_ecap.o(i.ECAP_Capture_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_Capture_Init) refers to plib035_ecap.o(i.ECAP_Init) for i.ECAP_Init + plib035_ecap.o(i.ECAP_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_DeInit) refers to plib035_ecap.o(i.RCU_APBRstCmd) for RCU_APBRstCmd + plib035_ecap.o(i.ECAP_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_PWM_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_ecap.o(i.ECAP_PWM_Init) refers to plib035_ecap.o(i.ECAP_Init) for i.ECAP_Init + plib035_ecap.o(i.RCU_APBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_AltFuncCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_AltFuncCmd) refers to plib035_gpio.o(i.GPIO_DigitalCmd) for i.GPIO_DigitalCmd + plib035_gpio.o(i.GPIO_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_DeInit) refers to plib035_gpio.o(i.RCU_AHBRstCmd) for RCU_AHBRstCmd + plib035_gpio.o(i.GPIO_DigitalCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_DriveModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_DriveModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.GPIO_InModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_InModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_OutCmd) for GPIO_OutCmd + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_AltFuncCmd) for GPIO_AltFuncCmd + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_OutModeConfig) for GPIO_OutModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_InModeConfig) for GPIO_InModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_PullModeConfig) for GPIO_PullModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_DriveModeConfig) for GPIO_DriveModeConfig + plib035_gpio.o(i.GPIO_Init) refers to plib035_gpio.o(i.GPIO_DigitalCmd) for GPIO_DigitalCmd + plib035_gpio.o(i.GPIO_OutCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_OutCmd) refers to plib035_gpio.o(i.GPIO_DigitalCmd) for i.GPIO_DigitalCmd + plib035_gpio.o(i.GPIO_OutModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_OutModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.GPIO_PullModeConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_gpio.o(i.GPIO_PullModeConfig) refers to plib035_gpio.o(i.GPIO_ModeConfig) for GPIO_ModeConfig + plib035_gpio.o(i.RCU_AHBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_i2c.o(i.I2C_FSFreqConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_i2c.o(i.I2C_HSFreqConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_i2c.o(i.I2C_HSFreqConfig) refers to plib035_i2c.o(i.I2C_FSFreqConfig) for i.I2C_FSFreqConfig + plib035_mflash.o(i.MFLASH_EraseFull) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_EraseFull) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_EraseFull) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_ErasePage) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_ErasePage) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_ErasePage) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_ReadData) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_ReadData) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_ReadData) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_WriteData) refers to main.o(i.assert_failed) for assert_failed + plib035_mflash.o(i.MFLASH_WriteData) refers to plib035_mflash.o(i.MFLASH_SetCmd) for MFLASH_SetCmd + plib035_mflash.o(i.MFLASH_WriteData) refers to plib035_mflash.o(i.MFLASH_BusyStatus) for MFLASH_BusyStatus + plib035_mflash.o(i.MFLASH_WriteData) refers to plib035_mflash.o(i.MFLASH_ReadData) for i.MFLASH_ReadData + plib035_pwm.o(i.PWM_AQ_ActionAConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_AQ_ActionBConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_AQ_Init) refers to plib035_pwm.o(i.PWM_AQ_ActionAConfig) for PWM_AQ_ActionAConfig + plib035_pwm.o(i.PWM_AQ_Init) refers to plib035_pwm.o(i.PWM_AQ_ActionBConfig) for PWM_AQ_ActionBConfig + plib035_pwm.o(i.PWM_CMP_CmpADirectLoadCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_CMP_CmpALoadEventConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_CMP_Init) refers to plib035_pwm.o(i.PWM_CMP_CmpALoadEventConfig) for PWM_CMP_CmpALoadEventConfig + plib035_pwm.o(i.PWM_CMP_Init) refers to plib035_pwm.o(i.PWM_CMP_CmpADirectLoadCmd) for PWM_CMP_CmpADirectLoadCmd + plib035_pwm.o(i.PWM_CMP_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_CMP_Init) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_DB_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_DB_Init) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_DeInit) refers to plib035_pwm.o(i.RCU_APBRstCmd) for RCU_APBRstCmd + plib035_pwm.o(i.PWM_ET_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_ET_Init) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_HD_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_HD_Init) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_ClkDivConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_ClkDivConfig) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.PWM_TB_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TB_Init) refers to plib035_pwm.o(i.PWM_TB_ClkDivConfig) for PWM_TB_ClkDivConfig + plib035_pwm.o(i.PWM_TZ_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_pwm.o(i.PWM_TZ_Init) refers to plib035_pwm.o(i.PWM_TB_Init) for i.PWM_TB_Init + plib035_pwm.o(i.RCU_APBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.QEP_CAP_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.QEP_CAP_Init) refers to plib035_qep.o(i.QEP_PC_Init) for i.QEP_PC_Init + plib035_qep.o(i.QEP_CMP_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.QEP_CMP_Init) refers to plib035_qep.o(i.QEP_PC_Init) for i.QEP_PC_Init + plib035_qep.o(i.QEP_DeInit) refers to plib035_qep.o(i.RCU_APBRstCmd) for RCU_APBRstCmd + plib035_qep.o(i.QEP_PC_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_qep.o(i.RCU_APBRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.MFLASH_LatencyConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.RCU_GetADCClkFreq) refers to plib035_rcu.o(i.getPeriphClkFreq) for getPeriphClkFreq + plib035_rcu.o(i.RCU_GetClkOutFreq) refers to plib035_rcu.o(i.getSysPeriphClkFreq) for getSysPeriphClkFreq + plib035_rcu.o(i.RCU_GetPLLDivClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.RCU_GetSPIClkFreq) refers to plib035_rcu.o(i.getPeriphClkFreq) for getPeriphClkFreq + plib035_rcu.o(i.RCU_GetSysClkFreq) refers to plib035_rcu.o(i.getSysClkFreq) for getSysClkFreq + plib035_rcu.o(i.RCU_GetTraceClkFreq) refers to plib035_rcu.o(i.getSysPeriphClkFreq) for getSysPeriphClkFreq + plib035_rcu.o(i.RCU_GetUARTClkFreq) refers to plib035_rcu.o(i.getPeriphClkFreq) for getPeriphClkFreq + plib035_rcu.o(i.RCU_GetWDTClkFreq) refers to plib035_rcu.o(i.getSysPeriphClkFreq) for getSysPeriphClkFreq + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.RCU_PLL_StructInit) for RCU_PLL_StructInit + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.RCU_PLL_Init) for RCU_PLL_Init + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.MFLASH_LatencyConfig) for MFLASH_LatencyConfig + plib035_rcu.o(i.RCU_PLL_AutoConfig) refers to plib035_rcu.o(i.RCU_SysClkChangeCmd) for RCU_SysClkChangeCmd + plib035_rcu.o(i.RCU_PLL_DeInit) refers to plib035_rcu.o(i.RCU_PLL_OutCmd) for RCU_PLL_OutCmd + plib035_rcu.o(i.RCU_PLL_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.RCU_PLL_Init) refers to plib035_rcu.o(i.RCU_PLL_OutCmd) for RCU_PLL_OutCmd + plib035_rcu.o(i.RCU_PLL_OutCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.RCU_SysClkChangeCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSIClkFreq) for RCU_GetOSIClkFreq + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSEClkFreq) for RCU_GetOSEClkFreq + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.getPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLDivClkFreq) for RCU_GetPLLDivClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLDivClkFreq) for RCU_GetPLLDivClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetOSIClkFreq) for RCU_GetOSIClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetOSEClkFreq) for RCU_GetOSEClkFreq + plib035_rcu.o(i.getSysClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLDivClkFreq) for RCU_GetPLLDivClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSEClkFreq) for RCU_GetOSEClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetPLLClkFreq) for RCU_GetPLLClkFreq + plib035_rcu.o(i.getSysPeriphClkFreq) refers to plib035_rcu.o(i.RCU_GetOSIClkFreq) for RCU_GetOSIClkFreq + plib035_spi.o(i.RCU_SPIRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_spi.o(i.SPI_DeInit) refers to plib035_spi.o(i.RCU_SPIRstCmd) for RCU_SPIRstCmd + plib035_spi.o(i.SPI_Init) refers to main.o(i.assert_failed) for assert_failed + plib035_tmr.o(i.TMR_FreqConfig) refers to plib035_tmr.o(i.TMR_SetLoad) for TMR_SetLoad + plib035_tmr.o(i.TMR_PeriodConfig) refers to plib035_tmr.o(i.TMR_SetLoad) for TMR_SetLoad + plib035_tmr.o(i.TMR_SetLoad) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.RCU_UARTRstCmd) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_AutoBaudConfig) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_AutoBaudConfig) refers to plib035_rcu.o(i.RCU_GetUARTClkFreq) for RCU_GetUARTClkFreq + plib035_uart.o(i.UART_DeInit) refers to main.o(i.assert_failed) for assert_failed + plib035_uart.o(i.UART_DeInit) refers to plib035_uart.o(i.RCU_UARTRstCmd) for RCU_UARTRstCmd + plib035_uart.o(i.UART_Init) refers to plib035_uart.o(i.UART_AutoBaudConfig) for UART_AutoBaudConfig + plib035_uart.o(i.UART_Init) refers to main.o(i.assert_failed) for assert_failed + retarget.o(.rev16_text) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(.revsh_text) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(.rrx_text) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i._sys_exit) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i._ttywrch) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i._ttywrch) refers to retarget_conf.o(i.retarget_put_char) for retarget_put_char + retarget.o(i.ferror) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i.fgetc) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i.fgetc) refers to retarget_conf.o(i.retarget_get_char) for retarget_get_char + retarget.o(i.fputc) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(i.fputc) refers to retarget_conf.o(i.retarget_put_char) for retarget_put_char + retarget.o(.data) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget.o(.data) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi + retarget_conf.o(i.retarget_init) refers to system_k1921vk035.o(.data) for SystemCoreClock + __2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file + __2printf.o(.text) refers to retarget.o(.data) for __stdout + noretval__2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file + noretval__2printf.o(.text) refers to retarget.o(.data) for __stdout + __printf.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + _printf_str.o(.text) refers (Special) to _printf_char.o(.text) for _printf_cs_common + _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding + _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding + _printf_dec.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common + __printf_flags.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags.o(.text) refers to __printf_flags.o(.constdata) for .constdata + __printf_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss.o(.text) refers to __printf_flags_ss.o(.constdata) for .constdata + __printf_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_flags_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_wp.o(.text) refers to __printf_flags_wp.o(.constdata) for .constdata + __printf_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit + __printf_flags_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent + __printf_flags_ss_wp.o(.text) refers to __printf_flags_ss_wp.o(.constdata) for .constdata + _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) refers (Weak) to _printf_char.o(.text) for _printf_string + _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) refers (Weak) to _printf_dec.o(.text) for _printf_int_dec + _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) refers (Special) to _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) for _printf_percent_end + __main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry + ddiv.o(x$fpl$drdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + ddiv.o(x$fpl$drdiv) refers to ddiv.o(x$fpl$ddiv) for ddiv_entry + ddiv.o(x$fpl$ddiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + ddiv.o(x$fpl$ddiv) refers to dretinf.o(x$fpl$dretinf) for __fpl_dretinf + ddiv.o(x$fpl$ddiv) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf + dfix.o(x$fpl$dfix) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dfix.o(x$fpl$dfix) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf + dfix.o(x$fpl$dfixr) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dfix.o(x$fpl$dfixr) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf + dflt_clz.o(x$fpl$dfltu) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dflt_clz.o(x$fpl$dflt) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dflt_clz.o(x$fpl$dfltn) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for __rt_entry_li + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for __rt_entry_main + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) for __rt_entry_postli_1 + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000009) for __rt_entry_postsh_1 + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000002) for __rt_entry_presh_1 + __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for __rt_entry_sh + _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding + _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding + _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding + _printf_char.o(.text) refers (Weak) to _printf_str.o(.text) for _printf_str + _printf_char_file.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common + _printf_char_file.o(.text) refers to retarget.o(i.ferror) for ferror + _printf_char_file.o(.text) refers to retarget.o(i.fputc) for fputc + dnaninf.o(x$fpl$dnaninf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + dretinf.o(x$fpl$dretinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp + __rtentry2.o(.ARM.Collect$$rtentry$$00000008) refers to boardinit2.o(.text) for _platform_post_stackheap_init + __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) refers to libinit.o(.ARM.Collect$$libinit$$00000000) for __rt_lib_init + __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) refers to boardinit3.o(.text) for _platform_post_lib_init + __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to main.o(i.main) for main + __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to exit.o(.text) for exit + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000001) for .ARM.Collect$$rtentry$$00000001 + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000008) for .ARM.Collect$$rtentry$$00000008 + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for .ARM.Collect$$rtentry$$0000000A + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) for .ARM.Collect$$rtentry$$0000000B + __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for .ARM.Collect$$rtentry$$0000000D + __rtentry4.o(.ARM.Collect$$rtentry$$00000004) refers to sys_stackheap_outer.o(.text) for __user_setup_stackheap + __rtentry4.o(.ARM.exidx) refers to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for .ARM.Collect$$rtentry$$00000004 + _printf_char_common.o(.text) refers to __printf_wp.o(.text) for __printf + sys_stackheap_outer.o(.text) refers to libspace.o(.text) for __user_perproc_libspace + sys_stackheap_outer.o(.text) refers to startup_k1921vk035.o(.text) for __user_initial_stackheap + exit.o(.text) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for __rt_exit + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002E) for __rt_lib_init_alloca_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002C) for __rt_lib_init_argv_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001B) for __rt_lib_init_atexit_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000021) for __rt_lib_init_clock_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000032) for __rt_lib_init_cpp_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000030) for __rt_lib_init_exceptions_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000001) for __rt_lib_init_fp_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001F) for __rt_lib_init_fp_trap_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000023) for __rt_lib_init_getenv_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000A) for __rt_lib_init_heap_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000011) for __rt_lib_init_lc_collate_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000013) for __rt_lib_init_lc_ctype_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000015) for __rt_lib_init_lc_monetary_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000017) for __rt_lib_init_lc_numeric_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000019) for __rt_lib_init_lc_time_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000004) for __rt_lib_init_preinit_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000E) for __rt_lib_init_rand_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000033) for __rt_lib_init_return + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001D) for __rt_lib_init_signal_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000025) for __rt_lib_init_stdio_1 + libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000C) for __rt_lib_init_user_alloc_1 + libspace.o(.text) refers to libspace.o(.bss) for __libspace_start + rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit + rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls + rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 + rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit + rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls + rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 + rtexit.o(.ARM.exidx) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for .ARM.Collect$$rtexit$$00000000 + libinit2.o(.ARM.Collect$$libinit$$00000001) refers to fpinit.o(x$fpl$fpinit) for _fp_init + libinit2.o(.ARM.Collect$$libinit$$00000010) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000012) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000014) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000016) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000018) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F + libinit2.o(.ARM.Collect$$libinit$$00000026) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer + libinit2.o(.ARM.Collect$$libinit$$00000027) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer + rtexit2.o(.ARM.Collect$$rtexit$$00000003) refers to libshutdown.o(.ARM.Collect$$libshutdown$$00000000) for __rt_lib_shutdown + rtexit2.o(.ARM.Collect$$rtexit$$00000004) refers to retarget.o(i._sys_exit) for _sys_exit + rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000001) for .ARM.Collect$$rtexit$$00000001 + rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for .ARM.Collect$$rtexit$$00000003 + rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for .ARM.Collect$$rtexit$$00000004 + argv_veneer.o(.emb_text) refers to no_argv.o(.text) for __ARM_get_argv + _get_argv_nomalloc.o(.text) refers (Special) to hrguard.o(.text) for __heap_region$guard + _get_argv_nomalloc.o(.text) refers to defsig_rtmem_outer.o(.text) for __rt_SIGRTMEM + _get_argv_nomalloc.o(.text) refers to sys_command.o(.text) for _sys_command_string + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) for __rt_lib_shutdown_cpp_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) for __rt_lib_shutdown_fini_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) for __rt_lib_shutdown_fp_trap_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) for __rt_lib_shutdown_heap_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) for __rt_lib_shutdown_return + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) for __rt_lib_shutdown_signal_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) for __rt_lib_shutdown_stdio_1 + libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) for __rt_lib_shutdown_user_alloc_1 + sys_command.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting + sys_command.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function + defsig_rtmem_outer.o(.text) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner + defsig_rtmem_outer.o(.text) refers to defsig_exit.o(.text) for __sig_exit + defsig_rtmem_formal.o(.text) refers to rt_raise.o(.text) for __rt_raise + rt_raise.o(.text) refers to __raise.o(.text) for __raise + rt_raise.o(.text) refers to retarget.o(i._sys_exit) for _sys_exit + defsig_exit.o(.text) refers to retarget.o(i._sys_exit) for _sys_exit + defsig_rtmem_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + __raise.o(.text) refers to defsig.o(CL$$defsig) for __default_signal_handler + defsig_general.o(.text) refers to retarget.o(i._ttywrch) for _ttywrch + defsig.o(CL$$defsig) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner + defsig_abrt_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_fpe_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_rtred_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_stak_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_pvfn_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_cppl_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_segv_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display + defsig_other.o(.text) refers to defsig_general.o(.text) for __default_signal_display + + +============================================================================== + +Removing Unused input sections from the image. + + Removing system_k1921vk035.o(.rev16_text), (4 bytes). + Removing system_k1921vk035.o(.revsh_text), (4 bytes). + Removing system_k1921vk035.o(.rrx_text), (6 bytes). + Removing main.o(.rev16_text), (4 bytes). + Removing main.o(.revsh_text), (4 bytes). + Removing main.o(.rrx_text), (6 bytes). + Removing gpio.o(.rev16_text), (4 bytes). + Removing gpio.o(.revsh_text), (4 bytes). + Removing gpio.o(.rrx_text), (6 bytes). + Removing rcu.o(.rev16_text), (4 bytes). + Removing rcu.o(.revsh_text), (4 bytes). + Removing rcu.o(.rrx_text), (6 bytes). + Removing vk035_it.o(.rev16_text), (4 bytes). + Removing vk035_it.o(.revsh_text), (4 bytes). + Removing vk035_it.o(.rrx_text), (6 bytes). + Removing plib035_adc.o(.rev16_text), (4 bytes). + Removing plib035_adc.o(.revsh_text), (4 bytes). + Removing plib035_adc.o(.rrx_text), (6 bytes). + Removing plib035_adc.o(i.ADC_DC_Config), (116 bytes). + Removing plib035_adc.o(i.ADC_DC_Init), (316 bytes). + Removing plib035_adc.o(i.ADC_DC_StructInit), (18 bytes). + Removing plib035_adc.o(i.ADC_DeInit), (18 bytes). + Removing plib035_adc.o(i.ADC_SEQ_DCEnableCmd), (96 bytes). + Removing plib035_adc.o(i.ADC_SEQ_Init), (568 bytes). + Removing plib035_adc.o(i.ADC_SEQ_ReqConfig), (104 bytes). + Removing plib035_adc.o(i.ADC_SEQ_StructInit), (52 bytes). + Removing plib035_adc.o(i.RCU_ADCRstCmd), (80 bytes). + Removing plib035_can.o(.rev16_text), (4 bytes). + Removing plib035_can.o(.revsh_text), (4 bytes). + Removing plib035_can.o(.rrx_text), (6 bytes). + Removing plib035_dma.o(.rev16_text), (4 bytes). + Removing plib035_dma.o(.revsh_text), (4 bytes). + Removing plib035_dma.o(.rrx_text), (6 bytes). + Removing plib035_dma.o(i.DMA_ChannelDeInit), (10 bytes). + Removing plib035_dma.o(i.DMA_ChannelInit), (492 bytes). + Removing plib035_dma.o(i.DMA_ChannelStructInit), (40 bytes). + Removing plib035_dma.o(i.DMA_DeInit), (28 bytes). + Removing plib035_dma.o(i.DMA_Init), (292 bytes). + Removing plib035_dma.o(i.DMA_ProtectConfig), (100 bytes). + Removing plib035_dma.o(i.DMA_StructInit), (26 bytes). + Removing plib035_ecap.o(.rev16_text), (4 bytes). + Removing plib035_ecap.o(.revsh_text), (4 bytes). + Removing plib035_ecap.o(.rrx_text), (6 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_Init), (632 bytes). + Removing plib035_ecap.o(i.ECAP_Capture_StructInit), (28 bytes). + Removing plib035_ecap.o(i.ECAP_DeInit), (124 bytes). + Removing plib035_ecap.o(i.ECAP_Init), (276 bytes). + Removing plib035_ecap.o(i.ECAP_PWM_Init), (144 bytes). + Removing plib035_ecap.o(i.ECAP_PWM_StructInit), (18 bytes). + Removing plib035_ecap.o(i.ECAP_StructInit), (12 bytes). + Removing plib035_ecap.o(i.RCU_APBRstCmd), (152 bytes). + Removing plib035_gpio.o(.rev16_text), (4 bytes). + Removing plib035_gpio.o(.revsh_text), (4 bytes). + Removing plib035_gpio.o(.rrx_text), (6 bytes). + Removing plib035_gpio.o(i.GPIO_StructInit), (24 bytes). + Removing plib035_i2c.o(.rev16_text), (4 bytes). + Removing plib035_i2c.o(.revsh_text), (4 bytes). + Removing plib035_i2c.o(.rrx_text), (6 bytes). + Removing plib035_i2c.o(i.I2C_FSFreqConfig), (104 bytes). + Removing plib035_i2c.o(i.I2C_HSFreqConfig), (72 bytes). + Removing plib035_mflash.o(.rev16_text), (4 bytes). + Removing plib035_mflash.o(.revsh_text), (4 bytes). + Removing plib035_mflash.o(.rrx_text), (6 bytes). + Removing plib035_mflash.o(i.MFLASH_BusyStatus), (16 bytes). + Removing plib035_mflash.o(i.MFLASH_EraseFull), (92 bytes). + Removing plib035_mflash.o(i.MFLASH_ErasePage), (132 bytes). + Removing plib035_mflash.o(i.MFLASH_ReadData), (212 bytes). + Removing plib035_mflash.o(i.MFLASH_SetCmd), (20 bytes). + Removing plib035_mflash.o(i.MFLASH_WriteData), (180 bytes). + Removing plib035_pmu.o(.rev16_text), (4 bytes). + Removing plib035_pmu.o(.revsh_text), (4 bytes). + Removing plib035_pmu.o(.rrx_text), (6 bytes). + Removing plib035_pwm.o(.rev16_text), (4 bytes). + Removing plib035_pwm.o(.revsh_text), (4 bytes). + Removing plib035_pwm.o(.rrx_text), (6 bytes). + Removing plib035_pwm.o(i.PWM_AQ_ActionAConfig), (160 bytes). + Removing plib035_pwm.o(i.PWM_AQ_ActionBConfig), (160 bytes). + Removing plib035_pwm.o(i.PWM_AQ_Init), (130 bytes). + Removing plib035_pwm.o(i.PWM_AQ_StructInit), (28 bytes). + Removing plib035_pwm.o(i.PWM_CMP_CmpADirectLoadCmd), (112 bytes). + Removing plib035_pwm.o(i.PWM_CMP_CmpALoadEventConfig), (120 bytes). + Removing plib035_pwm.o(i.PWM_CMP_Init), (168 bytes). + Removing plib035_pwm.o(i.PWM_CMP_StructInit), (16 bytes). + Removing plib035_pwm.o(i.PWM_DB_Init), (292 bytes). + Removing plib035_pwm.o(i.PWM_DB_StructInit), (14 bytes). + Removing plib035_pwm.o(i.PWM_DeInit), (116 bytes). + Removing plib035_pwm.o(i.PWM_ET_Init), (680 bytes). + Removing plib035_pwm.o(i.PWM_ET_StructInit), (30 bytes). + Removing plib035_pwm.o(i.PWM_HD_Init), (336 bytes). + Removing plib035_pwm.o(i.PWM_HD_StructInit), (16 bytes). + Removing plib035_pwm.o(i.PWM_TB_ClkDivConfig), (152 bytes). + Removing plib035_pwm.o(i.PWM_TB_Init), (532 bytes). + Removing plib035_pwm.o(i.PWM_TB_StructInit), (24 bytes). + Removing plib035_pwm.o(i.PWM_TZ_Init), (248 bytes). + Removing plib035_pwm.o(i.PWM_TZ_StructInit), (12 bytes). + Removing plib035_pwm.o(i.RCU_APBRstCmd), (152 bytes). + Removing plib035_qep.o(.rev16_text), (4 bytes). + Removing plib035_qep.o(.revsh_text), (4 bytes). + Removing plib035_qep.o(.rrx_text), (6 bytes). + Removing plib035_qep.o(i.QEP_CAP_Init), (224 bytes). + Removing plib035_qep.o(i.QEP_CAP_StructInit), (18 bytes). + Removing plib035_qep.o(i.QEP_CMP_Init), (180 bytes). + Removing plib035_qep.o(i.QEP_CMP_StructInit), (18 bytes). + Removing plib035_qep.o(i.QEP_DeInit), (26 bytes). + Removing plib035_qep.o(i.QEP_PC_Init), (280 bytes). + Removing plib035_qep.o(i.QEP_PC_StructInit), (24 bytes). + Removing plib035_qep.o(i.RCU_APBRstCmd), (152 bytes). + Removing plib035_rcu.o(.rev16_text), (4 bytes). + Removing plib035_rcu.o(.revsh_text), (4 bytes). + Removing plib035_rcu.o(.rrx_text), (6 bytes). + Removing plib035_rcu.o(i.RCU_GetADCClkFreq), (48 bytes). + Removing plib035_rcu.o(i.RCU_GetClkOutFreq), (44 bytes). + Removing plib035_rcu.o(i.RCU_GetOSEClkFreq), (8 bytes). + Removing plib035_rcu.o(i.RCU_GetOSIClkFreq), (8 bytes). + Removing plib035_rcu.o(i.RCU_GetPLLClkFreq), (56 bytes). + Removing plib035_rcu.o(i.RCU_GetPLLDivClkFreq), (28 bytes). + Removing plib035_rcu.o(i.RCU_GetSPIClkFreq), (48 bytes). + Removing plib035_rcu.o(i.RCU_GetSysClkFreq), (16 bytes). + Removing plib035_rcu.o(i.RCU_GetTraceClkFreq), (44 bytes). + Removing plib035_rcu.o(i.RCU_GetUARTClkFreq), (48 bytes). + Removing plib035_rcu.o(i.RCU_GetWDTClkFreq), (44 bytes). + Removing plib035_rcu.o(i.RCU_PLL_DeInit), (24 bytes). + Removing plib035_rcu.o(i.getPeriphClkFreq), (38 bytes). + Removing plib035_rcu.o(i.getSysClkFreq), (38 bytes). + Removing plib035_rcu.o(i.getSysPeriphClkFreq), (38 bytes). + Removing plib035_spi.o(.rev16_text), (4 bytes). + Removing plib035_spi.o(.revsh_text), (4 bytes). + Removing plib035_spi.o(.rrx_text), (6 bytes). + Removing plib035_spi.o(i.RCU_SPIRstCmd), (80 bytes). + Removing plib035_spi.o(i.SPI_DeInit), (18 bytes). + Removing plib035_spi.o(i.SPI_Init), (228 bytes). + Removing plib035_spi.o(i.SPI_StructInit), (18 bytes). + Removing plib035_tmr.o(.rev16_text), (4 bytes). + Removing plib035_tmr.o(.revsh_text), (4 bytes). + Removing plib035_tmr.o(.rrx_text), (6 bytes). + Removing plib035_tmr.o(i.TMR_FreqConfig), (8 bytes). + Removing plib035_tmr.o(i.TMR_PeriodConfig), (16 bytes). + Removing plib035_tmr.o(i.TMR_SetLoad), (100 bytes). + Removing plib035_uart.o(.rev16_text), (4 bytes). + Removing plib035_uart.o(.revsh_text), (4 bytes). + Removing plib035_uart.o(.rrx_text), (6 bytes). + Removing plib035_uart.o(i.RCU_UARTRstCmd), (84 bytes). + Removing plib035_uart.o(i.UART_AutoBaudConfig), (260 bytes). + Removing plib035_uart.o(i.UART_DeInit), (100 bytes). + Removing plib035_uart.o(i.UART_Init), (316 bytes). + Removing plib035_uart.o(i.UART_StructInit), (24 bytes). + Removing plib035_wdt.o(.rev16_text), (4 bytes). + Removing plib035_wdt.o(.revsh_text), (4 bytes). + Removing plib035_wdt.o(.rrx_text), (6 bytes). + Removing retarget.o(.rev16_text), (4 bytes). + Removing retarget.o(.revsh_text), (4 bytes). + Removing retarget.o(.rrx_text), (6 bytes). + Removing retarget.o(i._ttywrch), (4 bytes). + Removing retarget.o(i.fgetc), (4 bytes). + Removing retarget.o(.data), (4 bytes). + Removing retarget_conf.o(.rev16_text), (4 bytes). + Removing retarget_conf.o(.revsh_text), (4 bytes). + Removing retarget_conf.o(.rrx_text), (6 bytes). + Removing retarget_conf.o(i.retarget_get_char), (20 bytes). + +159 unused section(s) (total 11136 bytes) removed from the image. + +============================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Ov Type Size Object(Section) + + RESET 0x00000000 Section 344 startup_k1921vk035.o(RESET) + ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE + ../clib/angel/dczerorl2.s 0x00000000 Number 0 __dczerorl2.o ABSOLUTE + ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE + ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE + ../clib/angel/scatter.s 0x00000000 Number 0 __scatter.o ABSOLUTE + ../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE + ../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE + ../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE + ../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE + ../clib/misc.s 0x00000000 Number 0 printf_stubs.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_ss.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_ss_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_file.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __2printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 noretval__2printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_pad.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_str.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_s.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_d.o ABSOLUTE + ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE + ../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE + ../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE + ../fplib/ddiv.s 0x00000000 Number 0 ddiv.o ABSOLUTE + ../fplib/dfix.s 0x00000000 Number 0 dfix.o ABSOLUTE + ../fplib/dflt.s 0x00000000 Number 0 dflt_clz.o ABSOLUTE + ../fplib/dnaninf.s 0x00000000 Number 0 dnaninf.o ABSOLUTE + ../fplib/dretinf.s 0x00000000 Number 0 dretinf.o ABSOLUTE + ../fplib/fpinit.s 0x00000000 Number 0 fpinit.o ABSOLUTE + ../fplib/usenofp.s 0x00000000 Number 0 usenofp.o ABSOLUTE + Core\App\gpio.c 0x00000000 Number 0 gpio.o ABSOLUTE + Core\App\main.c 0x00000000 Number 0 main.o ABSOLUTE + Core\App\rcu.c 0x00000000 Number 0 rcu.o ABSOLUTE + Core\App\vk035_it.c 0x00000000 Number 0 vk035_it.o ABSOLUTE + Core\\App\\gpio.c 0x00000000 Number 0 gpio.o ABSOLUTE + Core\\App\\main.c 0x00000000 Number 0 main.o ABSOLUTE + Core\\App\\rcu.c 0x00000000 Number 0 rcu.o ABSOLUTE + Core\\App\\vk035_it.c 0x00000000 Number 0 vk035_it.o ABSOLUTE + dc.s 0x00000000 Number 0 dc.o ABSOLUTE + platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1921VK035.s 0x00000000 Number 0 startup_k1921vk035.o ABSOLUTE + platform\Device\NIIET\K1921VK035\Source\system_K1921VK035.c 0x00000000 Number 0 system_k1921vk035.o ABSOLUTE + platform\\Device\\NIIET\\K1921VK035\\Source\\system_K1921VK035.c 0x00000000 Number 0 system_k1921vk035.o ABSOLUTE + platform\\plib035\\src\\plib035_adc.c 0x00000000 Number 0 plib035_adc.o ABSOLUTE + platform\\plib035\\src\\plib035_can.c 0x00000000 Number 0 plib035_can.o ABSOLUTE + platform\\plib035\\src\\plib035_dma.c 0x00000000 Number 0 plib035_dma.o ABSOLUTE + platform\\plib035\\src\\plib035_ecap.c 0x00000000 Number 0 plib035_ecap.o ABSOLUTE + platform\\plib035\\src\\plib035_gpio.c 0x00000000 Number 0 plib035_gpio.o ABSOLUTE + platform\\plib035\\src\\plib035_i2c.c 0x00000000 Number 0 plib035_i2c.o ABSOLUTE + platform\\plib035\\src\\plib035_mflash.c 0x00000000 Number 0 plib035_mflash.o ABSOLUTE + platform\\plib035\\src\\plib035_pmu.c 0x00000000 Number 0 plib035_pmu.o ABSOLUTE + platform\\plib035\\src\\plib035_pwm.c 0x00000000 Number 0 plib035_pwm.o ABSOLUTE + platform\\plib035\\src\\plib035_qep.c 0x00000000 Number 0 plib035_qep.o ABSOLUTE + platform\\plib035\\src\\plib035_rcu.c 0x00000000 Number 0 plib035_rcu.o ABSOLUTE + platform\\plib035\\src\\plib035_spi.c 0x00000000 Number 0 plib035_spi.o ABSOLUTE + platform\\plib035\\src\\plib035_tmr.c 0x00000000 Number 0 plib035_tmr.o ABSOLUTE + platform\\plib035\\src\\plib035_uart.c 0x00000000 Number 0 plib035_uart.o ABSOLUTE + platform\\plib035\\src\\plib035_wdt.c 0x00000000 Number 0 plib035_wdt.o ABSOLUTE + platform\\retarget\\retarget.c 0x00000000 Number 0 retarget.o ABSOLUTE + platform\\retarget\\retarget_conf.c 0x00000000 Number 0 retarget_conf.o ABSOLUTE + platform\plib035\src\plib035_adc.c 0x00000000 Number 0 plib035_adc.o ABSOLUTE + platform\plib035\src\plib035_can.c 0x00000000 Number 0 plib035_can.o ABSOLUTE + platform\plib035\src\plib035_dma.c 0x00000000 Number 0 plib035_dma.o ABSOLUTE + platform\plib035\src\plib035_ecap.c 0x00000000 Number 0 plib035_ecap.o ABSOLUTE + platform\plib035\src\plib035_gpio.c 0x00000000 Number 0 plib035_gpio.o ABSOLUTE + platform\plib035\src\plib035_i2c.c 0x00000000 Number 0 plib035_i2c.o ABSOLUTE + platform\plib035\src\plib035_mflash.c 0x00000000 Number 0 plib035_mflash.o ABSOLUTE + platform\plib035\src\plib035_pmu.c 0x00000000 Number 0 plib035_pmu.o ABSOLUTE + platform\plib035\src\plib035_pwm.c 0x00000000 Number 0 plib035_pwm.o ABSOLUTE + platform\plib035\src\plib035_qep.c 0x00000000 Number 0 plib035_qep.o ABSOLUTE + platform\plib035\src\plib035_rcu.c 0x00000000 Number 0 plib035_rcu.o ABSOLUTE + platform\plib035\src\plib035_spi.c 0x00000000 Number 0 plib035_spi.o ABSOLUTE + platform\plib035\src\plib035_tmr.c 0x00000000 Number 0 plib035_tmr.o ABSOLUTE + platform\plib035\src\plib035_uart.c 0x00000000 Number 0 plib035_uart.o ABSOLUTE + platform\plib035\src\plib035_wdt.c 0x00000000 Number 0 plib035_wdt.o ABSOLUTE + platform\retarget\retarget.c 0x00000000 Number 0 retarget.o ABSOLUTE + platform\retarget\retarget_conf.c 0x00000000 Number 0 retarget_conf.o ABSOLUTE + !!!main 0x00000158 Section 8 __main.o(!!!main) + !!!scatter 0x00000160 Section 52 __scatter.o(!!!scatter) + !!dczerorl2 0x00000194 Section 90 __dczerorl2.o(!!dczerorl2) + !!handler_zi 0x000001f0 Section 28 __scatter_zi.o(!!handler_zi) + .ARM.Collect$$_printf_percent$$00000000 0x0000020c Section 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) + .ARM.Collect$$_printf_percent$$00000009 0x0000020c Section 6 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) + .ARM.Collect$$_printf_percent$$00000014 0x00000212 Section 6 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) + .ARM.Collect$$_printf_percent$$00000017 0x00000218 Section 4 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) + .ARM.Collect$$libinit$$00000000 0x0000021c Section 2 libinit.o(.ARM.Collect$$libinit$$00000000) + .ARM.Collect$$libinit$$00000001 0x0000021e Section 4 libinit2.o(.ARM.Collect$$libinit$$00000001) + .ARM.Collect$$libinit$$00000004 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000004) + .ARM.Collect$$libinit$$0000000A 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) + .ARM.Collect$$libinit$$0000000C 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) + .ARM.Collect$$libinit$$0000000E 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) + .ARM.Collect$$libinit$$00000011 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000011) + .ARM.Collect$$libinit$$00000013 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000013) + .ARM.Collect$$libinit$$00000015 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000015) + .ARM.Collect$$libinit$$00000017 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000017) + .ARM.Collect$$libinit$$00000019 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000019) + .ARM.Collect$$libinit$$0000001B 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) + .ARM.Collect$$libinit$$0000001D 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) + .ARM.Collect$$libinit$$0000001F 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) + .ARM.Collect$$libinit$$00000021 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000021) + .ARM.Collect$$libinit$$00000023 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000023) + .ARM.Collect$$libinit$$00000025 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000025) + .ARM.Collect$$libinit$$0000002C 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) + .ARM.Collect$$libinit$$0000002E 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) + .ARM.Collect$$libinit$$00000030 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000030) + .ARM.Collect$$libinit$$00000032 0x00000222 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000032) + .ARM.Collect$$libinit$$00000033 0x00000222 Section 2 libinit2.o(.ARM.Collect$$libinit$$00000033) + .ARM.Collect$$libshutdown$$00000000 0x00000224 Section 2 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) + .ARM.Collect$$libshutdown$$00000002 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) + .ARM.Collect$$libshutdown$$00000004 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) + .ARM.Collect$$libshutdown$$00000006 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) + .ARM.Collect$$libshutdown$$00000009 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) + .ARM.Collect$$libshutdown$$0000000C 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) + .ARM.Collect$$libshutdown$$0000000E 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) + .ARM.Collect$$libshutdown$$00000011 0x00000226 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) + .ARM.Collect$$libshutdown$$00000012 0x00000226 Section 2 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) + .ARM.Collect$$rtentry$$00000000 0x00000228 Section 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) + .ARM.Collect$$rtentry$$00000002 0x00000228 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) + .ARM.Collect$$rtentry$$00000004 0x00000228 Section 6 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) + .ARM.Collect$$rtentry$$00000009 0x0000022e Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) + .ARM.Collect$$rtentry$$0000000A 0x0000022e Section 4 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) + .ARM.Collect$$rtentry$$0000000C 0x00000232 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) + .ARM.Collect$$rtentry$$0000000D 0x00000232 Section 8 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) + .ARM.Collect$$rtexit$$00000000 0x0000023a Section 2 rtexit.o(.ARM.Collect$$rtexit$$00000000) + .ARM.Collect$$rtexit$$00000002 0x0000023c Section 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) + .ARM.Collect$$rtexit$$00000003 0x0000023c Section 4 rtexit2.o(.ARM.Collect$$rtexit$$00000003) + .ARM.Collect$$rtexit$$00000004 0x00000240 Section 6 rtexit2.o(.ARM.Collect$$rtexit$$00000004) + .text 0x00000248 Section 64 startup_k1921vk035.o(.text) + $v0 0x00000248 Number 0 startup_k1921vk035.o(.text) + .text 0x00000288 Section 2 use_no_semi.o(.text) + .text 0x0000028c Section 0 noretval__2printf.o(.text) + .text 0x000002a4 Section 0 _printf_pad.o(.text) + .text 0x000002f2 Section 0 _printf_str.o(.text) + .text 0x00000344 Section 0 _printf_dec.o(.text) + .text 0x000003bc Section 0 __printf_wp.o(.text) + .text 0x000004ca Section 0 heapauxi.o(.text) + .text 0x000004d0 Section 0 _printf_intcommon.o(.text) + .text 0x00000582 Section 0 _printf_char.o(.text) + .text 0x000005b0 Section 0 _printf_char_file.o(.text) + .text 0x000005d4 Section 0 _printf_char_common.o(.text) + _printf_input_char 0x000005d5 Thumb Code 10 _printf_char_common.o(.text) + .text 0x00000604 Section 74 sys_stackheap_outer.o(.text) + .text 0x0000064e Section 0 exit.o(.text) + .text 0x00000660 Section 8 libspace.o(.text) + i.BusFault_Handler 0x00000668 Section 0 vk035_it.o(i.BusFault_Handler) + i.ClkInit 0x0000066c Section 0 system_k1921vk035.o(i.ClkInit) + i.DebugMon_Handler 0x000006e0 Section 0 vk035_it.o(i.DebugMon_Handler) + i.Error_Handler 0x000006e2 Section 0 main.o(i.Error_Handler) + i.FPUInit 0x000006e8 Section 0 system_k1921vk035.o(i.FPUInit) + i.GPIO_AltFuncCmd 0x00000700 Section 0 plib035_gpio.o(i.GPIO_AltFuncCmd) + GPIO_AltFuncCmd 0x00000701 Thumb Code 74 plib035_gpio.o(i.GPIO_AltFuncCmd) + i.GPIO_DeInit 0x00000758 Section 0 plib035_gpio.o(i.GPIO_DeInit) + i.GPIO_DigitalCmd 0x000007bc Section 0 plib035_gpio.o(i.GPIO_DigitalCmd) + GPIO_DigitalCmd 0x000007bd Thumb Code 74 plib035_gpio.o(i.GPIO_DigitalCmd) + i.GPIO_DriveModeConfig 0x00000838 Section 0 plib035_gpio.o(i.GPIO_DriveModeConfig) + i.GPIO_InModeConfig 0x000008b4 Section 0 plib035_gpio.o(i.GPIO_InModeConfig) + i.GPIO_Init 0x0000092c Section 0 plib035_gpio.o(i.GPIO_Init) + i.GPIO_ModeConfig 0x0000097c Section 0 plib035_gpio.o(i.GPIO_ModeConfig) + GPIO_ModeConfig 0x0000097d Thumb Code 44 plib035_gpio.o(i.GPIO_ModeConfig) + i.GPIO_OutCmd 0x000009a8 Section 0 plib035_gpio.o(i.GPIO_OutCmd) + GPIO_OutCmd 0x000009a9 Thumb Code 74 plib035_gpio.o(i.GPIO_OutCmd) + i.GPIO_OutModeConfig 0x00000a00 Section 0 plib035_gpio.o(i.GPIO_OutModeConfig) + i.GPIO_PullModeConfig 0x00000a78 Section 0 plib035_gpio.o(i.GPIO_PullModeConfig) + i.HardFault_Handler 0x00000af0 Section 0 vk035_it.o(i.HardFault_Handler) + i.MFLASH_LatencyConfig 0x00000af4 Section 0 plib035_rcu.o(i.MFLASH_LatencyConfig) + MFLASH_LatencyConfig 0x00000af5 Thumb Code 28 plib035_rcu.o(i.MFLASH_LatencyConfig) + i.MemManage_Handler 0x00000b3c Section 0 vk035_it.o(i.MemManage_Handler) + i.NMI_Handler 0x00000b3e Section 0 vk035_it.o(i.NMI_Handler) + i.PendSV_Handler 0x00000b40 Section 0 vk035_it.o(i.PendSV_Handler) + i.RCU_AHBRstCmd 0x00000b44 Section 0 plib035_gpio.o(i.RCU_AHBRstCmd) + RCU_AHBRstCmd 0x00000b45 Thumb Code 64 plib035_gpio.o(i.RCU_AHBRstCmd) + i.RCU_ClkOutConfig 0x00000bb0 Section 0 rcu.o(i.RCU_ClkOutConfig) + RCU_ClkOutConfig 0x00000bb1 Thumb Code 86 rcu.o(i.RCU_ClkOutConfig) + i.RCU_PLL_AutoConfig 0x00000c38 Section 0 plib035_rcu.o(i.RCU_PLL_AutoConfig) + i.RCU_PLL_Init 0x00000d98 Section 0 plib035_rcu.o(i.RCU_PLL_Init) + i.RCU_PLL_OutCmd 0x00000e98 Section 0 plib035_rcu.o(i.RCU_PLL_OutCmd) + RCU_PLL_OutCmd 0x00000e99 Thumb Code 34 plib035_rcu.o(i.RCU_PLL_OutCmd) + i.RCU_PLL_StructInit 0x00000ee8 Section 0 plib035_rcu.o(i.RCU_PLL_StructInit) + i.RCU_SysClkChangeCmd 0x00000ef8 Section 0 plib035_rcu.o(i.RCU_SysClkChangeCmd) + i.SVC_Handler 0x00000fb0 Section 0 vk035_it.o(i.SVC_Handler) + i.SysTick_Handler 0x00000fb4 Section 0 vk035_it.o(i.SysTick_Handler) + i.SystemCoreClockUpdate 0x00000fc4 Section 0 system_k1921vk035.o(i.SystemCoreClockUpdate) + i.SystemInit 0x00001034 Section 0 system_k1921vk035.o(i.SystemInit) + i.UsageFault_Handler 0x00001042 Section 0 vk035_it.o(i.UsageFault_Handler) + i._is_digit 0x00001044 Section 0 __printf_wp.o(i._is_digit) + i._sys_exit 0x00001052 Section 0 retarget.o(i._sys_exit) + i.assert_failed 0x00001054 Section 0 main.o(i.assert_failed) + i.ferror 0x00001084 Section 0 retarget.o(i.ferror) + i.fputc 0x0000108a Section 0 retarget.o(i.fputc) + i.gpio_init 0x00001090 Section 0 gpio.o(i.gpio_init) + i.main 0x00001104 Section 0 main.o(i.main) + i.periph_init 0x0000110c Section 0 main.o(i.periph_init) + i.retarget_init 0x0000117c Section 0 retarget_conf.o(i.retarget_init) + i.retarget_put_char 0x0000123c Section 0 retarget_conf.o(i.retarget_put_char) + i.sysclk_init 0x00001250 Section 0 rcu.o(i.sysclk_init) + x$fpl$ddiv 0x000012b8 Section 688 ddiv.o(x$fpl$ddiv) + $v0 0x000012b8 Number 0 ddiv.o(x$fpl$ddiv) + ddiv_entry 0x000012bf Thumb Code 0 ddiv.o(x$fpl$ddiv) + x$fpl$dfix 0x00001568 Section 94 dfix.o(x$fpl$dfix) + $v0 0x00001568 Number 0 dfix.o(x$fpl$dfix) + x$fpl$dfltu 0x000015c6 Section 38 dflt_clz.o(x$fpl$dfltu) + $v0 0x000015c6 Number 0 dflt_clz.o(x$fpl$dfltu) + x$fpl$dnaninf 0x000015ec Section 156 dnaninf.o(x$fpl$dnaninf) + $v0 0x000015ec Number 0 dnaninf.o(x$fpl$dnaninf) + x$fpl$dretinf 0x00001688 Section 12 dretinf.o(x$fpl$dretinf) + $v0 0x00001688 Number 0 dretinf.o(x$fpl$dretinf) + x$fpl$fpinit 0x00001694 Section 10 fpinit.o(x$fpl$fpinit) + $v0 0x00001694 Number 0 fpinit.o(x$fpl$fpinit) + x$fpl$usenofp 0x0000169e Section 0 usenofp.o(x$fpl$usenofp) + .data 0x20000000 Section 4 system_k1921vk035.o(.data) + .data 0x20000004 Section 4 system_k1921vk035.o(.data) + .data 0x20000008 Section 384 gpio.o(.data) + gpioa_config 0x20000008 Data 192 gpio.o(.data) + gpiob_config 0x200000c8 Data 192 gpio.o(.data) + .data 0x20000188 Section 1 rcu.o(.data) + OS_Type 0x20000188 Data 1 rcu.o(.data) + .data 0x2000018c Section 4 retarget.o(.data) + .bss 0x20000190 Section 96 libspace.o(.bss) + HEAP 0x200001f0 Section 512 startup_k1921vk035.o(HEAP) + Heap_Mem 0x200001f0 Data 512 startup_k1921vk035.o(HEAP) + STACK 0x200003f0 Section 1024 startup_k1921vk035.o(STACK) + Stack_Mem 0x200003f0 Data 1024 startup_k1921vk035.o(STACK) + __initial_sp 0x200007f0 Data 0 startup_k1921vk035.o(STACK) + + Global Symbols + + Symbol Name Value Ov Type Size Object(Section) + + BuildAttributes$$THM_ISAv4$E$P$D$K$B$S$7EM$VFPi3$EXTD16$VFPS$VFMA$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$ROPI$EBA8$UX$STANDARDLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE + __ARM_use_no_argv 0x00000000 Number 0 main.o ABSOLUTE + __Vectors 0x00000000 Data 4 startup_k1921vk035.o(RESET) + _printf_flags 0x00000000 Number 0 printf_stubs.o ABSOLUTE + _printf_return_value 0x00000000 Number 0 printf_stubs.o ABSOLUTE + _printf_sizespec 0x00000000 Number 0 printf_stubs.o ABSOLUTE + _printf_widthprec 0x00000000 Number 0 printf_stubs.o ABSOLUTE + __ARM_exceptions_init - Undefined Weak Reference + __alloca_initialize - Undefined Weak Reference + __arm_fini_ - Undefined Weak Reference + __arm_preinit_ - Undefined Weak Reference + __cpp_initialize__aeabi_ - Undefined Weak Reference + __cxa_finalize - Undefined Weak Reference + __rt_locale - Undefined Weak Reference + __sigvec_lookup - Undefined Weak Reference + _atexit_init - Undefined Weak Reference + _call_atexit_fns - Undefined Weak Reference + _clock_init - Undefined Weak Reference + _fp_trap_init - Undefined Weak Reference + _fp_trap_shutdown - Undefined Weak Reference + _get_lc_collate - Undefined Weak Reference + _get_lc_ctype - Undefined Weak Reference + _get_lc_monetary - Undefined Weak Reference + _get_lc_numeric - Undefined Weak Reference + _get_lc_time - Undefined Weak Reference + _getenv_init - Undefined Weak Reference + _handle_redirection - Undefined Weak Reference + _init_alloc - Undefined Weak Reference + _init_user_alloc - Undefined Weak Reference + _initio - Undefined Weak Reference + _printf_mbtowc - Undefined Weak Reference + _printf_truncate_signed - Undefined Weak Reference + _printf_truncate_unsigned - Undefined Weak Reference + _rand_init - Undefined Weak Reference + _signal_finish - Undefined Weak Reference + _signal_init - Undefined Weak Reference + _terminate_alloc - Undefined Weak Reference + _terminate_user_alloc - Undefined Weak Reference + _terminateio - Undefined Weak Reference + __Vectors_End 0x00000158 Data 0 startup_k1921vk035.o(RESET) + __Vectors_Size 0x00000158 Number 0 startup_k1921vk035.o ABSOLUTE + __main 0x00000159 Thumb Code 8 __main.o(!!!main) + __scatterload 0x00000161 Thumb Code 0 __scatter.o(!!!scatter) + __scatterload_rt2 0x00000161 Thumb Code 44 __scatter.o(!!!scatter) + __scatterload_rt2_thumb_only 0x00000161 Thumb Code 0 __scatter.o(!!!scatter) + __scatterload_null 0x0000016f Thumb Code 0 __scatter.o(!!!scatter) + __decompress 0x00000195 Thumb Code 90 __dczerorl2.o(!!dczerorl2) + __decompress1 0x00000195 Thumb Code 0 __dczerorl2.o(!!dczerorl2) + __scatterload_zeroinit 0x000001f1 Thumb Code 28 __scatter_zi.o(!!handler_zi) + _printf_d 0x0000020d Thumb Code 0 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) + _printf_percent 0x0000020d Thumb Code 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) + _printf_s 0x00000213 Thumb Code 0 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) + _printf_percent_end 0x00000219 Thumb Code 0 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) + __rt_lib_init 0x0000021d Thumb Code 0 libinit.o(.ARM.Collect$$libinit$$00000000) + __rt_lib_init_fp_1 0x0000021f Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000001) + __rt_lib_init_alloca_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) + __rt_lib_init_argv_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) + __rt_lib_init_atexit_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) + __rt_lib_init_clock_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000021) + __rt_lib_init_cpp_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000032) + __rt_lib_init_exceptions_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000030) + __rt_lib_init_fp_trap_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) + __rt_lib_init_getenv_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000023) + __rt_lib_init_heap_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) + __rt_lib_init_lc_collate_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000011) + __rt_lib_init_lc_ctype_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000013) + __rt_lib_init_lc_monetary_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000015) + __rt_lib_init_lc_numeric_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000017) + __rt_lib_init_lc_time_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000019) + __rt_lib_init_preinit_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000004) + __rt_lib_init_rand_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) + __rt_lib_init_return 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000033) + __rt_lib_init_signal_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) + __rt_lib_init_stdio_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000025) + __rt_lib_init_user_alloc_1 0x00000223 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) + __rt_lib_shutdown 0x00000225 Thumb Code 0 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) + __rt_lib_shutdown_cpp_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) + __rt_lib_shutdown_fini_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) + __rt_lib_shutdown_fp_trap_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) + __rt_lib_shutdown_heap_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) + __rt_lib_shutdown_return 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) + __rt_lib_shutdown_signal_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) + __rt_lib_shutdown_stdio_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) + __rt_lib_shutdown_user_alloc_1 0x00000227 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) + __rt_entry 0x00000229 Thumb Code 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) + __rt_entry_presh_1 0x00000229 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) + __rt_entry_sh 0x00000229 Thumb Code 0 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) + __rt_entry_li 0x0000022f Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) + __rt_entry_postsh_1 0x0000022f Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) + __rt_entry_main 0x00000233 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) + __rt_entry_postli_1 0x00000233 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) + __rt_exit 0x0000023b Thumb Code 0 rtexit.o(.ARM.Collect$$rtexit$$00000000) + __rt_exit_ls 0x0000023d Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000003) + __rt_exit_prels_1 0x0000023d Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) + __rt_exit_exit 0x00000241 Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000004) + Reset_Handler 0x00000249 Thumb Code 8 startup_k1921vk035.o(.text) + ADC_DC_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ADC_SEQ0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ADC_SEQ1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN10_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN11_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN12_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN13_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN14_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN15_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN3_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN4_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN5_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN6_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN7_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN8_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + CAN9_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH10_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH11_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH12_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH13_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH14_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH15_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH3_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH4_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH5_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH6_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH7_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH8_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + DMA_CH9_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ECAP0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ECAP1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + ECAP2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + FPU_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + GPIOA_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + GPIOB_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + I2C_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + MFLASH_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM0_HD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM0_TZ_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM1_HD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM1_TZ_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM2_HD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + PWM2_TZ_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + QEP_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + RCU_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + SPI_RO_RT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + SPI_RX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + SPI_TX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR0_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR1_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR2_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + TMR3_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_E_RT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_RX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_TD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART0_TX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_E_RT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_RX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_TD_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + UART1_TX_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + WDT_IRQHandler 0x00000263 Thumb Code 0 startup_k1921vk035.o(.text) + __user_initial_stackheap 0x00000265 Thumb Code 0 startup_k1921vk035.o(.text) + __I$use$semihosting 0x00000289 Thumb Code 0 use_no_semi.o(.text) + __use_no_semihosting_swi 0x00000289 Thumb Code 2 use_no_semi.o(.text) + __2printf 0x0000028d Thumb Code 20 noretval__2printf.o(.text) + _printf_pre_padding 0x000002a5 Thumb Code 44 _printf_pad.o(.text) + _printf_post_padding 0x000002d1 Thumb Code 34 _printf_pad.o(.text) + _printf_str 0x000002f3 Thumb Code 82 _printf_str.o(.text) + _printf_int_dec 0x00000345 Thumb Code 104 _printf_dec.o(.text) + __printf 0x000003bd Thumb Code 270 __printf_wp.o(.text) + __use_two_region_memory 0x000004cb Thumb Code 2 heapauxi.o(.text) + __rt_heap_escrow$2region 0x000004cd Thumb Code 2 heapauxi.o(.text) + __rt_heap_expand$2region 0x000004cf Thumb Code 2 heapauxi.o(.text) + _printf_int_common 0x000004d1 Thumb Code 178 _printf_intcommon.o(.text) + _printf_cs_common 0x00000583 Thumb Code 20 _printf_char.o(.text) + _printf_char 0x00000597 Thumb Code 16 _printf_char.o(.text) + _printf_string 0x000005a7 Thumb Code 8 _printf_char.o(.text) + _printf_char_file 0x000005b1 Thumb Code 32 _printf_char_file.o(.text) + _printf_char_common 0x000005df Thumb Code 32 _printf_char_common.o(.text) + __user_setup_stackheap 0x00000605 Thumb Code 74 sys_stackheap_outer.o(.text) + exit 0x0000064f Thumb Code 18 exit.o(.text) + __user_libspace 0x00000661 Thumb Code 8 libspace.o(.text) + __user_perproc_libspace 0x00000661 Thumb Code 0 libspace.o(.text) + __user_perthread_libspace 0x00000661 Thumb Code 0 libspace.o(.text) + BusFault_Handler 0x00000669 Thumb Code 2 vk035_it.o(i.BusFault_Handler) + ClkInit 0x0000066d Thumb Code 106 system_k1921vk035.o(i.ClkInit) + DebugMon_Handler 0x000006e1 Thumb Code 2 vk035_it.o(i.DebugMon_Handler) + Error_Handler 0x000006e3 Thumb Code 4 main.o(i.Error_Handler) + FPUInit 0x000006e9 Thumb Code 18 system_k1921vk035.o(i.FPUInit) + GPIO_DeInit 0x00000759 Thumb Code 54 plib035_gpio.o(i.GPIO_DeInit) + GPIO_DriveModeConfig 0x00000839 Thumb Code 80 plib035_gpio.o(i.GPIO_DriveModeConfig) + GPIO_InModeConfig 0x000008b5 Thumb Code 76 plib035_gpio.o(i.GPIO_InModeConfig) + GPIO_Init 0x0000092d Thumb Code 80 plib035_gpio.o(i.GPIO_Init) + GPIO_OutModeConfig 0x00000a01 Thumb Code 76 plib035_gpio.o(i.GPIO_OutModeConfig) + GPIO_PullModeConfig 0x00000a79 Thumb Code 76 plib035_gpio.o(i.GPIO_PullModeConfig) + HardFault_Handler 0x00000af1 Thumb Code 2 vk035_it.o(i.HardFault_Handler) + MemManage_Handler 0x00000b3d Thumb Code 2 vk035_it.o(i.MemManage_Handler) + NMI_Handler 0x00000b3f Thumb Code 2 vk035_it.o(i.NMI_Handler) + PendSV_Handler 0x00000b41 Thumb Code 2 vk035_it.o(i.PendSV_Handler) + RCU_PLL_AutoConfig 0x00000c39 Thumb Code 304 plib035_rcu.o(i.RCU_PLL_AutoConfig) + RCU_PLL_Init 0x00000d99 Thumb Code 212 plib035_rcu.o(i.RCU_PLL_Init) + RCU_PLL_StructInit 0x00000ee9 Thumb Code 16 plib035_rcu.o(i.RCU_PLL_StructInit) + RCU_SysClkChangeCmd 0x00000ef9 Thumb Code 104 plib035_rcu.o(i.RCU_SysClkChangeCmd) + SVC_Handler 0x00000fb1 Thumb Code 2 vk035_it.o(i.SVC_Handler) + SysTick_Handler 0x00000fb5 Thumb Code 10 vk035_it.o(i.SysTick_Handler) + SystemCoreClockUpdate 0x00000fc5 Thumb Code 96 system_k1921vk035.o(i.SystemCoreClockUpdate) + SystemInit 0x00001035 Thumb Code 14 system_k1921vk035.o(i.SystemInit) + UsageFault_Handler 0x00001043 Thumb Code 2 vk035_it.o(i.UsageFault_Handler) + _is_digit 0x00001045 Thumb Code 14 __printf_wp.o(i._is_digit) + _sys_exit 0x00001053 Thumb Code 2 retarget.o(i._sys_exit) + assert_failed 0x00001055 Thumb Code 12 main.o(i.assert_failed) + ferror 0x00001085 Thumb Code 6 retarget.o(i.ferror) + fputc 0x0000108b Thumb Code 4 retarget.o(i.fputc) + gpio_init 0x00001091 Thumb Code 100 gpio.o(i.gpio_init) + main 0x00001105 Thumb Code 6 main.o(i.main) + periph_init 0x0000110d Thumb Code 54 main.o(i.periph_init) + retarget_init 0x0000117d Thumb Code 166 retarget_conf.o(i.retarget_init) + retarget_put_char 0x0000123d Thumb Code 14 retarget_conf.o(i.retarget_put_char) + sysclk_init 0x00001251 Thumb Code 80 rcu.o(i.sysclk_init) + __aeabi_ddiv 0x000012b9 Thumb Code 0 ddiv.o(x$fpl$ddiv) + _ddiv 0x000012b9 Thumb Code 552 ddiv.o(x$fpl$ddiv) + __aeabi_d2iz 0x00001569 Thumb Code 0 dfix.o(x$fpl$dfix) + _dfix 0x00001569 Thumb Code 94 dfix.o(x$fpl$dfix) + __aeabi_ui2d 0x000015c7 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) + _dfltu 0x000015c7 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) + __fpl_dnaninf 0x000015ed Thumb Code 156 dnaninf.o(x$fpl$dnaninf) + __fpl_dretinf 0x00001689 Thumb Code 12 dretinf.o(x$fpl$dretinf) + _fp_init 0x00001695 Thumb Code 10 fpinit.o(x$fpl$fpinit) + __fplib_config_fpu_vfp 0x0000169d Thumb Code 0 fpinit.o(x$fpl$fpinit) + __fplib_config_pureend_doubles 0x0000169d Thumb Code 0 fpinit.o(x$fpl$fpinit) + __I$use$fp 0x0000169e Number 0 usenofp.o(x$fpl$usenofp) + Region$$Table$$Base 0x000016a0 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x000016c0 Number 0 anon$$obj.o(Region$$Table) + SystemCoreClock 0x20000000 Data 4 system_k1921vk035.o(.data) + uwTick 0x20000004 Data 4 system_k1921vk035.o(.data) + __stdout 0x2000018c Data 4 retarget.o(.data) + __libspace_start 0x20000190 Data 96 libspace.o(.bss) + __temporary_stack_top$libspace 0x200001f0 Data 0 libspace.o(.bss) + + + +============================================================================== + +Memory Map of the image + + Image Entry point : 0x00000249 + + Load Region LR_1 (Base: 0x00000000, Size: 0x00001850, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x000016e4]) + + Execution Region ER_RO (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x000016c0, Max: 0xffffffff, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x00000000 0x00000000 0x00000158 Data RO 77 RESET startup_k1921vk035.o + 0x00000158 0x00000158 0x00000008 Code RO 1417 * !!!main c_w.l(__main.o) + 0x00000160 0x00000160 0x00000034 Code RO 1602 !!!scatter c_w.l(__scatter.o) + 0x00000194 0x00000194 0x0000005a Code RO 1600 !!dczerorl2 c_w.l(__dczerorl2.o) + 0x000001ee 0x000001ee 0x00000002 PAD + 0x000001f0 0x000001f0 0x0000001c Code RO 1604 !!handler_zi c_w.l(__scatter_zi.o) + 0x0000020c 0x0000020c 0x00000000 Code RO 1414 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) + 0x0000020c 0x0000020c 0x00000006 Code RO 1413 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) + 0x00000212 0x00000212 0x00000006 Code RO 1412 .ARM.Collect$$_printf_percent$$00000014 c_w.l(_printf_s.o) + 0x00000218 0x00000218 0x00000004 Code RO 1440 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) + 0x0000021c 0x0000021c 0x00000002 Code RO 1474 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x0000021e 0x0000021e 0x00000004 Code RO 1480 .ARM.Collect$$libinit$$00000001 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1483 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1486 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1488 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1490 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1493 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1495 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1497 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1499 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1501 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1503 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1505 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1507 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1509 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1511 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1513 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1517 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1519 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1521 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000000 Code RO 1523 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x00000222 0x00000222 0x00000002 Code RO 1524 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) + 0x00000224 0x00000224 0x00000002 Code RO 1542 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x00000226 0x00000226 0x00000000 Code RO 1552 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 1554 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 1556 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 1559 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 1562 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 1564 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000000 Code RO 1567 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) + 0x00000226 0x00000226 0x00000002 Code RO 1568 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) + 0x00000228 0x00000228 0x00000000 Code RO 1433 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x00000228 0x00000228 0x00000000 Code RO 1447 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x00000228 0x00000228 0x00000006 Code RO 1459 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x0000022e 0x0000022e 0x00000000 Code RO 1449 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x0000022e 0x0000022e 0x00000004 Code RO 1450 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x00000232 0x00000232 0x00000000 Code RO 1452 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x00000232 0x00000232 0x00000008 Code RO 1453 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x0000023a 0x0000023a 0x00000002 Code RO 1478 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x0000023c 0x0000023c 0x00000000 Code RO 1526 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x0000023c 0x0000023c 0x00000004 Code RO 1527 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x00000240 0x00000240 0x00000006 Code RO 1528 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x00000246 0x00000246 0x00000002 PAD + 0x00000248 0x00000248 0x00000040 Code RO 78 * .text startup_k1921vk035.o + 0x00000288 0x00000288 0x00000002 Code RO 1378 .text c_w.l(use_no_semi.o) + 0x0000028a 0x0000028a 0x00000002 PAD + 0x0000028c 0x0000028c 0x00000018 Code RO 1382 .text c_w.l(noretval__2printf.o) + 0x000002a4 0x000002a4 0x0000004e Code RO 1386 .text c_w.l(_printf_pad.o) + 0x000002f2 0x000002f2 0x00000052 Code RO 1388 .text c_w.l(_printf_str.o) + 0x00000344 0x00000344 0x00000078 Code RO 1390 .text c_w.l(_printf_dec.o) + 0x000003bc 0x000003bc 0x0000010e Code RO 1400 .text c_w.l(__printf_wp.o) + 0x000004ca 0x000004ca 0x00000006 Code RO 1415 .text c_w.l(heapauxi.o) + 0x000004d0 0x000004d0 0x000000b2 Code RO 1434 .text c_w.l(_printf_intcommon.o) + 0x00000582 0x00000582 0x0000002c Code RO 1436 .text c_w.l(_printf_char.o) + 0x000005ae 0x000005ae 0x00000002 PAD + 0x000005b0 0x000005b0 0x00000024 Code RO 1438 .text c_w.l(_printf_char_file.o) + 0x000005d4 0x000005d4 0x00000030 Code RO 1461 .text c_w.l(_printf_char_common.o) + 0x00000604 0x00000604 0x0000004a Code RO 1463 .text c_w.l(sys_stackheap_outer.o) + 0x0000064e 0x0000064e 0x00000012 Code RO 1467 .text c_w.l(exit.o) + 0x00000660 0x00000660 0x00000008 Code RO 1475 .text c_w.l(libspace.o) + 0x00000668 0x00000668 0x00000002 Code RO 274 i.BusFault_Handler vk035_it.o + 0x0000066a 0x0000066a 0x00000002 PAD + 0x0000066c 0x0000066c 0x00000074 Code RO 4 i.ClkInit system_k1921vk035.o + 0x000006e0 0x000006e0 0x00000002 Code RO 275 i.DebugMon_Handler vk035_it.o + 0x000006e2 0x000006e2 0x00000004 Code RO 85 i.Error_Handler main.o + 0x000006e6 0x000006e6 0x00000002 PAD + 0x000006e8 0x000006e8 0x00000018 Code RO 5 i.FPUInit system_k1921vk035.o + 0x00000700 0x00000700 0x00000058 Code RO 571 i.GPIO_AltFuncCmd plib035_gpio.o + 0x00000758 0x00000758 0x00000064 Code RO 572 i.GPIO_DeInit plib035_gpio.o + 0x000007bc 0x000007bc 0x0000007c Code RO 573 i.GPIO_DigitalCmd plib035_gpio.o + 0x00000838 0x00000838 0x0000007c Code RO 574 i.GPIO_DriveModeConfig plib035_gpio.o + 0x000008b4 0x000008b4 0x00000078 Code RO 575 i.GPIO_InModeConfig plib035_gpio.o + 0x0000092c 0x0000092c 0x00000050 Code RO 576 i.GPIO_Init plib035_gpio.o + 0x0000097c 0x0000097c 0x0000002c Code RO 577 i.GPIO_ModeConfig plib035_gpio.o + 0x000009a8 0x000009a8 0x00000058 Code RO 578 i.GPIO_OutCmd plib035_gpio.o + 0x00000a00 0x00000a00 0x00000078 Code RO 579 i.GPIO_OutModeConfig plib035_gpio.o + 0x00000a78 0x00000a78 0x00000078 Code RO 580 i.GPIO_PullModeConfig plib035_gpio.o + 0x00000af0 0x00000af0 0x00000002 Code RO 276 i.HardFault_Handler vk035_it.o + 0x00000af2 0x00000af2 0x00000002 PAD + 0x00000af4 0x00000af4 0x00000048 Code RO 977 i.MFLASH_LatencyConfig plib035_rcu.o + 0x00000b3c 0x00000b3c 0x00000002 Code RO 277 i.MemManage_Handler vk035_it.o + 0x00000b3e 0x00000b3e 0x00000002 Code RO 278 i.NMI_Handler vk035_it.o + 0x00000b40 0x00000b40 0x00000002 Code RO 279 i.PendSV_Handler vk035_it.o + 0x00000b42 0x00000b42 0x00000002 PAD + 0x00000b44 0x00000b44 0x0000006c Code RO 582 i.RCU_AHBRstCmd plib035_gpio.o + 0x00000bb0 0x00000bb0 0x00000088 Code RO 236 i.RCU_ClkOutConfig rcu.o + 0x00000c38 0x00000c38 0x00000160 Code RO 989 i.RCU_PLL_AutoConfig plib035_rcu.o + 0x00000d98 0x00000d98 0x00000100 Code RO 991 i.RCU_PLL_Init plib035_rcu.o + 0x00000e98 0x00000e98 0x00000050 Code RO 992 i.RCU_PLL_OutCmd plib035_rcu.o + 0x00000ee8 0x00000ee8 0x00000010 Code RO 993 i.RCU_PLL_StructInit plib035_rcu.o + 0x00000ef8 0x00000ef8 0x000000b8 Code RO 994 i.RCU_SysClkChangeCmd plib035_rcu.o + 0x00000fb0 0x00000fb0 0x00000002 Code RO 280 i.SVC_Handler vk035_it.o + 0x00000fb2 0x00000fb2 0x00000002 PAD + 0x00000fb4 0x00000fb4 0x00000010 Code RO 281 i.SysTick_Handler vk035_it.o + 0x00000fc4 0x00000fc4 0x00000070 Code RO 6 i.SystemCoreClockUpdate system_k1921vk035.o + 0x00001034 0x00001034 0x0000000e Code RO 7 i.SystemInit system_k1921vk035.o + 0x00001042 0x00001042 0x00000002 Code RO 282 i.UsageFault_Handler vk035_it.o + 0x00001044 0x00001044 0x0000000e Code RO 1402 i._is_digit c_w.l(__printf_wp.o) + 0x00001052 0x00001052 0x00000002 Code RO 1278 i._sys_exit retarget.o + 0x00001054 0x00001054 0x00000030 Code RO 86 i.assert_failed main.o + 0x00001084 0x00001084 0x00000006 Code RO 1280 i.ferror retarget.o + 0x0000108a 0x0000108a 0x00000004 Code RO 1282 i.fputc retarget.o + 0x0000108e 0x0000108e 0x00000002 PAD + 0x00001090 0x00001090 0x00000074 Code RO 204 i.gpio_init gpio.o + 0x00001104 0x00001104 0x00000006 Code RO 87 i.main main.o + 0x0000110a 0x0000110a 0x00000002 PAD + 0x0000110c 0x0000110c 0x00000070 Code RO 88 i.periph_init main.o + 0x0000117c 0x0000117c 0x000000c0 Code RO 1344 i.retarget_init retarget_conf.o + 0x0000123c 0x0000123c 0x00000014 Code RO 1345 i.retarget_put_char retarget_conf.o + 0x00001250 0x00001250 0x00000068 Code RO 237 i.sysclk_init rcu.o + 0x000012b8 0x000012b8 0x000002b0 Code RO 1420 x$fpl$ddiv fz_wm.l(ddiv.o) + 0x00001568 0x00001568 0x0000005e Code RO 1423 x$fpl$dfix fz_wm.l(dfix.o) + 0x000015c6 0x000015c6 0x00000026 Code RO 1427 x$fpl$dfltu fz_wm.l(dflt_clz.o) + 0x000015ec 0x000015ec 0x0000009c Code RO 1441 x$fpl$dnaninf fz_wm.l(dnaninf.o) + 0x00001688 0x00001688 0x0000000c Code RO 1443 x$fpl$dretinf fz_wm.l(dretinf.o) + 0x00001694 0x00001694 0x0000000a Code RO 1534 x$fpl$fpinit fz_wm.l(fpinit.o) + 0x0000169e 0x0000169e 0x00000000 Code RO 1445 x$fpl$usenofp fz_wm.l(usenofp.o) + 0x0000169e 0x0000169e 0x00000002 PAD + 0x000016a0 0x000016a0 0x00000020 Data RO 1598 Region$$Table anon$$obj.o + + + Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x000016c0, Size: 0x00000190, Max: 0xffffffff, ABSOLUTE, COMPRESSED[0x00000024]) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x20000000 COMPRESSED 0x00000004 Data RW 8 .data system_k1921vk035.o + 0x20000004 COMPRESSED 0x00000004 Data RW 9 .data system_k1921vk035.o + 0x20000008 COMPRESSED 0x00000180 Data RW 205 .data gpio.o + 0x20000188 COMPRESSED 0x00000001 Data RW 238 .data rcu.o + 0x20000189 COMPRESSED 0x00000003 PAD + 0x2000018c COMPRESSED 0x00000004 Data RW 1283 .data retarget.o + + + Execution Region ER_ZI (Exec base: 0x20000190, Load base: 0x000016e4, Size: 0x00000660, Max: 0xffffffff, ABSOLUTE) + + Exec Addr Load Addr Size Type Attr Idx E Section Name Object + + 0x20000190 - 0x00000060 Zero RW 1476 .bss c_w.l(libspace.o) + 0x200001f0 - 0x00000200 Zero RW 76 HEAP startup_k1921vk035.o + 0x200003f0 - 0x00000400 Zero RW 75 STACK startup_k1921vk035.o + + +============================================================================== + +Image component sizes + + + Code (inc. data) RO Data RW Data ZI Data Debug Object Name + + 116 16 0 384 0 10416 gpio.o + 170 94 0 0 0 8505 main.o + 1116 344 0 0 0 12904 plib035_gpio.o + 960 262 0 0 0 15871 plib035_rcu.o + 240 74 0 1 0 40297 rcu.o + 12 0 0 4 0 3303 retarget.o + 212 32 0 0 0 1204 retarget_conf.o + 64 26 344 0 1536 892 startup_k1921vk035.o + 266 32 0 8 0 197926 system_k1921vk035.o + 32 6 0 0 0 3974 vk035_it.o + + ---------------------------------------------------------------------- + 3202 886 376 400 1536 295292 Object Totals + 0 0 32 0 0 0 (incl. Generated) + 14 0 0 3 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name + + 90 0 0 0 0 0 __dczerorl2.o + 8 0 0 0 0 68 __main.o + 284 0 0 0 0 156 __printf_wp.o + 0 0 0 0 0 0 __rtentry.o + 12 0 0 0 0 0 __rtentry2.o + 6 0 0 0 0 0 __rtentry4.o + 52 8 0 0 0 0 __scatter.o + 28 0 0 0 0 0 __scatter_zi.o + 44 0 0 0 0 108 _printf_char.o + 48 6 0 0 0 96 _printf_char_common.o + 36 4 0 0 0 80 _printf_char_file.o + 6 0 0 0 0 0 _printf_d.o + 120 16 0 0 0 92 _printf_dec.o + 178 0 0 0 0 88 _printf_intcommon.o + 78 0 0 0 0 108 _printf_pad.o + 0 0 0 0 0 0 _printf_percent.o + 4 0 0 0 0 0 _printf_percent_end.o + 6 0 0 0 0 0 _printf_s.o + 82 0 0 0 0 80 _printf_str.o + 18 0 0 0 0 80 exit.o + 6 0 0 0 0 152 heapauxi.o + 2 0 0 0 0 0 libinit.o + 6 0 0 0 0 0 libinit2.o + 2 0 0 0 0 0 libshutdown.o + 2 0 0 0 0 0 libshutdown2.o + 8 4 0 0 96 68 libspace.o + 24 4 0 0 0 84 noretval__2printf.o + 2 0 0 0 0 0 rtexit.o + 10 0 0 0 0 0 rtexit2.o + 74 0 0 0 0 80 sys_stackheap_outer.o + 2 0 0 0 0 68 use_no_semi.o + 688 140 0 0 0 256 ddiv.o + 94 4 0 0 0 140 dfix.o + 38 0 0 0 0 116 dflt_clz.o + 156 4 0 0 0 140 dnaninf.o + 12 0 0 0 0 116 dretinf.o + 10 0 0 0 0 116 fpinit.o + 0 0 0 0 0 0 usenofp.o + + ---------------------------------------------------------------------- + 2246 190 0 0 96 2292 Library Totals + 10 0 0 0 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Name + + 1238 42 0 0 96 1408 c_w.l + 998 148 0 0 0 884 fz_wm.l + + ---------------------------------------------------------------------- + 2246 190 0 0 96 2292 Library Totals + + ---------------------------------------------------------------------- + +============================================================================== + + + Code (inc. data) RO Data RW Data ZI Data Debug + + 5448 1076 376 400 1632 292960 Grand Totals + 5448 1076 376 36 1632 292960 ELF Image Totals (compressed) + 5448 1076 376 36 0 0 ROM Totals + +============================================================================== + + Total RO Size (Code + RO Data) 5824 ( 5.69kB) + Total RW Size (RW Data + ZI Data) 2032 ( 1.98kB) + Total ROM Size (Code + RO Data + RW Data) 5860 ( 5.72kB) + +============================================================================== + diff --git a/Template.uvoptx b/Template.uvoptx new file mode 100644 index 0000000..33b54d6 --- /dev/null +++ b/Template.uvoptx @@ -0,0 +1,750 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp; *.cc; *.cxx + 0 + + + + 0 + 0 + + + + template + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 0 + + 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 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + JL2CM3 + -U-O14 -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0K1921VK035.FLM -FS00 -FL010000 -FP0($$Device:K1921VK035$Flash\K1921VK035.FLM) + + + 0 + DLGUARM + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0K1921VK035 -FS00 -FL010000 -FP0($$Device:K1921VK035$Flash\K1921VK035.FLM)) + + + + + + 0 + 1 + uwTick,0x0A + + + 1 + 1 + start,0x0A + + + 2 + 1 + uwTick,0x0A + + + 3 + 1 + (uwTick-start) < ms + + + 4 + 1 + ms,0x0A + + + 5 + 1 + local_time() + + + 6 + 1 + GPIOA + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + Config + 1 + 0 + 0 + 0 + + 1 + 1 + 5 + 0 + 0 + 0 + .\Core\Config\mylibs_config.h + mylibs_config.h + 0 + 0 + + + 1 + 2 + 5 + 0 + 0 + 0 + .\Core\Config\mylibs_include.h + mylibs_include.h + 0 + 0 + + + 1 + 3 + 5 + 0 + 0 + 0 + .\Core\Config\SEGGER_RTT_Conf.h + SEGGER_RTT_Conf.h + 0 + 0 + + + 1 + 4 + 5 + 0 + 0 + 0 + .\Core\App\gpio.h + gpio.h + 0 + 0 + + + 1 + 5 + 5 + 0 + 0 + 0 + .\Core\App\rcu.h + rcu.h + 0 + 0 + + + + + src + 1 + 0 + 0 + 0 + + 2 + 6 + 1 + 0 + 0 + 0 + .\Core\App\main.c + main.c + 0 + 0 + + + 2 + 7 + 1 + 0 + 0 + 0 + .\Core\App\gpio.c + gpio.c + 0 + 0 + + + 2 + 8 + 1 + 0 + 0 + 0 + .\Core\App\rcu.c + rcu.c + 0 + 0 + + + 2 + 9 + 1 + 0 + 0 + 0 + .\Core\App\vk035_it.c + vk035_it.c + 0 + 0 + + + + + MyLibs + 0 + 0 + 0 + 0 + + 3 + 10 + 5 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Inc\bench_time.h + bench_time.h + 0 + 0 + + + 3 + 11 + 5 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Inc\bit_access.h + bit_access.h + 0 + 0 + + + 3 + 12 + 5 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Inc\gen_optimizer.h + gen_optimizer.h + 0 + 0 + + + 3 + 13 + 5 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Inc\mylibs_defs.h + mylibs_defs.h + 0 + 0 + + + 3 + 14 + 5 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Inc\trace.h + trace.h + 0 + 0 + + + 3 + 15 + 5 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Inc\trackers.h + trackers.h + 0 + 0 + + + 3 + 16 + 1 + 0 + 0 + 0 + .\Core\ExtendedLibs\RTT\SEGGER_RTT.c + SEGGER_RTT.c + 0 + 0 + + + 3 + 17 + 1 + 0 + 0 + 0 + .\Core\ExtendedLibs\RTT\SEGGER_RTT_printf.c + SEGGER_RTT_printf.c + 0 + 0 + + + 3 + 18 + 5 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Inc\filters.h + filters.h + 0 + 0 + + + 3 + 19 + 1 + 0 + 0 + 0 + .\Core\ExtendedLibs\MyLibs\Src\filters.c + filters.c + 0 + 0 + + + + + startup + 0 + 0 + 0 + 0 + + 4 + 20 + 1 + 0 + 0 + 0 + .\platform\Device\NIIET\K1921VK035\Source\system_K1921VK035.c + system_K1921VK035.c + 0 + 0 + + + 4 + 21 + 2 + 0 + 0 + 0 + .\platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1921VK035.s + startup_K1921VK035.s + 0 + 0 + + + + + plib035 + 0 + 0 + 0 + 0 + + 5 + 22 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_adc.c + plib035_adc.c + 0 + 0 + + + 5 + 23 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_can.c + plib035_can.c + 0 + 0 + + + 5 + 24 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_dma.c + plib035_dma.c + 0 + 0 + + + 5 + 25 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_ecap.c + plib035_ecap.c + 0 + 0 + + + 5 + 26 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_gpio.c + plib035_gpio.c + 0 + 0 + + + 5 + 27 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_i2c.c + plib035_i2c.c + 0 + 0 + + + 5 + 28 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_mflash.c + plib035_mflash.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_pmu.c + plib035_pmu.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_pwm.c + plib035_pwm.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_qep.c + plib035_qep.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_rcu.c + plib035_rcu.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_spi.c + plib035_spi.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_tmr.c + plib035_tmr.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_uart.c + plib035_uart.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + .\platform\plib035\src\plib035_wdt.c + plib035_wdt.c + 0 + 0 + + + + + Retarget + 0 + 0 + 0 + 0 + + 6 + 37 + 1 + 0 + 0 + 0 + .\platform\retarget\retarget.c + retarget.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + .\platform\retarget\retarget_conf.c + retarget_conf.c + 0 + 0 + + + 6 + 39 + 5 + 0 + 0 + 0 + .\platform\retarget\retarget_conf.h + retarget_conf.h + 0 + 0 + + + +
diff --git a/Template.uvprojx b/Template.uvprojx new file mode 100644 index 0000000..6cf06e1 --- /dev/null +++ b/Template.uvprojx @@ -0,0 +1,628 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + template + 0x4 + ARM-ADS + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 0 + + + K1921VK035 + Generic + NIIET.K1921VK035_DFP.2.0.6 + http://www.keil.com/pack/ + IRAM(0x20000000,0x4000) IROM(0x00000000,0x10000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC3000 -FN2 -FF0K1921VK035 -FS00 -FL010000 -FF1K1921VK035_SRV -FS10 -FL1100000 -FP0($$Device:K1921VK035$Flash\K1921VK035.FLM) -FP1($$Device:K1921VK035$Flash\K1921VK035_SRV.FLM)) + 0 + $$Device:K1921VK035$Device\Include\K1921VK035.h + + + + + + + + + + $$Device:K1921VK035$SVD\K1921VK035.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + Firmware + 1 + 0 + 0 + 1 + 1 + .\Listings\ + 1 + 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 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 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-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 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 + 0x4000 + + + 1 + 0x0 + 0x10000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x10000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x4000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 3 + 5 + 1 + 1 + 0 + 0 + 0 + + + RETARGET, RETARGET_USE_UART, SYSCLK_OSE, OSECLK_VAL=24000000, CKO_NONE, USE_FULL_ASSERT + + .\platform\CMSIS\Core\Include;.\platform\Device\NIIET\K1921VK035\Include;.\platform\plib035\inc;.\platform\retarget;.\platform\retarget\Template\K1921VK035;.\Core\App;.\Core\Config;.\Core\ExtendedLibs;.\Core\ExtendedLibs\MyLibs\Inc;.\Core\ExtendedLibs\RTT + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + + + + + + + + + + + + Config + + + mylibs_config.h + 5 + .\Core\Config\mylibs_config.h + + + mylibs_include.h + 5 + .\Core\Config\mylibs_include.h + + + SEGGER_RTT_Conf.h + 5 + .\Core\Config\SEGGER_RTT_Conf.h + + + gpio.h + 5 + .\Core\App\gpio.h + + + rcu.h + 5 + .\Core\App\rcu.h + + + + + src + + + main.c + 1 + .\Core\App\main.c + + + gpio.c + 1 + .\Core\App\gpio.c + + + rcu.c + 1 + .\Core\App\rcu.c + + + vk035_it.c + 1 + .\Core\App\vk035_it.c + + + + + MyLibs + + + bench_time.h + 5 + .\Core\ExtendedLibs\MyLibs\Inc\bench_time.h + + + bit_access.h + 5 + .\Core\ExtendedLibs\MyLibs\Inc\bit_access.h + + + gen_optimizer.h + 5 + .\Core\ExtendedLibs\MyLibs\Inc\gen_optimizer.h + + + mylibs_defs.h + 5 + .\Core\ExtendedLibs\MyLibs\Inc\mylibs_defs.h + + + trace.h + 5 + .\Core\ExtendedLibs\MyLibs\Inc\trace.h + + + trackers.h + 5 + .\Core\ExtendedLibs\MyLibs\Inc\trackers.h + + + SEGGER_RTT.c + 1 + .\Core\ExtendedLibs\RTT\SEGGER_RTT.c + + + SEGGER_RTT_printf.c + 1 + .\Core\ExtendedLibs\RTT\SEGGER_RTT_printf.c + + + filters.h + 5 + .\Core\ExtendedLibs\MyLibs\Inc\filters.h + + + filters.c + 1 + .\Core\ExtendedLibs\MyLibs\Src\filters.c + + + + + startup + + + system_K1921VK035.c + 1 + .\platform\Device\NIIET\K1921VK035\Source\system_K1921VK035.c + + + startup_K1921VK035.s + 2 + .\platform\Device\NIIET\K1921VK035\Source\ARM\startup_K1921VK035.s + + + + + plib035 + + + plib035_adc.c + 1 + .\platform\plib035\src\plib035_adc.c + + + plib035_can.c + 1 + .\platform\plib035\src\plib035_can.c + + + plib035_dma.c + 1 + .\platform\plib035\src\plib035_dma.c + + + plib035_ecap.c + 1 + .\platform\plib035\src\plib035_ecap.c + + + plib035_gpio.c + 1 + .\platform\plib035\src\plib035_gpio.c + + + plib035_i2c.c + 1 + .\platform\plib035\src\plib035_i2c.c + + + plib035_mflash.c + 1 + .\platform\plib035\src\plib035_mflash.c + + + plib035_pmu.c + 1 + .\platform\plib035\src\plib035_pmu.c + + + plib035_pwm.c + 1 + .\platform\plib035\src\plib035_pwm.c + + + plib035_qep.c + 1 + .\platform\plib035\src\plib035_qep.c + + + plib035_rcu.c + 1 + .\platform\plib035\src\plib035_rcu.c + + + plib035_spi.c + 1 + .\platform\plib035\src\plib035_spi.c + + + plib035_tmr.c + 1 + .\platform\plib035\src\plib035_tmr.c + + + plib035_uart.c + 1 + .\platform\plib035\src\plib035_uart.c + + + plib035_wdt.c + 1 + .\platform\plib035\src\plib035_wdt.c + + + + + Retarget + + + retarget.c + 1 + .\platform\retarget\retarget.c + + + retarget_conf.c + 1 + .\platform\retarget\retarget_conf.c + + + retarget_conf.h + 5 + .\platform\retarget\retarget_conf.h + + + + + + + + + + + + + + + + + UKSI + 1 + + + + +
diff --git a/platform/CMSIS/Core/Include/cmsis_armcc.h b/platform/CMSIS/Core/Include/cmsis_armcc.h new file mode 100644 index 0000000..b127d2f --- /dev/null +++ b/platform/CMSIS/Core/Include/cmsis_armcc.h @@ -0,0 +1,867 @@ +/**************************************************************************//** + * @file cmsis_armcc.h + * @brief CMSIS compiler ARMCC (ARM compiler V5) header file + * @version V5.0.2 + * @date 13. February 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_ARMCC_H +#define __CMSIS_ARMCC_H + + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677) + #error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + +/* CMSIS compiler control architecture macros */ +#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \ + (defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) ) + #define __ARM_ARCH_6M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1)) + #define __ARM_ARCH_7M__ 1 +#endif + +#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1)) + #define __ARM_ARCH_7EM__ 1 +#endif + + /* __ARM_ARCH_8M_BASE__ not applicable */ + /* __ARM_ARCH_8M_MAIN__ not applicable */ + + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __declspec(noreturn) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed)) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT __packed struct +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION __packed union +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x))) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr))) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr))) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); */ + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_INLINE uint32_t __get_IPSR(void) +{ + register uint32_t __regIPSR __ASM("ipsr"); + return(__regIPSR); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_INLINE uint32_t __get_APSR(void) +{ + register uint32_t __regAPSR __ASM("apsr"); + return(__regAPSR); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_INLINE uint32_t __get_xPSR(void) +{ + register uint32_t __regXPSR __ASM("xpsr"); + return(__regXPSR); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + return(__regProcessStackPointer); +} + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + register uint32_t __regProcessStackPointer __ASM("psp"); + __regProcessStackPointer = topOfProcStack; +} + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + return(__regMainStackPointer); +} + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + register uint32_t __regMainStackPointer __ASM("msp"); + __regMainStackPointer = topOfMainStack; +} + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xFFU); +} + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + register uint32_t __regBasePriMax __ASM("basepri_max"); + __regBasePriMax = (basePri & 0xFFU); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & (uint32_t)1U); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + return(__regfpscr); +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + register uint32_t __regfpscr __ASM("fpscr"); + __regfpscr = (fpscr); +#else + (void)fpscr; +#endif +} + +#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __nop + + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() do {\ + __schedule_barrier();\ + __isb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() do {\ + __schedule_barrier();\ + __dsb(0xF);\ + __schedule_barrier();\ + } while (0U) + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() do {\ + __schedule_barrier();\ + __dmb(0xF);\ + __schedule_barrier();\ + } while (0U) + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV __rev + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value) +{ + rev16 r0, r0 + bx lr +} +#endif + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int16_t __REVSH(int16_t value) +{ + revsh r0, r0 + bx lr +} +#endif + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +#define __ROR __ror + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __breakpoint(value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + #define __RBIT __rbit +#else +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ + return result; +} +#endif + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __clz + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) +#else + #define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) +#else + #define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) +#else + #define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXB(value, ptr) __strex(value, ptr) +#else + #define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXH(value, ptr) __strex(value, ptr) +#else + #define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020) + #define __STREXW(value, ptr) __strex(value, ptr) +#else + #define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop") +#endif + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __clrex + + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +#ifndef __NO_EMBEDDED_ASM +__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value) +{ + rrx r0, r0 + bx lr +} +#endif + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr)) + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr)) + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRBT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRHT(value, ptr) __strt(value, ptr) + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +#define __STRT(value, ptr) __strt(value, ptr) + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) + +#define __SADD8 __sadd8 +#define __QADD8 __qadd8 +#define __SHADD8 __shadd8 +#define __UADD8 __uadd8 +#define __UQADD8 __uqadd8 +#define __UHADD8 __uhadd8 +#define __SSUB8 __ssub8 +#define __QSUB8 __qsub8 +#define __SHSUB8 __shsub8 +#define __USUB8 __usub8 +#define __UQSUB8 __uqsub8 +#define __UHSUB8 __uhsub8 +#define __SADD16 __sadd16 +#define __QADD16 __qadd16 +#define __SHADD16 __shadd16 +#define __UADD16 __uadd16 +#define __UQADD16 __uqadd16 +#define __UHADD16 __uhadd16 +#define __SSUB16 __ssub16 +#define __QSUB16 __qsub16 +#define __SHSUB16 __shsub16 +#define __USUB16 __usub16 +#define __UQSUB16 __uqsub16 +#define __UHSUB16 __uhsub16 +#define __SASX __sasx +#define __QASX __qasx +#define __SHASX __shasx +#define __UASX __uasx +#define __UQASX __uqasx +#define __UHASX __uhasx +#define __SSAX __ssax +#define __QSAX __qsax +#define __SHSAX __shsax +#define __USAX __usax +#define __UQSAX __uqsax +#define __UHSAX __uhsax +#define __USAD8 __usad8 +#define __USADA8 __usada8 +#define __SSAT16 __ssat16 +#define __USAT16 __usat16 +#define __UXTB16 __uxtb16 +#define __UXTAB16 __uxtab16 +#define __SXTB16 __sxtb16 +#define __SXTAB16 __sxtab16 +#define __SMUAD __smuad +#define __SMUADX __smuadx +#define __SMLAD __smlad +#define __SMLADX __smladx +#define __SMLALD __smlald +#define __SMLALDX __smlaldx +#define __SMUSD __smusd +#define __SMUSDX __smusdx +#define __SMLSD __smlsd +#define __SMLSDX __smlsdx +#define __SMLSLD __smlsld +#define __SMLSLDX __smlsldx +#define __SEL __sel +#define __QADD __qadd +#define __QSUB __qsub + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \ + ((int64_t)(ARG3) << 32U) ) >> 32U)) + +#endif /* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCC_H */ diff --git a/platform/CMSIS/Core/Include/cmsis_armclang.h b/platform/CMSIS/Core/Include/cmsis_armclang.h new file mode 100644 index 0000000..50b839d --- /dev/null +++ b/platform/CMSIS/Core/Include/cmsis_armclang.h @@ -0,0 +1,1815 @@ +/**************************************************************************//** + * @file cmsis_armclang.h + * @brief CMSIS compiler ARMCLANG (ARM compiler V6) header file + * @version V5.0.3 + * @date 27. March 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*lint -esym(9058, IRQn)*/ /* disable MISRA 2012 Rule 2.4 for IRQn */ + +#ifndef __CMSIS_ARMCLANG_H +#define __CMSIS_ARMCLANG_H + +#pragma clang system_header /* treat file as system include file */ + +#ifndef __ARM_COMPAT_H +#include /* Compatibility header for ARM Compiler 5 intrinsics */ +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE __inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static __inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32 */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */ + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */ + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wpacked" +/*lint -esym(9058, T_UINT32_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_READ */ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma clang diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __enable_irq(); see arm_compat.h */ + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +/* intrinsic void __disable_irq(); see arm_compat.h */ + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __enable_fault_irq __enable_fiq /* see arm_compat.h */ + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +#define __disable_fault_irq __disable_fiq /* see arm_compat.h */ + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return(result); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Get Process Stack Pointer Limit (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + + return(result); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Get Main Stack Pointer Limit (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Set Main Stack Pointer Limit (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr +#else +#define __get_FPSCR() ((uint32_t)0U) +#endif + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#define __set_FPSCR __builtin_arm_set_fpscr +#else +#define __set_FPSCR(x) ((void)(x)) +#endif + +#endif /* ((defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP __builtin_arm_nop + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI __builtin_arm_wfi + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE __builtin_arm_wfe + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV __builtin_arm_sev + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +#define __ISB() __builtin_arm_isb(0xF); + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +#define __DSB() __builtin_arm_dsb(0xF); + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +#define __DMB() __builtin_arm_dmb(0xF); + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV(value) __builtin_bswap32(value) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REV16(value) __ROR(__REV(value), 16) + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +#define __REVSH(value) (int16_t)__builtin_bswap16(value) + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +#define __RBIT __builtin_arm_rbit + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ (uint8_t)__builtin_clz + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDREXB (uint8_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDREXH (uint16_t)__builtin_arm_ldrex + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDREXW (uint32_t)__builtin_arm_ldrex + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXB (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXH (uint32_t)__builtin_arm_strex + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STREXW (uint32_t)__builtin_arm_strex + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +#define __CLREX __builtin_arm_clrex + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT __builtin_arm_ssat + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT __builtin_arm_usat + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +#define __LDAEXB (uint8_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +#define __LDAEXH (uint16_t)__builtin_arm_ldaex + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +#define __LDAEX (uint32_t)__builtin_arm_ldaex + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXB (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEXH (uint32_t)__builtin_arm_stlex + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +#define __STLEX (uint32_t)__builtin_arm_stlex + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#if 0 +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) +#endif + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#endif /* __CMSIS_ARMCLANG_H */ diff --git a/platform/CMSIS/Core/Include/cmsis_cmcpp.h b/platform/CMSIS/Core/Include/cmsis_cmcpp.h new file mode 100644 index 0000000..07a5235 --- /dev/null +++ b/platform/CMSIS/Core/Include/cmsis_cmcpp.h @@ -0,0 +1,127 @@ +/**************************************************************************//** + * @file cmsis_cmcpp.h + * @brief CMSIS compiler CMCPP_ARM header file + * @version V5.0.2 + * @date 13. February 2018 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_CMCPP_H +#define __CMSIS_CMCPP_H + +/* ignore some GCC warnings */ +/*#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" */ + +/* Fallback for __has_builtin */ +#ifndef __has_builtin + #define __has_builtin(x) (0) +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE static inline /*__attribute__((always_inline)) static inline*/ +#endif +#ifndef __NO_RETURN + #define __NO_RETURN /*__attribute__((__noreturn__))*/ +#endif +#ifndef __USED + #define __USED /*__attribute__((used))*/ +#endif +#ifndef __WEAK + #define __WEAK /*__attribute__((weak))*/ +#endif +#ifndef __PACKED + #define __PACKED __packed +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT __packed struct +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION __packed union +#endif + +//#ifndef __UNALIGNED_UINT32 /* deprecated */ +/* #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif */ +#ifndef __ALIGNED + #define __ALIGNED(x) /*__attribute__((aligned(x)))*/ +#endif +#ifndef __RESTRICT + #define __RESTRICT /*__restrict*/ +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + + +#endif /* __CMSISG_CMCPP_H */ + diff --git a/platform/CMSIS/Core/Include/cmsis_compiler.h b/platform/CMSIS/Core/Include/cmsis_compiler.h new file mode 100644 index 0000000..2613c28 --- /dev/null +++ b/platform/CMSIS/Core/Include/cmsis_compiler.h @@ -0,0 +1,264 @@ +/**************************************************************************//** + * @file cmsis_compiler.h + * @brief CMSIS compiler generic header file + * @version V5.0.2 + * @date 13. February 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_COMPILER_H +#define __CMSIS_COMPILER_H + +#include + +/* + * ARM Compiler 4/5 + */ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + + +/* + * ARM Compiler 6 (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #include "cmsis_armclang.h" + + +/* + * GNU Compiler + */ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + + +/* + * CMCPP-ARM Compiler + */ +#elif defined ( __CMCPPARM__ ) + #include "cmsis_cmcpp.h" + + +/* + * IAR Compiler + */ +#elif defined ( __ICCARM__ ) + #include + + +/* + * TI ARM Compiler + */ +#elif defined ( __TI_ARM__ ) + #include + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __attribute__((packed)) + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed)) + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed)) + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + + +/* + * TASKING Compiler + */ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __packed__ + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __packed__ + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __packed__ + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __packed__ T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __align(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + + +/* + * COSMIC Compiler + */ +#elif defined ( __CSMC__ ) + #include + + #ifndef __ASM + #define __ASM _asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __NO_RETURN + // NO RETURN is automatically detected hence no warning here + #define __NO_RETURN + #endif + #ifndef __USED + #warning No compiler specific solution for __USED. __USED is ignored. + #define __USED + #endif + #ifndef __WEAK + #define __WEAK __weak + #endif + #ifndef __PACKED + #define __PACKED @packed + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT @packed struct + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION @packed union + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + @packed struct T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. + #define __ALIGNED(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + + +#else + #error Unknown compiler. +#endif + + +#endif /* __CMSIS_COMPILER_H */ + diff --git a/platform/CMSIS/Core/Include/cmsis_gcc.h b/platform/CMSIS/Core/Include/cmsis_gcc.h new file mode 100644 index 0000000..8401734 --- /dev/null +++ b/platform/CMSIS/Core/Include/cmsis_gcc.h @@ -0,0 +1,2026 @@ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS compiler GCC header file + * @version V5.0.2 + * @date 13. February 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_GCC_H +#define __CMSIS_GCC_H + +/* ignore some GCC warnings */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/* Fallback for __has_builtin */ +#ifndef __has_builtin + #define __has_builtin(x) (0) +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return(result); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Get Process Stack Pointer Limit (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + + return(result); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Get Main Stack Pointer Limit (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +} + + +#if ((defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) && \ + (defined (__ARM_ARCH_8M_MAIN__) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Set Main Stack Pointer Limit (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_get_fpscr) || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + return __builtin_arm_get_fpscr(); +#else + uint32_t result; + + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + return(result); +#endif +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_set_fpscr) || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + __builtin_arm_set_fpscr(fpscr); +#else + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); +#endif +#else + (void)fpscr; +#endif +} + +#endif /* ((defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP() __ASM volatile ("nop") + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI() __ASM volatile ("wfi") + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE() __ASM volatile ("wfe") + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV() __ASM volatile ("sev") + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +__STATIC_FORCEINLINE void __ISB(void) +{ + __ASM volatile ("isb 0xF":::"memory"); +} + + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__STATIC_FORCEINLINE void __DSB(void) +{ + __ASM volatile ("dsb 0xF":::"memory"); +} + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__STATIC_FORCEINLINE void __DMB(void) +{ + __ASM volatile ("dmb 0xF":::"memory"); +} + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (int16_t)__builtin_bswap16(value); +#else + int16_t result; + + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +#else + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return result; +} + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __builtin_clz + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +__STATIC_FORCEINLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1,ARG2) \ +__extension__ \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1,ARG2) \ + __extension__ \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) ); + return(result); +} + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (__ARM_FEATURE_DSP == 1) /* ToDo ARMCLANG: This should be ARCH >= ARMv7-M + SIMD */ + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#if 0 +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) +#endif + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#pragma GCC diagnostic pop + +#endif /* __CMSIS_GCC_H */ diff --git a/platform/CMSIS/Core/Include/cmsis_iccarm.h b/platform/CMSIS/Core/Include/cmsis_iccarm.h new file mode 100644 index 0000000..b45b89b --- /dev/null +++ b/platform/CMSIS/Core/Include/cmsis_iccarm.h @@ -0,0 +1,906 @@ +/**************************************************************************//** + * @file cmsis_iccarm.h + * @brief CMSIS compiler ICCARM (IAR compiler) header file + * @version V5.0.3 + * @date 29. August 2017 + ******************************************************************************/ + +//------------------------------------------------------------------------------ +// +// Copyright (c) 2017 IAR Systems +// +// Licensed under the Apache License, Version 2.0 (the "License") +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//------------------------------------------------------------------------------ + + +#ifndef __CMSIS_ICCARM_H__ +#define __CMSIS_ICCARM_H__ + +#ifndef __ICCARM__ + #error This file should only be compiled by ICCARM +#endif + +#pragma system_include + +#define __IAR_FT _Pragma("inline=forced") __intrinsic + +#if (__VER__ >= 8000000) + #define __ICCARM_V8 1 +#else + #define __ICCARM_V8 0 +#endif + +#ifndef __ALIGNED + #if __ICCARM_V8 + #define __ALIGNED(x) __attribute__((aligned(x))) + #elif (__VER__ >= 7080000) + /* Needs IAR language extensions */ + #define __ALIGNED(x) __attribute__((aligned(x))) + #else + #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored. + #define __ALIGNED(x) + #endif +#endif + + +/* Define compiler macros for CPU architecture, used in CMSIS 5. + */ +#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ || __ARM_ARCH_8M_BASE__ || __ARM_ARCH_8M_MAIN__ +/* Macros already defined */ +#else + #if defined(__ARM8M_MAINLINE__) || defined(__ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M' + #if __ARM_ARCH == 6 + #define __ARM_ARCH_6M__ 1 + #elif __ARM_ARCH == 7 + #if __ARM_FEATURE_DSP + #define __ARM_ARCH_7EM__ 1 + #else + #define __ARM_ARCH_7M__ 1 + #endif + #endif /* __ARM_ARCH */ + #endif /* __ARM_ARCH_PROFILE == 'M' */ +#endif + +/* Alternativ core deduction for older ICCARM's */ +#if !defined(__ARM_ARCH_6M__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__) && \ + !defined(__ARM_ARCH_8M_BASE__) && !defined(__ARM_ARCH_8M_MAIN__) + #if defined(__ARM6M__) && (__CORE__ == __ARM6M__) + #define __ARM_ARCH_6M__ 1 + #elif defined(__ARM7M__) && (__CORE__ == __ARM7M__) + #define __ARM_ARCH_7M__ 1 + #elif defined(__ARM7EM__) && (__CORE__ == __ARM7EM__) + #define __ARM_ARCH_7EM__ 1 + #elif defined(__ARM8M_BASELINE__) && (__CORE == __ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM8M_MAINLINE__) && (__CORE == __ARM8M_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8EM_MAINLINE__) && (__CORE == __ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #else + #error "Unknown target." + #endif +#endif + + + +#if defined(__ARM_ARCH_6M__) && __ARM_ARCH_6M__==1 + #define __IAR_M0_FAMILY 1 +#elif defined(__ARM_ARCH_8M_BASE__) && __ARM_ARCH_8M_BASE__==1 + #define __IAR_M0_FAMILY 1 +#else + #define __IAR_M0_FAMILY 0 +#endif + + +#ifndef __ASM + #define __ASM __asm +#endif + +#ifndef __INLINE + #define __INLINE inline +#endif + +#ifndef __NO_RETURN + #if __ICCARM_V8 + #define __NO_RETURN __attribute__((__noreturn__)) + #else + #define __NO_RETURN _Pragma("object_attribute=__noreturn") + #endif +#endif + +#ifndef __PACKED + #if __ICCARM_V8 + #define __PACKED __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED __packed + #endif +#endif + +#ifndef __PACKED_STRUCT + #if __ICCARM_V8 + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_STRUCT __packed struct + #endif +#endif + +#ifndef __PACKED_UNION + #if __ICCARM_V8 + #define __PACKED_UNION union __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_UNION __packed union + #endif +#endif + +#ifndef __RESTRICT + #define __RESTRICT restrict +#endif + + +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif + +#ifndef __UNALIGNED_UINT16_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint16_t __iar_uint16_read(void const *ptr) +{ + return *(__packed uint16_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT16_READ(PTR) __iar_uint16_read(PTR) +#endif + + +#ifndef __UNALIGNED_UINT16_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) +{ + *(__packed uint16_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT16_WRITE(PTR,VAL) __iar_uint16_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint32_t __iar_uint32_read(void const *ptr) +{ + return *(__packed uint32_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT32_READ(PTR) __iar_uint32_read(PTR) +#endif + +#ifndef __UNALIGNED_UINT32_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) +{ + *(__packed uint32_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT32_WRITE(PTR,VAL) __iar_uint32_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32 /* deprecated */ +#pragma language=save +#pragma language=extended +__packed struct __iar_u32 { uint32_t v; }; +#pragma language=restore +#define __UNALIGNED_UINT32(PTR) (((struct __iar_u32 *)(PTR))->v) +#endif + +#ifndef __USED + #if __ICCARM_V8 + #define __USED __attribute__((used)) + #else + #define __USED _Pragma("__root") + #endif +#endif + +#ifndef __WEAK + #if __ICCARM_V8 + #define __WEAK __attribute__((weak)) + #else + #define __WEAK _Pragma("__weak") + #endif +#endif + + +#ifndef __ICCARM_INTRINSICS_VERSION__ + #define __ICCARM_INTRINSICS_VERSION__ 0 +#endif + +#if __ICCARM_INTRINSICS_VERSION__ == 2 + + #if defined(__CLZ) + #undef __CLZ + #endif + #if defined(__REVSH) + #undef __REVSH + #endif + #if defined(__RBIT) + #undef __RBIT + #endif + #if defined(__SSAT) + #undef __SSAT + #endif + #if defined(__USAT) + #undef __USAT + #endif + + #include "iccarm_builtin.h" + + #define __disable_fault_irq __iar_builtin_disable_fiq + #define __disable_irq __iar_builtin_disable_interrupt + #define __enable_fault_irq __iar_builtin_enable_fiq + #define __enable_irq __iar_builtin_enable_interrupt + #define __arm_rsr __iar_builtin_rsr + #define __arm_wsr __iar_builtin_wsr + + + #define __get_APSR() (__arm_rsr("APSR")) + #define __get_BASEPRI() (__arm_rsr("BASEPRI")) + #define __get_CONTROL() (__arm_rsr("CONTROL")) + #define __get_FAULTMASK() (__arm_rsr("FAULTMASK")) + + #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + #define __get_FPSCR() (__arm_rsr("FPSCR")) + #define __set_FPSCR(VALUE) (__arm_wsr("FPSCR", (VALUE))) + #else + #define __get_FPSCR() ( 0 ) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #define __get_IPSR() (__arm_rsr("IPSR")) + #define __get_MSP() (__arm_rsr("MSP")) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __get_MSPLIM() (0U) + #else + #define __get_MSPLIM() (__arm_rsr("MSPLIM")) + #endif + #define __get_PRIMASK() (__arm_rsr("PRIMASK")) + #define __get_PSP() (__arm_rsr("PSP")) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __get_PSPLIM() (0U) + #else + #define __get_PSPLIM() (__arm_rsr("PSPLIM")) + #endif + + #define __get_xPSR() (__arm_rsr("xPSR")) + + #define __set_BASEPRI(VALUE) (__arm_wsr("BASEPRI", (VALUE))) + #define __set_BASEPRI_MAX(VALUE) (__arm_wsr("BASEPRI_MAX", (VALUE))) + #define __set_CONTROL(VALUE) (__arm_wsr("CONTROL", (VALUE))) + #define __set_FAULTMASK(VALUE) (__arm_wsr("FAULTMASK", (VALUE))) + #define __set_MSP(VALUE) (__arm_wsr("MSP", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __set_MSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_MSPLIM(VALUE) (__arm_wsr("MSPLIM", (VALUE))) + #endif + #define __set_PRIMASK(VALUE) (__arm_wsr("PRIMASK", (VALUE))) + #define __set_PSP(VALUE) (__arm_wsr("PSP", (VALUE))) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __set_PSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_PSPLIM(VALUE) (__arm_wsr("PSPLIM", (VALUE))) + #endif + + #define __TZ_get_CONTROL_NS() (__arm_rsr("CONTROL_NS")) + #define __TZ_set_CONTROL_NS(VALUE) (__arm_wsr("CONTROL_NS", (VALUE))) + #define __TZ_get_PSP_NS() (__arm_rsr("PSP_NS")) + #define __TZ_set_PSP_NS(VALUE) (__arm_wsr("PSP_NS", (VALUE))) + #define __TZ_get_MSP_NS() (__arm_rsr("MSP_NS")) + #define __TZ_set_MSP_NS(VALUE) (__arm_wsr("MSP_NS", (VALUE))) + #define __TZ_get_SP_NS() (__arm_rsr("SP_NS")) + #define __TZ_set_SP_NS(VALUE) (__arm_wsr("SP_NS", (VALUE))) + #define __TZ_get_PRIMASK_NS() (__arm_rsr("PRIMASK_NS")) + #define __TZ_set_PRIMASK_NS(VALUE) (__arm_wsr("PRIMASK_NS", (VALUE))) + #define __TZ_get_BASEPRI_NS() (__arm_rsr("BASEPRI_NS")) + #define __TZ_set_BASEPRI_NS(VALUE) (__arm_wsr("BASEPRI_NS", (VALUE))) + #define __TZ_get_FAULTMASK_NS() (__arm_rsr("FAULTMASK_NS")) + #define __TZ_set_FAULTMASK_NS(VALUE)(__arm_wsr("FAULTMASK_NS", (VALUE))) + #define __TZ_get_PSPLIM_NS() (__arm_rsr("PSPLIM_NS")) + #define __TZ_set_PSPLIM_NS(VALUE) (__arm_wsr("PSPLIM_NS", (VALUE))) + #define __TZ_get_MSPLIM_NS() (__arm_rsr("MSPLIM_NS")) + #define __TZ_set_MSPLIM_NS(VALUE) (__arm_wsr("MSPLIM_NS", (VALUE))) + + #define __NOP __iar_builtin_no_operation + + #define __CLZ __iar_builtin_CLZ + #define __CLREX __iar_builtin_CLREX + + #define __DMB __iar_builtin_DMB + #define __DSB __iar_builtin_DSB + #define __ISB __iar_builtin_ISB + + #define __LDREXB __iar_builtin_LDREXB + #define __LDREXH __iar_builtin_LDREXH + #define __LDREXW __iar_builtin_LDREX + + #define __RBIT __iar_builtin_RBIT + #define __REV __iar_builtin_REV + #define __REV16 __iar_builtin_REV16 + + __IAR_FT int16_t __REVSH(int16_t val) + { + return (int16_t) __iar_builtin_REVSH(val); + } + + #define __ROR __iar_builtin_ROR + #define __RRX __iar_builtin_RRX + + #define __SEV __iar_builtin_SEV + + #if !__IAR_M0_FAMILY + #define __SSAT __iar_builtin_SSAT + #endif + + #define __STREXB __iar_builtin_STREXB + #define __STREXH __iar_builtin_STREXH + #define __STREXW __iar_builtin_STREX + + #if !__IAR_M0_FAMILY + #define __USAT __iar_builtin_USAT + #endif + + #define __WFE __iar_builtin_WFE + #define __WFI __iar_builtin_WFI + + #if __ARM_MEDIA__ + #define __SADD8 __iar_builtin_SADD8 + #define __QADD8 __iar_builtin_QADD8 + #define __SHADD8 __iar_builtin_SHADD8 + #define __UADD8 __iar_builtin_UADD8 + #define __UQADD8 __iar_builtin_UQADD8 + #define __UHADD8 __iar_builtin_UHADD8 + #define __SSUB8 __iar_builtin_SSUB8 + #define __QSUB8 __iar_builtin_QSUB8 + #define __SHSUB8 __iar_builtin_SHSUB8 + #define __USUB8 __iar_builtin_USUB8 + #define __UQSUB8 __iar_builtin_UQSUB8 + #define __UHSUB8 __iar_builtin_UHSUB8 + #define __SADD16 __iar_builtin_SADD16 + #define __QADD16 __iar_builtin_QADD16 + #define __SHADD16 __iar_builtin_SHADD16 + #define __UADD16 __iar_builtin_UADD16 + #define __UQADD16 __iar_builtin_UQADD16 + #define __UHADD16 __iar_builtin_UHADD16 + #define __SSUB16 __iar_builtin_SSUB16 + #define __QSUB16 __iar_builtin_QSUB16 + #define __SHSUB16 __iar_builtin_SHSUB16 + #define __USUB16 __iar_builtin_USUB16 + #define __UQSUB16 __iar_builtin_UQSUB16 + #define __UHSUB16 __iar_builtin_UHSUB16 + #define __SASX __iar_builtin_SASX + #define __QASX __iar_builtin_QASX + #define __SHASX __iar_builtin_SHASX + #define __UASX __iar_builtin_UASX + #define __UQASX __iar_builtin_UQASX + #define __UHASX __iar_builtin_UHASX + #define __SSAX __iar_builtin_SSAX + #define __QSAX __iar_builtin_QSAX + #define __SHSAX __iar_builtin_SHSAX + #define __USAX __iar_builtin_USAX + #define __UQSAX __iar_builtin_UQSAX + #define __UHSAX __iar_builtin_UHSAX + #define __USAD8 __iar_builtin_USAD8 + #define __USADA8 __iar_builtin_USADA8 + #define __SSAT16 __iar_builtin_SSAT16 + #define __USAT16 __iar_builtin_USAT16 + #define __UXTB16 __iar_builtin_UXTB16 + #define __UXTAB16 __iar_builtin_UXTAB16 + #define __SXTB16 __iar_builtin_SXTB16 + #define __SXTAB16 __iar_builtin_SXTAB16 + #define __SMUAD __iar_builtin_SMUAD + #define __SMUADX __iar_builtin_SMUADX + #define __SMMLA __iar_builtin_SMMLA + #define __SMLAD __iar_builtin_SMLAD + #define __SMLADX __iar_builtin_SMLADX + #define __SMLALD __iar_builtin_SMLALD + #define __SMLALDX __iar_builtin_SMLALDX + #define __SMUSD __iar_builtin_SMUSD + #define __SMUSDX __iar_builtin_SMUSDX + #define __SMLSD __iar_builtin_SMLSD + #define __SMLSDX __iar_builtin_SMLSDX + #define __SMLSLD __iar_builtin_SMLSLD + #define __SMLSLDX __iar_builtin_SMLSLDX + #define __SEL __iar_builtin_SEL + #define __QADD __iar_builtin_QADD + #define __QSUB __iar_builtin_QSUB + #define __PKHBT __iar_builtin_PKHBT + #define __PKHTB __iar_builtin_PKHTB + #endif + +#else /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #define __CLZ __cmsis_iar_clz_not_active + #define __SSAT __cmsis_iar_ssat_not_active + #define __USAT __cmsis_iar_usat_not_active + #define __RBIT __cmsis_iar_rbit_not_active + #define __get_APSR __cmsis_iar_get_APSR_not_active + #endif + + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #define __get_FPSCR __cmsis_iar_get_FPSR_not_active + #define __set_FPSCR __cmsis_iar_set_FPSR_not_active + #endif + + #ifdef __INTRINSICS_INCLUDED + #error intrinsics.h is already included previously! + #endif + + #include + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #undef __CLZ + #undef __SSAT + #undef __USAT + #undef __RBIT + #undef __get_APSR + + __STATIC_INLINE uint8_t __CLZ(uint32_t data) + { + if (data == 0U) { return 32U; } + + uint32_t count = 0U; + uint32_t mask = 0x80000000U; + + while ((data & mask) == 0U) + { + count += 1U; + mask = mask >> 1U; + } + return count; + } + + __STATIC_INLINE uint32_t __RBIT(uint32_t v) + { + uint8_t sc = 31U; + uint32_t r = v; + for (v >>= 1U; v; v >>= 1U) + { + r <<= 1U; + r |= v & 1U; + sc--; + } + return (r << sc); + } + + __STATIC_INLINE uint32_t __get_APSR(void) + { + uint32_t res; + __asm("MRS %0,APSR" : "=r" (res)); + return res; + } + + #endif + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #undef __get_FPSCR + #undef __set_FPSCR + #define __get_FPSCR() (0) + #define __set_FPSCR(VALUE) ((void)VALUE) + #endif + + #pragma diag_suppress=Pe940 + #pragma diag_suppress=Pe177 + + #define __enable_irq __enable_interrupt + #define __disable_irq __disable_interrupt + #define __NOP __no_operation + + #define __get_xPSR __get_PSR + + #if (!defined(__ARM_ARCH_6M__) || __ARM_ARCH_6M__==0) + + __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) + { + return __LDREX((unsigned long *)ptr); + } + + __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) + { + return __STREX(value, (unsigned long *)ptr); + } + #endif + + + /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + #if (__CORTEX_M >= 0x03) + + __IAR_FT uint32_t __RRX(uint32_t value) + { + uint32_t result; + __ASM("RRX %0, %1" : "=r"(result) : "r" (value) : "cc"); + return(result); + } + + __IAR_FT void __set_BASEPRI_MAX(uint32_t value) + { + __asm volatile("MSR BASEPRI_MAX,%0"::"r" (value)); + } + + + #define __enable_fault_irq __enable_fiq + #define __disable_fault_irq __disable_fiq + + + #endif /* (__CORTEX_M >= 0x03) */ + + __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) + { + return (op1 >> op2) | (op1 << ((sizeof(op1)*8)-op2)); + } + + #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + __IAR_FT uint32_t __get_MSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,MSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_MSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR MSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __get_PSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_PSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,CONTROL_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) + { + __asm volatile("MSR CONTROL_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PSP_NS(uint32_t value) + { + __asm volatile("MSR PSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_MSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSP_NS(uint32_t value) + { + __asm volatile("MSR MSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_SP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,SP_NS" : "=r" (res)); + return res; + } + __IAR_FT void __TZ_set_SP_NS(uint32_t value) + { + __asm volatile("MSR SP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PRIMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) + { + __asm volatile("MSR PRIMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,BASEPRI_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) + { + __asm volatile("MSR BASEPRI_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,FAULTMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) + { + __asm volatile("MSR FAULTMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PSPLIM_NS" : "=r" (res)); + return res; + } + __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) + { + __asm volatile("MSR PSPLIM_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSPLIM_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) + { + __asm volatile("MSR MSPLIM_NS,%0" :: "r" (value)); + } + + #endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#endif /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + +#define __BKPT(value) __asm volatile ("BKPT %0" : : "i"(value)) + +#if __IAR_M0_FAMILY + __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) + { + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; + } + + __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) + { + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; + } +#endif + +#if (__CORTEX_M >= 0x03) /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + + __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) + { + uint32_t res; + __ASM("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) + { + uint32_t res; + __ASM("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) + { + uint32_t res; + __ASM("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return res; + } + + __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) + { + __ASM("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) + { + __ASM("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) + { + __ASM("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory"); + } + +#endif /* (__CORTEX_M >= 0x03) */ + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + + __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAB %0, [%1]" : "=r" (res) : "r" (*ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAH %0, [%1]" : "=r" (res) : "r" (*ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDA %0, [%1]" : "=r" (res) : "r" (*ptr) : "memory"); + return res; + } + + __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) + { + __ASM volatile ("STLB %1, [%0]" :: "r" (*ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) + { + __ASM volatile ("STLH %1, [%0]" :: "r" (*ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) + { + __ASM volatile ("STL %1, [%0]" :: "r" (*ptr), "r" (value) : "memory"); + } + + __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXB %0, [%1]" : "=r" (res) : "r" (*ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXH %0, [%1]" : "=r" (res) : "r" (*ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEX %0, [%1]" : "=r" (res) : "r" (*ptr) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXB %0, %2, [%1]" : "=r" (res) : "r" (*ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXH %0, %2, [%1]" : "=r" (res) : "r" (*ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEX %0, %2, [%1]" : "=r" (res) : "r" (*ptr), "r" (value) : "memory"); + return res; + } + +#endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#undef __IAR_FT +#undef __IAR_M0_FAMILY +#undef __ICCARM_V8 + +#pragma diag_default=Pe940 +#pragma diag_default=Pe177 + +#endif /* __CMSIS_ICCARM_H__ */ diff --git a/platform/CMSIS/Core/Include/cmsis_version.h b/platform/CMSIS/Core/Include/cmsis_version.h new file mode 100644 index 0000000..660f612 --- /dev/null +++ b/platform/CMSIS/Core/Include/cmsis_version.h @@ -0,0 +1,39 @@ +/**************************************************************************//** + * @file cmsis_version.h + * @brief CMSIS Core(M) Version definitions + * @version V5.0.2 + * @date 19. April 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CMSIS_VERSION_H +#define __CMSIS_VERSION_H + +/* CMSIS Version definitions */ +#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ +#define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */ +#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ + __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ +#endif diff --git a/platform/CMSIS/Core/Include/core_cm4.h b/platform/CMSIS/Core/Include/core_cm4.h new file mode 100644 index 0000000..dc71a8f --- /dev/null +++ b/platform/CMSIS/Core/Include/core_cm4.h @@ -0,0 +1,2115 @@ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V5.0.3 + * @date 09. August 2017 + ******************************************************************************/ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M4 + @{ + */ + +#include "cmsis_version.h" + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_M (4U) /*!< Cortex-M Core */ + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TI_ARM__ ) + #if defined __TI_VFP_SUPPORT__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM4_H_DEPENDANT +#define __CORE_CM4_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM4_REV + #define __CM4_REV 0x0000U + #warning "__CM4_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 3U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M4 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:1; /*!< bit: 9 Reserved */ + uint32_t ICI_IT_1:6; /*!< bit: 10..15 ICI/IT part 1 */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit */ + uint32_t ICI_IT_2:2; /*!< bit: 25..26 ICI/IT part 2 */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_ICI_IT_2_Pos 25U /*!< xPSR: ICI/IT part 2 Position */ +#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos) /*!< xPSR: ICI/IT part 2 Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ICI_IT_1_Pos 10U /*!< xPSR: ICI/IT part 1 Position */ +#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos) /*!< xPSR: ICI/IT part 1 Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_MMARVALID_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 7U) /*!< SCB CFSR (MMFSR): MMARVALID Position */ +#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos) /*!< SCB CFSR (MMFSR): MMARVALID Mask */ + +#define SCB_CFSR_MLSPERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 5U) /*!< SCB CFSR (MMFSR): MLSPERR Position */ +#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos) /*!< SCB CFSR (MMFSR): MLSPERR Mask */ + +#define SCB_CFSR_MSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 4U) /*!< SCB CFSR (MMFSR): MSTKERR Position */ +#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos) /*!< SCB CFSR (MMFSR): MSTKERR Mask */ + +#define SCB_CFSR_MUNSTKERR_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 3U) /*!< SCB CFSR (MMFSR): MUNSTKERR Position */ +#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos) /*!< SCB CFSR (MMFSR): MUNSTKERR Mask */ + +#define SCB_CFSR_DACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 1U) /*!< SCB CFSR (MMFSR): DACCVIOL Position */ +#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos) /*!< SCB CFSR (MMFSR): DACCVIOL Mask */ + +#define SCB_CFSR_IACCVIOL_Pos (SCB_SHCSR_MEMFAULTACT_Pos + 0U) /*!< SCB CFSR (MMFSR): IACCVIOL Position */ +#define SCB_CFSR_IACCVIOL_Msk (1UL /*<< SCB_CFSR_IACCVIOL_Pos*/) /*!< SCB CFSR (MMFSR): IACCVIOL Mask */ + +/* BusFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U) /*!< SCB CFSR (BFSR): BFARVALID Position */ +#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos) /*!< SCB CFSR (BFSR): BFARVALID Mask */ + +#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U) /*!< SCB CFSR (BFSR): LSPERR Position */ +#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos) /*!< SCB CFSR (BFSR): LSPERR Mask */ + +#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U) /*!< SCB CFSR (BFSR): STKERR Position */ +#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos) /*!< SCB CFSR (BFSR): STKERR Mask */ + +#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U) /*!< SCB CFSR (BFSR): UNSTKERR Position */ +#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos) /*!< SCB CFSR (BFSR): UNSTKERR Mask */ + +#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U) /*!< SCB CFSR (BFSR): IMPRECISERR Position */ +#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos) /*!< SCB CFSR (BFSR): IMPRECISERR Mask */ + +#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U) /*!< SCB CFSR (BFSR): PRECISERR Position */ +#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos) /*!< SCB CFSR (BFSR): PRECISERR Mask */ + +#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U) /*!< SCB CFSR (BFSR): IBUSERR Position */ +#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos) /*!< SCB CFSR (BFSR): IBUSERR Mask */ + +/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */ +#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U) /*!< SCB CFSR (UFSR): DIVBYZERO Position */ +#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos) /*!< SCB CFSR (UFSR): DIVBYZERO Mask */ + +#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U) /*!< SCB CFSR (UFSR): UNALIGNED Position */ +#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos) /*!< SCB CFSR (UFSR): UNALIGNED Mask */ + +#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U) /*!< SCB CFSR (UFSR): NOCP Position */ +#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos) /*!< SCB CFSR (UFSR): NOCP Mask */ + +#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U) /*!< SCB CFSR (UFSR): INVPC Position */ +#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos) /*!< SCB CFSR (UFSR): INVPC Mask */ + +#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U) /*!< SCB CFSR (UFSR): INVSTATE Position */ +#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos) /*!< SCB CFSR (UFSR): INVSTATE Mask */ + +#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U) /*!< SCB CFSR (UFSR): UNDEFINSTR Position */ +#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos) /*!< SCB CFSR (UFSR): UNDEFINSTR Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IOM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< 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 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< 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 0U /*!< 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 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +#define MPU_TYPE_RALIASES 4U + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif /* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. This parameter is interpreted as an uint32_t type. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ +#define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +#ifdef CMSIS_NVIC_VIRTUAL + #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE + #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h" + #endif + #include CMSIS_NVIC_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping + #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping + #define NVIC_EnableIRQ __NVIC_EnableIRQ + #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ + #define NVIC_DisableIRQ __NVIC_DisableIRQ + #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ + #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ + #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ + #define NVIC_GetActive __NVIC_GetActive + #define NVIC_SetPriority __NVIC_SetPriority + #define NVIC_GetPriority __NVIC_GetPriority + #define NVIC_SystemReset __NVIC_SystemReset +#endif /* CMSIS_NVIC_VIRTUAL */ + +#ifdef CMSIS_VECTAB_VIRTUAL + #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE + #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h" + #endif + #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE +#else + #define NVIC_SetVector __NVIC_SetVector + #define NVIC_GetVector __NVIC_GetVector +#endif /* (CMSIS_VECTAB_VIRTUAL) */ + +#define NVIC_USER_IRQ_OFFSET 16 + + + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable Interrupt + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Interrupt Enable status + \details Returns a device specific interrupt enable status from the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt is not enabled. + \return 1 Interrupt is enabled. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Disable Interrupt + \details Disables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + __DSB(); + __ISB(); + } +} + + +/** + \brief Get Pending Interrupt + \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of a device specific interrupt in the NVIC pending register. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->ICPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); + } +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. + \param [in] IRQn Device specific interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + \note IRQn must not be negative. + */ +__STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) +{ + if ((int32_t)(IRQn) >= 0) + { + return((uint32_t)(((NVIC->IABR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); + } + else + { + return(0U); + } +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) >= 0) + { + NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of a device specific interrupt or a processor exception. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) >= 0) + { + return(((uint32_t)NVIC->IP[((uint32_t)(int32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief Set Interrupt Vector + \details Sets an interrupt vector in SRAM based interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + VTOR must been relocated to SRAM before. + \param [in] IRQn Interrupt number + \param [in] vector Address of interrupt handler function + */ +__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector; +} + + +/** + \brief Get Interrupt Vector + \details Reads an interrupt vector from interrupt vector table. + The interrupt number can be positive to specify a device specific interrupt, + or negative to specify a processor exception. + \param [in] IRQn Interrupt number. + \return Address of interrupt handler function + */ +__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) +{ + uint32_t *vectors = (uint32_t *)SCB->VTOR; + return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET]; +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void __NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + +/* ########################## MPU functions #################################### */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) + +#include "mpu_armv7.h" + +#endif + + +/* ########################## FPU functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_FpuFunctions FPU Functions + \brief Function that provides FPU type. + @{ + */ + +/** + \brief get FPU type + \details returns the FPU type + \returns + - \b 0: No FPU + - \b 1: Single precision FPU + - \b 2: Double + Single precision FPU + */ +__STATIC_INLINE uint32_t SCB_GetFPUType(void) +{ + uint32_t mvfr0; + + mvfr0 = FPU->MVFR0; + if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) + { + return 1U; /* Single precision FPU */ + } + else + { + return 0U; /* No FPU */ + } +} + + +/*@} end of CMSIS_Core_FpuFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U) /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/platform/CMSIS/Core/Include/mpu_armv7.h b/platform/CMSIS/Core/Include/mpu_armv7.h new file mode 100644 index 0000000..49b86ab --- /dev/null +++ b/platform/CMSIS/Core/Include/mpu_armv7.h @@ -0,0 +1,204 @@ +/****************************************************************************** + * @file mpu_armv7.h + * @brief CMSIS MPU API for ARMv7 MPU + * @version V5.0.3 + * @date 09. August 2017 + ******************************************************************************/ +/* + * Copyright (c) 2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef ARM_MPU_ARMV7_H +#define ARM_MPU_ARMV7_H + +#define ARM_MPU_REGION_SIZE_32B ((uint8_t)0x04U) +#define ARM_MPU_REGION_SIZE_64B ((uint8_t)0x05U) +#define ARM_MPU_REGION_SIZE_128B ((uint8_t)0x06U) +#define ARM_MPU_REGION_SIZE_256B ((uint8_t)0x07U) +#define ARM_MPU_REGION_SIZE_512B ((uint8_t)0x08U) +#define ARM_MPU_REGION_SIZE_1KB ((uint8_t)0x09U) +#define ARM_MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) +#define ARM_MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) +#define ARM_MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) +#define ARM_MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) +#define ARM_MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) +#define ARM_MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) +#define ARM_MPU_REGION_SIZE_128KB ((uint8_t)0x10U) +#define ARM_MPU_REGION_SIZE_256KB ((uint8_t)0x11U) +#define ARM_MPU_REGION_SIZE_512KB ((uint8_t)0x12U) +#define ARM_MPU_REGION_SIZE_1MB ((uint8_t)0x13U) +#define ARM_MPU_REGION_SIZE_2MB ((uint8_t)0x14U) +#define ARM_MPU_REGION_SIZE_4MB ((uint8_t)0x15U) +#define ARM_MPU_REGION_SIZE_8MB ((uint8_t)0x16U) +#define ARM_MPU_REGION_SIZE_16MB ((uint8_t)0x17U) +#define ARM_MPU_REGION_SIZE_32MB ((uint8_t)0x18U) +#define ARM_MPU_REGION_SIZE_64MB ((uint8_t)0x19U) +#define ARM_MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) +#define ARM_MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) +#define ARM_MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) +#define ARM_MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) +#define ARM_MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) +#define ARM_MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) + +#define ARM_MPU_AP_NONE 0U +#define ARM_MPU_AP_PRIV 1U +#define ARM_MPU_AP_URO 2U +#define ARM_MPU_AP_FULL 3U +#define ARM_MPU_AP_PRO 5U +#define ARM_MPU_AP_RO 6U + +/** MPU Region Base Address Register Value +* +* \param Region The region to be configured, number 0 to 15. +* \param BaseAddress The base address for the region. +*/ +#define ARM_MPU_RBAR(Region, BaseAddress) \ + (((BaseAddress) & MPU_RBAR_ADDR_Msk) | \ + ((Region) & MPU_RBAR_REGION_Msk) | \ + (MPU_RBAR_VALID_Msk)) + +/** +* MPU Region Attribut and Size Register Value +* +* \param DisableExec Instruction access disable bit, 1= disable instruction fetches. +* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode. +* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral. +* \param IsShareable Region is shareable between multiple bus masters. +* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache. +* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy. +* \param SubRegionDisable Sub-region disable field. +* \param Size Region size of the region to be configured, for example 4K, 8K. +*/ +#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \ + ((((DisableExec ) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk) | \ + (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk) | \ + (((TypeExtField ) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk) | \ + (((IsShareable ) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk) | \ + (((IsCacheable ) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk) | \ + (((IsBufferable ) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk) | \ + (((SubRegionDisable) << MPU_RASR_SRD_Pos) & MPU_RASR_SRD_Msk) | \ + (((Size ) << MPU_RASR_SIZE_Pos) & MPU_RASR_SIZE_Msk) | \ + (MPU_RASR_ENABLE_Msk)) + + +/** +* Struct for a single MPU Region +*/ +#if defined (__CMCPPARM__) +typedef struct { + uint32_t RBAR; //!< The region base address register value (RBAR) + uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR +} ARM_MPU_Region_t; +#else +typedef struct _ARM_MPU_Region_t { + uint32_t RBAR; //!< The region base address register value (RBAR) + uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR +} ARM_MPU_Region_t; +#endif + +/** Enable the MPU. +* \param MPU_Control Default access permissions for unconfigured regions. +*/ +__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control) +{ + __DSB(); + __ISB(); + MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk; +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk; +#endif +} + +/** Disable the MPU. +*/ +__STATIC_INLINE void ARM_MPU_Disable(void) +{ + __DSB(); + __ISB(); +#ifdef SCB_SHCSR_MEMFAULTENA_Msk + SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk; +#endif + MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk; +} + +/** Clear and disable the given MPU region. +* \param rnr Region number to be cleared. +*/ +__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr) +{ + MPU->RNR = rnr; + MPU->RASR = 0U; +} + +/** Configure an MPU region. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr) +{ + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Configure the given MPU region. +* \param rnr Region number to be configured. +* \param rbar Value for RBAR register. +* \param rsar Value for RSAR register. +*/ +__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr) +{ + MPU->RNR = rnr; + MPU->RBAR = rbar; + MPU->RASR = rasr; +} + +/** Memcopy with strictly ordered memory access, e.g. for register targets. +* \param dst Destination data is copied to. +* \param src Source data is copied from. +* \param len Amount of data words to be copied. +*/ +__STATIC_INLINE void orderedCpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len) +{ + uint32_t i; + for (i = 0U; i < len; ++i) + { + dst[i] = src[i]; + } +} + +/** Load the given number of MPU regions from a table. +* \param table Pointer to the MPU configuration table. +* \param cnt Amount of regions to be configured. +*/ +__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt) +{ + const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U; + while (cnt > MPU_TYPE_RALIASES) { + orderedCpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize); + table += MPU_TYPE_RALIASES; + cnt -= MPU_TYPE_RALIASES; + } + orderedCpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize); +} + +#endif diff --git a/platform/Device/NIIET/K1921VK035/Include/K1921VK035.h b/platform/Device/NIIET/K1921VK035/Include/K1921VK035.h new file mode 100644 index 0000000..233fb0a --- /dev/null +++ b/platform/Device/NIIET/K1921VK035/Include/K1921VK035.h @@ -0,0 +1,10223 @@ +/******************************************************************************* + * @file: K1921VK035.h + * @author NIIET + * @version: V2.10 + * @date: 22.02.2019 + * @brief: K1921VK035 header file + ******************************************************************************* + *

+ * + * 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, NIIET 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 NIIET

+ ******************************************************************************* + * FILE K1921VK035.h + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __K1921VK035_H +#define __K1921VK035_H + +#define __I volatile const /*!< defines 'read only' permissions */ +#define __O volatile /*!< defines 'write only' permissions */ +#define __IO volatile /*!< defines 'read / write' permissions */ + +/* Start of section using anonymous unions */ +#if defined (__CC_ARM) + #pragma push + #pragma anon_unions +#elif defined (__ICCARM__) + #pragma language=extended +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wc11-extensions" + #pragma clang diagnostic ignored "-Wreserved-id-macro" +#elif defined (__GNUC__) + /* anonymous unions are enabled by default */ +#elif defined (__TMS470__) + /* anonymous unions are enabled by default */ +#elif defined (__TASKING__) + #pragma warning 586 +#elif defined (__CSMC__) + /* anonymous unions are enabled by default */ +#elif defined (__CMCPPARM__) + /* anonymous unions are enabled by default */ +#else + #warning Not supported compiler type +#endif + +/* Configuration of the Cortex-M4F Processor and Core Peripherals */ +#define __CM4_REV 0x0001 /*!< Cortex-M4F Core Revision r0p1 */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ +#define __FPU_PRESENT 1 /*!< FPU present or not */ + +#include "stdint.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************/ +/* Interrupt Number Definition */ +/******************************************************************************/ + +typedef enum IRQn +{ +/*-- Cortex-M4F Processor Exceptions Numbers ---------------------------------*/ + NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ + HardFault_IRQn = -13, /*!< 3 Hard Fault Interrupt */ + SVCall_IRQn = -5, /*!< 11 SV Call Interrupt */ + PendSV_IRQn = -2, /*!< 14 Pend SV Interrupt */ + SysTick_IRQn = -1, /*!< 15 System Tick Timer Interrupt */ +/*-- Device specific Interrupt Numbers ---------------------------------------*/ + WDT_IRQn = 0, /*!< Watchdog timer interrupt */ + RCU_IRQn = 1, /*!< Reset and clock unit interrupt */ + MFLASH_IRQn = 2, /*!< MFLASH interrupt */ + GPIOA_IRQn = 3, /*!< GPIO A interrupt */ + GPIOB_IRQn = 4, /*!< GPIO B interrupt */ + DMA_CH0_IRQn = 5, /*!< DMA channel 0 interrupt */ + DMA_CH1_IRQn = 6, /*!< DMA channel 1 interrupt */ + DMA_CH2_IRQn = 7, /*!< DMA channel 2 interrupt */ + DMA_CH3_IRQn = 8, /*!< DMA channel 3 interrupt */ + DMA_CH4_IRQn = 9, /*!< DMA channel 4 interrupt */ + DMA_CH5_IRQn = 10, /*!< DMA channel 5 interrupt */ + DMA_CH6_IRQn = 11, /*!< DMA channel 6 interrupt */ + DMA_CH7_IRQn = 12, /*!< DMA channel 7 interrupt */ + DMA_CH8_IRQn = 13, /*!< DMA channel 8 interrupt */ + DMA_CH9_IRQn = 14, /*!< DMA channel 9 interrupt */ + DMA_CH10_IRQn = 15, /*!< DMA channel 10 interrupt */ + DMA_CH11_IRQn = 16, /*!< DMA channel 11 interrupt */ + DMA_CH12_IRQn = 17, /*!< DMA channel 12 interrupt */ + DMA_CH13_IRQn = 18, /*!< DMA channel 13 interrupt */ + DMA_CH14_IRQn = 19, /*!< DMA channel 14 interrupt */ + DMA_CH15_IRQn = 20, /*!< DMA channel 15 interrupt */ + TMR0_IRQn = 21, /*!< Timer 0 interrupt */ + TMR1_IRQn = 22, /*!< Timer 1 interrupt */ + TMR2_IRQn = 23, /*!< Timer 2 interrupt */ + TMR3_IRQn = 24, /*!< Timer 3 interrupt */ + UART0_TD_IRQn = 25, /*!< UART0 Transmit Done interrupt */ + UART0_RX_IRQn = 26, /*!< UART0 Recieve interrupt */ + UART0_TX_IRQn = 27, /*!< UART0 Transmit interrupt */ + UART0_E_RT_IRQn = 28, /*!< UART0 Error and Receive Timeout interrupt*/ + UART1_TD_IRQn = 29, /*!< UART1 Transmit Done interrupt */ + UART1_RX_IRQn = 30, /*!< UART1 Recieve interrupt */ + UART1_TX_IRQn = 31, /*!< UART1 Transmit interrupt */ + UART1_E_RT_IRQn = 32, /*!< UART1 Error and Receive Timeout interrupt*/ + SPI_RO_RT_IRQn = 33, /*!< SPI RX FIFO overrun and Receive Timeout interrupt*/ + SPI_RX_IRQn = 34, /*!< SPI Receive interrupt */ + SPI_TX_IRQn = 35, /*!< SPI Transmit interrupt */ + I2C_IRQn = 36, /*!< I2C interrupt */ + ECAP0_IRQn = 37, /*!< ECAP0 interrupt */ + ECAP1_IRQn = 38, /*!< ECAP1 interrupt */ + ECAP2_IRQn = 39, /*!< ECAP2 interrupt */ + PWM0_IRQn = 40, /*!< PWM0 interrupt */ + PWM0_HD_IRQn = 41, /*!< PWM0 HD interrupt */ + PWM0_TZ_IRQn = 42, /*!< PWM0 TZ interrupt */ + PWM1_IRQn = 43, /*!< PWM1 interrupt */ + PWM1_HD_IRQn = 44, /*!< PWM1 HD interrupt */ + PWM1_TZ_IRQn = 45, /*!< PWM1 TZ interrupt */ + PWM2_IRQn = 46, /*!< PWM2 interrupt */ + PWM2_HD_IRQn = 47, /*!< PWM2 HD interrupt */ + PWM2_TZ_IRQn = 48, /*!< PWM2 TZ interrupt */ + QEP_IRQn = 49, /*!< QEP interrupt */ + ADC_SEQ0_IRQn = 50, /*!< ADC Sequencer 0 interrupt */ + ADC_SEQ1_IRQn = 51, /*!< ADC Sequencer 1 interrupt */ + ADC_DC_IRQn = 52, /*!< ADC Digital Comparator interrupt */ + CAN0_IRQn = 53, /*!< CAN0 interrupt */ + CAN1_IRQn = 54, /*!< CAN1 interrupt */ + CAN2_IRQn = 55, /*!< CAN2 interrupt */ + CAN3_IRQn = 56, /*!< CAN3 interrupt */ + CAN4_IRQn = 57, /*!< CAN4 interrupt */ + CAN5_IRQn = 58, /*!< CAN5 interrupt */ + CAN6_IRQn = 59, /*!< CAN6 interrupt */ + CAN7_IRQn = 60, /*!< CAN7 interrupt */ + CAN8_IRQn = 61, /*!< CAN8 interrupt */ + CAN9_IRQn = 62, /*!< CAN9 interrupt */ + CAN10_IRQn = 63, /*!< CAN10 interrupt */ + CAN11_IRQn = 64, /*!< CAN11 interrupt */ + CAN12_IRQn = 65, /*!< CAN12 interrupt */ + CAN13_IRQn = 66, /*!< CAN13 interrupt */ + CAN14_IRQn = 67, /*!< CAN14 interrupt */ + CAN15_IRQn = 68, /*!< CAN15 interrupt */ + FPU_IRQn = 69, /*!< FPU exception interrupt */ +} IRQn_Type; + +#include /* Cortex-M4 processor and core peripherals */ +#include /* System initialization */ + +/******************************************************************************/ +/* System Specific Defenitions */ +/******************************************************************************/ +/*-- System memory ----------------------------------------------------------*/ +#define MEM_MFLASH_BASE 0x00000000UL +#define MEM_MFLASH_BUS_WIDTH_WORDS 2UL +#define MEM_MFLASH_PAGE_SIZE 1024UL +#define MEM_MFLASH_PAGE_SIZE_LOG2 10UL +#define MEM_MFLASH_PAGE_TOTAL 64UL +#define MEM_MFLASH_SIZE (MEM_MFLASH_PAGE_TOTAL*MEM_MFLASH_PAGE_SIZE) +#define MEM_MFLASH_NVR_PAGE_SIZE (MEM_MFLASH_PAGE_SIZE) +#define MEM_MFLASH_NVR_PAGE_SIZE_LOG2 (MEM_MFLASH_PAGE_SIZE_LOG2) +#define MEM_MFLASH_NVR_PAGE_TOTAL 4UL +#define MEM_MFLASH_NVR_SIZE (MEM_MFLASH_NVR_PAGE_TOTAL*MEM_MFLASH_NVR_PAGE_SIZE) +#define MEM_RAM_BASE 0x20000000UL +#define MEM_RAM_SIZE 0x4000UL + +/*-- CFGWORD: System configure word -----------------------------------------*/ +#define CFGWORD_BASE 0x00000C00UL + +typedef struct { + uint32_t JTAGEN : 1; /*!< Enable JTAG pins (default 1 - enabled) */ + uint32_t DEBUGEN : 1; /*!< Enable core debug (default 1 - enabled) */ + uint32_t NVRWE : 1; /*!< NVR flash region write enable (default 1 - enabled) */ + uint32_t FLASHWE : 1; /*!< Main flash region write enable (default 1 - enabled) */ + uint32_t BMODEDIS : 1; /*!< Bootloader disable (default 1 - disabled) */ +} CFGWORD_bits; + +/* Bit field positions: */ +#define CFGWORD_JTAGEN_Pos 0 /*!< Enable JTAG pins (default 1 - enabled) */ +#define CFGWORD_DEBUGEN_Pos 1 /*!< Enable core debug (default 1 - enabled) */ +#define CFGWORD_NVRWE_Pos 2 /*!< NVR flash region write enable (default 1 - enabled) */ +#define CFGWORD_FLASHWE_Pos 3 /*!< Main flash region write enable (default 1 - enabled) */ +#define CFGWORD_BMODEDIS_Pos 4 /*!< Bootloader disable (default 1 - disabled) */ + +/* Bit field masks: */ +#define CFGWORD_JTAGEN_Msk 0x00000001UL /*!< Enable JTAG pins (default 1 - enabled) */ +#define CFGWORD_DEBUGEN_Msk 0x00000002UL /*!< Enable core debug (default 1 - enabled) */ +#define CFGWORD_NVRWE_Msk 0x00000004UL /*!< NVR flash region write enable (default 1 - enabled) */ +#define CFGWORD_FLASHWE_Msk 0x00000008UL /*!< Main flash region write enable (default 1 - enabled) */ +#define CFGWORD_BMODEDIS_Msk 0x00000010UL /*!< Bootloader disable (default 1 - disabled) */ + +/*-- CHANNEL_CFG: DMA channel configure word --------------------------------*/ +typedef struct { + uint32_t CYCLE_CTRL : 3; /*!< The operating mode of the DMA cycle */ + uint32_t NEXT_USEBURST : 1; /*!< Controls if the DMA->USEBURSTSET bit is set to a 1 */ + uint32_t N_MINUS_1 : 10; /*!< The total number of DMA transfers that the DMA cycle contains */ + uint32_t R_POWER : 4; /*!< Control how many DMA transfers can occur before the controller rearbitrates (2^R_POWER, 1024 max) */ + uint32_t SRC_PROT_PRIV : 1; /*!< Bus protection when the controller reads the source data: privileged access */ + uint32_t SRC_PROT_BUFF : 1; /*!< Bus protection when the controller reads the source data: bufferable access */ + uint32_t SRC_PROT_CACHE : 1; /*!< Bus protection when the controller reads the source data: cacheable access */ + uint32_t DST_PROT_PRIV : 1; /*!< Bus protection when the controller writes the destination data: privileged access */ + uint32_t DST_PROT_BUFF : 1; /*!< Bus protection when the controller writes the destination data: bufferable access */ + uint32_t DST_PROT_CACHE : 1; /*!< Bus protection when the controller writes the destination data: cacheable access */ + uint32_t SRC_SIZE : 2; /*!< Size of the source data */ + uint32_t SRC_INC : 2; /*!< Source address increment */ + uint32_t DST_SIZE : 2; /*!< Destination data size */ + uint32_t DST_INC : 2; /*!< Destination address increment */ +} _CHANNEL_CFG_bits; + +/* Bit field positions: */ +#define DMA_CHANNEL_CFG_CYCLE_CTRL_Pos 0 /*!< The operating mode of the DMA cycle */ +#define DMA_CHANNEL_CFG_NEXT_USEBURST_Pos 3 /*!< Controls if the DMA->USEBURSTSET bit is set to a 1 */ +#define DMA_CHANNEL_CFG_N_MINUS_1_Pos 4 /*!< The total number of DMA transfers that the DMA cycle contains */ +#define DMA_CHANNEL_CFG_R_POWER_Pos 14 /*!< Control how many DMA transfers can occur before the controller rearbitrates */ +#define DMA_CHANNEL_CFG_SRC_PROT_PRIV_Pos 18 /*!< Bus protection when the controller reads the source data: privileged access */ +#define DMA_CHANNEL_CFG_SRC_PROT_BUFF_Pos 19 /*!< Bus protection when the controller reads the source data: bufferable access */ +#define DMA_CHANNEL_CFG_SRC_PROT_CACHE_Pos 20 /*!< Bus protection when the controller reads the source data: cacheable access */ +#define DMA_CHANNEL_CFG_DST_PROT_PRIV_Pos 21 /*!< Bus protection when the controller writes the destination data: privileged access */ +#define DMA_CHANNEL_CFG_DST_PROT_BUFF_Pos 22 /*!< Bus protection when the controller writes the destination data: bufferable access */ +#define DMA_CHANNEL_CFG_DST_PROT_CACHE_Pos 23 /*!< Bus protection when the controller writes the destination data: cacheable access */ +#define DMA_CHANNEL_CFG_SRC_SIZE_Pos 24 /*!< Size of the source data */ +#define DMA_CHANNEL_CFG_SRC_INC_Pos 26 /*!< Source address increment */ +#define DMA_CHANNEL_CFG_DST_SIZE_Pos 28 /*!< Destination data size */ +#define DMA_CHANNEL_CFG_DST_INC_Pos 30 /*!< Destination address increment */ + +/* Bit field masks: */ +#define DMA_CHANNEL_CFG_CYCLE_CTRL_Msk 0x00000007UL /*!< The operating mode of the DMA cycle */ +#define DMA_CHANNEL_CFG_NEXT_USEBURST_Msk 0x00000008UL /*!< Controls if the DMA->USEBURSTSET bit is set to a 1 */ +#define DMA_CHANNEL_CFG_N_MINUS_1_Msk 0x00003FF0UL /*!< The total number of DMA transfers that the DMA cycle contains */ +#define DMA_CHANNEL_CFG_R_POWER_Msk 0x0003C000UL /*!< Control how many DMA transfers can occur before the controller rearbitrates */ +#define DMA_CHANNEL_CFG_SRC_PROT_PRIV_Msk 0x00040000UL /*!< Bus protection when the controller reads the source data: privileged access */ +#define DMA_CHANNEL_CFG_SRC_PROT_BUFF_Msk 0x00080000UL /*!< Bus protection when the controller reads the source data: bufferable access */ +#define DMA_CHANNEL_CFG_SRC_PROT_CACHE_Msk 0x00100000UL /*!< Bus protection when the controller reads the source data: cacheable access */ +#define DMA_CHANNEL_CFG_DST_PROT_PRIV_Msk 0x00200000UL /*!< Bus protection when the controller writes the destination data: privileged access */ +#define DMA_CHANNEL_CFG_DST_PROT_BUFF_Msk 0x00400000UL /*!< Bus protection when the controller writes the destination data: bufferable access */ +#define DMA_CHANNEL_CFG_DST_PROT_CACHE_Msk 0x00800000UL /*!< Bus protection when the controller writes the destination data: cacheable access */ +#define DMA_CHANNEL_CFG_SRC_SIZE_Msk 0x03000000UL /*!< Size of the source data */ +#define DMA_CHANNEL_CFG_SRC_INC_Msk 0x0C000000UL /*!< Source address increment */ +#define DMA_CHANNEL_CFG_DST_SIZE_Msk 0x30000000UL /*!< Destination data size */ +#define DMA_CHANNEL_CFG_DST_INC_Msk 0xC0000000UL /*!< Destination address increment */ + +/* Bit field enums: */ +typedef enum { + DMA_CHANNEL_CFG_CYCLE_CTRL_Stop = 0x0UL, /*!< Stop */ + DMA_CHANNEL_CFG_CYCLE_CTRL_Basic = 0x1UL, /*!< Basic */ + DMA_CHANNEL_CFG_CYCLE_CTRL_AutoReq = 0x2UL, /*!< Auto-request */ + DMA_CHANNEL_CFG_CYCLE_CTRL_PingPong = 0x3UL, /*!< Ping-pong */ + DMA_CHANNEL_CFG_CYCLE_CTRL_MemScatGathPrim = 0x4UL, /*!< Memory scatter-gather for primary structure */ + DMA_CHANNEL_CFG_CYCLE_CTRL_MemScatGathAlt = 0x5UL, /*!< Memory scatter-gather for alternative structure */ + DMA_CHANNEL_CFG_CYCLE_CTRL_PeriphScatGathPrim = 0x6UL, /*!< Peripheral scatter-gather for primary structure */ + DMA_CHANNEL_CFG_CYCLE_CTRL_PeriphScatGathAlt = 0x7UL, /*!< Peripheral scatter-gather for alternative structure */ +} DMA_CHANNEL_CFG_CYCLE_CTRL_Enum; + +typedef enum { + DMA_CHANNEL_CFG_SRC_SIZE_Byte = 0x0UL, /*!< 8 bit */ + DMA_CHANNEL_CFG_SRC_SIZE_Halfword = 0x1UL, /*!< 16 bit */ + DMA_CHANNEL_CFG_SRC_SIZE_Word = 0x2UL, /*!< 32 bit */ +} DMA_CHANNEL_CFG_SRC_SIZE_Enum; + +typedef enum { + DMA_CHANNEL_CFG_SRC_INC_Byte = 0x0UL, /*!< 8 bit */ + DMA_CHANNEL_CFG_SRC_INC_Halfword = 0x1UL, /*!< 16 bit */ + DMA_CHANNEL_CFG_SRC_INC_Word = 0x2UL, /*!< 32 bit */ + DMA_CHANNEL_CFG_SRC_INC_None = 0x3UL, /*!< No increment */ +} DMA_CHANNEL_CFG_SRC_INC_Enum; + +typedef enum { + DMA_CHANNEL_CFG_DST_SIZE_Byte = 0x0UL, /*!< 8 bit */ + DMA_CHANNEL_CFG_DST_SIZE_Halfword = 0x1UL, /*!< 16 bit */ + DMA_CHANNEL_CFG_DST_SIZE_Word = 0x2UL, /*!< 32 bit */ +} DMA_CHANNEL_CFG_DST_SIZE_Enum; + +typedef enum { + DMA_CHANNEL_CFG_DST_INC_Byte = 0x0UL, /*!< 8 bit */ + DMA_CHANNEL_CFG_DST_INC_Halfword = 0x1UL, /*!< 16 bit */ + DMA_CHANNEL_CFG_DST_INC_Word = 0x2UL, /*!< 32 bit */ + DMA_CHANNEL_CFG_DST_INC_None = 0x3UL, /*!< No increment */ +} DMA_CHANNEL_CFG_DST_INC_Enum; + +/*-- DMA channel structure --------------------------------------------------*/ +typedef struct +{ + __IO uint32_t SRC_DATA_END_PTR; /*!< Source data end pointer */ + __IO uint32_t DST_DATA_END_PTR; /*!< Destination data end pointer */ + union { + __IO uint32_t CHANNEL_CFG; /*!< Channel configure word */ + __IO _CHANNEL_CFG_bits CHANNEL_CFG_bit; /*!< channel configure word: bit access */ + }; + __IO uint32_t RESERVED; +} DMA_Channel_TypeDef; + +/*-- DMA control structure --------------------------------------------------*/ +typedef struct +{ + DMA_Channel_TypeDef CH[16]; /*!< Control structure channels */ +} DMA_CtrlStruct_TypeDef; + +#define DMA_CH_UART0TX 0 /*!< UART0 TX DMA channel */ +#define DMA_CH_UART1TX 1 /*!< UART1 TX DMA channel */ +#define DMA_CH_UART0RX 2 /*!< UART0 RX DMA channel */ +#define DMA_CH_UART1RX 3 /*!< UART1 RX DMA channel */ +#define DMA_CH_ADCSEQ0 4 /*!< ADC sequencer 0 DMA channel */ +#define DMA_CH_ADCSEQ1 5 /*!< ADC sequencer 1 DMA channel */ +#define DMA_CH_SPITX 6 /*!< SPI TX DMA channel */ +#define DMA_CH_SPIRX 7 /*!< SPI RX DMA channel */ +#define DMA_CH_QEP 8 /*!< QEP DMA channel */ +#define DMA_CH_GPIOA 8 /*!< GPIOA DMA channel */ +#define DMA_CH_GPIOB 9 /*!< GPIOB DMA channel */ +#define DMA_CH_TMR0 9 /*!< TMR0 DMA channel */ +#define DMA_CH_TMR1 10 /*!< TMR1 DMA channel */ +#define DMA_CH_TMR2 11 /*!< TMR2 DMA channel */ +#define DMA_CH_TMR3 12 /*!< TMR3 DMA channel */ +#define DMA_CH_PWM0B 10 /*!< PWM0B DMA channel */ +#define DMA_CH_PWM1B 11 /*!< PWM1B DMA channel */ +#define DMA_CH_PWM2B 12 /*!< PWM2B DMA channel */ +#define DMA_CH_PWM0A 13 /*!< PWM0A DMA channel */ +#define DMA_CH_PWM1A 14 /*!< PWM1A DMA channel */ +#define DMA_CH_PWM2A 15 /*!< PWM2A DMA channel */ + +/*-- DMA control data summary -----------------------------------------------*/ +/*!< WARNING: struct should be 512 byte aligned! Allowed addresses 0xXXXXX000, 0xXXXXX200, 0xXXXXX400, etc */ +typedef struct +{ + DMA_CtrlStruct_TypeDef PRM_DATA; /*!< Primary control structure */ + DMA_CtrlStruct_TypeDef ALT_DATA; /*!< Alternative control structure */ +} DMA_CtrlData_TypeDef; + + +/******************************************************************************/ +/* SIU registers */ +/******************************************************************************/ + +/*-- PWMSYNC: PWM syncronization control register ------------------------------------------------------------*/ +typedef struct { + uint32_t :8; /*!< RESERVED */ + uint32_t PRESCRST :3; /*!< PWM prescalers reset control */ +} _SIU_PWMSYNC_bits; + +/* Bit field positions: */ +#define SIU_PWMSYNC_PRESCRST_Pos 8 /*!< PWM prescalers reset control */ + +/* Bit field masks: */ +#define SIU_PWMSYNC_PRESCRST_Msk 0x00000700UL /*!< PWM prescalers reset control */ + +/*-- SERVCTL: Service mode control register ------------------------------------------------------------------*/ +typedef struct { + uint32_t CHIPCLR :1; /*!< On-chip memories full clear task start */ + uint32_t DONE :1; /*!< Status of clear task */ + uint32_t :29; /*!< RESERVED */ + uint32_t SERVEN :1; /*!< */ +} _SIU_SERVCTL_bits; + +/* Bit field positions: */ +#define SIU_SERVCTL_CHIPCLR_Pos 0 /*!< On-chip memories full clear task start */ +#define SIU_SERVCTL_DONE_Pos 1 /*!< Status of clear task */ +#define SIU_SERVCTL_SERVEN_Pos 31 /*!< */ + +/* Bit field masks: */ +#define SIU_SERVCTL_CHIPCLR_Msk 0x00000001UL /*!< On-chip memories full clear task start */ +#define SIU_SERVCTL_DONE_Msk 0x00000002UL /*!< Status of clear task */ +#define SIU_SERVCTL_SERVEN_Msk 0x80000000UL /*!< */ + +/*-- CLKOUTCTL: Clock out control register -------------------------------------------------------------------*/ +typedef struct { + uint32_t CLKOUTEN :1; /*!< Enable clockout pin */ +} _SIU_CLKOUTCTL_bits; + +/* Bit field positions: */ +#define SIU_CLKOUTCTL_CLKOUTEN_Pos 0 /*!< Enable clockout pin */ + +/* Bit field masks: */ +#define SIU_CLKOUTCTL_CLKOUTEN_Msk 0x00000001UL /*!< Enable clockout pin */ + +/*-- REMAPAF: QEP altfunc control ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t QEPEN :1; /*!< Enable QEP altfunc */ + uint32_t ECAP0EN :1; /*!< Enable ECAP0 altfunc */ + uint32_t ECAP1EN :1; /*!< Enable ECAP1 altfunc */ + uint32_t ECAP2EN :1; /*!< Enable ECAP2 altfunc */ +} _SIU_REMAPAF_bits; + +/* Bit field positions: */ +#define SIU_REMAPAF_QEPEN_Pos 0 /*!< Enable QEP altfunc */ +#define SIU_REMAPAF_ECAP0EN_Pos 1 /*!< Enable ECAP0 altfunc */ +#define SIU_REMAPAF_ECAP1EN_Pos 2 /*!< Enable ECAP1 altfunc */ +#define SIU_REMAPAF_ECAP2EN_Pos 3 /*!< Enable ECAP2 altfunc */ + +/* Bit field masks: */ +#define SIU_REMAPAF_QEPEN_Msk 0x00000001UL /*!< Enable QEP altfunc */ +#define SIU_REMAPAF_ECAP0EN_Msk 0x00000002UL /*!< Enable ECAP0 altfunc */ +#define SIU_REMAPAF_ECAP1EN_Msk 0x00000004UL /*!< Enable ECAP1 altfunc */ +#define SIU_REMAPAF_ECAP2EN_Msk 0x00000008UL /*!< Enable ECAP2 altfunc */ + +/*-- DMAMUX: DMA external requests mux control register ------------------------------------------------------*/ +typedef struct { + uint32_t SRCSEL8 :1; /*!< Request source select for DMA channel 8 */ + uint32_t :3; /*!< RESERVED */ + uint32_t SRCSEL9 :1; /*!< Request source select for DMA channel 9 */ + uint32_t :3; /*!< RESERVED */ + uint32_t SRCSEL10 :1; /*!< Request source select for DMA channel 10 */ + uint32_t :3; /*!< RESERVED */ + uint32_t SRCSEL11 :1; /*!< Request source select for DMA channel 11 */ + uint32_t :3; /*!< RESERVED */ + uint32_t SRCSEL12 :1; /*!< Request source select for DMA channel 12 */ + uint32_t :3; /*!< RESERVED */ + uint32_t SRCSEL13 :1; /*!< Request source select for DMA channel 13 */ + uint32_t :3; /*!< RESERVED */ + uint32_t SRCSEL14 :1; /*!< Request source select for DMA channel 14 */ + uint32_t :3; /*!< RESERVED */ + uint32_t SRCSEL15 :1; /*!< Request source select for DMA channel 15 */ +} _SIU_DMAMUX_bits; + +/* Bit field positions: */ +#define SIU_DMAMUX_SRCSEL8_Pos 0 /*!< Request source select for DMA channel 8 */ +#define SIU_DMAMUX_SRCSEL9_Pos 4 /*!< Request source select for DMA channel 9 */ +#define SIU_DMAMUX_SRCSEL10_Pos 8 /*!< Request source select for DMA channel 10 */ +#define SIU_DMAMUX_SRCSEL11_Pos 12 /*!< Request source select for DMA channel 11 */ +#define SIU_DMAMUX_SRCSEL12_Pos 16 /*!< Request source select for DMA channel 12 */ +#define SIU_DMAMUX_SRCSEL13_Pos 20 /*!< Request source select for DMA channel 13 */ +#define SIU_DMAMUX_SRCSEL14_Pos 24 /*!< Request source select for DMA channel 14 */ +#define SIU_DMAMUX_SRCSEL15_Pos 28 /*!< Request source select for DMA channel 15 */ + +/* Bit field masks: */ +#define SIU_DMAMUX_SRCSEL8_Msk 0x00000001UL /*!< Request source select for DMA channel 8 */ +#define SIU_DMAMUX_SRCSEL9_Msk 0x00000010UL /*!< Request source select for DMA channel 9 */ +#define SIU_DMAMUX_SRCSEL10_Msk 0x00000100UL /*!< Request source select for DMA channel 10 */ +#define SIU_DMAMUX_SRCSEL11_Msk 0x00001000UL /*!< Request source select for DMA channel 11 */ +#define SIU_DMAMUX_SRCSEL12_Msk 0x00010000UL /*!< Request source select for DMA channel 12 */ +#define SIU_DMAMUX_SRCSEL13_Msk 0x00100000UL /*!< Request source select for DMA channel 13 */ +#define SIU_DMAMUX_SRCSEL14_Msk 0x01000000UL /*!< Request source select for DMA channel 14 */ +#define SIU_DMAMUX_SRCSEL15_Msk 0x10000000UL /*!< Request source select for DMA channel 15 */ + +/* Bit field enums: */ +typedef enum { + SIU_DMAMUX_SRCSEL8_QEP = 0x0UL, /*!< request by QEP */ + SIU_DMAMUX_SRCSEL8_GPIOA = 0x1UL, /*!< request by GPIOA */ +} SIU_DMAMUX_SRCSEL8_Enum; + +typedef enum { + SIU_DMAMUX_SRCSEL9_TMR0 = 0x0UL, /*!< request by TMR0 */ + SIU_DMAMUX_SRCSEL9_GPIOB = 0x1UL, /*!< request by GPIOB */ +} SIU_DMAMUX_SRCSEL9_Enum; + +typedef enum { + SIU_DMAMUX_SRCSEL10_TMR1 = 0x0UL, /*!< request by TMR1 */ + SIU_DMAMUX_SRCSEL10_PWM0B = 0x1UL, /*!< request by PWM0B */ +} SIU_DMAMUX_SRCSEL10_Enum; + +typedef enum { + SIU_DMAMUX_SRCSEL11_TMR2 = 0x0UL, /*!< request by TMR2 */ + SIU_DMAMUX_SRCSEL11_PWM1B = 0x1UL, /*!< request by PWM1B */ +} SIU_DMAMUX_SRCSEL11_Enum; + +typedef enum { + SIU_DMAMUX_SRCSEL12_TMR3 = 0x0UL, /*!< request by TMR3 */ + SIU_DMAMUX_SRCSEL12_PWM2B = 0x1UL, /*!< request by PWM2B */ +} SIU_DMAMUX_SRCSEL12_Enum; + +typedef enum { + SIU_DMAMUX_SRCSEL13_PWM0A = 0x0UL, /*!< request by PWM0A */ + SIU_DMAMUX_SRCSEL13_Reserved = 0x1UL, /*!< no source */ +} SIU_DMAMUX_SRCSEL13_Enum; + +typedef enum { + SIU_DMAMUX_SRCSEL14_PWM1A = 0x0UL, /*!< request by PWM1A */ + SIU_DMAMUX_SRCSEL14_Reserved = 0x1UL, /*!< no source */ +} SIU_DMAMUX_SRCSEL14_Enum; + +typedef enum { + SIU_DMAMUX_SRCSEL15_PWM2A = 0x0UL, /*!< request by PWM2A */ + SIU_DMAMUX_SRCSEL15_Reserved = 0x1UL, /*!< no source */ +} SIU_DMAMUX_SRCSEL15_Enum; + +/*-- CHIPID: Chip identifier ---------------------------------------------------------------------------------*/ +typedef struct { + uint32_t REV :4; /*!< Revision number */ + uint32_t ID :28; /*!< Model ID */ +} _SIU_CHIPID_bits; + +/* Bit field positions: */ +#define SIU_CHIPID_REV_Pos 0 /*!< Revision number */ +#define SIU_CHIPID_ID_Pos 4 /*!< Model ID */ + +/* Bit field masks: */ +#define SIU_CHIPID_REV_Msk 0x0000000FUL /*!< Revision number */ +#define SIU_CHIPID_ID_Msk 0xFFFFFFF0UL /*!< Model ID */ + +typedef struct { + __IO uint32_t Reserved0[4]; + union { /*!< PWM syncronization control register */ + __IO uint32_t PWMSYNC; /*!< PWMSYNC : type used for word access */ + __IO _SIU_PWMSYNC_bits PWMSYNC_bit; /*!< PWMSYNC_bit: structure used for bit access */ + }; + union { /*!< Service mode control register */ + __IO uint32_t SERVCTL; /*!< SERVCTL : type used for word access */ + __IO _SIU_SERVCTL_bits SERVCTL_bit; /*!< SERVCTL_bit: structure used for bit access */ + }; + union { /*!< Clock out control register */ + __IO uint32_t CLKOUTCTL; /*!< CLKOUTCTL : type used for word access */ + __IO _SIU_CLKOUTCTL_bits CLKOUTCTL_bit; /*!< CLKOUTCTL_bit: structure used for bit access */ + }; + union { /*!< QEP altfunc control */ + __IO uint32_t REMAPAF; /*!< REMAPAF : type used for word access */ + __IO _SIU_REMAPAF_bits REMAPAF_bit; /*!< REMAPAF_bit: structure used for bit access */ + }; + union { /*!< DMA external requests mux control register */ + __IO uint32_t DMAMUX; /*!< DMAMUX : type used for word access */ + __IO _SIU_DMAMUX_bits DMAMUX_bit; /*!< DMAMUX_bit: structure used for bit access */ + }; + __IO uint32_t Reserved1[1014]; + union { /*!< Chip identifier */ + __I uint32_t CHIPID; /*!< CHIPID : type used for word access */ + __I _SIU_CHIPID_bits CHIPID_bit; /*!< CHIPID_bit: structure used for bit access */ + }; +} SIU_TypeDef; + + +/******************************************************************************/ +/* RCU registers */ +/******************************************************************************/ + +/*-- OSICFG: Internal oscillator configuration register ------------------------------------------------------*/ +typedef struct { + uint32_t EN :1; /*!< Oscillator 8MHz enable */ + uint32_t :15; /*!< RESERVED */ + uint32_t CAL :10; /*!< Oscillator 8MHz calibration value */ +} _RCU_OSICFG_bits; + +/* Bit field positions: */ +#define RCU_OSICFG_EN_Pos 0 /*!< Oscillator 8MHz enable */ +#define RCU_OSICFG_CAL_Pos 16 /*!< Oscillator 8MHz calibration value */ + +/* Bit field masks: */ +#define RCU_OSICFG_EN_Msk 0x00000001UL /*!< Oscillator 8MHz enable */ +#define RCU_OSICFG_CAL_Msk 0x03FF0000UL /*!< Oscillator 8MHz calibration value */ + +/*-- OSECFG: External oscillator configuration register ------------------------------------------------------*/ +typedef struct { + uint32_t XOEN :1; /*!< Enable output XO_OSC from external oscillator */ + uint32_t EN :1; /*!< Enable external oscallator */ +} _RCU_OSECFG_bits; + +/* Bit field positions: */ +#define RCU_OSECFG_XOEN_Pos 0 /*!< Enable output XO_OSC from external oscillator */ +#define RCU_OSECFG_EN_Pos 1 /*!< Enable external oscallator */ + +/* Bit field masks: */ +#define RCU_OSECFG_XOEN_Msk 0x00000001UL /*!< Enable output XO_OSC from external oscillator */ +#define RCU_OSECFG_EN_Msk 0x00000002UL /*!< Enable external oscallator */ + +/*-- PLLCFG: PLL configuration register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t M :6; /*!< PLL M Coefficient */ + uint32_t :2; /*!< RESERVED */ + uint32_t N :6; /*!< PLL N Coefficient */ + uint32_t :2; /*!< RESERVED */ + uint32_t OD :2; /*!< PLL OD Coefficient */ + uint32_t :2; /*!< RESERVED */ + uint32_t REFSRC :1; /*!< PLL Reference source select bit */ + uint32_t :3; /*!< RESERVED */ + uint32_t BYPASS :1; /*!< PLL Bypass enable */ + uint32_t :1; /*!< RESERVED */ + uint32_t OUTEN :1; /*!< Enable PLL out */ + uint32_t :1; /*!< RESERVED */ + uint32_t LOCK :1; /*!< PLL status lock */ +} _RCU_PLLCFG_bits; + +/* Bit field positions: */ +#define RCU_PLLCFG_M_Pos 0 /*!< PLL M Coefficient */ +#define RCU_PLLCFG_N_Pos 8 /*!< PLL N Coefficient */ +#define RCU_PLLCFG_OD_Pos 16 /*!< PLL OD Coefficient */ +#define RCU_PLLCFG_REFSRC_Pos 20 /*!< PLL Reference source select bit */ +#define RCU_PLLCFG_BYPASS_Pos 24 /*!< PLL Bypass enable */ +#define RCU_PLLCFG_OUTEN_Pos 26 /*!< Enable PLL out */ +#define RCU_PLLCFG_LOCK_Pos 28 /*!< PLL status lock */ + +/* Bit field masks: */ +#define RCU_PLLCFG_M_Msk 0x0000003FUL /*!< PLL M Coefficient */ +#define RCU_PLLCFG_N_Msk 0x00003F00UL /*!< PLL N Coefficient */ +#define RCU_PLLCFG_OD_Msk 0x00030000UL /*!< PLL OD Coefficient */ +#define RCU_PLLCFG_REFSRC_Msk 0x00100000UL /*!< PLL Reference source select bit */ +#define RCU_PLLCFG_BYPASS_Msk 0x01000000UL /*!< PLL Bypass enable */ +#define RCU_PLLCFG_OUTEN_Msk 0x04000000UL /*!< Enable PLL out */ +#define RCU_PLLCFG_LOCK_Msk 0x10000000UL /*!< PLL status lock */ + +/* Bit field enums: */ +typedef enum { + RCU_PLLCFG_OD_Disable = 0x0UL, /*!< disabled */ + RCU_PLLCFG_OD_Div2 = 0x1UL, /*!< divide by 2 */ + RCU_PLLCFG_OD_Div4 = 0x2UL, /*!< divide by 4 */ + RCU_PLLCFG_OD_Div8 = 0x3UL, /*!< divide by 8 */ +} RCU_PLLCFG_OD_Enum; + +typedef enum { + RCU_PLLCFG_REFSRC_OSECLK = 0x0UL, /*!< external oscillator */ + RCU_PLLCFG_REFSRC_OSICLK = 0x1UL, /*!< internal oscillator */ +} RCU_PLLCFG_REFSRC_Enum; + +/*-- PLLDIV: PLL divider register ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t DIVEN :1; /*!< PLL Divider enable bit */ + uint32_t :7; /*!< RESERVED */ + uint32_t DIV :6; /*!< PLL divider coefficent */ +} _RCU_PLLDIV_bits; + +/* Bit field positions: */ +#define RCU_PLLDIV_DIVEN_Pos 0 /*!< PLL Divider enable bit */ +#define RCU_PLLDIV_DIV_Pos 8 /*!< PLL divider coefficent */ + +/* Bit field masks: */ +#define RCU_PLLDIV_DIVEN_Msk 0x00000001UL /*!< PLL Divider enable bit */ +#define RCU_PLLDIV_DIV_Msk 0x00003F00UL /*!< PLL divider coefficent */ + +/*-- SYSCLKCFG: System clock configuration register ----------------------------------------------------------*/ +typedef struct { + uint32_t SYSSEL :2; /*!< System clock source selection */ + uint32_t :14; /*!< RESERVED */ + uint32_t SECEN :1; /*!< Enable clock security system */ +} _RCU_SYSCLKCFG_bits; + +/* Bit field positions: */ +#define RCU_SYSCLKCFG_SYSSEL_Pos 0 /*!< System clock source selection */ +#define RCU_SYSCLKCFG_SECEN_Pos 16 /*!< Enable clock security system */ + +/* Bit field masks: */ +#define RCU_SYSCLKCFG_SYSSEL_Msk 0x00000003UL /*!< System clock source selection */ +#define RCU_SYSCLKCFG_SECEN_Msk 0x00010000UL /*!< Enable clock security system */ + +/* Bit field enums: */ +typedef enum { + RCU_SYSCLKCFG_SYSSEL_OSICLK = 0x0UL, /*!< internal oscillator */ + RCU_SYSCLKCFG_SYSSEL_OSECLK = 0x1UL, /*!< external oscillator */ + RCU_SYSCLKCFG_SYSSEL_PLLCLK = 0x2UL, /*!< PLL output clock */ + RCU_SYSCLKCFG_SYSSEL_PLLDIVCLK = 0x3UL, /*!< PLL divided clock */ +} RCU_SYSCLKCFG_SYSSEL_Enum; + +/*-- SYSCLKSTAT: System clock status register ----------------------------------------------------------------*/ +typedef struct { + uint32_t SYSSTAT :2; /*!< Current system source clock */ + uint32_t :2; /*!< RESERVED */ + uint32_t BUSY :1; /*!< Clock manager is busy, for example, when change clock source */ + uint32_t :3; /*!< RESERVED */ + uint32_t SYSFAIL :1; /*!< Error in current clock was detected */ + uint32_t :8; /*!< RESERVED */ + uint32_t OSECLKERR :1; /*!< External oscillator clock fail */ + uint32_t PLLCLKERR :1; /*!< PLL source clock fail */ + uint32_t PLLDIVCLKERR :1; /*!< PLL divided clock fail */ + uint32_t :5; /*!< RESERVED */ + uint32_t OSECLKOK :1; /*!< External oscillator clock good */ + uint32_t PLLCLKOK :1; /*!< PLL clock good */ + uint32_t PLLDIVCLKOK :1; /*!< PLL divided clock good */ +} _RCU_SYSCLKSTAT_bits; + +/* Bit field positions: */ +#define RCU_SYSCLKSTAT_SYSSTAT_Pos 0 /*!< Current system source clock */ +#define RCU_SYSCLKSTAT_BUSY_Pos 4 /*!< Clock manager is busy, for example, when change clock source */ +#define RCU_SYSCLKSTAT_SYSFAIL_Pos 8 /*!< Error in current clock was detected */ +#define RCU_SYSCLKSTAT_OSECLKERR_Pos 17 /*!< External oscillator clock fail */ +#define RCU_SYSCLKSTAT_PLLCLKERR_Pos 18 /*!< PLL source clock fail */ +#define RCU_SYSCLKSTAT_PLLDIVCLKERR_Pos 19 /*!< PLL divided clock fail */ +#define RCU_SYSCLKSTAT_OSECLKOK_Pos 25 /*!< External oscillator clock good */ +#define RCU_SYSCLKSTAT_PLLCLKOK_Pos 26 /*!< PLL clock good */ +#define RCU_SYSCLKSTAT_PLLDIVCLKOK_Pos 27 /*!< PLL divided clock good */ + +/* Bit field masks: */ +#define RCU_SYSCLKSTAT_SYSSTAT_Msk 0x00000003UL /*!< Current system source clock */ +#define RCU_SYSCLKSTAT_BUSY_Msk 0x00000010UL /*!< Clock manager is busy, for example, when change clock source */ +#define RCU_SYSCLKSTAT_SYSFAIL_Msk 0x00000100UL /*!< Error in current clock was detected */ +#define RCU_SYSCLKSTAT_OSECLKERR_Msk 0x00020000UL /*!< External oscillator clock fail */ +#define RCU_SYSCLKSTAT_PLLCLKERR_Msk 0x00040000UL /*!< PLL source clock fail */ +#define RCU_SYSCLKSTAT_PLLDIVCLKERR_Msk 0x00080000UL /*!< PLL divided clock fail */ +#define RCU_SYSCLKSTAT_OSECLKOK_Msk 0x02000000UL /*!< External oscillator clock good */ +#define RCU_SYSCLKSTAT_PLLCLKOK_Msk 0x04000000UL /*!< PLL clock good */ +#define RCU_SYSCLKSTAT_PLLDIVCLKOK_Msk 0x08000000UL /*!< PLL divided clock good */ + +/* Bit field enums: */ +typedef enum { + RCU_SYSCLKSTAT_SYSSTAT_OSICLK = 0x0UL, /*!< internal oscillator */ + RCU_SYSCLKSTAT_SYSSTAT_OSECLK = 0x1UL, /*!< external oscillator */ + RCU_SYSCLKSTAT_SYSSTAT_PLLCLK = 0x2UL, /*!< PLL output clock */ + RCU_SYSCLKSTAT_SYSSTAT_PLLDIVCLK = 0x3UL, /*!< PLL divided clock */ +} RCU_SYSCLKSTAT_SYSSTAT_Enum; + +/*-- SECPRD: Security sysytem clock period register ----------------------------------------------------------*/ +typedef struct { + uint32_t :8; /*!< RESERVED */ + uint32_t OSECLK :8; /*!< Max counter value for external oscillator clock fail detection */ + uint32_t PLLCLK :8; /*!< Max counter value for PLL clock fail detection */ + uint32_t PLLDIVCLK :8; /*!< Max counter value for PLL clock fail detection */ +} _RCU_SECPRD_bits; + +/* Bit field positions: */ +#define RCU_SECPRD_OSECLK_Pos 8 /*!< Max counter value for external oscillator clock fail detection */ +#define RCU_SECPRD_PLLCLK_Pos 16 /*!< Max counter value for PLL clock fail detection */ +#define RCU_SECPRD_PLLDIVCLK_Pos 24 /*!< Max counter value for PLL clock fail detection */ + +/* Bit field masks: */ +#define RCU_SECPRD_OSECLK_Msk 0x0000FF00UL /*!< Max counter value for external oscillator clock fail detection */ +#define RCU_SECPRD_PLLCLK_Msk 0x00FF0000UL /*!< Max counter value for PLL clock fail detection */ +#define RCU_SECPRD_PLLDIVCLK_Msk 0xFF000000UL /*!< Max counter value for PLL clock fail detection */ + +/*-- SYSRSTCFG: System reset configuration register ----------------------------------------------------------*/ +typedef struct { + uint32_t LOCKUPEN :1; /*!< Enable reset when processor in LOCKUP state */ +} _RCU_SYSRSTCFG_bits; + +/* Bit field positions: */ +#define RCU_SYSRSTCFG_LOCKUPEN_Pos 0 /*!< Enable reset when processor in LOCKUP state */ + +/* Bit field masks: */ +#define RCU_SYSRSTCFG_LOCKUPEN_Msk 0x00000001UL /*!< Enable reset when processor in LOCKUP state */ + +/*-- SYSRSTSTAT: Reset status register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t POR :1; /*!< PowerOn Reset status */ + uint32_t WDOG :1; /*!< WatchDog Reset status */ + uint32_t SYSRST :1; /*!< System Reset Status */ + uint32_t LOCKUP :1; /*!< Lockup Reset Status */ +} _RCU_SYSRSTSTAT_bits; + +/* Bit field positions: */ +#define RCU_SYSRSTSTAT_POR_Pos 0 /*!< PowerOn Reset status */ +#define RCU_SYSRSTSTAT_WDOG_Pos 1 /*!< WatchDog Reset status */ +#define RCU_SYSRSTSTAT_SYSRST_Pos 2 /*!< System Reset Status */ +#define RCU_SYSRSTSTAT_LOCKUP_Pos 3 /*!< Lockup Reset Status */ + +/* Bit field masks: */ +#define RCU_SYSRSTSTAT_POR_Msk 0x00000001UL /*!< PowerOn Reset status */ +#define RCU_SYSRSTSTAT_WDOG_Msk 0x00000002UL /*!< WatchDog Reset status */ +#define RCU_SYSRSTSTAT_SYSRST_Msk 0x00000004UL /*!< System Reset Status */ +#define RCU_SYSRSTSTAT_LOCKUP_Msk 0x00000008UL /*!< Lockup Reset Status */ + +/*-- INTEN: Interrupt enable register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t OSECLKERR :1; /*!< Enable OSECLK fail interrupt */ + uint32_t PLLCLKERR :1; /*!< Enable PLLCLK fail interrupt */ + uint32_t PLLDIVCLKERR :1; /*!< Enable PLLDIVCLK fail interrupt */ + uint32_t :5; /*!< RESERVED */ + uint32_t OSECLKOK :1; /*!< Enable OSECLK good interrupt */ + uint32_t PLLCLKOK :1; /*!< Enable PLLCLK good interrupt */ + uint32_t PLLDIVCLKOK :1; /*!< Enable PLLDIVCLK good interrupt */ + uint32_t :4; /*!< RESERVED */ + uint32_t PLLLOCK :1; /*!< Enable int from pll lock signal */ +} _RCU_INTEN_bits; + +/* Bit field positions: */ +#define RCU_INTEN_OSECLKERR_Pos 1 /*!< Enable OSECLK fail interrupt */ +#define RCU_INTEN_PLLCLKERR_Pos 2 /*!< Enable PLLCLK fail interrupt */ +#define RCU_INTEN_PLLDIVCLKERR_Pos 3 /*!< Enable PLLDIVCLK fail interrupt */ +#define RCU_INTEN_OSECLKOK_Pos 9 /*!< Enable OSECLK good interrupt */ +#define RCU_INTEN_PLLCLKOK_Pos 10 /*!< Enable PLLCLK good interrupt */ +#define RCU_INTEN_PLLDIVCLKOK_Pos 11 /*!< Enable PLLDIVCLK good interrupt */ +#define RCU_INTEN_PLLLOCK_Pos 16 /*!< Enable int from pll lock signal */ + +/* Bit field masks: */ +#define RCU_INTEN_OSECLKERR_Msk 0x00000002UL /*!< Enable OSECLK fail interrupt */ +#define RCU_INTEN_PLLCLKERR_Msk 0x00000004UL /*!< Enable PLLCLK fail interrupt */ +#define RCU_INTEN_PLLDIVCLKERR_Msk 0x00000008UL /*!< Enable PLLDIVCLK fail interrupt */ +#define RCU_INTEN_OSECLKOK_Msk 0x00000200UL /*!< Enable OSECLK good interrupt */ +#define RCU_INTEN_PLLCLKOK_Msk 0x00000400UL /*!< Enable PLLCLK good interrupt */ +#define RCU_INTEN_PLLDIVCLKOK_Msk 0x00000800UL /*!< Enable PLLDIVCLK good interrupt */ +#define RCU_INTEN_PLLLOCK_Msk 0x00010000UL /*!< Enable int from pll lock signal */ + +/*-- INTSTAT: Interrupt status register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t OSECLKERR :1; /*!< Status external oscillator clock fail signal */ + uint32_t PLLCLKERR :1; /*!< Status PLL clock fail signal */ + uint32_t PLLDIVCLKERR :1; /*!< Status PLLDIV clock fail signal */ + uint32_t :5; /*!< RESERVED */ + uint32_t OSECLKOK :1; /*!< Status external oscillator clock good signal */ + uint32_t PLLCLKOK :1; /*!< Status PLL clock good signal */ + uint32_t PLLDIVCLKOK :1; /*!< Status PLLDIV clock good signal */ + uint32_t :4; /*!< RESERVED */ + uint32_t PLLLOCK :1; /*!< Status pll lock signal */ + uint32_t :3; /*!< RESERVED */ + uint32_t SYSFAIL :1; /*!< Current clock failed status */ +} _RCU_INTSTAT_bits; + +/* Bit field positions: */ +#define RCU_INTSTAT_OSECLKERR_Pos 1 /*!< Status external oscillator clock fail signal */ +#define RCU_INTSTAT_PLLCLKERR_Pos 2 /*!< Status PLL clock fail signal */ +#define RCU_INTSTAT_PLLDIVCLKERR_Pos 3 /*!< Status PLLDIV clock fail signal */ +#define RCU_INTSTAT_OSECLKOK_Pos 9 /*!< Status external oscillator clock good signal */ +#define RCU_INTSTAT_PLLCLKOK_Pos 10 /*!< Status PLL clock good signal */ +#define RCU_INTSTAT_PLLDIVCLKOK_Pos 11 /*!< Status PLLDIV clock good signal */ +#define RCU_INTSTAT_PLLLOCK_Pos 16 /*!< Status pll lock signal */ +#define RCU_INTSTAT_SYSFAIL_Pos 20 /*!< Current clock failed status */ + +/* Bit field masks: */ +#define RCU_INTSTAT_OSECLKERR_Msk 0x00000002UL /*!< Status external oscillator clock fail signal */ +#define RCU_INTSTAT_PLLCLKERR_Msk 0x00000004UL /*!< Status PLL clock fail signal */ +#define RCU_INTSTAT_PLLDIVCLKERR_Msk 0x00000008UL /*!< Status PLLDIV clock fail signal */ +#define RCU_INTSTAT_OSECLKOK_Msk 0x00000200UL /*!< Status external oscillator clock good signal */ +#define RCU_INTSTAT_PLLCLKOK_Msk 0x00000400UL /*!< Status PLL clock good signal */ +#define RCU_INTSTAT_PLLDIVCLKOK_Msk 0x00000800UL /*!< Status PLLDIV clock good signal */ +#define RCU_INTSTAT_PLLLOCK_Msk 0x00010000UL /*!< Status pll lock signal */ +#define RCU_INTSTAT_SYSFAIL_Msk 0x00100000UL /*!< Current clock failed status */ + +/*-- TRACECFG: Trace clock configuration register ------------------------------------------------------------*/ +typedef struct { + uint32_t CLKEN :1; /*!< Clock enable */ + uint32_t :7; /*!< RESERVED */ + uint32_t CLKSEL :2; /*!< Clock source select */ + uint32_t :6; /*!< RESERVED */ + uint32_t DIVEN :1; /*!< Enable divider */ + uint32_t :7; /*!< RESERVED */ + uint32_t DIVN :6; /*!< Divider coefficient */ +} _RCU_TRACECFG_bits; + +/* Bit field positions: */ +#define RCU_TRACECFG_CLKEN_Pos 0 /*!< Clock enable */ +#define RCU_TRACECFG_CLKSEL_Pos 8 /*!< Clock source select */ +#define RCU_TRACECFG_DIVEN_Pos 16 /*!< Enable divider */ +#define RCU_TRACECFG_DIVN_Pos 24 /*!< Divider coefficient */ + +/* Bit field masks: */ +#define RCU_TRACECFG_CLKEN_Msk 0x00000001UL /*!< Clock enable */ +#define RCU_TRACECFG_CLKSEL_Msk 0x00000300UL /*!< Clock source select */ +#define RCU_TRACECFG_DIVEN_Msk 0x00010000UL /*!< Enable divider */ +#define RCU_TRACECFG_DIVN_Msk 0x3F000000UL /*!< Divider coefficient */ + +/* Bit field enums: */ +typedef enum { + RCU_TRACECFG_CLKSEL_OSICLK = 0x0UL, /*!< internal oscillator */ + RCU_TRACECFG_CLKSEL_OSECLK = 0x1UL, /*!< external oscillator */ + RCU_TRACECFG_CLKSEL_PLLCLK = 0x2UL, /*!< PLL output clock */ + RCU_TRACECFG_CLKSEL_PLLDIVCLK = 0x3UL, /*!< PLL divided clock */ +} RCU_TRACECFG_CLKSEL_Enum; + +/*-- CLKOUTCFG: Clockout configuration register --------------------------------------------------------------*/ +typedef struct { + uint32_t CLKEN :1; /*!< Clock enable */ + uint32_t :7; /*!< RESERVED */ + uint32_t CLKSEL :2; /*!< Clock source select */ + uint32_t :6; /*!< RESERVED */ + uint32_t DIVEN :1; /*!< Enable divider */ + uint32_t :7; /*!< RESERVED */ + uint32_t DIVN :3; /*!< Divider coefficient */ +} _RCU_CLKOUTCFG_bits; + +/* Bit field positions: */ +#define RCU_CLKOUTCFG_CLKEN_Pos 0 /*!< Clock enable */ +#define RCU_CLKOUTCFG_CLKSEL_Pos 8 /*!< Clock source select */ +#define RCU_CLKOUTCFG_DIVEN_Pos 16 /*!< Enable divider */ +#define RCU_CLKOUTCFG_DIVN_Pos 24 /*!< Divider coefficient */ + +/* Bit field masks: */ +#define RCU_CLKOUTCFG_CLKEN_Msk 0x00000001UL /*!< Clock enable */ +#define RCU_CLKOUTCFG_CLKSEL_Msk 0x00000300UL /*!< Clock source select */ +#define RCU_CLKOUTCFG_DIVEN_Msk 0x00010000UL /*!< Enable divider */ +#define RCU_CLKOUTCFG_DIVN_Msk 0x07000000UL /*!< Divider coefficient */ + +/* Bit field enums: */ +typedef enum { + RCU_CLKOUTCFG_CLKSEL_OSICLK = 0x0UL, /*!< internal oscillator */ + RCU_CLKOUTCFG_CLKSEL_OSECLK = 0x1UL, /*!< external oscillator */ + RCU_CLKOUTCFG_CLKSEL_PLLCLK = 0x2UL, /*!< PLL output clock */ + RCU_CLKOUTCFG_CLKSEL_PLLDIVCLK = 0x3UL, /*!< PLL divided clock */ +} RCU_CLKOUTCFG_CLKSEL_Enum; + +/*-- WDTCFG: WatchDog configuration register -----------------------------------------------------------------*/ +typedef struct { + uint32_t CLKEN :1; /*!< Clock enable */ + uint32_t :3; /*!< RESERVED */ + uint32_t RSTDIS :1; /*!< Reset disable */ + uint32_t :3; /*!< RESERVED */ + uint32_t CLKSEL :2; /*!< Clock source select */ + uint32_t :6; /*!< RESERVED */ + uint32_t DIVEN :1; /*!< Enable divider */ + uint32_t :7; /*!< RESERVED */ + uint32_t DIVN :6; /*!< Divider coefficient */ +} _RCU_WDTCFG_bits; + +/* Bit field positions: */ +#define RCU_WDTCFG_CLKEN_Pos 0 /*!< Clock enable */ +#define RCU_WDTCFG_RSTDIS_Pos 4 /*!< Reset disable */ +#define RCU_WDTCFG_CLKSEL_Pos 8 /*!< Clock source select */ +#define RCU_WDTCFG_DIVEN_Pos 16 /*!< Enable divider */ +#define RCU_WDTCFG_DIVN_Pos 24 /*!< Divider coefficient */ + +/* Bit field masks: */ +#define RCU_WDTCFG_CLKEN_Msk 0x00000001UL /*!< Clock enable */ +#define RCU_WDTCFG_RSTDIS_Msk 0x00000010UL /*!< Reset disable */ +#define RCU_WDTCFG_CLKSEL_Msk 0x00000300UL /*!< Clock source select */ +#define RCU_WDTCFG_DIVEN_Msk 0x00010000UL /*!< Enable divider */ +#define RCU_WDTCFG_DIVN_Msk 0x3F000000UL /*!< Divider coefficient */ + +/* Bit field enums: */ +typedef enum { + RCU_WDTCFG_CLKSEL_OSICLK = 0x0UL, /*!< internal oscillator */ + RCU_WDTCFG_CLKSEL_OSECLK = 0x1UL, /*!< external oscillator */ + RCU_WDTCFG_CLKSEL_PLLCLK = 0x2UL, /*!< PLL output clock */ + RCU_WDTCFG_CLKSEL_PLLDIVCLK = 0x3UL, /*!< PLL divided clock */ +} RCU_WDTCFG_CLKSEL_Enum; + +/*-- UARTCFG: UARTCFG: UART clock and reset configuration register --------------------------------------------*/ +typedef struct { + uint32_t CLKEN :1; /*!< Clock enable */ + uint32_t :3; /*!< RESERVED */ + uint32_t RSTDIS :1; /*!< Reset disable */ + uint32_t :3; /*!< RESERVED */ + uint32_t CLKSEL :2; /*!< Clock source select */ + uint32_t :6; /*!< RESERVED */ + uint32_t DIVEN :1; /*!< Enable divider */ + uint32_t :7; /*!< RESERVED */ + uint32_t DIVN :6; /*!< Divider coefficient */ +} _RCU_UARTCFG_UARTCFG_bits; + +/* Bit field positions: */ +#define RCU_UARTCFG_UARTCFG_CLKEN_Pos 0 /*!< Clock enable */ +#define RCU_UARTCFG_UARTCFG_RSTDIS_Pos 4 /*!< Reset disable */ +#define RCU_UARTCFG_UARTCFG_CLKSEL_Pos 8 /*!< Clock source select */ +#define RCU_UARTCFG_UARTCFG_DIVEN_Pos 16 /*!< Enable divider */ +#define RCU_UARTCFG_UARTCFG_DIVN_Pos 24 /*!< Divider coefficient */ + +/* Bit field masks: */ +#define RCU_UARTCFG_UARTCFG_CLKEN_Msk 0x00000001UL /*!< Clock enable */ +#define RCU_UARTCFG_UARTCFG_RSTDIS_Msk 0x00000010UL /*!< Reset disable */ +#define RCU_UARTCFG_UARTCFG_CLKSEL_Msk 0x00000300UL /*!< Clock source select */ +#define RCU_UARTCFG_UARTCFG_DIVEN_Msk 0x00010000UL /*!< Enable divider */ +#define RCU_UARTCFG_UARTCFG_DIVN_Msk 0x3F000000UL /*!< Divider coefficient */ + +/* Bit field enums: */ +typedef enum { + RCU_UARTCFG_UARTCFG_CLKSEL_OSECLK = 0x0UL, /*!< external oscillator */ + RCU_UARTCFG_UARTCFG_CLKSEL_PLLCLK = 0x1UL, /*!< PLL output clock */ + RCU_UARTCFG_UARTCFG_CLKSEL_PLLDIVCLK = 0x2UL, /*!< PLL divided clock */ + RCU_UARTCFG_UARTCFG_CLKSEL_OSICLK = 0x3UL, /*!< internal oscillator */ +} RCU_UARTCFG_UARTCFG_CLKSEL_Enum; + +/*-- SPICFG: SPI clock and reset configuration register ------------------------------------------------------*/ +typedef struct { + uint32_t CLKEN :1; /*!< Clock enable */ + uint32_t :3; /*!< RESERVED */ + uint32_t RSTDIS :1; /*!< Reset disable */ + uint32_t :3; /*!< RESERVED */ + uint32_t CLKSEL :2; /*!< Clock source select */ + uint32_t :6; /*!< RESERVED */ + uint32_t DIVEN :1; /*!< Enable divider */ + uint32_t :7; /*!< RESERVED */ + uint32_t DIVN :6; /*!< Divider coefficient */ +} _RCU_SPICFG_bits; + +/* Bit field positions: */ +#define RCU_SPICFG_CLKEN_Pos 0 /*!< Clock enable */ +#define RCU_SPICFG_RSTDIS_Pos 4 /*!< Reset disable */ +#define RCU_SPICFG_CLKSEL_Pos 8 /*!< Clock source select */ +#define RCU_SPICFG_DIVEN_Pos 16 /*!< Enable divider */ +#define RCU_SPICFG_DIVN_Pos 24 /*!< Divider coefficient */ + +/* Bit field masks: */ +#define RCU_SPICFG_CLKEN_Msk 0x00000001UL /*!< Clock enable */ +#define RCU_SPICFG_RSTDIS_Msk 0x00000010UL /*!< Reset disable */ +#define RCU_SPICFG_CLKSEL_Msk 0x00000300UL /*!< Clock source select */ +#define RCU_SPICFG_DIVEN_Msk 0x00010000UL /*!< Enable divider */ +#define RCU_SPICFG_DIVN_Msk 0x3F000000UL /*!< Divider coefficient */ + +/* Bit field enums: */ +typedef enum { + RCU_SPICFG_CLKSEL_OSECLK = 0x0UL, /*!< external oscillator */ + RCU_SPICFG_CLKSEL_PLLCLK = 0x1UL, /*!< PLL output clock */ + RCU_SPICFG_CLKSEL_PLLDIVCLK = 0x2UL, /*!< PLL divided clock */ + RCU_SPICFG_CLKSEL_OSICLK = 0x3UL, /*!< internal oscillator */ +} RCU_SPICFG_CLKSEL_Enum; + +/*-- ADCCFG: ADC clock and reset configuration register ------------------------------------------------------*/ +typedef struct { + uint32_t CLKEN :1; /*!< Clock enable */ + uint32_t :3; /*!< RESERVED */ + uint32_t RSTDIS :1; /*!< Reset disable */ + uint32_t :3; /*!< RESERVED */ + uint32_t CLKSEL :2; /*!< Clock source select */ + uint32_t :6; /*!< RESERVED */ + uint32_t DIVEN :1; /*!< Enable divider */ + uint32_t :7; /*!< RESERVED */ + uint32_t DIVN :6; /*!< Divider coefficient */ +} _RCU_ADCCFG_bits; + +/* Bit field positions: */ +#define RCU_ADCCFG_CLKEN_Pos 0 /*!< Clock enable */ +#define RCU_ADCCFG_RSTDIS_Pos 4 /*!< Reset disable */ +#define RCU_ADCCFG_CLKSEL_Pos 8 /*!< Clock source select */ +#define RCU_ADCCFG_DIVEN_Pos 16 /*!< Enable divider */ +#define RCU_ADCCFG_DIVN_Pos 24 /*!< Divider coefficient */ + +/* Bit field masks: */ +#define RCU_ADCCFG_CLKEN_Msk 0x00000001UL /*!< Clock enable */ +#define RCU_ADCCFG_RSTDIS_Msk 0x00000010UL /*!< Reset disable */ +#define RCU_ADCCFG_CLKSEL_Msk 0x00000300UL /*!< Clock source select */ +#define RCU_ADCCFG_DIVEN_Msk 0x00010000UL /*!< Enable divider */ +#define RCU_ADCCFG_DIVN_Msk 0x3F000000UL /*!< Divider coefficient */ + +/* Bit field enums: */ +typedef enum { + RCU_ADCCFG_CLKSEL_OSECLK = 0x0UL, /*!< external oscillator */ + RCU_ADCCFG_CLKSEL_PLLCLK = 0x1UL, /*!< PLL output clock */ + RCU_ADCCFG_CLKSEL_PLLDIVCLK = 0x2UL, /*!< PLL divided clock */ + RCU_ADCCFG_CLKSEL_OSICLK = 0x3UL, /*!< internal oscillator */ +} RCU_ADCCFG_CLKSEL_Enum; + +/*-- PCLKCFG: APB clock configuration register ---------------------------------------------------------------*/ +typedef struct { + uint32_t TMR0EN :1; /*!< Enable clock for TMR0 */ + uint32_t TMR1EN :1; /*!< Enable clock for TMR1 */ + uint32_t TMR2EN :1; /*!< Enable clock for TMR2 */ + uint32_t TMR3EN :1; /*!< Enable clock for TMR3 */ + uint32_t PWM0EN :1; /*!< Enable clock for PWM0 */ + uint32_t PWM1EN :1; /*!< Enable clock for PWM1 */ + uint32_t PWM2EN :1; /*!< Enable clock for PWM2 */ + uint32_t I2CEN :1; /*!< Enable clock for I2C */ + uint32_t QEPEN :1; /*!< Enable clock for QEP */ + uint32_t ECAP0EN :1; /*!< Enable clock for ECAP0 */ + uint32_t ECAP1EN :1; /*!< Enable clock for ECAP1 */ + uint32_t ECAP2EN :1; /*!< Enable clock for ECAP2 */ +} _RCU_PCLKCFG_bits; + +/* Bit field positions: */ +#define RCU_PCLKCFG_TMR0EN_Pos 0 /*!< Enable clock for TMR0 */ +#define RCU_PCLKCFG_TMR1EN_Pos 1 /*!< Enable clock for TMR1 */ +#define RCU_PCLKCFG_TMR2EN_Pos 2 /*!< Enable clock for TMR2 */ +#define RCU_PCLKCFG_TMR3EN_Pos 3 /*!< Enable clock for TMR3 */ +#define RCU_PCLKCFG_PWM0EN_Pos 4 /*!< Enable clock for PWM0 */ +#define RCU_PCLKCFG_PWM1EN_Pos 5 /*!< Enable clock for PWM1 */ +#define RCU_PCLKCFG_PWM2EN_Pos 6 /*!< Enable clock for PWM2 */ +#define RCU_PCLKCFG_I2CEN_Pos 7 /*!< Enable clock for I2C */ +#define RCU_PCLKCFG_QEPEN_Pos 8 /*!< Enable clock for QEP */ +#define RCU_PCLKCFG_ECAP0EN_Pos 9 /*!< Enable clock for ECAP0 */ +#define RCU_PCLKCFG_ECAP1EN_Pos 10 /*!< Enable clock for ECAP1 */ +#define RCU_PCLKCFG_ECAP2EN_Pos 11 /*!< Enable clock for ECAP2 */ + +/* Bit field masks: */ +#define RCU_PCLKCFG_TMR0EN_Msk 0x00000001UL /*!< Enable clock for TMR0 */ +#define RCU_PCLKCFG_TMR1EN_Msk 0x00000002UL /*!< Enable clock for TMR1 */ +#define RCU_PCLKCFG_TMR2EN_Msk 0x00000004UL /*!< Enable clock for TMR2 */ +#define RCU_PCLKCFG_TMR3EN_Msk 0x00000008UL /*!< Enable clock for TMR3 */ +#define RCU_PCLKCFG_PWM0EN_Msk 0x00000010UL /*!< Enable clock for PWM0 */ +#define RCU_PCLKCFG_PWM1EN_Msk 0x00000020UL /*!< Enable clock for PWM1 */ +#define RCU_PCLKCFG_PWM2EN_Msk 0x00000040UL /*!< Enable clock for PWM2 */ +#define RCU_PCLKCFG_I2CEN_Msk 0x00000080UL /*!< Enable clock for I2C */ +#define RCU_PCLKCFG_QEPEN_Msk 0x00000100UL /*!< Enable clock for QEP */ +#define RCU_PCLKCFG_ECAP0EN_Msk 0x00000200UL /*!< Enable clock for ECAP0 */ +#define RCU_PCLKCFG_ECAP1EN_Msk 0x00000400UL /*!< Enable clock for ECAP1 */ +#define RCU_PCLKCFG_ECAP2EN_Msk 0x00000800UL /*!< Enable clock for ECAP2 */ + +/*-- PRSTCFG: APB reset configuration register ---------------------------------------------------------------*/ +typedef struct { + uint32_t TMR0EN :1; /*!< Disable reset from TMR0 */ + uint32_t TMR1EN :1; /*!< Disable reset from TMR1 */ + uint32_t TMR2EN :1; /*!< Disable reset from TMR2 */ + uint32_t TMR3EN :1; /*!< Disable reset from TMR3 */ + uint32_t PWM0EN :1; /*!< Disable reset from PWM0 */ + uint32_t PWM1EN :1; /*!< Disable reset from PWM1 */ + uint32_t PWM2EN :1; /*!< Disable reset from PWM2 */ + uint32_t I2CEN :1; /*!< Disable reset from I2C */ + uint32_t QEPEN :1; /*!< Disable reset from QEP */ + uint32_t ECAP0EN :1; /*!< Disable reset from ECAP0 */ + uint32_t ECAP1EN :1; /*!< Disable reset from ECAP1 */ + uint32_t ECAP2EN :1; /*!< Disable reset from ECAP2 */ +} _RCU_PRSTCFG_bits; + +/* Bit field positions: */ +#define RCU_PRSTCFG_TMR0EN_Pos 0 /*!< Disable reset from TMR0 */ +#define RCU_PRSTCFG_TMR1EN_Pos 1 /*!< Disable reset from TMR1 */ +#define RCU_PRSTCFG_TMR2EN_Pos 2 /*!< Disable reset from TMR2 */ +#define RCU_PRSTCFG_TMR3EN_Pos 3 /*!< Disable reset from TMR3 */ +#define RCU_PRSTCFG_PWM0EN_Pos 4 /*!< Disable reset from PWM0 */ +#define RCU_PRSTCFG_PWM1EN_Pos 5 /*!< Disable reset from PWM1 */ +#define RCU_PRSTCFG_PWM2EN_Pos 6 /*!< Disable reset from PWM2 */ +#define RCU_PRSTCFG_I2CEN_Pos 7 /*!< Disable reset from I2C */ +#define RCU_PRSTCFG_QEPEN_Pos 8 /*!< Disable reset from QEP */ +#define RCU_PRSTCFG_ECAP0EN_Pos 9 /*!< Disable reset from ECAP0 */ +#define RCU_PRSTCFG_ECAP1EN_Pos 10 /*!< Disable reset from ECAP1 */ +#define RCU_PRSTCFG_ECAP2EN_Pos 11 /*!< Disable reset from ECAP2 */ + +/* Bit field masks: */ +#define RCU_PRSTCFG_TMR0EN_Msk 0x00000001UL /*!< Disable reset from TMR0 */ +#define RCU_PRSTCFG_TMR1EN_Msk 0x00000002UL /*!< Disable reset from TMR1 */ +#define RCU_PRSTCFG_TMR2EN_Msk 0x00000004UL /*!< Disable reset from TMR2 */ +#define RCU_PRSTCFG_TMR3EN_Msk 0x00000008UL /*!< Disable reset from TMR3 */ +#define RCU_PRSTCFG_PWM0EN_Msk 0x00000010UL /*!< Disable reset from PWM0 */ +#define RCU_PRSTCFG_PWM1EN_Msk 0x00000020UL /*!< Disable reset from PWM1 */ +#define RCU_PRSTCFG_PWM2EN_Msk 0x00000040UL /*!< Disable reset from PWM2 */ +#define RCU_PRSTCFG_I2CEN_Msk 0x00000080UL /*!< Disable reset from I2C */ +#define RCU_PRSTCFG_QEPEN_Msk 0x00000100UL /*!< Disable reset from QEP */ +#define RCU_PRSTCFG_ECAP0EN_Msk 0x00000200UL /*!< Disable reset from ECAP0 */ +#define RCU_PRSTCFG_ECAP1EN_Msk 0x00000400UL /*!< Disable reset from ECAP1 */ +#define RCU_PRSTCFG_ECAP2EN_Msk 0x00000800UL /*!< Disable reset from ECAP2 */ + +/*-- HCLKCFG: AHB clock configuration register ---------------------------------------------------------------*/ +typedef struct { + uint32_t GPIOAEN :1; /*!< Enable clock for GPIOA port */ + uint32_t GPIOBEN :1; /*!< Enable clock for GPIOB port */ + uint32_t CANEN :1; /*!< Enable clock for CAN */ +} _RCU_HCLKCFG_bits; + +/* Bit field positions: */ +#define RCU_HCLKCFG_GPIOAEN_Pos 0 /*!< Enable clock for GPIOA port */ +#define RCU_HCLKCFG_GPIOBEN_Pos 1 /*!< Enable clock for GPIOB port */ +#define RCU_HCLKCFG_CANEN_Pos 2 /*!< Enable clock for CAN */ + +/* Bit field masks: */ +#define RCU_HCLKCFG_GPIOAEN_Msk 0x00000001UL /*!< Enable clock for GPIOA port */ +#define RCU_HCLKCFG_GPIOBEN_Msk 0x00000002UL /*!< Enable clock for GPIOB port */ +#define RCU_HCLKCFG_CANEN_Msk 0x00000004UL /*!< Enable clock for CAN */ + +/*-- HRSTCFG: AHB reset configuration register ---------------------------------------------------------------*/ +typedef struct { + uint32_t GPIOAEN :1; /*!< Disable reset from GPIOA port */ + uint32_t GPIOBEN :1; /*!< Disable reset from GPIOB port */ + uint32_t CANEN :1; /*!< Disable reset from CAN */ +} _RCU_HRSTCFG_bits; + +/* Bit field positions: */ +#define RCU_HRSTCFG_GPIOAEN_Pos 0 /*!< Disable reset from GPIOA port */ +#define RCU_HRSTCFG_GPIOBEN_Pos 1 /*!< Disable reset from GPIOB port */ +#define RCU_HRSTCFG_CANEN_Pos 2 /*!< Disable reset from CAN */ + +/* Bit field masks: */ +#define RCU_HRSTCFG_GPIOAEN_Msk 0x00000001UL /*!< Disable reset from GPIOA port */ +#define RCU_HRSTCFG_GPIOBEN_Msk 0x00000002UL /*!< Disable reset from GPIOB port */ +#define RCU_HRSTCFG_CANEN_Msk 0x00000004UL /*!< Disable reset from CAN */ + +//Cluster UARTCFG: +typedef struct { + union { + /*!< UART clock and reset configuration register */ + __IO uint32_t UARTCFG; /*!< UARTCFG : type used for word access */ + __IO _RCU_UARTCFG_UARTCFG_bits UARTCFG_bit; /*!< UARTCFG_bit: structure used for bit access */ + }; +} _RCU_UARTCFG_TypeDef; +typedef struct { + union { /*!< Internal oscillator configuration register */ + __IO uint32_t OSICFG; /*!< OSICFG : type used for word access */ + __IO _RCU_OSICFG_bits OSICFG_bit; /*!< OSICFG_bit: structure used for bit access */ + }; + union { /*!< External oscillator configuration register */ + __IO uint32_t OSECFG; /*!< OSECFG : type used for word access */ + __IO _RCU_OSECFG_bits OSECFG_bit; /*!< OSECFG_bit: structure used for bit access */ + }; + union { /*!< PLL configuration register */ + __IO uint32_t PLLCFG; /*!< PLLCFG : type used for word access */ + __IO _RCU_PLLCFG_bits PLLCFG_bit; /*!< PLLCFG_bit: structure used for bit access */ + }; + union { /*!< PLL divider register */ + __IO uint32_t PLLDIV; /*!< PLLDIV : type used for word access */ + __IO _RCU_PLLDIV_bits PLLDIV_bit; /*!< PLLDIV_bit: structure used for bit access */ + }; + union { /*!< System clock configuration register */ + __IO uint32_t SYSCLKCFG; /*!< SYSCLKCFG : type used for word access */ + __IO _RCU_SYSCLKCFG_bits SYSCLKCFG_bit; /*!< SYSCLKCFG_bit: structure used for bit access */ + }; + union { /*!< System clock status register */ + __I uint32_t SYSCLKSTAT; /*!< SYSCLKSTAT : type used for word access */ + __I _RCU_SYSCLKSTAT_bits SYSCLKSTAT_bit; /*!< SYSCLKSTAT_bit: structure used for bit access */ + }; + union { /*!< Security sysytem clock period register */ + __IO uint32_t SECPRD; /*!< SECPRD : type used for word access */ + __IO _RCU_SECPRD_bits SECPRD_bit; /*!< SECPRD_bit: structure used for bit access */ + }; + union { /*!< System reset configuration register */ + __IO uint32_t SYSRSTCFG; /*!< SYSRSTCFG : type used for word access */ + __IO _RCU_SYSRSTCFG_bits SYSRSTCFG_bit; /*!< SYSRSTCFG_bit: structure used for bit access */ + }; + union { /*!< Reset status register */ + __IO uint32_t SYSRSTSTAT; /*!< SYSRSTSTAT : type used for word access */ + __IO _RCU_SYSRSTSTAT_bits SYSRSTSTAT_bit; /*!< SYSRSTSTAT_bit: structure used for bit access */ + }; + union { /*!< Interrupt enable register */ + __IO uint32_t INTEN; /*!< INTEN : type used for word access */ + __IO _RCU_INTEN_bits INTEN_bit; /*!< INTEN_bit: structure used for bit access */ + }; + union { /*!< Interrupt status register */ + __IO uint32_t INTSTAT; /*!< INTSTAT : type used for word access */ + __IO _RCU_INTSTAT_bits INTSTAT_bit; /*!< INTSTAT_bit: structure used for bit access */ + }; + union { /*!< Trace clock configuration register */ + __IO uint32_t TRACECFG; /*!< TRACECFG : type used for word access */ + __IO _RCU_TRACECFG_bits TRACECFG_bit; /*!< TRACECFG_bit: structure used for bit access */ + }; + union { /*!< Clockout configuration register */ + __IO uint32_t CLKOUTCFG; /*!< CLKOUTCFG : type used for word access */ + __IO _RCU_CLKOUTCFG_bits CLKOUTCFG_bit; /*!< CLKOUTCFG_bit: structure used for bit access */ + }; + union { /*!< WatchDog configuration register */ + __IO uint32_t WDTCFG; /*!< WDTCFG : type used for word access */ + __IO _RCU_WDTCFG_bits WDTCFG_bit; /*!< WDTCFG_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[10]; + _RCU_UARTCFG_TypeDef UARTCFG[2]; + __IO uint32_t Reserved1[6]; + union { /*!< SPI clock and reset configuration register */ + __IO uint32_t SPICFG; /*!< SPICFG : type used for word access */ + __IO _RCU_SPICFG_bits SPICFG_bit; /*!< SPICFG_bit: structure used for bit access */ + }; + __IO uint32_t Reserved2[7]; + union { /*!< ADC clock and reset configuration register */ + __IO uint32_t ADCCFG; /*!< ADCCFG : type used for word access */ + __IO _RCU_ADCCFG_bits ADCCFG_bit; /*!< ADCCFG_bit: structure used for bit access */ + }; + __IO uint32_t Reserved3[15]; + union { /*!< APB clock configuration register */ + __IO uint32_t PCLKCFG; /*!< PCLKCFG : type used for word access */ + __IO _RCU_PCLKCFG_bits PCLKCFG_bit; /*!< PCLKCFG_bit: structure used for bit access */ + }; + __IO uint32_t Reserved4[3]; + union { /*!< APB reset configuration register */ + __IO uint32_t PRSTCFG; /*!< PRSTCFG : type used for word access */ + __IO _RCU_PRSTCFG_bits PRSTCFG_bit; /*!< PRSTCFG_bit: structure used for bit access */ + }; + __IO uint32_t Reserved5[3]; + union { /*!< AHB clock configuration register */ + __IO uint32_t HCLKCFG; /*!< HCLKCFG : type used for word access */ + __IO _RCU_HCLKCFG_bits HCLKCFG_bit; /*!< HCLKCFG_bit: structure used for bit access */ + }; + union { /*!< AHB reset configuration register */ + __IO uint32_t HRSTCFG; /*!< HRSTCFG : type used for word access */ + __IO _RCU_HRSTCFG_bits HRSTCFG_bit; /*!< HRSTCFG_bit: structure used for bit access */ + }; +} RCU_TypeDef; + + +/******************************************************************************/ +/* PMU registers */ +/******************************************************************************/ + +/*-- CFG: PMU Configuration Register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t EN :1; /*!< Enable PMU */ +} _PMU_CFG_bits; + +/* Bit field positions: */ +#define PMU_CFG_EN_Pos 0 /*!< Enable PMU */ + +/* Bit field masks: */ +#define PMU_CFG_EN_Msk 0x00000001UL /*!< Enable PMU */ + +/*-- PUDEL: PMU Powerup Delay Value --------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :16; /*!< Delay value for powerup peripheral blocks (in OSICLK ticks) */ +} _PMU_PUDEL_bits; + +/* Bit field positions: */ +#define PMU_PUDEL_VAL_Pos 0 /*!< Delay value for powerup peripheral blocks (in OSICLK ticks) */ + +/* Bit field masks: */ +#define PMU_PUDEL_VAL_Msk 0x0000FFFFUL /*!< Delay value for powerup peripheral blocks (in OSICLK ticks) */ + +/*-- PDEN: PMU Enable Powerdown for peripheral ---------------------------------------------------------------*/ +typedef struct { + uint32_t PLLPD :1; /*!< Enable powerdown for PLL */ + uint32_t MFLASHPD :1; /*!< Enable powerdown for MFLASH */ + uint32_t OSEPD :1; /*!< Enable powerdown for external oscillator */ +} _PMU_PDEN_bits; + +/* Bit field positions: */ +#define PMU_PDEN_PLLPD_Pos 0 /*!< Enable powerdown for PLL */ +#define PMU_PDEN_MFLASHPD_Pos 1 /*!< Enable powerdown for MFLASH */ +#define PMU_PDEN_OSEPD_Pos 2 /*!< Enable powerdown for external oscillator */ + +/* Bit field masks: */ +#define PMU_PDEN_PLLPD_Msk 0x00000001UL /*!< Enable powerdown for PLL */ +#define PMU_PDEN_MFLASHPD_Msk 0x00000002UL /*!< Enable powerdown for MFLASH */ +#define PMU_PDEN_OSEPD_Msk 0x00000004UL /*!< Enable powerdown for external oscillator */ + +/*-- RXEVEN: PMU RX Event generation enable register ---------------------------------------------------------*/ +typedef struct { + uint32_t GPIOAEV :1; /*!< Enable RX event from GPIOA pins */ + uint32_t GPIOBEV :1; /*!< Enable RX event from GPIOB pins */ +} _PMU_RXEVEN_bits; + +/* Bit field positions: */ +#define PMU_RXEVEN_GPIOAEV_Pos 0 /*!< Enable RX event from GPIOA pins */ +#define PMU_RXEVEN_GPIOBEV_Pos 1 /*!< Enable RX event from GPIOB pins */ + +/* Bit field masks: */ +#define PMU_RXEVEN_GPIOAEV_Msk 0x00000001UL /*!< Enable RX event from GPIOA pins */ +#define PMU_RXEVEN_GPIOBEV_Msk 0x00000002UL /*!< Enable RX event from GPIOB pins */ + +typedef struct { + union { /*!< PMU Configuration Register */ + __IO uint32_t CFG; /*!< CFG : type used for word access */ + __IO _PMU_CFG_bits CFG_bit; /*!< CFG_bit: structure used for bit access */ + }; + union { /*!< PMU Powerup Delay Value */ + __IO uint32_t PUDEL; /*!< PUDEL : type used for word access */ + __IO _PMU_PUDEL_bits PUDEL_bit; /*!< PUDEL_bit: structure used for bit access */ + }; + union { /*!< PMU Enable Powerdown for peripheral */ + __IO uint32_t PDEN; /*!< PDEN : type used for word access */ + __IO _PMU_PDEN_bits PDEN_bit; /*!< PDEN_bit: structure used for bit access */ + }; + union { /*!< PMU RX Event generation enable register */ + __IO uint32_t RXEVEN; /*!< RXEVEN : type used for word access */ + __IO _PMU_RXEVEN_bits RXEVEN_bit; /*!< RXEVEN_bit: structure used for bit access */ + }; +} PMU_TypeDef; + + +/******************************************************************************/ +/* WDT registers */ +/******************************************************************************/ + +/*-- LOAD: Watchdog Load Register ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Begin value counter */ +} _WDT_LOAD_bits; + +/* Bit field positions: */ +#define WDT_LOAD_VAL_Pos 0 /*!< Begin value counter */ + +/* Bit field masks: */ +#define WDT_LOAD_VAL_Msk 0xFFFFFFFFUL /*!< Begin value counter */ + +/*-- VALUE: Watchdog Value Register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Current value counter */ +} _WDT_VALUE_bits; + +/* Bit field positions: */ +#define WDT_VALUE_VAL_Pos 0 /*!< Current value counter */ + +/* Bit field masks: */ +#define WDT_VALUE_VAL_Msk 0xFFFFFFFFUL /*!< Current value counter */ + +/*-- CTRL: Watchdog Control Register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t INTEN :1; /*!< Enable the interrupt event */ + uint32_t RESEN :1; /*!< Enable watchdog reset output */ +} _WDT_CTRL_bits; + +/* Bit field positions: */ +#define WDT_CTRL_INTEN_Pos 0 /*!< Enable the interrupt event */ +#define WDT_CTRL_RESEN_Pos 1 /*!< Enable watchdog reset output */ + +/* Bit field masks: */ +#define WDT_CTRL_INTEN_Msk 0x00000001UL /*!< Enable the interrupt event */ +#define WDT_CTRL_RESEN_Msk 0x00000002UL /*!< Enable watchdog reset output */ + +/*-- INTCLR: Watchdog Clear Interrupt Register ---------------------------------------------------------------*/ +typedef struct { + uint32_t WDTCLR :32; /*!< Reset interrupt WDT */ +} _WDT_INTCLR_bits; + +/* Bit field positions: */ +#define WDT_INTCLR_WDTCLR_Pos 0 /*!< Reset interrupt WDT */ + +/* Bit field masks: */ +#define WDT_INTCLR_WDTCLR_Msk 0xFFFFFFFFUL /*!< Reset interrupt WDT */ + +/*-- RIS: Watchdog Raw Interrupt Status Register -------------------------------------------------------------*/ +typedef struct { + uint32_t RAWWDTINT :1; /*!< Raw interrupt status from the counter */ +} _WDT_RIS_bits; + +/* Bit field positions: */ +#define WDT_RIS_RAWWDTINT_Pos 0 /*!< Raw interrupt status from the counter */ + +/* Bit field masks: */ +#define WDT_RIS_RAWWDTINT_Msk 0x00000001UL /*!< Raw interrupt status from the counter */ + +/*-- MIS: Watchdog Interrupt Status Register -----------------------------------------------------------------*/ +typedef struct { + uint32_t WDTINT :1; /*!< Enabled interrupt status from the counter */ +} _WDT_MIS_bits; + +/* Bit field positions: */ +#define WDT_MIS_WDTINT_Pos 0 /*!< Enabled interrupt status from the counter */ + +/* Bit field masks: */ +#define WDT_MIS_WDTINT_Msk 0x00000001UL /*!< Enabled interrupt status from the counter */ + +/*-- LOCK: Watchdog Lock Register ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t REGWRDIS :1; /*!< Disable write to all registers Watchdog */ +} _WDT_LOCK_bits; + +/* Bit field positions: */ +#define WDT_LOCK_REGWRDIS_Pos 0 /*!< Disable write to all registers Watchdog */ + +/* Bit field masks: */ +#define WDT_LOCK_REGWRDIS_Msk 0x00000001UL /*!< Disable write to all registers Watchdog */ + +typedef struct { + union { /*!< Watchdog Load Register */ + __IO uint32_t LOAD; /*!< LOAD : type used for word access */ + __IO _WDT_LOAD_bits LOAD_bit; /*!< LOAD_bit: structure used for bit access */ + }; + union { /*!< Watchdog Value Register */ + __I uint32_t VALUE; /*!< VALUE : type used for word access */ + __I _WDT_VALUE_bits VALUE_bit; /*!< VALUE_bit: structure used for bit access */ + }; + union { /*!< Watchdog Control Register */ + __IO uint32_t CTRL; /*!< CTRL : type used for word access */ + __IO _WDT_CTRL_bits CTRL_bit; /*!< CTRL_bit: structure used for bit access */ + }; + union { /*!< Watchdog Clear Interrupt Register */ + __O uint32_t INTCLR; /*!< INTCLR : type used for word access */ + __O _WDT_INTCLR_bits INTCLR_bit; /*!< INTCLR_bit: structure used for bit access */ + }; + union { /*!< Watchdog Raw Interrupt Status Register */ + __I uint32_t RIS; /*!< RIS : type used for word access */ + __I _WDT_RIS_bits RIS_bit; /*!< RIS_bit: structure used for bit access */ + }; + union { /*!< Watchdog Interrupt Status Register */ + __I uint32_t MIS; /*!< MIS : type used for word access */ + __I _WDT_MIS_bits MIS_bit; /*!< MIS_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[762]; + union { /*!< Watchdog Lock Register */ + __O uint32_t LOCK; /*!< LOCK : type used for word access */ + __O _WDT_LOCK_bits LOCK_bit; /*!< LOCK_bit: structure used for bit access */ + }; +} WDT_TypeDef; + + +/******************************************************************************/ +/* TMR registers */ +/******************************************************************************/ + +/*-- CTRL: Control Timer register ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t ON :1; /*!< Enable Timer */ + uint32_t EXTINEN :1; /*!< Enable external input as ENABLE */ + uint32_t EXTINCLK :1; /*!< Enable external input as CLK */ + uint32_t INTEN :1; /*!< Enable Timer interrupt */ +} _TMR_CTRL_bits; + +/* Bit field positions: */ +#define TMR_CTRL_ON_Pos 0 /*!< Enable Timer */ +#define TMR_CTRL_EXTINEN_Pos 1 /*!< Enable external input as ENABLE */ +#define TMR_CTRL_EXTINCLK_Pos 2 /*!< Enable external input as CLK */ +#define TMR_CTRL_INTEN_Pos 3 /*!< Enable Timer interrupt */ + +/* Bit field masks: */ +#define TMR_CTRL_ON_Msk 0x00000001UL /*!< Enable Timer */ +#define TMR_CTRL_EXTINEN_Msk 0x00000002UL /*!< Enable external input as ENABLE */ +#define TMR_CTRL_EXTINCLK_Msk 0x00000004UL /*!< Enable external input as CLK */ +#define TMR_CTRL_INTEN_Msk 0x00000008UL /*!< Enable Timer interrupt */ + +/*-- VALUE: Current value timer register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Current value timer */ +} _TMR_VALUE_bits; + +/* Bit field positions: */ +#define TMR_VALUE_VAL_Pos 0 /*!< Current value timer */ + +/* Bit field masks: */ +#define TMR_VALUE_VAL_Msk 0xFFFFFFFFUL /*!< Current value timer */ + +/*-- LOAD: Reload value timer register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Reload value. A write to this register sets the current value */ +} _TMR_LOAD_bits; + +/* Bit field positions: */ +#define TMR_LOAD_VAL_Pos 0 /*!< Reload value. A write to this register sets the current value */ + +/* Bit field masks: */ +#define TMR_LOAD_VAL_Msk 0xFFFFFFFFUL /*!< Reload value. A write to this register sets the current value */ + +/*-- INTSTATUS: Interrupt status register --------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Timer interrupt flag */ +} _TMR_INTSTATUS_bits; + +/* Bit field positions: */ +#define TMR_INTSTATUS_INT_Pos 0 /*!< Timer interrupt flag */ + +/* Bit field masks: */ +#define TMR_INTSTATUS_INT_Msk 0x00000001UL /*!< Timer interrupt flag */ + +/*-- DMAREQ: DMA request register ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t EN :1; /*!< */ +} _TMR_DMAREQ_bits; + +/* Bit field positions: */ +#define TMR_DMAREQ_EN_Pos 0 /*!< */ + +/* Bit field masks: */ +#define TMR_DMAREQ_EN_Msk 0x00000001UL /*!< */ + +/*-- ADCSOC: ADC start of conversion register ----------------------------------------------------------------*/ +typedef struct { + uint32_t EN :1; /*!< */ +} _TMR_ADCSOC_bits; + +/* Bit field positions: */ +#define TMR_ADCSOC_EN_Pos 0 /*!< */ + +/* Bit field masks: */ +#define TMR_ADCSOC_EN_Msk 0x00000001UL /*!< */ + +typedef struct { + union { /*!< Control Timer register */ + __IO uint32_t CTRL; /*!< CTRL : type used for word access */ + __IO _TMR_CTRL_bits CTRL_bit; /*!< CTRL_bit: structure used for bit access */ + }; + union { /*!< Current value timer register */ + __IO uint32_t VALUE; /*!< VALUE : type used for word access */ + __IO _TMR_VALUE_bits VALUE_bit; /*!< VALUE_bit: structure used for bit access */ + }; + union { /*!< Reload value timer register */ + __IO uint32_t LOAD; /*!< LOAD : type used for word access */ + __IO _TMR_LOAD_bits LOAD_bit; /*!< LOAD_bit: structure used for bit access */ + }; + union { /*!< Interrupt status register */ + __IO uint32_t INTSTATUS; /*!< INTSTATUS : type used for word access */ + __IO _TMR_INTSTATUS_bits INTSTATUS_bit; /*!< INTSTATUS_bit: structure used for bit access */ + }; + union { /*!< DMA request register */ + __IO uint32_t DMAREQ; /*!< DMAREQ : type used for word access */ + __IO _TMR_DMAREQ_bits DMAREQ_bit; /*!< DMAREQ_bit: structure used for bit access */ + }; + union { /*!< ADC start of conversion register */ + __IO uint32_t ADCSOC; /*!< ADCSOC : type used for word access */ + __IO _TMR_ADCSOC_bits ADCSOC_bit; /*!< ADCSOC_bit: structure used for bit access */ + }; +} TMR_TypeDef; + + +/******************************************************************************/ +/* ADC registers */ +/******************************************************************************/ + +/*-- SEQEN: Enable sequencer register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t SEQEN0 :1; /*!< Enable sequencer 0 */ + uint32_t SEQEN1 :1; /*!< Enable sequencer 1 */ +} _ADC_SEQEN_bits; + +/* Bit field positions: */ +#define ADC_SEQEN_SEQEN0_Pos 0 /*!< Enable sequencer 0 */ +#define ADC_SEQEN_SEQEN1_Pos 1 /*!< Enable sequencer 1 */ + +/* Bit field masks: */ +#define ADC_SEQEN_SEQEN0_Msk 0x00000001UL /*!< Enable sequencer 0 */ +#define ADC_SEQEN_SEQEN1_Msk 0x00000002UL /*!< Enable sequencer 1 */ + +/*-- SEQSYNC: Sequencer sync register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t SYNC0 :1; /*!< Enable sequencer 0 software sync */ + uint32_t SYNC1 :1; /*!< Enable sequencer 1 software sync */ + uint32_t :29; /*!< RESERVED */ + uint32_t GSYNC :1; /*!< Sync all sequencers */ +} _ADC_SEQSYNC_bits; + +/* Bit field positions: */ +#define ADC_SEQSYNC_SYNC0_Pos 0 /*!< Enable sequencer 0 software sync */ +#define ADC_SEQSYNC_SYNC1_Pos 1 /*!< Enable sequencer 1 software sync */ +#define ADC_SEQSYNC_GSYNC_Pos 31 /*!< Sync all sequencers */ + +/* Bit field masks: */ +#define ADC_SEQSYNC_SYNC0_Msk 0x00000001UL /*!< Enable sequencer 0 software sync */ +#define ADC_SEQSYNC_SYNC1_Msk 0x00000002UL /*!< Enable sequencer 1 software sync */ +#define ADC_SEQSYNC_GSYNC_Msk 0x80000000UL /*!< Sync all sequencers */ + +/*-- FSTAT: FIFO overflow status register --------------------------------------------------------------------*/ +typedef struct { + uint32_t OV0 :1; /*!< Sequencer 0 FIFO overflow */ + uint32_t OV1 :1; /*!< Sequencer 1 FIFO overflow */ + uint32_t :6; /*!< RESERVED */ + uint32_t UN0 :1; /*!< Sequencer 0 FIFO underflow */ + uint32_t UN1 :1; /*!< Sequencer 1 FIFO underflow */ + uint32_t :6; /*!< RESERVED */ + uint32_t DOV0 :1; /*!< Sequencer 0 FIFO DMA request overflow */ + uint32_t DOV1 :1; /*!< Sequencer 1 FIFO DMA request overflow */ +} _ADC_FSTAT_bits; + +/* Bit field positions: */ +#define ADC_FSTAT_OV0_Pos 0 /*!< Sequencer 0 FIFO overflow */ +#define ADC_FSTAT_OV1_Pos 1 /*!< Sequencer 1 FIFO overflow */ +#define ADC_FSTAT_UN0_Pos 8 /*!< Sequencer 0 FIFO underflow */ +#define ADC_FSTAT_UN1_Pos 9 /*!< Sequencer 1 FIFO underflow */ +#define ADC_FSTAT_DOV0_Pos 16 /*!< Sequencer 0 FIFO DMA request overflow */ +#define ADC_FSTAT_DOV1_Pos 17 /*!< Sequencer 1 FIFO DMA request overflow */ + +/* Bit field masks: */ +#define ADC_FSTAT_OV0_Msk 0x00000001UL /*!< Sequencer 0 FIFO overflow */ +#define ADC_FSTAT_OV1_Msk 0x00000002UL /*!< Sequencer 1 FIFO overflow */ +#define ADC_FSTAT_UN0_Msk 0x00000100UL /*!< Sequencer 0 FIFO underflow */ +#define ADC_FSTAT_UN1_Msk 0x00000200UL /*!< Sequencer 1 FIFO underflow */ +#define ADC_FSTAT_DOV0_Msk 0x00010000UL /*!< Sequencer 0 FIFO DMA request overflow */ +#define ADC_FSTAT_DOV1_Msk 0x00020000UL /*!< Sequencer 1 FIFO DMA request overflow */ + +/*-- BSTAT: Busy status register -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t SEQBUSY0 :1; /*!< Sequencer 0 busy */ + uint32_t SEQBUSY1 :1; /*!< Sequencer 1 busy */ + uint32_t :14; /*!< RESERVED */ + uint32_t ADCBUSY :1; /*!< ADC module conversion busy */ +} _ADC_BSTAT_bits; + +/* Bit field positions: */ +#define ADC_BSTAT_SEQBUSY0_Pos 0 /*!< Sequencer 0 busy */ +#define ADC_BSTAT_SEQBUSY1_Pos 1 /*!< Sequencer 1 busy */ +#define ADC_BSTAT_ADCBUSY_Pos 16 /*!< ADC module conversion busy */ + +/* Bit field masks: */ +#define ADC_BSTAT_SEQBUSY0_Msk 0x00000001UL /*!< Sequencer 0 busy */ +#define ADC_BSTAT_SEQBUSY1_Msk 0x00000002UL /*!< Sequencer 1 busy */ +#define ADC_BSTAT_ADCBUSY_Msk 0x00010000UL /*!< ADC module conversion busy */ + +/*-- DCTRIG: Digital comparator output trigger status register -----------------------------------------------*/ +typedef struct { + uint32_t TOS0 :1; /*!< DC 0 output trigger status */ + uint32_t TOS1 :1; /*!< DC 1 output trigger status */ + uint32_t TOS2 :1; /*!< DC 2 output trigger status */ + uint32_t TOS3 :1; /*!< DC 3 output trigger status */ + uint32_t :12; /*!< RESERVED */ + uint32_t DCEV0 :1; /*!< Digital compare event 0 */ + uint32_t DCEV1 :1; /*!< Digital compare event 1 */ + uint32_t DCEV2 :1; /*!< Digital compare event 2 */ + uint32_t DCEV3 :1; /*!< Digital compare event 3 */ +} _ADC_DCTRIG_bits; + +/* Bit field positions: */ +#define ADC_DCTRIG_TOS0_Pos 0 /*!< DC 0 output trigger status */ +#define ADC_DCTRIG_TOS1_Pos 1 /*!< DC 1 output trigger status */ +#define ADC_DCTRIG_TOS2_Pos 2 /*!< DC 2 output trigger status */ +#define ADC_DCTRIG_TOS3_Pos 3 /*!< DC 3 output trigger status */ +#define ADC_DCTRIG_DCEV0_Pos 16 /*!< Digital compare event 0 */ +#define ADC_DCTRIG_DCEV1_Pos 17 /*!< Digital compare event 1 */ +#define ADC_DCTRIG_DCEV2_Pos 18 /*!< Digital compare event 2 */ +#define ADC_DCTRIG_DCEV3_Pos 19 /*!< Digital compare event 3 */ + +/* Bit field masks: */ +#define ADC_DCTRIG_TOS0_Msk 0x00000001UL /*!< DC 0 output trigger status */ +#define ADC_DCTRIG_TOS1_Msk 0x00000002UL /*!< DC 1 output trigger status */ +#define ADC_DCTRIG_TOS2_Msk 0x00000004UL /*!< DC 2 output trigger status */ +#define ADC_DCTRIG_TOS3_Msk 0x00000008UL /*!< DC 3 output trigger status */ +#define ADC_DCTRIG_DCEV0_Msk 0x00010000UL /*!< Digital compare event 0 */ +#define ADC_DCTRIG_DCEV1_Msk 0x00020000UL /*!< Digital compare event 1 */ +#define ADC_DCTRIG_DCEV2_Msk 0x00040000UL /*!< Digital compare event 2 */ +#define ADC_DCTRIG_DCEV3_Msk 0x00080000UL /*!< Digital compare event 3 */ + +/*-- CICNT: Interrupt counter clear control ------------------------------------------------------------------*/ +typedef struct { + uint32_t ICNT0 :1; /*!< Clear interrupt counter on sequencer 0 start */ + uint32_t ICNT1 :1; /*!< Clear interrupt counter on sequencer 1 start */ +} _ADC_CICNT_bits; + +/* Bit field positions: */ +#define ADC_CICNT_ICNT0_Pos 0 /*!< Clear interrupt counter on sequencer 0 start */ +#define ADC_CICNT_ICNT1_Pos 1 /*!< Clear interrupt counter on sequencer 1 start */ + +/* Bit field masks: */ +#define ADC_CICNT_ICNT0_Msk 0x00000001UL /*!< Clear interrupt counter on sequencer 0 start */ +#define ADC_CICNT_ICNT1_Msk 0x00000002UL /*!< Clear interrupt counter on sequencer 1 start */ + +/*-- EMUX: Sequencer start event selection register ----------------------------------------------------------*/ +typedef struct { + uint32_t EM0 :4; /*!< Select start event for sequencer 0 */ + uint32_t EM1 :4; /*!< Select start event for sequencer 1 */ +} _ADC_EMUX_bits; + +/* Bit field positions: */ +#define ADC_EMUX_EM0_Pos 0 /*!< Select start event for sequencer 0 */ +#define ADC_EMUX_EM1_Pos 4 /*!< Select start event for sequencer 1 */ + +/* Bit field masks: */ +#define ADC_EMUX_EM0_Msk 0x0000000FUL /*!< Select start event for sequencer 0 */ +#define ADC_EMUX_EM1_Msk 0x000000F0UL /*!< Select start event for sequencer 1 */ + +/* Bit field enums: */ +typedef enum { + ADC_EMUX_EM0_SwReq = 0x0UL, /*!< software request by GSYNC bit */ + ADC_EMUX_EM0_GPIOA = 0x1UL, /*!< GPIOA interrupt */ + ADC_EMUX_EM0_GPIOB = 0x2UL, /*!< GPIOB interrupt */ + ADC_EMUX_EM0_TMR0 = 0x3UL, /*!< Timer 0 request */ + ADC_EMUX_EM0_TMR1 = 0x4UL, /*!< Timer 1 request */ + ADC_EMUX_EM0_TMR2 = 0x5UL, /*!< Timer 2 request */ + ADC_EMUX_EM0_TMR3 = 0x6UL, /*!< Timer 3 request */ + ADC_EMUX_EM0_PWM012A = 0x7UL, /*!< PWM0,1,2 A channel request */ + ADC_EMUX_EM0_PWM012B = 0x8UL, /*!< PWM0,1,2 B channel request */ + ADC_EMUX_EM0_Cycle = 0xFUL, /*!< Cycle mode */ +} ADC_EMUX_EM0_Enum; + +typedef enum { + ADC_EMUX_EM1_SwReq = 0x0UL, /*!< software request by GSYNC bit */ + ADC_EMUX_EM1_GPIOA = 0x1UL, /*!< GPIOA interrupt */ + ADC_EMUX_EM1_GPIOB = 0x2UL, /*!< GPIOB interrupt */ + ADC_EMUX_EM1_TMR0 = 0x3UL, /*!< Timer 0 request */ + ADC_EMUX_EM1_TMR1 = 0x4UL, /*!< Timer 1 request */ + ADC_EMUX_EM1_TMR2 = 0x5UL, /*!< Timer 2 request */ + ADC_EMUX_EM1_TMR3 = 0x6UL, /*!< Timer 3 request */ + ADC_EMUX_EM1_PWM012A = 0x7UL, /*!< PWM0,1,2 A channel request */ + ADC_EMUX_EM1_PWM012B = 0x8UL, /*!< PWM0,1,2 B channel request */ + ADC_EMUX_EM1_Cycle = 0xFUL, /*!< Cycle mode */ +} ADC_EMUX_EM1_Enum; + +/*-- RIS: Raw interrupt status register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t SEQRIS0 :1; /*!< Sequencer 0 raw interrupt status */ + uint32_t SEQRIS1 :1; /*!< Sequencer 1 raw interrupt status */ + uint32_t :6; /*!< RESERVED */ + uint32_t DCRIS0 :1; /*!< Raw interrupt status of Digital Comparator 0 */ + uint32_t DCRIS1 :1; /*!< Raw interrupt status of Digital Comparator 1 */ + uint32_t DCRIS2 :1; /*!< Raw interrupt status of Digital Comparator 2 */ + uint32_t DCRIS3 :1; /*!< Raw interrupt status of Digital Comparator 3 */ +} _ADC_RIS_bits; + +/* Bit field positions: */ +#define ADC_RIS_SEQRIS0_Pos 0 /*!< Sequencer 0 raw interrupt status */ +#define ADC_RIS_SEQRIS1_Pos 1 /*!< Sequencer 1 raw interrupt status */ +#define ADC_RIS_DCRIS0_Pos 8 /*!< Raw interrupt status of Digital Comparator 0 */ +#define ADC_RIS_DCRIS1_Pos 9 /*!< Raw interrupt status of Digital Comparator 1 */ +#define ADC_RIS_DCRIS2_Pos 10 /*!< Raw interrupt status of Digital Comparator 2 */ +#define ADC_RIS_DCRIS3_Pos 11 /*!< Raw interrupt status of Digital Comparator 3 */ + +/* Bit field masks: */ +#define ADC_RIS_SEQRIS0_Msk 0x00000001UL /*!< Sequencer 0 raw interrupt status */ +#define ADC_RIS_SEQRIS1_Msk 0x00000002UL /*!< Sequencer 1 raw interrupt status */ +#define ADC_RIS_DCRIS0_Msk 0x00000100UL /*!< Raw interrupt status of Digital Comparator 0 */ +#define ADC_RIS_DCRIS1_Msk 0x00000200UL /*!< Raw interrupt status of Digital Comparator 1 */ +#define ADC_RIS_DCRIS2_Msk 0x00000400UL /*!< Raw interrupt status of Digital Comparator 2 */ +#define ADC_RIS_DCRIS3_Msk 0x00000800UL /*!< Raw interrupt status of Digital Comparator 3 */ + +/*-- IM: Interrupt mask register -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t SEQIM0 :1; /*!< Sequencer 0 interrupt mask */ + uint32_t SEQIM1 :1; /*!< Sequencer 1 interrupt mask */ + uint32_t :6; /*!< RESERVED */ + uint32_t DCIM0 :1; /*!< Interrupt mask of Digital Comparator 0 */ + uint32_t DCIM1 :1; /*!< Interrupt mask of Digital Comparator 1 */ + uint32_t DCIM2 :1; /*!< Interrupt mask of Digital Comparator 2 */ + uint32_t DCIM3 :1; /*!< Interrupt mask of Digital Comparator 3 */ +} _ADC_IM_bits; + +/* Bit field positions: */ +#define ADC_IM_SEQIM0_Pos 0 /*!< Sequencer 0 interrupt mask */ +#define ADC_IM_SEQIM1_Pos 1 /*!< Sequencer 1 interrupt mask */ +#define ADC_IM_DCIM0_Pos 8 /*!< Interrupt mask of Digital Comparator 0 */ +#define ADC_IM_DCIM1_Pos 9 /*!< Interrupt mask of Digital Comparator 1 */ +#define ADC_IM_DCIM2_Pos 10 /*!< Interrupt mask of Digital Comparator 2 */ +#define ADC_IM_DCIM3_Pos 11 /*!< Interrupt mask of Digital Comparator 3 */ + +/* Bit field masks: */ +#define ADC_IM_SEQIM0_Msk 0x00000001UL /*!< Sequencer 0 interrupt mask */ +#define ADC_IM_SEQIM1_Msk 0x00000002UL /*!< Sequencer 1 interrupt mask */ +#define ADC_IM_DCIM0_Msk 0x00000100UL /*!< Interrupt mask of Digital Comparator 0 */ +#define ADC_IM_DCIM1_Msk 0x00000200UL /*!< Interrupt mask of Digital Comparator 1 */ +#define ADC_IM_DCIM2_Msk 0x00000400UL /*!< Interrupt mask of Digital Comparator 2 */ +#define ADC_IM_DCIM3_Msk 0x00000800UL /*!< Interrupt mask of Digital Comparator 3 */ + +/*-- MIS: Masked interrupt status and clear register ---------------------------------------------------------*/ +typedef struct { + uint32_t SEQMIS0 :1; /*!< Sequencer 0 masked interrupt status */ + uint32_t SEQMIS1 :1; /*!< Sequencer 1 masked interrupt status */ + uint32_t :6; /*!< RESERVED */ + uint32_t DCMIS0 :1; /*!< DC 0 masked interrupt status */ + uint32_t DCMIS1 :1; /*!< DC 1 masked interrupt status */ + uint32_t DCMIS2 :1; /*!< DC 2 masked interrupt status */ + uint32_t DCMIS3 :1; /*!< DC 3 masked interrupt status */ +} _ADC_MIS_bits; + +/* Bit field positions: */ +#define ADC_MIS_SEQMIS0_Pos 0 /*!< Sequencer 0 masked interrupt status */ +#define ADC_MIS_SEQMIS1_Pos 1 /*!< Sequencer 1 masked interrupt status */ +#define ADC_MIS_DCMIS0_Pos 8 /*!< DC 0 masked interrupt status */ +#define ADC_MIS_DCMIS1_Pos 9 /*!< DC 1 masked interrupt status */ +#define ADC_MIS_DCMIS2_Pos 10 /*!< DC 2 masked interrupt status */ +#define ADC_MIS_DCMIS3_Pos 11 /*!< DC 3 masked interrupt status */ + +/* Bit field masks: */ +#define ADC_MIS_SEQMIS0_Msk 0x00000001UL /*!< Sequencer 0 masked interrupt status */ +#define ADC_MIS_SEQMIS1_Msk 0x00000002UL /*!< Sequencer 1 masked interrupt status */ +#define ADC_MIS_DCMIS0_Msk 0x00000100UL /*!< DC 0 masked interrupt status */ +#define ADC_MIS_DCMIS1_Msk 0x00000200UL /*!< DC 1 masked interrupt status */ +#define ADC_MIS_DCMIS2_Msk 0x00000400UL /*!< DC 2 masked interrupt status */ +#define ADC_MIS_DCMIS3_Msk 0x00000800UL /*!< DC 3 masked interrupt status */ + +/*-- IC: Interrupt clear register ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t SEQIC0 :1; /*!< Sequencer 0 interrupt status clear */ + uint32_t SEQIC1 :1; /*!< Sequencer 1 interrupt status clear */ + uint32_t :6; /*!< RESERVED */ + uint32_t DCIC0 :1; /*!< DC 0 interrupt status clear */ + uint32_t DCIC1 :1; /*!< DC 1 interrupt status clear */ + uint32_t DCIC2 :1; /*!< DC 2 interrupt status clear */ + uint32_t DCIC3 :1; /*!< DC 3 interrupt status clear */ +} _ADC_IC_bits; + +/* Bit field positions: */ +#define ADC_IC_SEQIC0_Pos 0 /*!< Sequencer 0 interrupt status clear */ +#define ADC_IC_SEQIC1_Pos 1 /*!< Sequencer 1 interrupt status clear */ +#define ADC_IC_DCIC0_Pos 8 /*!< DC 0 interrupt status clear */ +#define ADC_IC_DCIC1_Pos 9 /*!< DC 1 interrupt status clear */ +#define ADC_IC_DCIC2_Pos 10 /*!< DC 2 interrupt status clear */ +#define ADC_IC_DCIC3_Pos 11 /*!< DC 3 interrupt status clear */ + +/* Bit field masks: */ +#define ADC_IC_SEQIC0_Msk 0x00000001UL /*!< Sequencer 0 interrupt status clear */ +#define ADC_IC_SEQIC1_Msk 0x00000002UL /*!< Sequencer 1 interrupt status clear */ +#define ADC_IC_DCIC0_Msk 0x00000100UL /*!< DC 0 interrupt status clear */ +#define ADC_IC_DCIC1_Msk 0x00000200UL /*!< DC 1 interrupt status clear */ +#define ADC_IC_DCIC2_Msk 0x00000400UL /*!< DC 2 interrupt status clear */ +#define ADC_IC_DCIC3_Msk 0x00000800UL /*!< DC 3 interrupt status clear */ + +/*-- SEQ: SRQSEL: Sequencer request ADC channels selection register -------------------------------------------*/ +typedef struct { + uint32_t RQ0 :2; /*!< Select ADC channel for request 0 */ + uint32_t :2; /*!< RESERVED */ + uint32_t RQ1 :2; /*!< Select ADC channel for request 1 */ + uint32_t :2; /*!< RESERVED */ + uint32_t RQ2 :2; /*!< Select ADC channel for request 2 */ + uint32_t :2; /*!< RESERVED */ + uint32_t RQ3 :2; /*!< Select ADC channel for request 3 */ +} _ADC_SEQ_SRQSEL_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SRQSEL_RQ0_Pos 0 /*!< Select ADC channel for request 0 */ +#define ADC_SEQ_SRQSEL_RQ1_Pos 4 /*!< Select ADC channel for request 1 */ +#define ADC_SEQ_SRQSEL_RQ2_Pos 8 /*!< Select ADC channel for request 2 */ +#define ADC_SEQ_SRQSEL_RQ3_Pos 12 /*!< Select ADC channel for request 3 */ + +/* Bit field masks: */ +#define ADC_SEQ_SRQSEL_RQ0_Msk 0x00000003UL /*!< Select ADC channel for request 0 */ +#define ADC_SEQ_SRQSEL_RQ1_Msk 0x00000030UL /*!< Select ADC channel for request 1 */ +#define ADC_SEQ_SRQSEL_RQ2_Msk 0x00000300UL /*!< Select ADC channel for request 2 */ +#define ADC_SEQ_SRQSEL_RQ3_Msk 0x00003000UL /*!< Select ADC channel for request 3 */ + +/*-- SEQ: SRQCTL: Sequencer request control register ----------------------------------------------------------*/ +typedef struct { + uint32_t RQMAX :2; /*!< Request queue max depth */ + uint32_t :6; /*!< RESERVED */ + uint32_t QAVGEN :1; /*!< Queue avearage (scanning) enable */ + uint32_t QAVGVAL :3; /*!< Queue average value */ +} _ADC_SEQ_SRQCTL_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SRQCTL_RQMAX_Pos 0 /*!< Request queue max depth */ +#define ADC_SEQ_SRQCTL_QAVGEN_Pos 8 /*!< Queue avearage (scanning) enable */ +#define ADC_SEQ_SRQCTL_QAVGVAL_Pos 9 /*!< Queue average value */ + +/* Bit field masks: */ +#define ADC_SEQ_SRQCTL_RQMAX_Msk 0x00000003UL /*!< Request queue max depth */ +#define ADC_SEQ_SRQCTL_QAVGEN_Msk 0x00000100UL /*!< Queue avearage (scanning) enable */ +#define ADC_SEQ_SRQCTL_QAVGVAL_Msk 0x00000E00UL /*!< Queue average value */ + +/* Bit field enums: */ +typedef enum { + ADC_SEQ_SRQCTL_QAVGVAL_Disable = 0x0UL, /*!< Average disabled */ + ADC_SEQ_SRQCTL_QAVGVAL_Average2 = 0x1UL, /*!< Average with 2 measures */ + ADC_SEQ_SRQCTL_QAVGVAL_Average4 = 0x2UL, /*!< Average with 4 measures */ + ADC_SEQ_SRQCTL_QAVGVAL_Average8 = 0x3UL, /*!< Average with 8 measures */ + ADC_SEQ_SRQCTL_QAVGVAL_Average16 = 0x4UL, /*!< Average with 16 measures */ + ADC_SEQ_SRQCTL_QAVGVAL_Average32 = 0x5UL, /*!< Average with 32 measures */ + ADC_SEQ_SRQCTL_QAVGVAL_Average64 = 0x6UL, /*!< Average with 64 measures */ +} ADC_SEQ_SRQCTL_QAVGVAL_Enum; + +/*-- SEQ: SRQSTAT: Sequencer request status register ----------------------------------------------------------*/ +typedef struct { + uint32_t RQPTR :2; /*!< Pointer to queue current request */ + uint32_t :6; /*!< RESERVED */ + uint32_t RQBUSY :1; /*!< Active request status */ +} _ADC_SEQ_SRQSTAT_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SRQSTAT_RQPTR_Pos 0 /*!< Pointer to queue current request */ +#define ADC_SEQ_SRQSTAT_RQBUSY_Pos 8 /*!< Active request status */ + +/* Bit field masks: */ +#define ADC_SEQ_SRQSTAT_RQPTR_Msk 0x00000003UL /*!< Pointer to queue current request */ +#define ADC_SEQ_SRQSTAT_RQBUSY_Msk 0x00000100UL /*!< Active request status */ + +/*-- SEQ: SDMACTL: Sequencer DMA control register -------------------------------------------------------------*/ +typedef struct { + uint32_t DMAEN :1; /*!< Enable DMA use */ + uint32_t :7; /*!< RESERVED */ + uint32_t WMARK :3; /*!< FIFO load threshold for DMA request generation */ +} _ADC_SEQ_SDMACTL_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SDMACTL_DMAEN_Pos 0 /*!< Enable DMA use */ +#define ADC_SEQ_SDMACTL_WMARK_Pos 8 /*!< FIFO load threshold for DMA request generation */ + +/* Bit field masks: */ +#define ADC_SEQ_SDMACTL_DMAEN_Msk 0x00000001UL /*!< Enable DMA use */ +#define ADC_SEQ_SDMACTL_WMARK_Msk 0x00000700UL /*!< FIFO load threshold for DMA request generation */ + +/* Bit field enums: */ +typedef enum { + ADC_SEQ_SDMACTL_WMARK_Level1 = 0x1UL, /*!< 1 measure for dma request */ + ADC_SEQ_SDMACTL_WMARK_Level2 = 0x2UL, /*!< 2 measures for dma request */ + ADC_SEQ_SDMACTL_WMARK_Level4 = 0x3UL, /*!< 4 measures for dma request */ + ADC_SEQ_SDMACTL_WMARK_Level8 = 0x4UL, /*!< 8 measures for dma request */ + ADC_SEQ_SDMACTL_WMARK_Level16 = 0x5UL, /*!< 16 measures for dma request */ + ADC_SEQ_SDMACTL_WMARK_Level32 = 0x6UL, /*!< 32 measures for dma request */ +} ADC_SEQ_SDMACTL_WMARK_Enum; + +/*-- SEQ: SCCTL: Sequencer ADC interrupt and restart counter control register ---------------------------------*/ +typedef struct { + uint32_t RCNT :8; /*!< Current number of ADC restarts by sequencer */ + uint32_t RAVGEN :1; /*!< Average of ADC restarts enable */ + uint32_t :7; /*!< RESERVED */ + uint32_t ICNT :8; /*!< Number of ADC requests for interrupt generation */ +} _ADC_SEQ_SCCTL_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SCCTL_RCNT_Pos 0 /*!< Current number of ADC restarts by sequencer */ +#define ADC_SEQ_SCCTL_RAVGEN_Pos 8 /*!< Average of ADC restarts enable */ +#define ADC_SEQ_SCCTL_ICNT_Pos 16 /*!< Number of ADC requests for interrupt generation */ + +/* Bit field masks: */ +#define ADC_SEQ_SCCTL_RCNT_Msk 0x000000FFUL /*!< Current number of ADC restarts by sequencer */ +#define ADC_SEQ_SCCTL_RAVGEN_Msk 0x00000100UL /*!< Average of ADC restarts enable */ +#define ADC_SEQ_SCCTL_ICNT_Msk 0x00FF0000UL /*!< Number of ADC requests for interrupt generation */ + +/*-- SEQ: SCVAL: Sequencer ADC interrupt and restart counter current value register ---------------------------------*/ +typedef struct { + uint32_t RCNT :8; /*!< Current number of ADC restarts by sequencer */ + uint32_t :8; /*!< RESERVED */ + uint32_t ICNT :8; /*!< Current number of ADC requests for interrupt generation */ + uint32_t ICLR :1; /*!< Clear interrupt counter */ +} _ADC_SEQ_SCVAL_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SCVAL_RCNT_Pos 0 /*!< Current number of ADC restarts by sequencer */ +#define ADC_SEQ_SCVAL_ICNT_Pos 16 /*!< Current number of ADC requests for interrupt generation */ +#define ADC_SEQ_SCVAL_ICLR_Pos 24 /*!< Clear interrupt counter */ + +/* Bit field masks: */ +#define ADC_SEQ_SCVAL_RCNT_Msk 0x000000FFUL /*!< Current number of ADC restarts by sequencer */ +#define ADC_SEQ_SCVAL_ICNT_Msk 0x00FF0000UL /*!< Current number of ADC requests for interrupt generation */ +#define ADC_SEQ_SCVAL_ICLR_Msk 0x01000000UL /*!< Clear interrupt counter */ + +/*-- SEQ: SDC: Sequencer digital comparator selection register ------------------------------------------------*/ +typedef struct { + uint32_t DC0 :1; /*!< Enable DC 0 */ + uint32_t DC1 :1; /*!< Enable DC 1 */ + uint32_t DC2 :1; /*!< Enable DC 2 */ + uint32_t DC3 :1; /*!< Enable DC 3 */ +} _ADC_SEQ_SDC_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SDC_DC0_Pos 0 /*!< Enable DC 0 */ +#define ADC_SEQ_SDC_DC1_Pos 1 /*!< Enable DC 1 */ +#define ADC_SEQ_SDC_DC2_Pos 2 /*!< Enable DC 2 */ +#define ADC_SEQ_SDC_DC3_Pos 3 /*!< Enable DC 3 */ + +/* Bit field masks: */ +#define ADC_SEQ_SDC_DC0_Msk 0x00000001UL /*!< Enable DC 0 */ +#define ADC_SEQ_SDC_DC1_Msk 0x00000002UL /*!< Enable DC 1 */ +#define ADC_SEQ_SDC_DC2_Msk 0x00000004UL /*!< Enable DC 2 */ +#define ADC_SEQ_SDC_DC3_Msk 0x00000008UL /*!< Enable DC 3 */ + +/*-- SEQ: SRTMR: Sequencer ADC restart timer register ---------------------------------------------------------*/ +typedef struct { + uint32_t VAL :24; /*!< Sequencer ADC restart timer value */ + uint32_t :7; /*!< RESERVED */ + uint32_t NOWAIT :1; /*!< Timer update with no waiting the end of current seq task */ +} _ADC_SEQ_SRTMR_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SRTMR_VAL_Pos 0 /*!< Sequencer ADC restart timer value */ +#define ADC_SEQ_SRTMR_NOWAIT_Pos 31 /*!< Timer update with no waiting the end of current seq task */ + +/* Bit field masks: */ +#define ADC_SEQ_SRTMR_VAL_Msk 0x00FFFFFFUL /*!< Sequencer ADC restart timer value */ +#define ADC_SEQ_SRTMR_NOWAIT_Msk 0x80000000UL /*!< Timer update with no waiting the end of current seq task */ + +/*-- SEQ: SFLOAD: Sequencer FIFO load status register ---------------------------------------------------------*/ +typedef struct { + uint32_t VAL :6; /*!< Sequencer FIFO current load value */ +} _ADC_SEQ_SFLOAD_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SFLOAD_VAL_Pos 0 /*!< Sequencer FIFO current load value */ + +/* Bit field masks: */ +#define ADC_SEQ_SFLOAD_VAL_Msk 0x0000003FUL /*!< Sequencer FIFO current load value */ + +/*-- SEQ: SFIFO: Sequencer FIFO register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t DATA :12; /*!< AD conversion value */ +} _ADC_SEQ_SFIFO_bits; + +/* Bit field positions: */ +#define ADC_SEQ_SFIFO_DATA_Pos 0 /*!< AD conversion value */ + +/* Bit field masks: */ +#define ADC_SEQ_SFIFO_DATA_Msk 0x00000FFFUL /*!< AD conversion value */ + +/*-- DC: DCTL: Digital comparator control register ------------------------------------------------------------*/ +typedef struct { + uint32_t CIM :2; /*!< DC interrupt generation mode */ + uint32_t CIC :2; /*!< DC interrupt generation compare conditions */ + uint32_t CIE :1; /*!< Enable DC interrupt generation */ + uint32_t :3; /*!< RESERVED */ + uint32_t CTM :2; /*!< DC output trigger mode */ + uint32_t CTC :2; /*!< DC output trigger compare conditions */ + uint32_t CTE :1; /*!< Enable DC output trigger */ + uint32_t :3; /*!< RESERVED */ + uint32_t CHNL :2; /*!< ADC channel selection */ + uint32_t :6; /*!< RESERVED */ + uint32_t SRC :1; /*!< Select data source for comparation: ADC module (0) or sequencer(1) */ +} _ADC_DC_DCTL_bits; + +/* Bit field positions: */ +#define ADC_DC_DCTL_CIM_Pos 0 /*!< DC interrupt generation mode */ +#define ADC_DC_DCTL_CIC_Pos 2 /*!< DC interrupt generation compare conditions */ +#define ADC_DC_DCTL_CIE_Pos 4 /*!< Enable DC interrupt generation */ +#define ADC_DC_DCTL_CTM_Pos 8 /*!< DC output trigger mode */ +#define ADC_DC_DCTL_CTC_Pos 10 /*!< DC output trigger compare conditions */ +#define ADC_DC_DCTL_CTE_Pos 12 /*!< Enable DC output trigger */ +#define ADC_DC_DCTL_CHNL_Pos 16 /*!< ADC channel selection */ +#define ADC_DC_DCTL_SRC_Pos 24 /*!< Select data source for comparation: ADC module (0) or sequencer(1) */ + +/* Bit field masks: */ +#define ADC_DC_DCTL_CIM_Msk 0x00000003UL /*!< DC interrupt generation mode */ +#define ADC_DC_DCTL_CIC_Msk 0x0000000CUL /*!< DC interrupt generation compare conditions */ +#define ADC_DC_DCTL_CIE_Msk 0x00000010UL /*!< Enable DC interrupt generation */ +#define ADC_DC_DCTL_CTM_Msk 0x00000300UL /*!< DC output trigger mode */ +#define ADC_DC_DCTL_CTC_Msk 0x00000C00UL /*!< DC output trigger compare conditions */ +#define ADC_DC_DCTL_CTE_Msk 0x00001000UL /*!< Enable DC output trigger */ +#define ADC_DC_DCTL_CHNL_Msk 0x00030000UL /*!< ADC channel selection */ +#define ADC_DC_DCTL_SRC_Msk 0x01000000UL /*!< Select data source for comparation: ADC module (0) or sequencer(1) */ + +/* Bit field enums: */ +typedef enum { + ADC_DC_DCTL_CIM_Multiple = 0x0UL, /*!< multiple trigger mode */ + ADC_DC_DCTL_CIM_Single = 0x1UL, /*!< single trigger mode */ + ADC_DC_DCTL_CIM_MultipleHyst = 0x2UL, /*!< multiple trigger mode with hysteresis */ + ADC_DC_DCTL_CIM_SingleHyst = 0x3UL, /*!< single trigger mode with hysteresis */ +} ADC_DC_DCTL_CIM_Enum; + +typedef enum { + ADC_DC_DCTL_CIC_Low = 0x0UL, /*!< result lower or equal COMP0 */ + ADC_DC_DCTL_CIC_Window = 0x1UL, /*!< result between COMP0 and COMP1 or equal any of them */ + ADC_DC_DCTL_CIC_High = 0x2UL, /*!< result higher or equal COMP1 */ +} ADC_DC_DCTL_CIC_Enum; + +typedef enum { + ADC_DC_DCTL_CTM_Multiple = 0x0UL, /*!< multiple trigger mode */ + ADC_DC_DCTL_CTM_Single = 0x1UL, /*!< single trigger mode */ + ADC_DC_DCTL_CTM_MultipleHyst = 0x2UL, /*!< multiple trigger mode with hysteresis */ + ADC_DC_DCTL_CTM_SingleHyst = 0x3UL, /*!< single trigger mode with hysteresis */ +} ADC_DC_DCTL_CTM_Enum; + +typedef enum { + ADC_DC_DCTL_CTC_Low = 0x0UL, /*!< result lower or equal COMP0 */ + ADC_DC_DCTL_CTC_Window = 0x1UL, /*!< result between COMP0 and COMP1 or equal any of them */ + ADC_DC_DCTL_CTC_High = 0x2UL, /*!< result higher or equal COMP1 */ +} ADC_DC_DCTL_CTC_Enum; + +/*-- DC: DCMP: Digital comparator range register --------------------------------------------------------------*/ +typedef struct { + uint32_t CMPL :12; /*!< Low threshold compare value */ + uint32_t :4; /*!< RESERVED */ + uint32_t CMPH :12; /*!< High threshold compare value */ +} _ADC_DC_DCMP_bits; + +/* Bit field positions: */ +#define ADC_DC_DCMP_CMPL_Pos 0 /*!< Low threshold compare value */ +#define ADC_DC_DCMP_CMPH_Pos 16 /*!< High threshold compare value */ + +/* Bit field masks: */ +#define ADC_DC_DCMP_CMPL_Msk 0x00000FFFUL /*!< Low threshold compare value */ +#define ADC_DC_DCMP_CMPH_Msk 0x0FFF0000UL /*!< High threshold compare value */ + +/*-- DC: DDATA: Digital comparator last compared data register ------------------------------------------------*/ +typedef struct { + uint32_t VAL :12; /*!< Value of last compared AD conversion result */ +} _ADC_DC_DDATA_bits; + +/* Bit field positions: */ +#define ADC_DC_DDATA_VAL_Pos 0 /*!< Value of last compared AD conversion result */ + +/* Bit field masks: */ +#define ADC_DC_DDATA_VAL_Msk 0x00000FFFUL /*!< Value of last compared AD conversion result */ + +/*-- ACTL: ADC module control register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t ADCEN :1; /*!< Enable ADC module */ + uint32_t ADCRDY :1; /*!< ADC ready for conversions */ +} _ADC_ACTL_bits; + +/* Bit field positions: */ +#define ADC_ACTL_ADCEN_Pos 0 /*!< Enable ADC module */ +#define ADC_ACTL_ADCRDY_Pos 1 /*!< ADC ready for conversions */ + +/* Bit field masks: */ +#define ADC_ACTL_ADCEN_Msk 0x00000001UL /*!< Enable ADC module */ +#define ADC_ACTL_ADCRDY_Msk 0x00000002UL /*!< ADC ready for conversions */ + +/*-- CHCTL: CHCTL: ADC channel control register ---------------------------------------------------------------*/ +typedef struct { + uint32_t OFFTRIM :9; /*!< ADC channel offset trimm value */ + uint32_t :7; /*!< RESERVED */ + uint32_t GAINTRIM :9; /*!< ADC channel gain trimm value */ + uint32_t :3; /*!< RESERVED */ + uint32_t PRIORITY :1; /*!< ADC channel priority level */ +} _ADC_CHCTL_CHCTL_bits; + +/* Bit field positions: */ +#define ADC_CHCTL_CHCTL_OFFTRIM_Pos 0 /*!< ADC channel offset trimm value */ +#define ADC_CHCTL_CHCTL_GAINTRIM_Pos 16 /*!< ADC channel gain trimm value */ +#define ADC_CHCTL_CHCTL_PRIORITY_Pos 28 /*!< ADC channel priority level */ + +/* Bit field masks: */ +#define ADC_CHCTL_CHCTL_OFFTRIM_Msk 0x000001FFUL /*!< ADC channel offset trimm value */ +#define ADC_CHCTL_CHCTL_GAINTRIM_Msk 0x01FF0000UL /*!< ADC channel gain trimm value */ +#define ADC_CHCTL_CHCTL_PRIORITY_Msk 0x10000000UL /*!< ADC channel priority level */ + +//Cluster SEQ: +typedef struct { + union { + /*!< Sequencer request ADC channels selection register */ + __IO uint32_t SRQSEL; /*!< SRQSEL : type used for word access */ + __IO _ADC_SEQ_SRQSEL_bits SRQSEL_bit; /*!< SRQSEL_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[3]; + union { + /*!< Sequencer request control register */ + __IO uint32_t SRQCTL; /*!< SRQCTL : type used for word access */ + __IO _ADC_SEQ_SRQCTL_bits SRQCTL_bit; /*!< SRQCTL_bit: structure used for bit access */ + }; + union { + /*!< Sequencer request status register */ + __I uint32_t SRQSTAT; /*!< SRQSTAT : type used for word access */ + __I _ADC_SEQ_SRQSTAT_bits SRQSTAT_bit; /*!< SRQSTAT_bit: structure used for bit access */ + }; + union { + /*!< Sequencer DMA control register */ + __IO uint32_t SDMACTL; /*!< SDMACTL : type used for word access */ + __IO _ADC_SEQ_SDMACTL_bits SDMACTL_bit; /*!< SDMACTL_bit: structure used for bit access */ + }; + union { + /*!< Sequencer ADC interrupt and restart counter control register */ + __IO uint32_t SCCTL; /*!< SCCTL : type used for word access */ + __IO _ADC_SEQ_SCCTL_bits SCCTL_bit; /*!< SCCTL_bit: structure used for bit access */ + }; + union { + /*!< Sequencer ADC interrupt and restart counter current value register */ + __O uint32_t SCVAL; /*!< SCVAL : type used for word access */ + __O _ADC_SEQ_SCVAL_bits SCVAL_bit; /*!< SCVAL_bit: structure used for bit access */ + }; + union { + /*!< Sequencer digital comparator selection register */ + __IO uint32_t SDC; /*!< SDC : type used for word access */ + __IO _ADC_SEQ_SDC_bits SDC_bit; /*!< SDC_bit: structure used for bit access */ + }; + union { + /*!< Sequencer ADC restart timer register */ + __IO uint32_t SRTMR; /*!< SRTMR : type used for word access */ + __IO _ADC_SEQ_SRTMR_bits SRTMR_bit; /*!< SRTMR_bit: structure used for bit access */ + }; + union { + /*!< Sequencer FIFO load status register */ + __I uint32_t SFLOAD; /*!< SFLOAD : type used for word access */ + __I _ADC_SEQ_SFLOAD_bits SFLOAD_bit; /*!< SFLOAD_bit: structure used for bit access */ + }; + union { + /*!< Sequencer FIFO register */ + __I uint32_t SFIFO; /*!< SFIFO : type used for word access */ + __I _ADC_SEQ_SFIFO_bits SFIFO_bit; /*!< SFIFO_bit: structure used for bit access */ + }; +} _ADC_SEQ_TypeDef; +//Cluster DC: +typedef struct { + union { + /*!< Digital comparator control register */ + __IO uint32_t DCTL; /*!< DCTL : type used for word access */ + __IO _ADC_DC_DCTL_bits DCTL_bit; /*!< DCTL_bit: structure used for bit access */ + }; + union { + /*!< Digital comparator range register */ + __IO uint32_t DCMP; /*!< DCMP : type used for word access */ + __IO _ADC_DC_DCMP_bits DCMP_bit; /*!< DCMP_bit: structure used for bit access */ + }; + union { + /*!< Digital comparator last compared data register */ + __I uint32_t DDATA; /*!< DDATA : type used for word access */ + __I _ADC_DC_DDATA_bits DDATA_bit; /*!< DDATA_bit: structure used for bit access */ + }; +} _ADC_DC_TypeDef; +//Cluster CHCTL: +typedef struct { + union { + /*!< ADC channel control register */ + __IO uint32_t CHCTL; /*!< CHCTL : type used for word access */ + __IO _ADC_CHCTL_CHCTL_bits CHCTL_bit; /*!< CHCTL_bit: structure used for bit access */ + }; +} _ADC_CHCTL_TypeDef; +typedef struct { + union { /*!< Enable sequencer register */ + __IO uint32_t SEQEN; /*!< SEQEN : type used for word access */ + __IO _ADC_SEQEN_bits SEQEN_bit; /*!< SEQEN_bit: structure used for bit access */ + }; + union { /*!< Sequencer sync register */ + __IO uint32_t SEQSYNC; /*!< SEQSYNC : type used for word access */ + __IO _ADC_SEQSYNC_bits SEQSYNC_bit; /*!< SEQSYNC_bit: structure used for bit access */ + }; + union { /*!< FIFO overflow status register */ + __IO uint32_t FSTAT; /*!< FSTAT : type used for word access */ + __IO _ADC_FSTAT_bits FSTAT_bit; /*!< FSTAT_bit: structure used for bit access */ + }; + union { /*!< Busy status register */ + __I uint32_t BSTAT; /*!< BSTAT : type used for word access */ + __I _ADC_BSTAT_bits BSTAT_bit; /*!< BSTAT_bit: structure used for bit access */ + }; + union { /*!< Digital comparator output trigger status register */ + __IO uint32_t DCTRIG; /*!< DCTRIG : type used for word access */ + __IO _ADC_DCTRIG_bits DCTRIG_bit; /*!< DCTRIG_bit: structure used for bit access */ + }; + union { /*!< Interrupt counter clear control */ + __IO uint32_t CICNT; /*!< CICNT : type used for word access */ + __IO _ADC_CICNT_bits CICNT_bit; /*!< CICNT_bit: structure used for bit access */ + }; + union { /*!< Sequencer start event selection register */ + __IO uint32_t EMUX; /*!< EMUX : type used for word access */ + __IO _ADC_EMUX_bits EMUX_bit; /*!< EMUX_bit: structure used for bit access */ + }; + union { /*!< Raw interrupt status register */ + __I uint32_t RIS; /*!< RIS : type used for word access */ + __I _ADC_RIS_bits RIS_bit; /*!< RIS_bit: structure used for bit access */ + }; + union { /*!< Interrupt mask register */ + __IO uint32_t IM; /*!< IM : type used for word access */ + __IO _ADC_IM_bits IM_bit; /*!< IM_bit: structure used for bit access */ + }; + union { /*!< Masked interrupt status and clear register */ + __I uint32_t MIS; /*!< MIS : type used for word access */ + __I _ADC_MIS_bits MIS_bit; /*!< MIS_bit: structure used for bit access */ + }; + union { /*!< Interrupt clear register */ + __O uint32_t IC; /*!< IC : type used for word access */ + __O _ADC_IC_bits IC_bit; /*!< IC_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[5]; + _ADC_SEQ_TypeDef SEQ[2]; + __IO uint32_t Reserved1[86]; + _ADC_DC_TypeDef DC[4]; + __IO uint32_t Reserved2[116]; + union { /*!< ADC module control register */ + __IO uint32_t ACTL; /*!< ACTL : type used for word access */ + __IO _ADC_ACTL_bits ACTL_bit; /*!< ACTL_bit: structure used for bit access */ + }; + __IO uint32_t Reserved3[63]; + _ADC_CHCTL_TypeDef CHCTL[4]; +} ADC_TypeDef; + + +/******************************************************************************/ +/* GPIO registers */ +/******************************************************************************/ + +/*-- DATA: Data Input register -------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :16; /*!< Data input */ +} _GPIO_DATA_bits; + +/* Bit field positions: */ +#define GPIO_DATA_VAL_Pos 0 /*!< Data input */ + +/* Bit field masks: */ +#define GPIO_DATA_VAL_Msk 0x0000FFFFUL /*!< Data input */ + +/*-- DATAOUT: Data output register ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :16; /*!< Data output */ +} _GPIO_DATAOUT_bits; + +/* Bit field positions: */ +#define GPIO_DATAOUT_VAL_Pos 0 /*!< Data output */ + +/* Bit field masks: */ +#define GPIO_DATAOUT_VAL_Msk 0x0000FFFFUL /*!< Data output */ + +/*-- DATAOUTSET: Data output set bits register ---------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Data output set bit 0 */ + uint32_t PIN1 :1; /*!< Data output set bit 1 */ + uint32_t PIN2 :1; /*!< Data output set bit 2 */ + uint32_t PIN3 :1; /*!< Data output set bit 3 */ + uint32_t PIN4 :1; /*!< Data output set bit 4 */ + uint32_t PIN5 :1; /*!< Data output set bit 5 */ + uint32_t PIN6 :1; /*!< Data output set bit 6 */ + uint32_t PIN7 :1; /*!< Data output set bit 7 */ + uint32_t PIN8 :1; /*!< Data output set bit 8 */ + uint32_t PIN9 :1; /*!< Data output set bit 9 */ + uint32_t PIN10 :1; /*!< Data output set bit 10 */ + uint32_t PIN11 :1; /*!< Data output set bit 11 */ + uint32_t PIN12 :1; /*!< Data output set bit 12 */ + uint32_t PIN13 :1; /*!< Data output set bit 13 */ + uint32_t PIN14 :1; /*!< Data output set bit 14 */ + uint32_t PIN15 :1; /*!< Data output set bit 15 */ +} _GPIO_DATAOUTSET_bits; + +/* Bit field positions: */ +#define GPIO_DATAOUTSET_PIN0_Pos 0 /*!< Data output set bit 0 */ +#define GPIO_DATAOUTSET_PIN1_Pos 1 /*!< Data output set bit 1 */ +#define GPIO_DATAOUTSET_PIN2_Pos 2 /*!< Data output set bit 2 */ +#define GPIO_DATAOUTSET_PIN3_Pos 3 /*!< Data output set bit 3 */ +#define GPIO_DATAOUTSET_PIN4_Pos 4 /*!< Data output set bit 4 */ +#define GPIO_DATAOUTSET_PIN5_Pos 5 /*!< Data output set bit 5 */ +#define GPIO_DATAOUTSET_PIN6_Pos 6 /*!< Data output set bit 6 */ +#define GPIO_DATAOUTSET_PIN7_Pos 7 /*!< Data output set bit 7 */ +#define GPIO_DATAOUTSET_PIN8_Pos 8 /*!< Data output set bit 8 */ +#define GPIO_DATAOUTSET_PIN9_Pos 9 /*!< Data output set bit 9 */ +#define GPIO_DATAOUTSET_PIN10_Pos 10 /*!< Data output set bit 10 */ +#define GPIO_DATAOUTSET_PIN11_Pos 11 /*!< Data output set bit 11 */ +#define GPIO_DATAOUTSET_PIN12_Pos 12 /*!< Data output set bit 12 */ +#define GPIO_DATAOUTSET_PIN13_Pos 13 /*!< Data output set bit 13 */ +#define GPIO_DATAOUTSET_PIN14_Pos 14 /*!< Data output set bit 14 */ +#define GPIO_DATAOUTSET_PIN15_Pos 15 /*!< Data output set bit 15 */ + +/* Bit field masks: */ +#define GPIO_DATAOUTSET_PIN0_Msk 0x00000001UL /*!< Data output set bit 0 */ +#define GPIO_DATAOUTSET_PIN1_Msk 0x00000002UL /*!< Data output set bit 1 */ +#define GPIO_DATAOUTSET_PIN2_Msk 0x00000004UL /*!< Data output set bit 2 */ +#define GPIO_DATAOUTSET_PIN3_Msk 0x00000008UL /*!< Data output set bit 3 */ +#define GPIO_DATAOUTSET_PIN4_Msk 0x00000010UL /*!< Data output set bit 4 */ +#define GPIO_DATAOUTSET_PIN5_Msk 0x00000020UL /*!< Data output set bit 5 */ +#define GPIO_DATAOUTSET_PIN6_Msk 0x00000040UL /*!< Data output set bit 6 */ +#define GPIO_DATAOUTSET_PIN7_Msk 0x00000080UL /*!< Data output set bit 7 */ +#define GPIO_DATAOUTSET_PIN8_Msk 0x00000100UL /*!< Data output set bit 8 */ +#define GPIO_DATAOUTSET_PIN9_Msk 0x00000200UL /*!< Data output set bit 9 */ +#define GPIO_DATAOUTSET_PIN10_Msk 0x00000400UL /*!< Data output set bit 10 */ +#define GPIO_DATAOUTSET_PIN11_Msk 0x00000800UL /*!< Data output set bit 11 */ +#define GPIO_DATAOUTSET_PIN12_Msk 0x00001000UL /*!< Data output set bit 12 */ +#define GPIO_DATAOUTSET_PIN13_Msk 0x00002000UL /*!< Data output set bit 13 */ +#define GPIO_DATAOUTSET_PIN14_Msk 0x00004000UL /*!< Data output set bit 14 */ +#define GPIO_DATAOUTSET_PIN15_Msk 0x00008000UL /*!< Data output set bit 15 */ + +/*-- DATAOUTCLR: Data output clear bits register -------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Data output clear bit 0 */ + uint32_t PIN1 :1; /*!< Data output clear bit 1 */ + uint32_t PIN2 :1; /*!< Data output clear bit 2 */ + uint32_t PIN3 :1; /*!< Data output clear bit 3 */ + uint32_t PIN4 :1; /*!< Data output clear bit 4 */ + uint32_t PIN5 :1; /*!< Data output clear bit 5 */ + uint32_t PIN6 :1; /*!< Data output clear bit 6 */ + uint32_t PIN7 :1; /*!< Data output clear bit 7 */ + uint32_t PIN8 :1; /*!< Data output clear bit 8 */ + uint32_t PIN9 :1; /*!< Data output clear bit 9 */ + uint32_t PIN10 :1; /*!< Data output clear bit 10 */ + uint32_t PIN11 :1; /*!< Data output clear bit 11 */ + uint32_t PIN12 :1; /*!< Data output clear bit 12 */ + uint32_t PIN13 :1; /*!< Data output clear bit 13 */ + uint32_t PIN14 :1; /*!< Data output clear bit 14 */ + uint32_t PIN15 :1; /*!< Data output clear bit 15 */ +} _GPIO_DATAOUTCLR_bits; + +/* Bit field positions: */ +#define GPIO_DATAOUTCLR_PIN0_Pos 0 /*!< Data output clear bit 0 */ +#define GPIO_DATAOUTCLR_PIN1_Pos 1 /*!< Data output clear bit 1 */ +#define GPIO_DATAOUTCLR_PIN2_Pos 2 /*!< Data output clear bit 2 */ +#define GPIO_DATAOUTCLR_PIN3_Pos 3 /*!< Data output clear bit 3 */ +#define GPIO_DATAOUTCLR_PIN4_Pos 4 /*!< Data output clear bit 4 */ +#define GPIO_DATAOUTCLR_PIN5_Pos 5 /*!< Data output clear bit 5 */ +#define GPIO_DATAOUTCLR_PIN6_Pos 6 /*!< Data output clear bit 6 */ +#define GPIO_DATAOUTCLR_PIN7_Pos 7 /*!< Data output clear bit 7 */ +#define GPIO_DATAOUTCLR_PIN8_Pos 8 /*!< Data output clear bit 8 */ +#define GPIO_DATAOUTCLR_PIN9_Pos 9 /*!< Data output clear bit 9 */ +#define GPIO_DATAOUTCLR_PIN10_Pos 10 /*!< Data output clear bit 10 */ +#define GPIO_DATAOUTCLR_PIN11_Pos 11 /*!< Data output clear bit 11 */ +#define GPIO_DATAOUTCLR_PIN12_Pos 12 /*!< Data output clear bit 12 */ +#define GPIO_DATAOUTCLR_PIN13_Pos 13 /*!< Data output clear bit 13 */ +#define GPIO_DATAOUTCLR_PIN14_Pos 14 /*!< Data output clear bit 14 */ +#define GPIO_DATAOUTCLR_PIN15_Pos 15 /*!< Data output clear bit 15 */ + +/* Bit field masks: */ +#define GPIO_DATAOUTCLR_PIN0_Msk 0x00000001UL /*!< Data output clear bit 0 */ +#define GPIO_DATAOUTCLR_PIN1_Msk 0x00000002UL /*!< Data output clear bit 1 */ +#define GPIO_DATAOUTCLR_PIN2_Msk 0x00000004UL /*!< Data output clear bit 2 */ +#define GPIO_DATAOUTCLR_PIN3_Msk 0x00000008UL /*!< Data output clear bit 3 */ +#define GPIO_DATAOUTCLR_PIN4_Msk 0x00000010UL /*!< Data output clear bit 4 */ +#define GPIO_DATAOUTCLR_PIN5_Msk 0x00000020UL /*!< Data output clear bit 5 */ +#define GPIO_DATAOUTCLR_PIN6_Msk 0x00000040UL /*!< Data output clear bit 6 */ +#define GPIO_DATAOUTCLR_PIN7_Msk 0x00000080UL /*!< Data output clear bit 7 */ +#define GPIO_DATAOUTCLR_PIN8_Msk 0x00000100UL /*!< Data output clear bit 8 */ +#define GPIO_DATAOUTCLR_PIN9_Msk 0x00000200UL /*!< Data output clear bit 9 */ +#define GPIO_DATAOUTCLR_PIN10_Msk 0x00000400UL /*!< Data output clear bit 10 */ +#define GPIO_DATAOUTCLR_PIN11_Msk 0x00000800UL /*!< Data output clear bit 11 */ +#define GPIO_DATAOUTCLR_PIN12_Msk 0x00001000UL /*!< Data output clear bit 12 */ +#define GPIO_DATAOUTCLR_PIN13_Msk 0x00002000UL /*!< Data output clear bit 13 */ +#define GPIO_DATAOUTCLR_PIN14_Msk 0x00004000UL /*!< Data output clear bit 14 */ +#define GPIO_DATAOUTCLR_PIN15_Msk 0x00008000UL /*!< Data output clear bit 15 */ + +/*-- DATAOUTTGL: Data output toogle bits register ------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Data output toogle bit 0 */ + uint32_t PIN1 :1; /*!< Data output toogle bit 1 */ + uint32_t PIN2 :1; /*!< Data output toogle bit 2 */ + uint32_t PIN3 :1; /*!< Data output toogle bit 3 */ + uint32_t PIN4 :1; /*!< Data output toogle bit 4 */ + uint32_t PIN5 :1; /*!< Data output toogle bit 5 */ + uint32_t PIN6 :1; /*!< Data output toogle bit 6 */ + uint32_t PIN7 :1; /*!< Data output toogle bit 7 */ + uint32_t PIN8 :1; /*!< Data output toogle bit 8 */ + uint32_t PIN9 :1; /*!< Data output toogle bit 9 */ + uint32_t PIN10 :1; /*!< Data output toogle bit 10 */ + uint32_t PIN11 :1; /*!< Data output toogle bit 11 */ + uint32_t PIN12 :1; /*!< Data output toogle bit 12 */ + uint32_t PIN13 :1; /*!< Data output toogle bit 13 */ + uint32_t PIN14 :1; /*!< Data output toogle bit 14 */ + uint32_t PIN15 :1; /*!< Data output toogle bit 15 */ +} _GPIO_DATAOUTTGL_bits; + +/* Bit field positions: */ +#define GPIO_DATAOUTTGL_PIN0_Pos 0 /*!< Data output toogle bit 0 */ +#define GPIO_DATAOUTTGL_PIN1_Pos 1 /*!< Data output toogle bit 1 */ +#define GPIO_DATAOUTTGL_PIN2_Pos 2 /*!< Data output toogle bit 2 */ +#define GPIO_DATAOUTTGL_PIN3_Pos 3 /*!< Data output toogle bit 3 */ +#define GPIO_DATAOUTTGL_PIN4_Pos 4 /*!< Data output toogle bit 4 */ +#define GPIO_DATAOUTTGL_PIN5_Pos 5 /*!< Data output toogle bit 5 */ +#define GPIO_DATAOUTTGL_PIN6_Pos 6 /*!< Data output toogle bit 6 */ +#define GPIO_DATAOUTTGL_PIN7_Pos 7 /*!< Data output toogle bit 7 */ +#define GPIO_DATAOUTTGL_PIN8_Pos 8 /*!< Data output toogle bit 8 */ +#define GPIO_DATAOUTTGL_PIN9_Pos 9 /*!< Data output toogle bit 9 */ +#define GPIO_DATAOUTTGL_PIN10_Pos 10 /*!< Data output toogle bit 10 */ +#define GPIO_DATAOUTTGL_PIN11_Pos 11 /*!< Data output toogle bit 11 */ +#define GPIO_DATAOUTTGL_PIN12_Pos 12 /*!< Data output toogle bit 12 */ +#define GPIO_DATAOUTTGL_PIN13_Pos 13 /*!< Data output toogle bit 13 */ +#define GPIO_DATAOUTTGL_PIN14_Pos 14 /*!< Data output toogle bit 14 */ +#define GPIO_DATAOUTTGL_PIN15_Pos 15 /*!< Data output toogle bit 15 */ + +/* Bit field masks: */ +#define GPIO_DATAOUTTGL_PIN0_Msk 0x00000001UL /*!< Data output toogle bit 0 */ +#define GPIO_DATAOUTTGL_PIN1_Msk 0x00000002UL /*!< Data output toogle bit 1 */ +#define GPIO_DATAOUTTGL_PIN2_Msk 0x00000004UL /*!< Data output toogle bit 2 */ +#define GPIO_DATAOUTTGL_PIN3_Msk 0x00000008UL /*!< Data output toogle bit 3 */ +#define GPIO_DATAOUTTGL_PIN4_Msk 0x00000010UL /*!< Data output toogle bit 4 */ +#define GPIO_DATAOUTTGL_PIN5_Msk 0x00000020UL /*!< Data output toogle bit 5 */ +#define GPIO_DATAOUTTGL_PIN6_Msk 0x00000040UL /*!< Data output toogle bit 6 */ +#define GPIO_DATAOUTTGL_PIN7_Msk 0x00000080UL /*!< Data output toogle bit 7 */ +#define GPIO_DATAOUTTGL_PIN8_Msk 0x00000100UL /*!< Data output toogle bit 8 */ +#define GPIO_DATAOUTTGL_PIN9_Msk 0x00000200UL /*!< Data output toogle bit 9 */ +#define GPIO_DATAOUTTGL_PIN10_Msk 0x00000400UL /*!< Data output toogle bit 10 */ +#define GPIO_DATAOUTTGL_PIN11_Msk 0x00000800UL /*!< Data output toogle bit 11 */ +#define GPIO_DATAOUTTGL_PIN12_Msk 0x00001000UL /*!< Data output toogle bit 12 */ +#define GPIO_DATAOUTTGL_PIN13_Msk 0x00002000UL /*!< Data output toogle bit 13 */ +#define GPIO_DATAOUTTGL_PIN14_Msk 0x00004000UL /*!< Data output toogle bit 14 */ +#define GPIO_DATAOUTTGL_PIN15_Msk 0x00008000UL /*!< Data output toogle bit 15 */ + +/*-- DENSET: Digital function (PAD) enable register ----------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Digital function (PAD) enable on pin 0 */ + uint32_t PIN1 :1; /*!< Digital function (PAD) enable on pin 1 */ + uint32_t PIN2 :1; /*!< Digital function (PAD) enable on pin 2 */ + uint32_t PIN3 :1; /*!< Digital function (PAD) enable on pin 3 */ + uint32_t PIN4 :1; /*!< Digital function (PAD) enable on pin 4 */ + uint32_t PIN5 :1; /*!< Digital function (PAD) enable on pin 5 */ + uint32_t PIN6 :1; /*!< Digital function (PAD) enable on pin 6 */ + uint32_t PIN7 :1; /*!< Digital function (PAD) enable on pin 7 */ + uint32_t PIN8 :1; /*!< Digital function (PAD) enable on pin 8 */ + uint32_t PIN9 :1; /*!< Digital function (PAD) enable on pin 9 */ + uint32_t PIN10 :1; /*!< Digital function (PAD) enable on pin 10 */ + uint32_t PIN11 :1; /*!< Digital function (PAD) enable on pin 11 */ + uint32_t PIN12 :1; /*!< Digital function (PAD) enable on pin 12 */ + uint32_t PIN13 :1; /*!< Digital function (PAD) enable on pin 13 */ + uint32_t PIN14 :1; /*!< Digital function (PAD) enable on pin 14 */ + uint32_t PIN15 :1; /*!< Digital function (PAD) enable on pin 15 */ +} _GPIO_DENSET_bits; + +/* Bit field positions: */ +#define GPIO_DENSET_PIN0_Pos 0 /*!< Digital function (PAD) enable on pin 0 */ +#define GPIO_DENSET_PIN1_Pos 1 /*!< Digital function (PAD) enable on pin 1 */ +#define GPIO_DENSET_PIN2_Pos 2 /*!< Digital function (PAD) enable on pin 2 */ +#define GPIO_DENSET_PIN3_Pos 3 /*!< Digital function (PAD) enable on pin 3 */ +#define GPIO_DENSET_PIN4_Pos 4 /*!< Digital function (PAD) enable on pin 4 */ +#define GPIO_DENSET_PIN5_Pos 5 /*!< Digital function (PAD) enable on pin 5 */ +#define GPIO_DENSET_PIN6_Pos 6 /*!< Digital function (PAD) enable on pin 6 */ +#define GPIO_DENSET_PIN7_Pos 7 /*!< Digital function (PAD) enable on pin 7 */ +#define GPIO_DENSET_PIN8_Pos 8 /*!< Digital function (PAD) enable on pin 8 */ +#define GPIO_DENSET_PIN9_Pos 9 /*!< Digital function (PAD) enable on pin 9 */ +#define GPIO_DENSET_PIN10_Pos 10 /*!< Digital function (PAD) enable on pin 10 */ +#define GPIO_DENSET_PIN11_Pos 11 /*!< Digital function (PAD) enable on pin 11 */ +#define GPIO_DENSET_PIN12_Pos 12 /*!< Digital function (PAD) enable on pin 12 */ +#define GPIO_DENSET_PIN13_Pos 13 /*!< Digital function (PAD) enable on pin 13 */ +#define GPIO_DENSET_PIN14_Pos 14 /*!< Digital function (PAD) enable on pin 14 */ +#define GPIO_DENSET_PIN15_Pos 15 /*!< Digital function (PAD) enable on pin 15 */ + +/* Bit field masks: */ +#define GPIO_DENSET_PIN0_Msk 0x00000001UL /*!< Digital function (PAD) enable on pin 0 */ +#define GPIO_DENSET_PIN1_Msk 0x00000002UL /*!< Digital function (PAD) enable on pin 1 */ +#define GPIO_DENSET_PIN2_Msk 0x00000004UL /*!< Digital function (PAD) enable on pin 2 */ +#define GPIO_DENSET_PIN3_Msk 0x00000008UL /*!< Digital function (PAD) enable on pin 3 */ +#define GPIO_DENSET_PIN4_Msk 0x00000010UL /*!< Digital function (PAD) enable on pin 4 */ +#define GPIO_DENSET_PIN5_Msk 0x00000020UL /*!< Digital function (PAD) enable on pin 5 */ +#define GPIO_DENSET_PIN6_Msk 0x00000040UL /*!< Digital function (PAD) enable on pin 6 */ +#define GPIO_DENSET_PIN7_Msk 0x00000080UL /*!< Digital function (PAD) enable on pin 7 */ +#define GPIO_DENSET_PIN8_Msk 0x00000100UL /*!< Digital function (PAD) enable on pin 8 */ +#define GPIO_DENSET_PIN9_Msk 0x00000200UL /*!< Digital function (PAD) enable on pin 9 */ +#define GPIO_DENSET_PIN10_Msk 0x00000400UL /*!< Digital function (PAD) enable on pin 10 */ +#define GPIO_DENSET_PIN11_Msk 0x00000800UL /*!< Digital function (PAD) enable on pin 11 */ +#define GPIO_DENSET_PIN12_Msk 0x00001000UL /*!< Digital function (PAD) enable on pin 12 */ +#define GPIO_DENSET_PIN13_Msk 0x00002000UL /*!< Digital function (PAD) enable on pin 13 */ +#define GPIO_DENSET_PIN14_Msk 0x00004000UL /*!< Digital function (PAD) enable on pin 14 */ +#define GPIO_DENSET_PIN15_Msk 0x00008000UL /*!< Digital function (PAD) enable on pin 15 */ + +/*-- DENCLR: Digital function (PAD) disable register ---------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Digital function (PAD) disable on pin 0 */ + uint32_t PIN1 :1; /*!< Digital function (PAD) disable on pin 1 */ + uint32_t PIN2 :1; /*!< Digital function (PAD) disable on pin 2 */ + uint32_t PIN3 :1; /*!< Digital function (PAD) disable on pin 3 */ + uint32_t PIN4 :1; /*!< Digital function (PAD) disable on pin 4 */ + uint32_t PIN5 :1; /*!< Digital function (PAD) disable on pin 5 */ + uint32_t PIN6 :1; /*!< Digital function (PAD) disable on pin 6 */ + uint32_t PIN7 :1; /*!< Digital function (PAD) disable on pin 7 */ + uint32_t PIN8 :1; /*!< Digital function (PAD) disable on pin 8 */ + uint32_t PIN9 :1; /*!< Digital function (PAD) disable on pin 9 */ + uint32_t PIN10 :1; /*!< Digital function (PAD) disable on pin 10 */ + uint32_t PIN11 :1; /*!< Digital function (PAD) disable on pin 11 */ + uint32_t PIN12 :1; /*!< Digital function (PAD) disable on pin 12 */ + uint32_t PIN13 :1; /*!< Digital function (PAD) disable on pin 13 */ + uint32_t PIN14 :1; /*!< Digital function (PAD) disable on pin 14 */ + uint32_t PIN15 :1; /*!< Digital function (PAD) disable on pin 15 */ +} _GPIO_DENCLR_bits; + +/* Bit field positions: */ +#define GPIO_DENCLR_PIN0_Pos 0 /*!< Digital function (PAD) disable on pin 0 */ +#define GPIO_DENCLR_PIN1_Pos 1 /*!< Digital function (PAD) disable on pin 1 */ +#define GPIO_DENCLR_PIN2_Pos 2 /*!< Digital function (PAD) disable on pin 2 */ +#define GPIO_DENCLR_PIN3_Pos 3 /*!< Digital function (PAD) disable on pin 3 */ +#define GPIO_DENCLR_PIN4_Pos 4 /*!< Digital function (PAD) disable on pin 4 */ +#define GPIO_DENCLR_PIN5_Pos 5 /*!< Digital function (PAD) disable on pin 5 */ +#define GPIO_DENCLR_PIN6_Pos 6 /*!< Digital function (PAD) disable on pin 6 */ +#define GPIO_DENCLR_PIN7_Pos 7 /*!< Digital function (PAD) disable on pin 7 */ +#define GPIO_DENCLR_PIN8_Pos 8 /*!< Digital function (PAD) disable on pin 8 */ +#define GPIO_DENCLR_PIN9_Pos 9 /*!< Digital function (PAD) disable on pin 9 */ +#define GPIO_DENCLR_PIN10_Pos 10 /*!< Digital function (PAD) disable on pin 10 */ +#define GPIO_DENCLR_PIN11_Pos 11 /*!< Digital function (PAD) disable on pin 11 */ +#define GPIO_DENCLR_PIN12_Pos 12 /*!< Digital function (PAD) disable on pin 12 */ +#define GPIO_DENCLR_PIN13_Pos 13 /*!< Digital function (PAD) disable on pin 13 */ +#define GPIO_DENCLR_PIN14_Pos 14 /*!< Digital function (PAD) disable on pin 14 */ +#define GPIO_DENCLR_PIN15_Pos 15 /*!< Digital function (PAD) disable on pin 15 */ + +/* Bit field masks: */ +#define GPIO_DENCLR_PIN0_Msk 0x00000001UL /*!< Digital function (PAD) disable on pin 0 */ +#define GPIO_DENCLR_PIN1_Msk 0x00000002UL /*!< Digital function (PAD) disable on pin 1 */ +#define GPIO_DENCLR_PIN2_Msk 0x00000004UL /*!< Digital function (PAD) disable on pin 2 */ +#define GPIO_DENCLR_PIN3_Msk 0x00000008UL /*!< Digital function (PAD) disable on pin 3 */ +#define GPIO_DENCLR_PIN4_Msk 0x00000010UL /*!< Digital function (PAD) disable on pin 4 */ +#define GPIO_DENCLR_PIN5_Msk 0x00000020UL /*!< Digital function (PAD) disable on pin 5 */ +#define GPIO_DENCLR_PIN6_Msk 0x00000040UL /*!< Digital function (PAD) disable on pin 6 */ +#define GPIO_DENCLR_PIN7_Msk 0x00000080UL /*!< Digital function (PAD) disable on pin 7 */ +#define GPIO_DENCLR_PIN8_Msk 0x00000100UL /*!< Digital function (PAD) disable on pin 8 */ +#define GPIO_DENCLR_PIN9_Msk 0x00000200UL /*!< Digital function (PAD) disable on pin 9 */ +#define GPIO_DENCLR_PIN10_Msk 0x00000400UL /*!< Digital function (PAD) disable on pin 10 */ +#define GPIO_DENCLR_PIN11_Msk 0x00000800UL /*!< Digital function (PAD) disable on pin 11 */ +#define GPIO_DENCLR_PIN12_Msk 0x00001000UL /*!< Digital function (PAD) disable on pin 12 */ +#define GPIO_DENCLR_PIN13_Msk 0x00002000UL /*!< Digital function (PAD) disable on pin 13 */ +#define GPIO_DENCLR_PIN14_Msk 0x00004000UL /*!< Digital function (PAD) disable on pin 14 */ +#define GPIO_DENCLR_PIN15_Msk 0x00008000UL /*!< Digital function (PAD) disable on pin 15 */ + +/*-- INMODE: Select input mode register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :2; /*!< Select input mode for pin 0 */ + uint32_t PIN1 :2; /*!< Select input mode for pin 1 */ + uint32_t PIN2 :2; /*!< Select input mode for pin 2 */ + uint32_t PIN3 :2; /*!< Select input mode for pin 3 */ + uint32_t PIN4 :2; /*!< Select input mode for pin 4 */ + uint32_t PIN5 :2; /*!< Select input mode for pin 5 */ + uint32_t PIN6 :2; /*!< Select input mode for pin 6 */ + uint32_t PIN7 :2; /*!< Select input mode for pin 7 */ + uint32_t PIN8 :2; /*!< Select input mode for pin 8 */ + uint32_t PIN9 :2; /*!< Select input mode for pin 9 */ + uint32_t PIN10 :2; /*!< Select input mode for pin 10 */ + uint32_t PIN11 :2; /*!< Select input mode for pin 11 */ + uint32_t PIN12 :2; /*!< Select input mode for pin 12 */ + uint32_t PIN13 :2; /*!< Select input mode for pin 13 */ + uint32_t PIN14 :2; /*!< Select input mode for pin 14 */ + uint32_t PIN15 :2; /*!< Select input mode for pin 15 */ +} _GPIO_INMODE_bits; + +/* Bit field positions: */ +#define GPIO_INMODE_PIN0_Pos 0 /*!< Select input mode for pin 0 */ +#define GPIO_INMODE_PIN1_Pos 2 /*!< Select input mode for pin 1 */ +#define GPIO_INMODE_PIN2_Pos 4 /*!< Select input mode for pin 2 */ +#define GPIO_INMODE_PIN3_Pos 6 /*!< Select input mode for pin 3 */ +#define GPIO_INMODE_PIN4_Pos 8 /*!< Select input mode for pin 4 */ +#define GPIO_INMODE_PIN5_Pos 10 /*!< Select input mode for pin 5 */ +#define GPIO_INMODE_PIN6_Pos 12 /*!< Select input mode for pin 6 */ +#define GPIO_INMODE_PIN7_Pos 14 /*!< Select input mode for pin 7 */ +#define GPIO_INMODE_PIN8_Pos 16 /*!< Select input mode for pin 8 */ +#define GPIO_INMODE_PIN9_Pos 18 /*!< Select input mode for pin 9 */ +#define GPIO_INMODE_PIN10_Pos 20 /*!< Select input mode for pin 10 */ +#define GPIO_INMODE_PIN11_Pos 22 /*!< Select input mode for pin 11 */ +#define GPIO_INMODE_PIN12_Pos 24 /*!< Select input mode for pin 12 */ +#define GPIO_INMODE_PIN13_Pos 26 /*!< Select input mode for pin 13 */ +#define GPIO_INMODE_PIN14_Pos 28 /*!< Select input mode for pin 14 */ +#define GPIO_INMODE_PIN15_Pos 30 /*!< Select input mode for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INMODE_PIN0_Msk 0x00000003UL /*!< Select input mode for pin 0 */ +#define GPIO_INMODE_PIN1_Msk 0x0000000CUL /*!< Select input mode for pin 1 */ +#define GPIO_INMODE_PIN2_Msk 0x00000030UL /*!< Select input mode for pin 2 */ +#define GPIO_INMODE_PIN3_Msk 0x000000C0UL /*!< Select input mode for pin 3 */ +#define GPIO_INMODE_PIN4_Msk 0x00000300UL /*!< Select input mode for pin 4 */ +#define GPIO_INMODE_PIN5_Msk 0x00000C00UL /*!< Select input mode for pin 5 */ +#define GPIO_INMODE_PIN6_Msk 0x00003000UL /*!< Select input mode for pin 6 */ +#define GPIO_INMODE_PIN7_Msk 0x0000C000UL /*!< Select input mode for pin 7 */ +#define GPIO_INMODE_PIN8_Msk 0x00030000UL /*!< Select input mode for pin 8 */ +#define GPIO_INMODE_PIN9_Msk 0x000C0000UL /*!< Select input mode for pin 9 */ +#define GPIO_INMODE_PIN10_Msk 0x00300000UL /*!< Select input mode for pin 10 */ +#define GPIO_INMODE_PIN11_Msk 0x00C00000UL /*!< Select input mode for pin 11 */ +#define GPIO_INMODE_PIN12_Msk 0x03000000UL /*!< Select input mode for pin 12 */ +#define GPIO_INMODE_PIN13_Msk 0x0C000000UL /*!< Select input mode for pin 13 */ +#define GPIO_INMODE_PIN14_Msk 0x30000000UL /*!< Select input mode for pin 14 */ +#define GPIO_INMODE_PIN15_Msk 0xC0000000UL /*!< Select input mode for pin 15 */ + +/* Bit field enums: */ +typedef enum { + GPIO_INMODE_PIN0_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN0_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN0_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN0_Enum; + +typedef enum { + GPIO_INMODE_PIN1_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN1_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN1_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN1_Enum; + +typedef enum { + GPIO_INMODE_PIN2_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN2_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN2_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN2_Enum; + +typedef enum { + GPIO_INMODE_PIN3_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN3_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN3_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN3_Enum; + +typedef enum { + GPIO_INMODE_PIN4_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN4_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN4_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN4_Enum; + +typedef enum { + GPIO_INMODE_PIN5_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN5_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN5_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN5_Enum; + +typedef enum { + GPIO_INMODE_PIN6_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN6_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN6_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN6_Enum; + +typedef enum { + GPIO_INMODE_PIN7_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN7_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN7_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN7_Enum; + +typedef enum { + GPIO_INMODE_PIN8_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN8_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN8_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN8_Enum; + +typedef enum { + GPIO_INMODE_PIN9_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN9_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN9_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN9_Enum; + +typedef enum { + GPIO_INMODE_PIN10_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN10_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN10_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN10_Enum; + +typedef enum { + GPIO_INMODE_PIN11_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN11_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN11_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN11_Enum; + +typedef enum { + GPIO_INMODE_PIN12_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN12_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN12_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN12_Enum; + +typedef enum { + GPIO_INMODE_PIN13_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN13_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN13_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN13_Enum; + +typedef enum { + GPIO_INMODE_PIN14_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN14_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN14_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN14_Enum; + +typedef enum { + GPIO_INMODE_PIN15_Schmitt = 0x0UL, /*!< Scmitt buffer */ + GPIO_INMODE_PIN15_CMOS = 0x1UL, /*!< CMOS buffer */ + GPIO_INMODE_PIN15_Disable = 0x3UL, /*!< Input buffer disabled */ +} GPIO_INMODE_PIN15_Enum; + +/*-- PULLMODE: Select pull mode register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :2; /*!< Select pull mode for pin 0 */ + uint32_t PIN1 :2; /*!< Select pull mode for pin 1 */ + uint32_t PIN2 :2; /*!< Select pull mode for pin 2 */ + uint32_t PIN3 :2; /*!< Select pull mode for pin 3 */ + uint32_t PIN4 :2; /*!< Select pull mode for pin 4 */ + uint32_t PIN5 :2; /*!< Select pull mode for pin 5 */ + uint32_t PIN6 :2; /*!< Select pull mode for pin 6 */ + uint32_t PIN7 :2; /*!< Select pull mode for pin 7 */ + uint32_t PIN8 :2; /*!< Select pull mode for pin 8 */ + uint32_t PIN9 :2; /*!< Select pull mode for pin 9 */ + uint32_t PIN10 :2; /*!< Select pull mode for pin 10 */ + uint32_t PIN11 :2; /*!< Select pull mode for pin 11 */ + uint32_t PIN12 :2; /*!< Select pull mode for pin 12 */ + uint32_t PIN13 :2; /*!< Select pull mode for pin 13 */ + uint32_t PIN14 :2; /*!< Select pull mode for pin 14 */ + uint32_t PIN15 :2; /*!< Select pull mode for pin 15 */ +} _GPIO_PULLMODE_bits; + +/* Bit field positions: */ +#define GPIO_PULLMODE_PIN0_Pos 0 /*!< Select pull mode for pin 0 */ +#define GPIO_PULLMODE_PIN1_Pos 2 /*!< Select pull mode for pin 1 */ +#define GPIO_PULLMODE_PIN2_Pos 4 /*!< Select pull mode for pin 2 */ +#define GPIO_PULLMODE_PIN3_Pos 6 /*!< Select pull mode for pin 3 */ +#define GPIO_PULLMODE_PIN4_Pos 8 /*!< Select pull mode for pin 4 */ +#define GPIO_PULLMODE_PIN5_Pos 10 /*!< Select pull mode for pin 5 */ +#define GPIO_PULLMODE_PIN6_Pos 12 /*!< Select pull mode for pin 6 */ +#define GPIO_PULLMODE_PIN7_Pos 14 /*!< Select pull mode for pin 7 */ +#define GPIO_PULLMODE_PIN8_Pos 16 /*!< Select pull mode for pin 8 */ +#define GPIO_PULLMODE_PIN9_Pos 18 /*!< Select pull mode for pin 9 */ +#define GPIO_PULLMODE_PIN10_Pos 20 /*!< Select pull mode for pin 10 */ +#define GPIO_PULLMODE_PIN11_Pos 22 /*!< Select pull mode for pin 11 */ +#define GPIO_PULLMODE_PIN12_Pos 24 /*!< Select pull mode for pin 12 */ +#define GPIO_PULLMODE_PIN13_Pos 26 /*!< Select pull mode for pin 13 */ +#define GPIO_PULLMODE_PIN14_Pos 28 /*!< Select pull mode for pin 14 */ +#define GPIO_PULLMODE_PIN15_Pos 30 /*!< Select pull mode for pin 15 */ + +/* Bit field masks: */ +#define GPIO_PULLMODE_PIN0_Msk 0x00000003UL /*!< Select pull mode for pin 0 */ +#define GPIO_PULLMODE_PIN1_Msk 0x0000000CUL /*!< Select pull mode for pin 1 */ +#define GPIO_PULLMODE_PIN2_Msk 0x00000030UL /*!< Select pull mode for pin 2 */ +#define GPIO_PULLMODE_PIN3_Msk 0x000000C0UL /*!< Select pull mode for pin 3 */ +#define GPIO_PULLMODE_PIN4_Msk 0x00000300UL /*!< Select pull mode for pin 4 */ +#define GPIO_PULLMODE_PIN5_Msk 0x00000C00UL /*!< Select pull mode for pin 5 */ +#define GPIO_PULLMODE_PIN6_Msk 0x00003000UL /*!< Select pull mode for pin 6 */ +#define GPIO_PULLMODE_PIN7_Msk 0x0000C000UL /*!< Select pull mode for pin 7 */ +#define GPIO_PULLMODE_PIN8_Msk 0x00030000UL /*!< Select pull mode for pin 8 */ +#define GPIO_PULLMODE_PIN9_Msk 0x000C0000UL /*!< Select pull mode for pin 9 */ +#define GPIO_PULLMODE_PIN10_Msk 0x00300000UL /*!< Select pull mode for pin 10 */ +#define GPIO_PULLMODE_PIN11_Msk 0x00C00000UL /*!< Select pull mode for pin 11 */ +#define GPIO_PULLMODE_PIN12_Msk 0x03000000UL /*!< Select pull mode for pin 12 */ +#define GPIO_PULLMODE_PIN13_Msk 0x0C000000UL /*!< Select pull mode for pin 13 */ +#define GPIO_PULLMODE_PIN14_Msk 0x30000000UL /*!< Select pull mode for pin 14 */ +#define GPIO_PULLMODE_PIN15_Msk 0xC0000000UL /*!< Select pull mode for pin 15 */ + +/* Bit field enums: */ +typedef enum { + GPIO_PULLMODE_PIN0_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN0_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN0_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN0_Enum; + +typedef enum { + GPIO_PULLMODE_PIN1_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN1_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN1_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN1_Enum; + +typedef enum { + GPIO_PULLMODE_PIN2_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN2_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN2_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN2_Enum; + +typedef enum { + GPIO_PULLMODE_PIN3_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN3_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN3_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN3_Enum; + +typedef enum { + GPIO_PULLMODE_PIN4_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN4_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN4_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN4_Enum; + +typedef enum { + GPIO_PULLMODE_PIN5_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN5_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN5_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN5_Enum; + +typedef enum { + GPIO_PULLMODE_PIN6_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN6_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN6_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN6_Enum; + +typedef enum { + GPIO_PULLMODE_PIN7_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN7_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN7_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN7_Enum; + +typedef enum { + GPIO_PULLMODE_PIN8_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN8_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN8_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN8_Enum; + +typedef enum { + GPIO_PULLMODE_PIN9_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN9_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN9_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN9_Enum; + +typedef enum { + GPIO_PULLMODE_PIN10_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN10_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN10_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN10_Enum; + +typedef enum { + GPIO_PULLMODE_PIN11_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN11_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN11_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN11_Enum; + +typedef enum { + GPIO_PULLMODE_PIN12_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN12_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN12_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN12_Enum; + +typedef enum { + GPIO_PULLMODE_PIN13_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN13_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN13_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN13_Enum; + +typedef enum { + GPIO_PULLMODE_PIN14_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN14_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN14_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN14_Enum; + +typedef enum { + GPIO_PULLMODE_PIN15_Disable = 0x0UL, /*!< Pull disabled */ + GPIO_PULLMODE_PIN15_PU = 0x1UL, /*!< Pull-up */ + GPIO_PULLMODE_PIN15_PD = 0x2UL, /*!< Pull-down */ +} GPIO_PULLMODE_PIN15_Enum; + +/*-- OUTMODE: Select output mode register --------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :2; /*!< Select output mode for pin 0 */ + uint32_t PIN1 :2; /*!< Select output mode for pin 1 */ + uint32_t PIN2 :2; /*!< Select output mode for pin 2 */ + uint32_t PIN3 :2; /*!< Select output mode for pin 3 */ + uint32_t PIN4 :2; /*!< Select output mode for pin 4 */ + uint32_t PIN5 :2; /*!< Select output mode for pin 5 */ + uint32_t PIN6 :2; /*!< Select output mode for pin 6 */ + uint32_t PIN7 :2; /*!< Select output mode for pin 7 */ + uint32_t PIN8 :2; /*!< Select output mode for pin 8 */ + uint32_t PIN9 :2; /*!< Select output mode for pin 9 */ + uint32_t PIN10 :2; /*!< Select output mode for pin 10 */ + uint32_t PIN11 :2; /*!< Select output mode for pin 11 */ + uint32_t PIN12 :2; /*!< Select output mode for pin 12 */ + uint32_t PIN13 :2; /*!< Select output mode for pin 13 */ + uint32_t PIN14 :2; /*!< Select output mode for pin 14 */ + uint32_t PIN15 :2; /*!< Select output mode for pin 15 */ +} _GPIO_OUTMODE_bits; + +/* Bit field positions: */ +#define GPIO_OUTMODE_PIN0_Pos 0 /*!< Select output mode for pin 0 */ +#define GPIO_OUTMODE_PIN1_Pos 2 /*!< Select output mode for pin 1 */ +#define GPIO_OUTMODE_PIN2_Pos 4 /*!< Select output mode for pin 2 */ +#define GPIO_OUTMODE_PIN3_Pos 6 /*!< Select output mode for pin 3 */ +#define GPIO_OUTMODE_PIN4_Pos 8 /*!< Select output mode for pin 4 */ +#define GPIO_OUTMODE_PIN5_Pos 10 /*!< Select output mode for pin 5 */ +#define GPIO_OUTMODE_PIN6_Pos 12 /*!< Select output mode for pin 6 */ +#define GPIO_OUTMODE_PIN7_Pos 14 /*!< Select output mode for pin 7 */ +#define GPIO_OUTMODE_PIN8_Pos 16 /*!< Select output mode for pin 8 */ +#define GPIO_OUTMODE_PIN9_Pos 18 /*!< Select output mode for pin 9 */ +#define GPIO_OUTMODE_PIN10_Pos 20 /*!< Select output mode for pin 10 */ +#define GPIO_OUTMODE_PIN11_Pos 22 /*!< Select output mode for pin 11 */ +#define GPIO_OUTMODE_PIN12_Pos 24 /*!< Select output mode for pin 12 */ +#define GPIO_OUTMODE_PIN13_Pos 26 /*!< Select output mode for pin 13 */ +#define GPIO_OUTMODE_PIN14_Pos 28 /*!< Select output mode for pin 14 */ +#define GPIO_OUTMODE_PIN15_Pos 30 /*!< Select output mode for pin 15 */ + +/* Bit field masks: */ +#define GPIO_OUTMODE_PIN0_Msk 0x00000003UL /*!< Select output mode for pin 0 */ +#define GPIO_OUTMODE_PIN1_Msk 0x0000000CUL /*!< Select output mode for pin 1 */ +#define GPIO_OUTMODE_PIN2_Msk 0x00000030UL /*!< Select output mode for pin 2 */ +#define GPIO_OUTMODE_PIN3_Msk 0x000000C0UL /*!< Select output mode for pin 3 */ +#define GPIO_OUTMODE_PIN4_Msk 0x00000300UL /*!< Select output mode for pin 4 */ +#define GPIO_OUTMODE_PIN5_Msk 0x00000C00UL /*!< Select output mode for pin 5 */ +#define GPIO_OUTMODE_PIN6_Msk 0x00003000UL /*!< Select output mode for pin 6 */ +#define GPIO_OUTMODE_PIN7_Msk 0x0000C000UL /*!< Select output mode for pin 7 */ +#define GPIO_OUTMODE_PIN8_Msk 0x00030000UL /*!< Select output mode for pin 8 */ +#define GPIO_OUTMODE_PIN9_Msk 0x000C0000UL /*!< Select output mode for pin 9 */ +#define GPIO_OUTMODE_PIN10_Msk 0x00300000UL /*!< Select output mode for pin 10 */ +#define GPIO_OUTMODE_PIN11_Msk 0x00C00000UL /*!< Select output mode for pin 11 */ +#define GPIO_OUTMODE_PIN12_Msk 0x03000000UL /*!< Select output mode for pin 12 */ +#define GPIO_OUTMODE_PIN13_Msk 0x0C000000UL /*!< Select output mode for pin 13 */ +#define GPIO_OUTMODE_PIN14_Msk 0x30000000UL /*!< Select output mode for pin 14 */ +#define GPIO_OUTMODE_PIN15_Msk 0xC0000000UL /*!< Select output mode for pin 15 */ + +/* Bit field enums: */ +typedef enum { + GPIO_OUTMODE_PIN0_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN0_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN0_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN0_Enum; + +typedef enum { + GPIO_OUTMODE_PIN1_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN1_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN1_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN1_Enum; + +typedef enum { + GPIO_OUTMODE_PIN2_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN2_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN2_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN2_Enum; + +typedef enum { + GPIO_OUTMODE_PIN3_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN3_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN3_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN3_Enum; + +typedef enum { + GPIO_OUTMODE_PIN4_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN4_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN4_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN4_Enum; + +typedef enum { + GPIO_OUTMODE_PIN5_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN5_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN5_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN5_Enum; + +typedef enum { + GPIO_OUTMODE_PIN6_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN6_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN6_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN6_Enum; + +typedef enum { + GPIO_OUTMODE_PIN7_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN7_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN7_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN7_Enum; + +typedef enum { + GPIO_OUTMODE_PIN8_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN8_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN8_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN8_Enum; + +typedef enum { + GPIO_OUTMODE_PIN9_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN9_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN9_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN9_Enum; + +typedef enum { + GPIO_OUTMODE_PIN10_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN10_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN10_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN10_Enum; + +typedef enum { + GPIO_OUTMODE_PIN11_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN11_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN11_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN11_Enum; + +typedef enum { + GPIO_OUTMODE_PIN12_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN12_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN12_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN12_Enum; + +typedef enum { + GPIO_OUTMODE_PIN13_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN13_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN13_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN13_Enum; + +typedef enum { + GPIO_OUTMODE_PIN14_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN14_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN14_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN14_Enum; + +typedef enum { + GPIO_OUTMODE_PIN15_PP = 0x0UL, /*!< Push-pull output */ + GPIO_OUTMODE_PIN15_OD = 0x1UL, /*!< Open drain output */ + GPIO_OUTMODE_PIN15_OS = 0x2UL, /*!< Open source output */ +} GPIO_OUTMODE_PIN15_Enum; + +/*-- DRIVEMODE: Select drive mode register -------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :2; /*!< Select drive mode for pin 0 */ + uint32_t PIN1 :2; /*!< Select drive mode for pin 1 */ + uint32_t PIN2 :2; /*!< Select drive mode for pin 2 */ + uint32_t PIN3 :2; /*!< Select drive mode for pin 3 */ + uint32_t PIN4 :2; /*!< Select drive mode for pin 4 */ + uint32_t PIN5 :2; /*!< Select drive mode for pin 5 */ + uint32_t PIN6 :2; /*!< Select drive mode for pin 6 */ + uint32_t PIN7 :2; /*!< Select drive mode for pin 7 */ + uint32_t PIN8 :2; /*!< Select drive mode for pin 8 */ + uint32_t PIN9 :2; /*!< Select drive mode for pin 9 */ + uint32_t PIN10 :2; /*!< Select drive mode for pin 10 */ + uint32_t PIN11 :2; /*!< Select drive mode for pin 11 */ + uint32_t PIN12 :2; /*!< Select drive mode for pin 12 */ + uint32_t PIN13 :2; /*!< Select drive mode for pin 13 */ + uint32_t PIN14 :2; /*!< Select drive mode for pin 14 */ + uint32_t PIN15 :2; /*!< Select drive mode for pin 15 */ +} _GPIO_DRIVEMODE_bits; + +/* Bit field positions: */ +#define GPIO_DRIVEMODE_PIN0_Pos 0 /*!< Select drive mode for pin 0 */ +#define GPIO_DRIVEMODE_PIN1_Pos 2 /*!< Select drive mode for pin 1 */ +#define GPIO_DRIVEMODE_PIN2_Pos 4 /*!< Select drive mode for pin 2 */ +#define GPIO_DRIVEMODE_PIN3_Pos 6 /*!< Select drive mode for pin 3 */ +#define GPIO_DRIVEMODE_PIN4_Pos 8 /*!< Select drive mode for pin 4 */ +#define GPIO_DRIVEMODE_PIN5_Pos 10 /*!< Select drive mode for pin 5 */ +#define GPIO_DRIVEMODE_PIN6_Pos 12 /*!< Select drive mode for pin 6 */ +#define GPIO_DRIVEMODE_PIN7_Pos 14 /*!< Select drive mode for pin 7 */ +#define GPIO_DRIVEMODE_PIN8_Pos 16 /*!< Select drive mode for pin 8 */ +#define GPIO_DRIVEMODE_PIN9_Pos 18 /*!< Select drive mode for pin 9 */ +#define GPIO_DRIVEMODE_PIN10_Pos 20 /*!< Select drive mode for pin 10 */ +#define GPIO_DRIVEMODE_PIN11_Pos 22 /*!< Select drive mode for pin 11 */ +#define GPIO_DRIVEMODE_PIN12_Pos 24 /*!< Select drive mode for pin 12 */ +#define GPIO_DRIVEMODE_PIN13_Pos 26 /*!< Select drive mode for pin 13 */ +#define GPIO_DRIVEMODE_PIN14_Pos 28 /*!< Select drive mode for pin 14 */ +#define GPIO_DRIVEMODE_PIN15_Pos 30 /*!< Select drive mode for pin 15 */ + +/* Bit field masks: */ +#define GPIO_DRIVEMODE_PIN0_Msk 0x00000003UL /*!< Select drive mode for pin 0 */ +#define GPIO_DRIVEMODE_PIN1_Msk 0x0000000CUL /*!< Select drive mode for pin 1 */ +#define GPIO_DRIVEMODE_PIN2_Msk 0x00000030UL /*!< Select drive mode for pin 2 */ +#define GPIO_DRIVEMODE_PIN3_Msk 0x000000C0UL /*!< Select drive mode for pin 3 */ +#define GPIO_DRIVEMODE_PIN4_Msk 0x00000300UL /*!< Select drive mode for pin 4 */ +#define GPIO_DRIVEMODE_PIN5_Msk 0x00000C00UL /*!< Select drive mode for pin 5 */ +#define GPIO_DRIVEMODE_PIN6_Msk 0x00003000UL /*!< Select drive mode for pin 6 */ +#define GPIO_DRIVEMODE_PIN7_Msk 0x0000C000UL /*!< Select drive mode for pin 7 */ +#define GPIO_DRIVEMODE_PIN8_Msk 0x00030000UL /*!< Select drive mode for pin 8 */ +#define GPIO_DRIVEMODE_PIN9_Msk 0x000C0000UL /*!< Select drive mode for pin 9 */ +#define GPIO_DRIVEMODE_PIN10_Msk 0x00300000UL /*!< Select drive mode for pin 10 */ +#define GPIO_DRIVEMODE_PIN11_Msk 0x00C00000UL /*!< Select drive mode for pin 11 */ +#define GPIO_DRIVEMODE_PIN12_Msk 0x03000000UL /*!< Select drive mode for pin 12 */ +#define GPIO_DRIVEMODE_PIN13_Msk 0x0C000000UL /*!< Select drive mode for pin 13 */ +#define GPIO_DRIVEMODE_PIN14_Msk 0x30000000UL /*!< Select drive mode for pin 14 */ +#define GPIO_DRIVEMODE_PIN15_Msk 0xC0000000UL /*!< Select drive mode for pin 15 */ + +/* Bit field enums: */ +typedef enum { + GPIO_DRIVEMODE_PIN0_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN0_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN0_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN0_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN0_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN1_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN1_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN1_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN1_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN1_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN2_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN2_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN2_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN2_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN2_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN3_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN3_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN3_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN3_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN3_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN4_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN4_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN4_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN4_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN4_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN5_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN5_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN5_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN5_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN5_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN6_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN6_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN6_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN6_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN6_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN7_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN7_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN7_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN7_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN7_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN8_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN8_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN8_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN8_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN8_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN9_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN9_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN9_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN9_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN9_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN10_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN10_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN10_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN10_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN10_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN11_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN11_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN11_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN11_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN11_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN12_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN12_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN12_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN12_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN12_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN13_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN13_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN13_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN13_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN13_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN14_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN14_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN14_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN14_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN14_Enum; + +typedef enum { + GPIO_DRIVEMODE_PIN15_HF = 0x0UL, /*!< High strength and Fast rate */ + GPIO_DRIVEMODE_PIN15_HS = 0x1UL, /*!< High strength and Slow rate */ + GPIO_DRIVEMODE_PIN15_LF = 0x2UL, /*!< Low strength and Fast rate */ + GPIO_DRIVEMODE_PIN15_LS = 0x3UL, /*!< Low strength and Slow rate */ +} GPIO_DRIVEMODE_PIN15_Enum; + +/*-- OUTENSET: Output enable register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Output enable for pin 0 */ + uint32_t PIN1 :1; /*!< Output enable for pin 1 */ + uint32_t PIN2 :1; /*!< Output enable for pin 2 */ + uint32_t PIN3 :1; /*!< Output enable for pin 3 */ + uint32_t PIN4 :1; /*!< Output enable for pin 4 */ + uint32_t PIN5 :1; /*!< Output enable for pin 5 */ + uint32_t PIN6 :1; /*!< Output enable for pin 6 */ + uint32_t PIN7 :1; /*!< Output enable for pin 7 */ + uint32_t PIN8 :1; /*!< Output enable for pin 8 */ + uint32_t PIN9 :1; /*!< Output enable for pin 9 */ + uint32_t PIN10 :1; /*!< Output enable for pin 10 */ + uint32_t PIN11 :1; /*!< Output enable for pin 11 */ + uint32_t PIN12 :1; /*!< Output enable for pin 12 */ + uint32_t PIN13 :1; /*!< Output enable for pin 13 */ + uint32_t PIN14 :1; /*!< Output enable for pin 14 */ + uint32_t PIN15 :1; /*!< Output enable for pin 15 */ +} _GPIO_OUTENSET_bits; + +/* Bit field positions: */ +#define GPIO_OUTENSET_PIN0_Pos 0 /*!< Output enable for pin 0 */ +#define GPIO_OUTENSET_PIN1_Pos 1 /*!< Output enable for pin 1 */ +#define GPIO_OUTENSET_PIN2_Pos 2 /*!< Output enable for pin 2 */ +#define GPIO_OUTENSET_PIN3_Pos 3 /*!< Output enable for pin 3 */ +#define GPIO_OUTENSET_PIN4_Pos 4 /*!< Output enable for pin 4 */ +#define GPIO_OUTENSET_PIN5_Pos 5 /*!< Output enable for pin 5 */ +#define GPIO_OUTENSET_PIN6_Pos 6 /*!< Output enable for pin 6 */ +#define GPIO_OUTENSET_PIN7_Pos 7 /*!< Output enable for pin 7 */ +#define GPIO_OUTENSET_PIN8_Pos 8 /*!< Output enable for pin 8 */ +#define GPIO_OUTENSET_PIN9_Pos 9 /*!< Output enable for pin 9 */ +#define GPIO_OUTENSET_PIN10_Pos 10 /*!< Output enable for pin 10 */ +#define GPIO_OUTENSET_PIN11_Pos 11 /*!< Output enable for pin 11 */ +#define GPIO_OUTENSET_PIN12_Pos 12 /*!< Output enable for pin 12 */ +#define GPIO_OUTENSET_PIN13_Pos 13 /*!< Output enable for pin 13 */ +#define GPIO_OUTENSET_PIN14_Pos 14 /*!< Output enable for pin 14 */ +#define GPIO_OUTENSET_PIN15_Pos 15 /*!< Output enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_OUTENSET_PIN0_Msk 0x00000001UL /*!< Output enable for pin 0 */ +#define GPIO_OUTENSET_PIN1_Msk 0x00000002UL /*!< Output enable for pin 1 */ +#define GPIO_OUTENSET_PIN2_Msk 0x00000004UL /*!< Output enable for pin 2 */ +#define GPIO_OUTENSET_PIN3_Msk 0x00000008UL /*!< Output enable for pin 3 */ +#define GPIO_OUTENSET_PIN4_Msk 0x00000010UL /*!< Output enable for pin 4 */ +#define GPIO_OUTENSET_PIN5_Msk 0x00000020UL /*!< Output enable for pin 5 */ +#define GPIO_OUTENSET_PIN6_Msk 0x00000040UL /*!< Output enable for pin 6 */ +#define GPIO_OUTENSET_PIN7_Msk 0x00000080UL /*!< Output enable for pin 7 */ +#define GPIO_OUTENSET_PIN8_Msk 0x00000100UL /*!< Output enable for pin 8 */ +#define GPIO_OUTENSET_PIN9_Msk 0x00000200UL /*!< Output enable for pin 9 */ +#define GPIO_OUTENSET_PIN10_Msk 0x00000400UL /*!< Output enable for pin 10 */ +#define GPIO_OUTENSET_PIN11_Msk 0x00000800UL /*!< Output enable for pin 11 */ +#define GPIO_OUTENSET_PIN12_Msk 0x00001000UL /*!< Output enable for pin 12 */ +#define GPIO_OUTENSET_PIN13_Msk 0x00002000UL /*!< Output enable for pin 13 */ +#define GPIO_OUTENSET_PIN14_Msk 0x00004000UL /*!< Output enable for pin 14 */ +#define GPIO_OUTENSET_PIN15_Msk 0x00008000UL /*!< Output enable for pin 15 */ + +/*-- OUTENCLR: Output disable register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Output disable for pin 0 */ + uint32_t PIN1 :1; /*!< Output disable for pin 1 */ + uint32_t PIN2 :1; /*!< Output disable for pin 2 */ + uint32_t PIN3 :1; /*!< Output disable for pin 3 */ + uint32_t PIN4 :1; /*!< Output disable for pin 4 */ + uint32_t PIN5 :1; /*!< Output disable for pin 5 */ + uint32_t PIN6 :1; /*!< Output disable for pin 6 */ + uint32_t PIN7 :1; /*!< Output disable for pin 7 */ + uint32_t PIN8 :1; /*!< Output disable for pin 8 */ + uint32_t PIN9 :1; /*!< Output disable for pin 9 */ + uint32_t PIN10 :1; /*!< Output disable for pin 10 */ + uint32_t PIN11 :1; /*!< Output disable for pin 11 */ + uint32_t PIN12 :1; /*!< Output disable for pin 12 */ + uint32_t PIN13 :1; /*!< Output disable for pin 13 */ + uint32_t PIN14 :1; /*!< Output disable for pin 14 */ + uint32_t PIN15 :1; /*!< Output disable for pin 15 */ +} _GPIO_OUTENCLR_bits; + +/* Bit field positions: */ +#define GPIO_OUTENCLR_PIN0_Pos 0 /*!< Output disable for pin 0 */ +#define GPIO_OUTENCLR_PIN1_Pos 1 /*!< Output disable for pin 1 */ +#define GPIO_OUTENCLR_PIN2_Pos 2 /*!< Output disable for pin 2 */ +#define GPIO_OUTENCLR_PIN3_Pos 3 /*!< Output disable for pin 3 */ +#define GPIO_OUTENCLR_PIN4_Pos 4 /*!< Output disable for pin 4 */ +#define GPIO_OUTENCLR_PIN5_Pos 5 /*!< Output disable for pin 5 */ +#define GPIO_OUTENCLR_PIN6_Pos 6 /*!< Output disable for pin 6 */ +#define GPIO_OUTENCLR_PIN7_Pos 7 /*!< Output disable for pin 7 */ +#define GPIO_OUTENCLR_PIN8_Pos 8 /*!< Output disable for pin 8 */ +#define GPIO_OUTENCLR_PIN9_Pos 9 /*!< Output disable for pin 9 */ +#define GPIO_OUTENCLR_PIN10_Pos 10 /*!< Output disable for pin 10 */ +#define GPIO_OUTENCLR_PIN11_Pos 11 /*!< Output disable for pin 11 */ +#define GPIO_OUTENCLR_PIN12_Pos 12 /*!< Output disable for pin 12 */ +#define GPIO_OUTENCLR_PIN13_Pos 13 /*!< Output disable for pin 13 */ +#define GPIO_OUTENCLR_PIN14_Pos 14 /*!< Output disable for pin 14 */ +#define GPIO_OUTENCLR_PIN15_Pos 15 /*!< Output disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_OUTENCLR_PIN0_Msk 0x00000001UL /*!< Output disable for pin 0 */ +#define GPIO_OUTENCLR_PIN1_Msk 0x00000002UL /*!< Output disable for pin 1 */ +#define GPIO_OUTENCLR_PIN2_Msk 0x00000004UL /*!< Output disable for pin 2 */ +#define GPIO_OUTENCLR_PIN3_Msk 0x00000008UL /*!< Output disable for pin 3 */ +#define GPIO_OUTENCLR_PIN4_Msk 0x00000010UL /*!< Output disable for pin 4 */ +#define GPIO_OUTENCLR_PIN5_Msk 0x00000020UL /*!< Output disable for pin 5 */ +#define GPIO_OUTENCLR_PIN6_Msk 0x00000040UL /*!< Output disable for pin 6 */ +#define GPIO_OUTENCLR_PIN7_Msk 0x00000080UL /*!< Output disable for pin 7 */ +#define GPIO_OUTENCLR_PIN8_Msk 0x00000100UL /*!< Output disable for pin 8 */ +#define GPIO_OUTENCLR_PIN9_Msk 0x00000200UL /*!< Output disable for pin 9 */ +#define GPIO_OUTENCLR_PIN10_Msk 0x00000400UL /*!< Output disable for pin 10 */ +#define GPIO_OUTENCLR_PIN11_Msk 0x00000800UL /*!< Output disable for pin 11 */ +#define GPIO_OUTENCLR_PIN12_Msk 0x00001000UL /*!< Output disable for pin 12 */ +#define GPIO_OUTENCLR_PIN13_Msk 0x00002000UL /*!< Output disable for pin 13 */ +#define GPIO_OUTENCLR_PIN14_Msk 0x00004000UL /*!< Output disable for pin 14 */ +#define GPIO_OUTENCLR_PIN15_Msk 0x00008000UL /*!< Output disable for pin 15 */ + +/*-- ALTFUNCSET: Alternative function enable register --------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Alternative function enable for pin 0 */ + uint32_t PIN1 :1; /*!< Alternative function enable for pin 1 */ + uint32_t PIN2 :1; /*!< Alternative function enable for pin 2 */ + uint32_t PIN3 :1; /*!< Alternative function enable for pin 3 */ + uint32_t PIN4 :1; /*!< Alternative function enable for pin 4 */ + uint32_t PIN5 :1; /*!< Alternative function enable for pin 5 */ + uint32_t PIN6 :1; /*!< Alternative function enable for pin 6 */ + uint32_t PIN7 :1; /*!< Alternative function enable for pin 7 */ + uint32_t PIN8 :1; /*!< Alternative function enable for pin 8 */ + uint32_t PIN9 :1; /*!< Alternative function enable for pin 9 */ + uint32_t PIN10 :1; /*!< Alternative function enable for pin 10 */ + uint32_t PIN11 :1; /*!< Alternative function enable for pin 11 */ + uint32_t PIN12 :1; /*!< Alternative function enable for pin 12 */ + uint32_t PIN13 :1; /*!< Alternative function enable for pin 13 */ + uint32_t PIN14 :1; /*!< Alternative function enable for pin 14 */ + uint32_t PIN15 :1; /*!< Alternative function enable for pin 15 */ +} _GPIO_ALTFUNCSET_bits; + +/* Bit field positions: */ +#define GPIO_ALTFUNCSET_PIN0_Pos 0 /*!< Alternative function enable for pin 0 */ +#define GPIO_ALTFUNCSET_PIN1_Pos 1 /*!< Alternative function enable for pin 1 */ +#define GPIO_ALTFUNCSET_PIN2_Pos 2 /*!< Alternative function enable for pin 2 */ +#define GPIO_ALTFUNCSET_PIN3_Pos 3 /*!< Alternative function enable for pin 3 */ +#define GPIO_ALTFUNCSET_PIN4_Pos 4 /*!< Alternative function enable for pin 4 */ +#define GPIO_ALTFUNCSET_PIN5_Pos 5 /*!< Alternative function enable for pin 5 */ +#define GPIO_ALTFUNCSET_PIN6_Pos 6 /*!< Alternative function enable for pin 6 */ +#define GPIO_ALTFUNCSET_PIN7_Pos 7 /*!< Alternative function enable for pin 7 */ +#define GPIO_ALTFUNCSET_PIN8_Pos 8 /*!< Alternative function enable for pin 8 */ +#define GPIO_ALTFUNCSET_PIN9_Pos 9 /*!< Alternative function enable for pin 9 */ +#define GPIO_ALTFUNCSET_PIN10_Pos 10 /*!< Alternative function enable for pin 10 */ +#define GPIO_ALTFUNCSET_PIN11_Pos 11 /*!< Alternative function enable for pin 11 */ +#define GPIO_ALTFUNCSET_PIN12_Pos 12 /*!< Alternative function enable for pin 12 */ +#define GPIO_ALTFUNCSET_PIN13_Pos 13 /*!< Alternative function enable for pin 13 */ +#define GPIO_ALTFUNCSET_PIN14_Pos 14 /*!< Alternative function enable for pin 14 */ +#define GPIO_ALTFUNCSET_PIN15_Pos 15 /*!< Alternative function enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_ALTFUNCSET_PIN0_Msk 0x00000001UL /*!< Alternative function enable for pin 0 */ +#define GPIO_ALTFUNCSET_PIN1_Msk 0x00000002UL /*!< Alternative function enable for pin 1 */ +#define GPIO_ALTFUNCSET_PIN2_Msk 0x00000004UL /*!< Alternative function enable for pin 2 */ +#define GPIO_ALTFUNCSET_PIN3_Msk 0x00000008UL /*!< Alternative function enable for pin 3 */ +#define GPIO_ALTFUNCSET_PIN4_Msk 0x00000010UL /*!< Alternative function enable for pin 4 */ +#define GPIO_ALTFUNCSET_PIN5_Msk 0x00000020UL /*!< Alternative function enable for pin 5 */ +#define GPIO_ALTFUNCSET_PIN6_Msk 0x00000040UL /*!< Alternative function enable for pin 6 */ +#define GPIO_ALTFUNCSET_PIN7_Msk 0x00000080UL /*!< Alternative function enable for pin 7 */ +#define GPIO_ALTFUNCSET_PIN8_Msk 0x00000100UL /*!< Alternative function enable for pin 8 */ +#define GPIO_ALTFUNCSET_PIN9_Msk 0x00000200UL /*!< Alternative function enable for pin 9 */ +#define GPIO_ALTFUNCSET_PIN10_Msk 0x00000400UL /*!< Alternative function enable for pin 10 */ +#define GPIO_ALTFUNCSET_PIN11_Msk 0x00000800UL /*!< Alternative function enable for pin 11 */ +#define GPIO_ALTFUNCSET_PIN12_Msk 0x00001000UL /*!< Alternative function enable for pin 12 */ +#define GPIO_ALTFUNCSET_PIN13_Msk 0x00002000UL /*!< Alternative function enable for pin 13 */ +#define GPIO_ALTFUNCSET_PIN14_Msk 0x00004000UL /*!< Alternative function enable for pin 14 */ +#define GPIO_ALTFUNCSET_PIN15_Msk 0x00008000UL /*!< Alternative function enable for pin 15 */ + +/*-- ALTFUNCCLR: Alternative function disable register -------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Alternative function disable for pin 0 */ + uint32_t PIN1 :1; /*!< Alternative function disable for pin 1 */ + uint32_t PIN2 :1; /*!< Alternative function disable for pin 2 */ + uint32_t PIN3 :1; /*!< Alternative function disable for pin 3 */ + uint32_t PIN4 :1; /*!< Alternative function disable for pin 4 */ + uint32_t PIN5 :1; /*!< Alternative function disable for pin 5 */ + uint32_t PIN6 :1; /*!< Alternative function disable for pin 6 */ + uint32_t PIN7 :1; /*!< Alternative function disable for pin 7 */ + uint32_t PIN8 :1; /*!< Alternative function disable for pin 8 */ + uint32_t PIN9 :1; /*!< Alternative function disable for pin 9 */ + uint32_t PIN10 :1; /*!< Alternative function disable for pin 10 */ + uint32_t PIN11 :1; /*!< Alternative function disable for pin 11 */ + uint32_t PIN12 :1; /*!< Alternative function disable for pin 12 */ + uint32_t PIN13 :1; /*!< Alternative function disable for pin 13 */ + uint32_t PIN14 :1; /*!< Alternative function disable for pin 14 */ + uint32_t PIN15 :1; /*!< Alternative function disable for pin 15 */ +} _GPIO_ALTFUNCCLR_bits; + +/* Bit field positions: */ +#define GPIO_ALTFUNCCLR_PIN0_Pos 0 /*!< Alternative function disable for pin 0 */ +#define GPIO_ALTFUNCCLR_PIN1_Pos 1 /*!< Alternative function disable for pin 1 */ +#define GPIO_ALTFUNCCLR_PIN2_Pos 2 /*!< Alternative function disable for pin 2 */ +#define GPIO_ALTFUNCCLR_PIN3_Pos 3 /*!< Alternative function disable for pin 3 */ +#define GPIO_ALTFUNCCLR_PIN4_Pos 4 /*!< Alternative function disable for pin 4 */ +#define GPIO_ALTFUNCCLR_PIN5_Pos 5 /*!< Alternative function disable for pin 5 */ +#define GPIO_ALTFUNCCLR_PIN6_Pos 6 /*!< Alternative function disable for pin 6 */ +#define GPIO_ALTFUNCCLR_PIN7_Pos 7 /*!< Alternative function disable for pin 7 */ +#define GPIO_ALTFUNCCLR_PIN8_Pos 8 /*!< Alternative function disable for pin 8 */ +#define GPIO_ALTFUNCCLR_PIN9_Pos 9 /*!< Alternative function disable for pin 9 */ +#define GPIO_ALTFUNCCLR_PIN10_Pos 10 /*!< Alternative function disable for pin 10 */ +#define GPIO_ALTFUNCCLR_PIN11_Pos 11 /*!< Alternative function disable for pin 11 */ +#define GPIO_ALTFUNCCLR_PIN12_Pos 12 /*!< Alternative function disable for pin 12 */ +#define GPIO_ALTFUNCCLR_PIN13_Pos 13 /*!< Alternative function disable for pin 13 */ +#define GPIO_ALTFUNCCLR_PIN14_Pos 14 /*!< Alternative function disable for pin 14 */ +#define GPIO_ALTFUNCCLR_PIN15_Pos 15 /*!< Alternative function disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_ALTFUNCCLR_PIN0_Msk 0x00000001UL /*!< Alternative function disable for pin 0 */ +#define GPIO_ALTFUNCCLR_PIN1_Msk 0x00000002UL /*!< Alternative function disable for pin 1 */ +#define GPIO_ALTFUNCCLR_PIN2_Msk 0x00000004UL /*!< Alternative function disable for pin 2 */ +#define GPIO_ALTFUNCCLR_PIN3_Msk 0x00000008UL /*!< Alternative function disable for pin 3 */ +#define GPIO_ALTFUNCCLR_PIN4_Msk 0x00000010UL /*!< Alternative function disable for pin 4 */ +#define GPIO_ALTFUNCCLR_PIN5_Msk 0x00000020UL /*!< Alternative function disable for pin 5 */ +#define GPIO_ALTFUNCCLR_PIN6_Msk 0x00000040UL /*!< Alternative function disable for pin 6 */ +#define GPIO_ALTFUNCCLR_PIN7_Msk 0x00000080UL /*!< Alternative function disable for pin 7 */ +#define GPIO_ALTFUNCCLR_PIN8_Msk 0x00000100UL /*!< Alternative function disable for pin 8 */ +#define GPIO_ALTFUNCCLR_PIN9_Msk 0x00000200UL /*!< Alternative function disable for pin 9 */ +#define GPIO_ALTFUNCCLR_PIN10_Msk 0x00000400UL /*!< Alternative function disable for pin 10 */ +#define GPIO_ALTFUNCCLR_PIN11_Msk 0x00000800UL /*!< Alternative function disable for pin 11 */ +#define GPIO_ALTFUNCCLR_PIN12_Msk 0x00001000UL /*!< Alternative function disable for pin 12 */ +#define GPIO_ALTFUNCCLR_PIN13_Msk 0x00002000UL /*!< Alternative function disable for pin 13 */ +#define GPIO_ALTFUNCCLR_PIN14_Msk 0x00004000UL /*!< Alternative function disable for pin 14 */ +#define GPIO_ALTFUNCCLR_PIN15_Msk 0x00008000UL /*!< Alternative function disable for pin 15 */ + +/*-- SYNCSET: Additional double flip-flop syncronization enable register -------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 0 */ + uint32_t PIN1 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 1 */ + uint32_t PIN2 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 2 */ + uint32_t PIN3 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 3 */ + uint32_t PIN4 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 4 */ + uint32_t PIN5 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 5 */ + uint32_t PIN6 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 6 */ + uint32_t PIN7 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 7 */ + uint32_t PIN8 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 8 */ + uint32_t PIN9 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 9 */ + uint32_t PIN10 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 10 */ + uint32_t PIN11 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 11 */ + uint32_t PIN12 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 12 */ + uint32_t PIN13 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 13 */ + uint32_t PIN14 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 14 */ + uint32_t PIN15 :1; /*!< Additional double flip-flop syncronization buffer enable for pin 15 */ +} _GPIO_SYNCSET_bits; + +/* Bit field positions: */ +#define GPIO_SYNCSET_PIN0_Pos 0 /*!< Additional double flip-flop syncronization buffer enable for pin 0 */ +#define GPIO_SYNCSET_PIN1_Pos 1 /*!< Additional double flip-flop syncronization buffer enable for pin 1 */ +#define GPIO_SYNCSET_PIN2_Pos 2 /*!< Additional double flip-flop syncronization buffer enable for pin 2 */ +#define GPIO_SYNCSET_PIN3_Pos 3 /*!< Additional double flip-flop syncronization buffer enable for pin 3 */ +#define GPIO_SYNCSET_PIN4_Pos 4 /*!< Additional double flip-flop syncronization buffer enable for pin 4 */ +#define GPIO_SYNCSET_PIN5_Pos 5 /*!< Additional double flip-flop syncronization buffer enable for pin 5 */ +#define GPIO_SYNCSET_PIN6_Pos 6 /*!< Additional double flip-flop syncronization buffer enable for pin 6 */ +#define GPIO_SYNCSET_PIN7_Pos 7 /*!< Additional double flip-flop syncronization buffer enable for pin 7 */ +#define GPIO_SYNCSET_PIN8_Pos 8 /*!< Additional double flip-flop syncronization buffer enable for pin 8 */ +#define GPIO_SYNCSET_PIN9_Pos 9 /*!< Additional double flip-flop syncronization buffer enable for pin 9 */ +#define GPIO_SYNCSET_PIN10_Pos 10 /*!< Additional double flip-flop syncronization buffer enable for pin 10 */ +#define GPIO_SYNCSET_PIN11_Pos 11 /*!< Additional double flip-flop syncronization buffer enable for pin 11 */ +#define GPIO_SYNCSET_PIN12_Pos 12 /*!< Additional double flip-flop syncronization buffer enable for pin 12 */ +#define GPIO_SYNCSET_PIN13_Pos 13 /*!< Additional double flip-flop syncronization buffer enable for pin 13 */ +#define GPIO_SYNCSET_PIN14_Pos 14 /*!< Additional double flip-flop syncronization buffer enable for pin 14 */ +#define GPIO_SYNCSET_PIN15_Pos 15 /*!< Additional double flip-flop syncronization buffer enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_SYNCSET_PIN0_Msk 0x00000001UL /*!< Additional double flip-flop syncronization buffer enable for pin 0 */ +#define GPIO_SYNCSET_PIN1_Msk 0x00000002UL /*!< Additional double flip-flop syncronization buffer enable for pin 1 */ +#define GPIO_SYNCSET_PIN2_Msk 0x00000004UL /*!< Additional double flip-flop syncronization buffer enable for pin 2 */ +#define GPIO_SYNCSET_PIN3_Msk 0x00000008UL /*!< Additional double flip-flop syncronization buffer enable for pin 3 */ +#define GPIO_SYNCSET_PIN4_Msk 0x00000010UL /*!< Additional double flip-flop syncronization buffer enable for pin 4 */ +#define GPIO_SYNCSET_PIN5_Msk 0x00000020UL /*!< Additional double flip-flop syncronization buffer enable for pin 5 */ +#define GPIO_SYNCSET_PIN6_Msk 0x00000040UL /*!< Additional double flip-flop syncronization buffer enable for pin 6 */ +#define GPIO_SYNCSET_PIN7_Msk 0x00000080UL /*!< Additional double flip-flop syncronization buffer enable for pin 7 */ +#define GPIO_SYNCSET_PIN8_Msk 0x00000100UL /*!< Additional double flip-flop syncronization buffer enable for pin 8 */ +#define GPIO_SYNCSET_PIN9_Msk 0x00000200UL /*!< Additional double flip-flop syncronization buffer enable for pin 9 */ +#define GPIO_SYNCSET_PIN10_Msk 0x00000400UL /*!< Additional double flip-flop syncronization buffer enable for pin 10 */ +#define GPIO_SYNCSET_PIN11_Msk 0x00000800UL /*!< Additional double flip-flop syncronization buffer enable for pin 11 */ +#define GPIO_SYNCSET_PIN12_Msk 0x00001000UL /*!< Additional double flip-flop syncronization buffer enable for pin 12 */ +#define GPIO_SYNCSET_PIN13_Msk 0x00002000UL /*!< Additional double flip-flop syncronization buffer enable for pin 13 */ +#define GPIO_SYNCSET_PIN14_Msk 0x00004000UL /*!< Additional double flip-flop syncronization buffer enable for pin 14 */ +#define GPIO_SYNCSET_PIN15_Msk 0x00008000UL /*!< Additional double flip-flop syncronization buffer enable for pin 15 */ + +/*-- SYNCCLR: Additional double flip-flop syncronization disable register ------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Additional double flip-flop syncronization disable for pin 0 */ + uint32_t PIN1 :1; /*!< Additional double flip-flop syncronization disable for pin 1 */ + uint32_t PIN2 :1; /*!< Additional double flip-flop syncronization disable for pin 2 */ + uint32_t PIN3 :1; /*!< Additional double flip-flop syncronization disable for pin 3 */ + uint32_t PIN4 :1; /*!< Additional double flip-flop syncronization disable for pin 4 */ + uint32_t PIN5 :1; /*!< Additional double flip-flop syncronization disable for pin 5 */ + uint32_t PIN6 :1; /*!< Additional double flip-flop syncronization disable for pin 6 */ + uint32_t PIN7 :1; /*!< Additional double flip-flop syncronization disable for pin 7 */ + uint32_t PIN8 :1; /*!< Additional double flip-flop syncronization disable for pin 8 */ + uint32_t PIN9 :1; /*!< Additional double flip-flop syncronization disable for pin 9 */ + uint32_t PIN10 :1; /*!< Additional double flip-flop syncronization disable for pin 10 */ + uint32_t PIN11 :1; /*!< Additional double flip-flop syncronization disable for pin 11 */ + uint32_t PIN12 :1; /*!< Additional double flip-flop syncronization disable for pin 12 */ + uint32_t PIN13 :1; /*!< Additional double flip-flop syncronization disable for pin 13 */ + uint32_t PIN14 :1; /*!< Additional double flip-flop syncronization disable for pin 14 */ + uint32_t PIN15 :1; /*!< Additional double flip-flop syncronization disable for pin 15 */ +} _GPIO_SYNCCLR_bits; + +/* Bit field positions: */ +#define GPIO_SYNCCLR_PIN0_Pos 0 /*!< Additional double flip-flop syncronization disable for pin 0 */ +#define GPIO_SYNCCLR_PIN1_Pos 1 /*!< Additional double flip-flop syncronization disable for pin 1 */ +#define GPIO_SYNCCLR_PIN2_Pos 2 /*!< Additional double flip-flop syncronization disable for pin 2 */ +#define GPIO_SYNCCLR_PIN3_Pos 3 /*!< Additional double flip-flop syncronization disable for pin 3 */ +#define GPIO_SYNCCLR_PIN4_Pos 4 /*!< Additional double flip-flop syncronization disable for pin 4 */ +#define GPIO_SYNCCLR_PIN5_Pos 5 /*!< Additional double flip-flop syncronization disable for pin 5 */ +#define GPIO_SYNCCLR_PIN6_Pos 6 /*!< Additional double flip-flop syncronization disable for pin 6 */ +#define GPIO_SYNCCLR_PIN7_Pos 7 /*!< Additional double flip-flop syncronization disable for pin 7 */ +#define GPIO_SYNCCLR_PIN8_Pos 8 /*!< Additional double flip-flop syncronization disable for pin 8 */ +#define GPIO_SYNCCLR_PIN9_Pos 9 /*!< Additional double flip-flop syncronization disable for pin 9 */ +#define GPIO_SYNCCLR_PIN10_Pos 10 /*!< Additional double flip-flop syncronization disable for pin 10 */ +#define GPIO_SYNCCLR_PIN11_Pos 11 /*!< Additional double flip-flop syncronization disable for pin 11 */ +#define GPIO_SYNCCLR_PIN12_Pos 12 /*!< Additional double flip-flop syncronization disable for pin 12 */ +#define GPIO_SYNCCLR_PIN13_Pos 13 /*!< Additional double flip-flop syncronization disable for pin 13 */ +#define GPIO_SYNCCLR_PIN14_Pos 14 /*!< Additional double flip-flop syncronization disable for pin 14 */ +#define GPIO_SYNCCLR_PIN15_Pos 15 /*!< Additional double flip-flop syncronization disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_SYNCCLR_PIN0_Msk 0x00000001UL /*!< Additional double flip-flop syncronization disable for pin 0 */ +#define GPIO_SYNCCLR_PIN1_Msk 0x00000002UL /*!< Additional double flip-flop syncronization disable for pin 1 */ +#define GPIO_SYNCCLR_PIN2_Msk 0x00000004UL /*!< Additional double flip-flop syncronization disable for pin 2 */ +#define GPIO_SYNCCLR_PIN3_Msk 0x00000008UL /*!< Additional double flip-flop syncronization disable for pin 3 */ +#define GPIO_SYNCCLR_PIN4_Msk 0x00000010UL /*!< Additional double flip-flop syncronization disable for pin 4 */ +#define GPIO_SYNCCLR_PIN5_Msk 0x00000020UL /*!< Additional double flip-flop syncronization disable for pin 5 */ +#define GPIO_SYNCCLR_PIN6_Msk 0x00000040UL /*!< Additional double flip-flop syncronization disable for pin 6 */ +#define GPIO_SYNCCLR_PIN7_Msk 0x00000080UL /*!< Additional double flip-flop syncronization disable for pin 7 */ +#define GPIO_SYNCCLR_PIN8_Msk 0x00000100UL /*!< Additional double flip-flop syncronization disable for pin 8 */ +#define GPIO_SYNCCLR_PIN9_Msk 0x00000200UL /*!< Additional double flip-flop syncronization disable for pin 9 */ +#define GPIO_SYNCCLR_PIN10_Msk 0x00000400UL /*!< Additional double flip-flop syncronization disable for pin 10 */ +#define GPIO_SYNCCLR_PIN11_Msk 0x00000800UL /*!< Additional double flip-flop syncronization disable for pin 11 */ +#define GPIO_SYNCCLR_PIN12_Msk 0x00001000UL /*!< Additional double flip-flop syncronization disable for pin 12 */ +#define GPIO_SYNCCLR_PIN13_Msk 0x00002000UL /*!< Additional double flip-flop syncronization disable for pin 13 */ +#define GPIO_SYNCCLR_PIN14_Msk 0x00004000UL /*!< Additional double flip-flop syncronization disable for pin 14 */ +#define GPIO_SYNCCLR_PIN15_Msk 0x00008000UL /*!< Additional double flip-flop syncronization disable for pin 15 */ + +/*-- QUALSET: Qualifier enable register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Qualifier enable for pin 0 */ + uint32_t PIN1 :1; /*!< Qualifier enable for pin 1 */ + uint32_t PIN2 :1; /*!< Qualifier enable for pin 2 */ + uint32_t PIN3 :1; /*!< Qualifier enable for pin 3 */ + uint32_t PIN4 :1; /*!< Qualifier enable for pin 4 */ + uint32_t PIN5 :1; /*!< Qualifier enable for pin 5 */ + uint32_t PIN6 :1; /*!< Qualifier enable for pin 6 */ + uint32_t PIN7 :1; /*!< Qualifier enable for pin 7 */ + uint32_t PIN8 :1; /*!< Qualifier enable for pin 8 */ + uint32_t PIN9 :1; /*!< Qualifier enable for pin 9 */ + uint32_t PIN10 :1; /*!< Qualifier enable for pin 10 */ + uint32_t PIN11 :1; /*!< Qualifier enable for pin 11 */ + uint32_t PIN12 :1; /*!< Qualifier enable for pin 12 */ + uint32_t PIN13 :1; /*!< Qualifier enable for pin 13 */ + uint32_t PIN14 :1; /*!< Qualifier enable for pin 14 */ + uint32_t PIN15 :1; /*!< Qualifier enable for pin 15 */ +} _GPIO_QUALSET_bits; + +/* Bit field positions: */ +#define GPIO_QUALSET_PIN0_Pos 0 /*!< Qualifier enable for pin 0 */ +#define GPIO_QUALSET_PIN1_Pos 1 /*!< Qualifier enable for pin 1 */ +#define GPIO_QUALSET_PIN2_Pos 2 /*!< Qualifier enable for pin 2 */ +#define GPIO_QUALSET_PIN3_Pos 3 /*!< Qualifier enable for pin 3 */ +#define GPIO_QUALSET_PIN4_Pos 4 /*!< Qualifier enable for pin 4 */ +#define GPIO_QUALSET_PIN5_Pos 5 /*!< Qualifier enable for pin 5 */ +#define GPIO_QUALSET_PIN6_Pos 6 /*!< Qualifier enable for pin 6 */ +#define GPIO_QUALSET_PIN7_Pos 7 /*!< Qualifier enable for pin 7 */ +#define GPIO_QUALSET_PIN8_Pos 8 /*!< Qualifier enable for pin 8 */ +#define GPIO_QUALSET_PIN9_Pos 9 /*!< Qualifier enable for pin 9 */ +#define GPIO_QUALSET_PIN10_Pos 10 /*!< Qualifier enable for pin 10 */ +#define GPIO_QUALSET_PIN11_Pos 11 /*!< Qualifier enable for pin 11 */ +#define GPIO_QUALSET_PIN12_Pos 12 /*!< Qualifier enable for pin 12 */ +#define GPIO_QUALSET_PIN13_Pos 13 /*!< Qualifier enable for pin 13 */ +#define GPIO_QUALSET_PIN14_Pos 14 /*!< Qualifier enable for pin 14 */ +#define GPIO_QUALSET_PIN15_Pos 15 /*!< Qualifier enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_QUALSET_PIN0_Msk 0x00000001UL /*!< Qualifier enable for pin 0 */ +#define GPIO_QUALSET_PIN1_Msk 0x00000002UL /*!< Qualifier enable for pin 1 */ +#define GPIO_QUALSET_PIN2_Msk 0x00000004UL /*!< Qualifier enable for pin 2 */ +#define GPIO_QUALSET_PIN3_Msk 0x00000008UL /*!< Qualifier enable for pin 3 */ +#define GPIO_QUALSET_PIN4_Msk 0x00000010UL /*!< Qualifier enable for pin 4 */ +#define GPIO_QUALSET_PIN5_Msk 0x00000020UL /*!< Qualifier enable for pin 5 */ +#define GPIO_QUALSET_PIN6_Msk 0x00000040UL /*!< Qualifier enable for pin 6 */ +#define GPIO_QUALSET_PIN7_Msk 0x00000080UL /*!< Qualifier enable for pin 7 */ +#define GPIO_QUALSET_PIN8_Msk 0x00000100UL /*!< Qualifier enable for pin 8 */ +#define GPIO_QUALSET_PIN9_Msk 0x00000200UL /*!< Qualifier enable for pin 9 */ +#define GPIO_QUALSET_PIN10_Msk 0x00000400UL /*!< Qualifier enable for pin 10 */ +#define GPIO_QUALSET_PIN11_Msk 0x00000800UL /*!< Qualifier enable for pin 11 */ +#define GPIO_QUALSET_PIN12_Msk 0x00001000UL /*!< Qualifier enable for pin 12 */ +#define GPIO_QUALSET_PIN13_Msk 0x00002000UL /*!< Qualifier enable for pin 13 */ +#define GPIO_QUALSET_PIN14_Msk 0x00004000UL /*!< Qualifier enable for pin 14 */ +#define GPIO_QUALSET_PIN15_Msk 0x00008000UL /*!< Qualifier enable for pin 15 */ + +/*-- QUALCLR: Qualifier disable register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Qualifier disable for pin 0 */ + uint32_t PIN1 :1; /*!< Qualifier disable for pin 1 */ + uint32_t PIN2 :1; /*!< Qualifier disable for pin 2 */ + uint32_t PIN3 :1; /*!< Qualifier disable for pin 3 */ + uint32_t PIN4 :1; /*!< Qualifier disable for pin 4 */ + uint32_t PIN5 :1; /*!< Qualifier disable for pin 5 */ + uint32_t PIN6 :1; /*!< Qualifier disable for pin 6 */ + uint32_t PIN7 :1; /*!< Qualifier disable for pin 7 */ + uint32_t PIN8 :1; /*!< Qualifier disable for pin 8 */ + uint32_t PIN9 :1; /*!< Qualifier disable for pin 9 */ + uint32_t PIN10 :1; /*!< Qualifier disable for pin 10 */ + uint32_t PIN11 :1; /*!< Qualifier disable for pin 11 */ + uint32_t PIN12 :1; /*!< Qualifier disable for pin 12 */ + uint32_t PIN13 :1; /*!< Qualifier disable for pin 13 */ + uint32_t PIN14 :1; /*!< Qualifier disable for pin 14 */ + uint32_t PIN15 :1; /*!< Qualifier disable for pin 15 */ +} _GPIO_QUALCLR_bits; + +/* Bit field positions: */ +#define GPIO_QUALCLR_PIN0_Pos 0 /*!< Qualifier disable for pin 0 */ +#define GPIO_QUALCLR_PIN1_Pos 1 /*!< Qualifier disable for pin 1 */ +#define GPIO_QUALCLR_PIN2_Pos 2 /*!< Qualifier disable for pin 2 */ +#define GPIO_QUALCLR_PIN3_Pos 3 /*!< Qualifier disable for pin 3 */ +#define GPIO_QUALCLR_PIN4_Pos 4 /*!< Qualifier disable for pin 4 */ +#define GPIO_QUALCLR_PIN5_Pos 5 /*!< Qualifier disable for pin 5 */ +#define GPIO_QUALCLR_PIN6_Pos 6 /*!< Qualifier disable for pin 6 */ +#define GPIO_QUALCLR_PIN7_Pos 7 /*!< Qualifier disable for pin 7 */ +#define GPIO_QUALCLR_PIN8_Pos 8 /*!< Qualifier disable for pin 8 */ +#define GPIO_QUALCLR_PIN9_Pos 9 /*!< Qualifier disable for pin 9 */ +#define GPIO_QUALCLR_PIN10_Pos 10 /*!< Qualifier disable for pin 10 */ +#define GPIO_QUALCLR_PIN11_Pos 11 /*!< Qualifier disable for pin 11 */ +#define GPIO_QUALCLR_PIN12_Pos 12 /*!< Qualifier disable for pin 12 */ +#define GPIO_QUALCLR_PIN13_Pos 13 /*!< Qualifier disable for pin 13 */ +#define GPIO_QUALCLR_PIN14_Pos 14 /*!< Qualifier disable for pin 14 */ +#define GPIO_QUALCLR_PIN15_Pos 15 /*!< Qualifier disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_QUALCLR_PIN0_Msk 0x00000001UL /*!< Qualifier disable for pin 0 */ +#define GPIO_QUALCLR_PIN1_Msk 0x00000002UL /*!< Qualifier disable for pin 1 */ +#define GPIO_QUALCLR_PIN2_Msk 0x00000004UL /*!< Qualifier disable for pin 2 */ +#define GPIO_QUALCLR_PIN3_Msk 0x00000008UL /*!< Qualifier disable for pin 3 */ +#define GPIO_QUALCLR_PIN4_Msk 0x00000010UL /*!< Qualifier disable for pin 4 */ +#define GPIO_QUALCLR_PIN5_Msk 0x00000020UL /*!< Qualifier disable for pin 5 */ +#define GPIO_QUALCLR_PIN6_Msk 0x00000040UL /*!< Qualifier disable for pin 6 */ +#define GPIO_QUALCLR_PIN7_Msk 0x00000080UL /*!< Qualifier disable for pin 7 */ +#define GPIO_QUALCLR_PIN8_Msk 0x00000100UL /*!< Qualifier disable for pin 8 */ +#define GPIO_QUALCLR_PIN9_Msk 0x00000200UL /*!< Qualifier disable for pin 9 */ +#define GPIO_QUALCLR_PIN10_Msk 0x00000400UL /*!< Qualifier disable for pin 10 */ +#define GPIO_QUALCLR_PIN11_Msk 0x00000800UL /*!< Qualifier disable for pin 11 */ +#define GPIO_QUALCLR_PIN12_Msk 0x00001000UL /*!< Qualifier disable for pin 12 */ +#define GPIO_QUALCLR_PIN13_Msk 0x00002000UL /*!< Qualifier disable for pin 13 */ +#define GPIO_QUALCLR_PIN14_Msk 0x00004000UL /*!< Qualifier disable for pin 14 */ +#define GPIO_QUALCLR_PIN15_Msk 0x00008000UL /*!< Qualifier disable for pin 15 */ + +/*-- QUALMODESET: Qualifier mode set register ----------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Qualifier mode set for pin 0 */ + uint32_t PIN1 :1; /*!< Qualifier mode set for pin 1 */ + uint32_t PIN2 :1; /*!< Qualifier mode set for pin 2 */ + uint32_t PIN3 :1; /*!< Qualifier mode set for pin 3 */ + uint32_t PIN4 :1; /*!< Qualifier mode set for pin 4 */ + uint32_t PIN5 :1; /*!< Qualifier mode set for pin 5 */ + uint32_t PIN6 :1; /*!< Qualifier mode set for pin 6 */ + uint32_t PIN7 :1; /*!< Qualifier mode set for pin 7 */ + uint32_t PIN8 :1; /*!< Qualifier mode set for pin 8 */ + uint32_t PIN9 :1; /*!< Qualifier mode set for pin 9 */ + uint32_t PIN10 :1; /*!< Qualifier mode set for pin 10 */ + uint32_t PIN11 :1; /*!< Qualifier mode set for pin 11 */ + uint32_t PIN12 :1; /*!< Qualifier mode set for pin 12 */ + uint32_t PIN13 :1; /*!< Qualifier mode set for pin 13 */ + uint32_t PIN14 :1; /*!< Qualifier mode set for pin 14 */ + uint32_t PIN15 :1; /*!< Qualifier mode set for pin 15 */ +} _GPIO_QUALMODESET_bits; + +/* Bit field positions: */ +#define GPIO_QUALMODESET_PIN0_Pos 0 /*!< Qualifier mode set for pin 0 */ +#define GPIO_QUALMODESET_PIN1_Pos 1 /*!< Qualifier mode set for pin 1 */ +#define GPIO_QUALMODESET_PIN2_Pos 2 /*!< Qualifier mode set for pin 2 */ +#define GPIO_QUALMODESET_PIN3_Pos 3 /*!< Qualifier mode set for pin 3 */ +#define GPIO_QUALMODESET_PIN4_Pos 4 /*!< Qualifier mode set for pin 4 */ +#define GPIO_QUALMODESET_PIN5_Pos 5 /*!< Qualifier mode set for pin 5 */ +#define GPIO_QUALMODESET_PIN6_Pos 6 /*!< Qualifier mode set for pin 6 */ +#define GPIO_QUALMODESET_PIN7_Pos 7 /*!< Qualifier mode set for pin 7 */ +#define GPIO_QUALMODESET_PIN8_Pos 8 /*!< Qualifier mode set for pin 8 */ +#define GPIO_QUALMODESET_PIN9_Pos 9 /*!< Qualifier mode set for pin 9 */ +#define GPIO_QUALMODESET_PIN10_Pos 10 /*!< Qualifier mode set for pin 10 */ +#define GPIO_QUALMODESET_PIN11_Pos 11 /*!< Qualifier mode set for pin 11 */ +#define GPIO_QUALMODESET_PIN12_Pos 12 /*!< Qualifier mode set for pin 12 */ +#define GPIO_QUALMODESET_PIN13_Pos 13 /*!< Qualifier mode set for pin 13 */ +#define GPIO_QUALMODESET_PIN14_Pos 14 /*!< Qualifier mode set for pin 14 */ +#define GPIO_QUALMODESET_PIN15_Pos 15 /*!< Qualifier mode set for pin 15 */ + +/* Bit field masks: */ +#define GPIO_QUALMODESET_PIN0_Msk 0x00000001UL /*!< Qualifier mode set for pin 0 */ +#define GPIO_QUALMODESET_PIN1_Msk 0x00000002UL /*!< Qualifier mode set for pin 1 */ +#define GPIO_QUALMODESET_PIN2_Msk 0x00000004UL /*!< Qualifier mode set for pin 2 */ +#define GPIO_QUALMODESET_PIN3_Msk 0x00000008UL /*!< Qualifier mode set for pin 3 */ +#define GPIO_QUALMODESET_PIN4_Msk 0x00000010UL /*!< Qualifier mode set for pin 4 */ +#define GPIO_QUALMODESET_PIN5_Msk 0x00000020UL /*!< Qualifier mode set for pin 5 */ +#define GPIO_QUALMODESET_PIN6_Msk 0x00000040UL /*!< Qualifier mode set for pin 6 */ +#define GPIO_QUALMODESET_PIN7_Msk 0x00000080UL /*!< Qualifier mode set for pin 7 */ +#define GPIO_QUALMODESET_PIN8_Msk 0x00000100UL /*!< Qualifier mode set for pin 8 */ +#define GPIO_QUALMODESET_PIN9_Msk 0x00000200UL /*!< Qualifier mode set for pin 9 */ +#define GPIO_QUALMODESET_PIN10_Msk 0x00000400UL /*!< Qualifier mode set for pin 10 */ +#define GPIO_QUALMODESET_PIN11_Msk 0x00000800UL /*!< Qualifier mode set for pin 11 */ +#define GPIO_QUALMODESET_PIN12_Msk 0x00001000UL /*!< Qualifier mode set for pin 12 */ +#define GPIO_QUALMODESET_PIN13_Msk 0x00002000UL /*!< Qualifier mode set for pin 13 */ +#define GPIO_QUALMODESET_PIN14_Msk 0x00004000UL /*!< Qualifier mode set for pin 14 */ +#define GPIO_QUALMODESET_PIN15_Msk 0x00008000UL /*!< Qualifier mode set for pin 15 */ + +/*-- QUALMODECLR: Qualifier mode clear register --------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Qualifier mode clear for pin 0 */ + uint32_t PIN1 :1; /*!< Qualifier mode clear for pin 1 */ + uint32_t PIN2 :1; /*!< Qualifier mode clear for pin 2 */ + uint32_t PIN3 :1; /*!< Qualifier mode clear for pin 3 */ + uint32_t PIN4 :1; /*!< Qualifier mode clear for pin 4 */ + uint32_t PIN5 :1; /*!< Qualifier mode clear for pin 5 */ + uint32_t PIN6 :1; /*!< Qualifier mode clear for pin 6 */ + uint32_t PIN7 :1; /*!< Qualifier mode clear for pin 7 */ + uint32_t PIN8 :1; /*!< Qualifier mode clear for pin 8 */ + uint32_t PIN9 :1; /*!< Qualifier mode clear for pin 9 */ + uint32_t PIN10 :1; /*!< Qualifier mode clear for pin 10 */ + uint32_t PIN11 :1; /*!< Qualifier mode clear for pin 11 */ + uint32_t PIN12 :1; /*!< Qualifier mode clear for pin 12 */ + uint32_t PIN13 :1; /*!< Qualifier mode clear for pin 13 */ + uint32_t PIN14 :1; /*!< Qualifier mode clear for pin 14 */ + uint32_t PIN15 :1; /*!< Qualifier mode clear for pin 15 */ +} _GPIO_QUALMODECLR_bits; + +/* Bit field positions: */ +#define GPIO_QUALMODECLR_PIN0_Pos 0 /*!< Qualifier mode clear for pin 0 */ +#define GPIO_QUALMODECLR_PIN1_Pos 1 /*!< Qualifier mode clear for pin 1 */ +#define GPIO_QUALMODECLR_PIN2_Pos 2 /*!< Qualifier mode clear for pin 2 */ +#define GPIO_QUALMODECLR_PIN3_Pos 3 /*!< Qualifier mode clear for pin 3 */ +#define GPIO_QUALMODECLR_PIN4_Pos 4 /*!< Qualifier mode clear for pin 4 */ +#define GPIO_QUALMODECLR_PIN5_Pos 5 /*!< Qualifier mode clear for pin 5 */ +#define GPIO_QUALMODECLR_PIN6_Pos 6 /*!< Qualifier mode clear for pin 6 */ +#define GPIO_QUALMODECLR_PIN7_Pos 7 /*!< Qualifier mode clear for pin 7 */ +#define GPIO_QUALMODECLR_PIN8_Pos 8 /*!< Qualifier mode clear for pin 8 */ +#define GPIO_QUALMODECLR_PIN9_Pos 9 /*!< Qualifier mode clear for pin 9 */ +#define GPIO_QUALMODECLR_PIN10_Pos 10 /*!< Qualifier mode clear for pin 10 */ +#define GPIO_QUALMODECLR_PIN11_Pos 11 /*!< Qualifier mode clear for pin 11 */ +#define GPIO_QUALMODECLR_PIN12_Pos 12 /*!< Qualifier mode clear for pin 12 */ +#define GPIO_QUALMODECLR_PIN13_Pos 13 /*!< Qualifier mode clear for pin 13 */ +#define GPIO_QUALMODECLR_PIN14_Pos 14 /*!< Qualifier mode clear for pin 14 */ +#define GPIO_QUALMODECLR_PIN15_Pos 15 /*!< Qualifier mode clear for pin 15 */ + +/* Bit field masks: */ +#define GPIO_QUALMODECLR_PIN0_Msk 0x00000001UL /*!< Qualifier mode clear for pin 0 */ +#define GPIO_QUALMODECLR_PIN1_Msk 0x00000002UL /*!< Qualifier mode clear for pin 1 */ +#define GPIO_QUALMODECLR_PIN2_Msk 0x00000004UL /*!< Qualifier mode clear for pin 2 */ +#define GPIO_QUALMODECLR_PIN3_Msk 0x00000008UL /*!< Qualifier mode clear for pin 3 */ +#define GPIO_QUALMODECLR_PIN4_Msk 0x00000010UL /*!< Qualifier mode clear for pin 4 */ +#define GPIO_QUALMODECLR_PIN5_Msk 0x00000020UL /*!< Qualifier mode clear for pin 5 */ +#define GPIO_QUALMODECLR_PIN6_Msk 0x00000040UL /*!< Qualifier mode clear for pin 6 */ +#define GPIO_QUALMODECLR_PIN7_Msk 0x00000080UL /*!< Qualifier mode clear for pin 7 */ +#define GPIO_QUALMODECLR_PIN8_Msk 0x00000100UL /*!< Qualifier mode clear for pin 8 */ +#define GPIO_QUALMODECLR_PIN9_Msk 0x00000200UL /*!< Qualifier mode clear for pin 9 */ +#define GPIO_QUALMODECLR_PIN10_Msk 0x00000400UL /*!< Qualifier mode clear for pin 10 */ +#define GPIO_QUALMODECLR_PIN11_Msk 0x00000800UL /*!< Qualifier mode clear for pin 11 */ +#define GPIO_QUALMODECLR_PIN12_Msk 0x00001000UL /*!< Qualifier mode clear for pin 12 */ +#define GPIO_QUALMODECLR_PIN13_Msk 0x00002000UL /*!< Qualifier mode clear for pin 13 */ +#define GPIO_QUALMODECLR_PIN14_Msk 0x00004000UL /*!< Qualifier mode clear for pin 14 */ +#define GPIO_QUALMODECLR_PIN15_Msk 0x00008000UL /*!< Qualifier mode clear for pin 15 */ + +/*-- QUALSAMPLE: Qualifier sample period register ------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :8; /*!< Qualifier sample period */ +} _GPIO_QUALSAMPLE_bits; + +/* Bit field positions: */ +#define GPIO_QUALSAMPLE_VAL_Pos 0 /*!< Qualifier sample period */ + +/* Bit field masks: */ +#define GPIO_QUALSAMPLE_VAL_Msk 0x000000FFUL /*!< Qualifier sample period */ + +/*-- INTENSET: Interrupt enable register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt enable for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt enable for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt enable for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt enable for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt enable for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt enable for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt enable for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt enable for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt enable for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt enable for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt enable for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt enable for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt enable for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt enable for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt enable for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt enable for pin 15 */ +} _GPIO_INTENSET_bits; + +/* Bit field positions: */ +#define GPIO_INTENSET_PIN0_Pos 0 /*!< Interrupt enable for pin 0 */ +#define GPIO_INTENSET_PIN1_Pos 1 /*!< Interrupt enable for pin 1 */ +#define GPIO_INTENSET_PIN2_Pos 2 /*!< Interrupt enable for pin 2 */ +#define GPIO_INTENSET_PIN3_Pos 3 /*!< Interrupt enable for pin 3 */ +#define GPIO_INTENSET_PIN4_Pos 4 /*!< Interrupt enable for pin 4 */ +#define GPIO_INTENSET_PIN5_Pos 5 /*!< Interrupt enable for pin 5 */ +#define GPIO_INTENSET_PIN6_Pos 6 /*!< Interrupt enable for pin 6 */ +#define GPIO_INTENSET_PIN7_Pos 7 /*!< Interrupt enable for pin 7 */ +#define GPIO_INTENSET_PIN8_Pos 8 /*!< Interrupt enable for pin 8 */ +#define GPIO_INTENSET_PIN9_Pos 9 /*!< Interrupt enable for pin 9 */ +#define GPIO_INTENSET_PIN10_Pos 10 /*!< Interrupt enable for pin 10 */ +#define GPIO_INTENSET_PIN11_Pos 11 /*!< Interrupt enable for pin 11 */ +#define GPIO_INTENSET_PIN12_Pos 12 /*!< Interrupt enable for pin 12 */ +#define GPIO_INTENSET_PIN13_Pos 13 /*!< Interrupt enable for pin 13 */ +#define GPIO_INTENSET_PIN14_Pos 14 /*!< Interrupt enable for pin 14 */ +#define GPIO_INTENSET_PIN15_Pos 15 /*!< Interrupt enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTENSET_PIN0_Msk 0x00000001UL /*!< Interrupt enable for pin 0 */ +#define GPIO_INTENSET_PIN1_Msk 0x00000002UL /*!< Interrupt enable for pin 1 */ +#define GPIO_INTENSET_PIN2_Msk 0x00000004UL /*!< Interrupt enable for pin 2 */ +#define GPIO_INTENSET_PIN3_Msk 0x00000008UL /*!< Interrupt enable for pin 3 */ +#define GPIO_INTENSET_PIN4_Msk 0x00000010UL /*!< Interrupt enable for pin 4 */ +#define GPIO_INTENSET_PIN5_Msk 0x00000020UL /*!< Interrupt enable for pin 5 */ +#define GPIO_INTENSET_PIN6_Msk 0x00000040UL /*!< Interrupt enable for pin 6 */ +#define GPIO_INTENSET_PIN7_Msk 0x00000080UL /*!< Interrupt enable for pin 7 */ +#define GPIO_INTENSET_PIN8_Msk 0x00000100UL /*!< Interrupt enable for pin 8 */ +#define GPIO_INTENSET_PIN9_Msk 0x00000200UL /*!< Interrupt enable for pin 9 */ +#define GPIO_INTENSET_PIN10_Msk 0x00000400UL /*!< Interrupt enable for pin 10 */ +#define GPIO_INTENSET_PIN11_Msk 0x00000800UL /*!< Interrupt enable for pin 11 */ +#define GPIO_INTENSET_PIN12_Msk 0x00001000UL /*!< Interrupt enable for pin 12 */ +#define GPIO_INTENSET_PIN13_Msk 0x00002000UL /*!< Interrupt enable for pin 13 */ +#define GPIO_INTENSET_PIN14_Msk 0x00004000UL /*!< Interrupt enable for pin 14 */ +#define GPIO_INTENSET_PIN15_Msk 0x00008000UL /*!< Interrupt enable for pin 15 */ + +/*-- INTENCLR: Interrupt disable register --------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt disable for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt disable for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt disable for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt disable for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt disable for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt disable for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt disable for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt disable for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt disable for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt disable for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt disable for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt disable for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt disable for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt disable for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt disable for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt disable for pin 15 */ +} _GPIO_INTENCLR_bits; + +/* Bit field positions: */ +#define GPIO_INTENCLR_PIN0_Pos 0 /*!< Interrupt disable for pin 0 */ +#define GPIO_INTENCLR_PIN1_Pos 1 /*!< Interrupt disable for pin 1 */ +#define GPIO_INTENCLR_PIN2_Pos 2 /*!< Interrupt disable for pin 2 */ +#define GPIO_INTENCLR_PIN3_Pos 3 /*!< Interrupt disable for pin 3 */ +#define GPIO_INTENCLR_PIN4_Pos 4 /*!< Interrupt disable for pin 4 */ +#define GPIO_INTENCLR_PIN5_Pos 5 /*!< Interrupt disable for pin 5 */ +#define GPIO_INTENCLR_PIN6_Pos 6 /*!< Interrupt disable for pin 6 */ +#define GPIO_INTENCLR_PIN7_Pos 7 /*!< Interrupt disable for pin 7 */ +#define GPIO_INTENCLR_PIN8_Pos 8 /*!< Interrupt disable for pin 8 */ +#define GPIO_INTENCLR_PIN9_Pos 9 /*!< Interrupt disable for pin 9 */ +#define GPIO_INTENCLR_PIN10_Pos 10 /*!< Interrupt disable for pin 10 */ +#define GPIO_INTENCLR_PIN11_Pos 11 /*!< Interrupt disable for pin 11 */ +#define GPIO_INTENCLR_PIN12_Pos 12 /*!< Interrupt disable for pin 12 */ +#define GPIO_INTENCLR_PIN13_Pos 13 /*!< Interrupt disable for pin 13 */ +#define GPIO_INTENCLR_PIN14_Pos 14 /*!< Interrupt disable for pin 14 */ +#define GPIO_INTENCLR_PIN15_Pos 15 /*!< Interrupt disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTENCLR_PIN0_Msk 0x00000001UL /*!< Interrupt disable for pin 0 */ +#define GPIO_INTENCLR_PIN1_Msk 0x00000002UL /*!< Interrupt disable for pin 1 */ +#define GPIO_INTENCLR_PIN2_Msk 0x00000004UL /*!< Interrupt disable for pin 2 */ +#define GPIO_INTENCLR_PIN3_Msk 0x00000008UL /*!< Interrupt disable for pin 3 */ +#define GPIO_INTENCLR_PIN4_Msk 0x00000010UL /*!< Interrupt disable for pin 4 */ +#define GPIO_INTENCLR_PIN5_Msk 0x00000020UL /*!< Interrupt disable for pin 5 */ +#define GPIO_INTENCLR_PIN6_Msk 0x00000040UL /*!< Interrupt disable for pin 6 */ +#define GPIO_INTENCLR_PIN7_Msk 0x00000080UL /*!< Interrupt disable for pin 7 */ +#define GPIO_INTENCLR_PIN8_Msk 0x00000100UL /*!< Interrupt disable for pin 8 */ +#define GPIO_INTENCLR_PIN9_Msk 0x00000200UL /*!< Interrupt disable for pin 9 */ +#define GPIO_INTENCLR_PIN10_Msk 0x00000400UL /*!< Interrupt disable for pin 10 */ +#define GPIO_INTENCLR_PIN11_Msk 0x00000800UL /*!< Interrupt disable for pin 11 */ +#define GPIO_INTENCLR_PIN12_Msk 0x00001000UL /*!< Interrupt disable for pin 12 */ +#define GPIO_INTENCLR_PIN13_Msk 0x00002000UL /*!< Interrupt disable for pin 13 */ +#define GPIO_INTENCLR_PIN14_Msk 0x00004000UL /*!< Interrupt disable for pin 14 */ +#define GPIO_INTENCLR_PIN15_Msk 0x00008000UL /*!< Interrupt disable for pin 15 */ + +/*-- INTTYPESET: Interrupt type set register -----------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt type set for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt type set for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt type set for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt type set for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt type set for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt type set for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt type set for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt type set for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt type set for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt type set for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt type set for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt type set for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt type set for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt type set for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt type set for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt type set for pin 15 */ +} _GPIO_INTTYPESET_bits; + +/* Bit field positions: */ +#define GPIO_INTTYPESET_PIN0_Pos 0 /*!< Interrupt type set for pin 0 */ +#define GPIO_INTTYPESET_PIN1_Pos 1 /*!< Interrupt type set for pin 1 */ +#define GPIO_INTTYPESET_PIN2_Pos 2 /*!< Interrupt type set for pin 2 */ +#define GPIO_INTTYPESET_PIN3_Pos 3 /*!< Interrupt type set for pin 3 */ +#define GPIO_INTTYPESET_PIN4_Pos 4 /*!< Interrupt type set for pin 4 */ +#define GPIO_INTTYPESET_PIN5_Pos 5 /*!< Interrupt type set for pin 5 */ +#define GPIO_INTTYPESET_PIN6_Pos 6 /*!< Interrupt type set for pin 6 */ +#define GPIO_INTTYPESET_PIN7_Pos 7 /*!< Interrupt type set for pin 7 */ +#define GPIO_INTTYPESET_PIN8_Pos 8 /*!< Interrupt type set for pin 8 */ +#define GPIO_INTTYPESET_PIN9_Pos 9 /*!< Interrupt type set for pin 9 */ +#define GPIO_INTTYPESET_PIN10_Pos 10 /*!< Interrupt type set for pin 10 */ +#define GPIO_INTTYPESET_PIN11_Pos 11 /*!< Interrupt type set for pin 11 */ +#define GPIO_INTTYPESET_PIN12_Pos 12 /*!< Interrupt type set for pin 12 */ +#define GPIO_INTTYPESET_PIN13_Pos 13 /*!< Interrupt type set for pin 13 */ +#define GPIO_INTTYPESET_PIN14_Pos 14 /*!< Interrupt type set for pin 14 */ +#define GPIO_INTTYPESET_PIN15_Pos 15 /*!< Interrupt type set for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTTYPESET_PIN0_Msk 0x00000001UL /*!< Interrupt type set for pin 0 */ +#define GPIO_INTTYPESET_PIN1_Msk 0x00000002UL /*!< Interrupt type set for pin 1 */ +#define GPIO_INTTYPESET_PIN2_Msk 0x00000004UL /*!< Interrupt type set for pin 2 */ +#define GPIO_INTTYPESET_PIN3_Msk 0x00000008UL /*!< Interrupt type set for pin 3 */ +#define GPIO_INTTYPESET_PIN4_Msk 0x00000010UL /*!< Interrupt type set for pin 4 */ +#define GPIO_INTTYPESET_PIN5_Msk 0x00000020UL /*!< Interrupt type set for pin 5 */ +#define GPIO_INTTYPESET_PIN6_Msk 0x00000040UL /*!< Interrupt type set for pin 6 */ +#define GPIO_INTTYPESET_PIN7_Msk 0x00000080UL /*!< Interrupt type set for pin 7 */ +#define GPIO_INTTYPESET_PIN8_Msk 0x00000100UL /*!< Interrupt type set for pin 8 */ +#define GPIO_INTTYPESET_PIN9_Msk 0x00000200UL /*!< Interrupt type set for pin 9 */ +#define GPIO_INTTYPESET_PIN10_Msk 0x00000400UL /*!< Interrupt type set for pin 10 */ +#define GPIO_INTTYPESET_PIN11_Msk 0x00000800UL /*!< Interrupt type set for pin 11 */ +#define GPIO_INTTYPESET_PIN12_Msk 0x00001000UL /*!< Interrupt type set for pin 12 */ +#define GPIO_INTTYPESET_PIN13_Msk 0x00002000UL /*!< Interrupt type set for pin 13 */ +#define GPIO_INTTYPESET_PIN14_Msk 0x00004000UL /*!< Interrupt type set for pin 14 */ +#define GPIO_INTTYPESET_PIN15_Msk 0x00008000UL /*!< Interrupt type set for pin 15 */ + +/*-- INTTYPECLR: Interrupt type clear register ---------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt type clear for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt type clear for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt type clear for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt type clear for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt type clear for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt type clear for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt type clear for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt type clear for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt type clear for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt type clear for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt type clear for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt type clear for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt type clear for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt type clear for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt type clear for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt type clear for pin 15 */ +} _GPIO_INTTYPECLR_bits; + +/* Bit field positions: */ +#define GPIO_INTTYPECLR_PIN0_Pos 0 /*!< Interrupt type clear for pin 0 */ +#define GPIO_INTTYPECLR_PIN1_Pos 1 /*!< Interrupt type clear for pin 1 */ +#define GPIO_INTTYPECLR_PIN2_Pos 2 /*!< Interrupt type clear for pin 2 */ +#define GPIO_INTTYPECLR_PIN3_Pos 3 /*!< Interrupt type clear for pin 3 */ +#define GPIO_INTTYPECLR_PIN4_Pos 4 /*!< Interrupt type clear for pin 4 */ +#define GPIO_INTTYPECLR_PIN5_Pos 5 /*!< Interrupt type clear for pin 5 */ +#define GPIO_INTTYPECLR_PIN6_Pos 6 /*!< Interrupt type clear for pin 6 */ +#define GPIO_INTTYPECLR_PIN7_Pos 7 /*!< Interrupt type clear for pin 7 */ +#define GPIO_INTTYPECLR_PIN8_Pos 8 /*!< Interrupt type clear for pin 8 */ +#define GPIO_INTTYPECLR_PIN9_Pos 9 /*!< Interrupt type clear for pin 9 */ +#define GPIO_INTTYPECLR_PIN10_Pos 10 /*!< Interrupt type clear for pin 10 */ +#define GPIO_INTTYPECLR_PIN11_Pos 11 /*!< Interrupt type clear for pin 11 */ +#define GPIO_INTTYPECLR_PIN12_Pos 12 /*!< Interrupt type clear for pin 12 */ +#define GPIO_INTTYPECLR_PIN13_Pos 13 /*!< Interrupt type clear for pin 13 */ +#define GPIO_INTTYPECLR_PIN14_Pos 14 /*!< Interrupt type clear for pin 14 */ +#define GPIO_INTTYPECLR_PIN15_Pos 15 /*!< Interrupt type clear for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTTYPECLR_PIN0_Msk 0x00000001UL /*!< Interrupt type clear for pin 0 */ +#define GPIO_INTTYPECLR_PIN1_Msk 0x00000002UL /*!< Interrupt type clear for pin 1 */ +#define GPIO_INTTYPECLR_PIN2_Msk 0x00000004UL /*!< Interrupt type clear for pin 2 */ +#define GPIO_INTTYPECLR_PIN3_Msk 0x00000008UL /*!< Interrupt type clear for pin 3 */ +#define GPIO_INTTYPECLR_PIN4_Msk 0x00000010UL /*!< Interrupt type clear for pin 4 */ +#define GPIO_INTTYPECLR_PIN5_Msk 0x00000020UL /*!< Interrupt type clear for pin 5 */ +#define GPIO_INTTYPECLR_PIN6_Msk 0x00000040UL /*!< Interrupt type clear for pin 6 */ +#define GPIO_INTTYPECLR_PIN7_Msk 0x00000080UL /*!< Interrupt type clear for pin 7 */ +#define GPIO_INTTYPECLR_PIN8_Msk 0x00000100UL /*!< Interrupt type clear for pin 8 */ +#define GPIO_INTTYPECLR_PIN9_Msk 0x00000200UL /*!< Interrupt type clear for pin 9 */ +#define GPIO_INTTYPECLR_PIN10_Msk 0x00000400UL /*!< Interrupt type clear for pin 10 */ +#define GPIO_INTTYPECLR_PIN11_Msk 0x00000800UL /*!< Interrupt type clear for pin 11 */ +#define GPIO_INTTYPECLR_PIN12_Msk 0x00001000UL /*!< Interrupt type clear for pin 12 */ +#define GPIO_INTTYPECLR_PIN13_Msk 0x00002000UL /*!< Interrupt type clear for pin 13 */ +#define GPIO_INTTYPECLR_PIN14_Msk 0x00004000UL /*!< Interrupt type clear for pin 14 */ +#define GPIO_INTTYPECLR_PIN15_Msk 0x00008000UL /*!< Interrupt type clear for pin 15 */ + +/*-- INTPOLSET: Interrupt polarity set register --------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt polarity set for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt polarity set for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt polarity set for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt polarity set for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt polarity set for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt polarity set for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt polarity set for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt polarity set for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt polarity set for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt polarity set for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt polarity set for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt polarity set for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt polarity set for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt polarity set for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt polarity set for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt polarity set for pin 15 */ +} _GPIO_INTPOLSET_bits; + +/* Bit field positions: */ +#define GPIO_INTPOLSET_PIN0_Pos 0 /*!< Interrupt polarity set for pin 0 */ +#define GPIO_INTPOLSET_PIN1_Pos 1 /*!< Interrupt polarity set for pin 1 */ +#define GPIO_INTPOLSET_PIN2_Pos 2 /*!< Interrupt polarity set for pin 2 */ +#define GPIO_INTPOLSET_PIN3_Pos 3 /*!< Interrupt polarity set for pin 3 */ +#define GPIO_INTPOLSET_PIN4_Pos 4 /*!< Interrupt polarity set for pin 4 */ +#define GPIO_INTPOLSET_PIN5_Pos 5 /*!< Interrupt polarity set for pin 5 */ +#define GPIO_INTPOLSET_PIN6_Pos 6 /*!< Interrupt polarity set for pin 6 */ +#define GPIO_INTPOLSET_PIN7_Pos 7 /*!< Interrupt polarity set for pin 7 */ +#define GPIO_INTPOLSET_PIN8_Pos 8 /*!< Interrupt polarity set for pin 8 */ +#define GPIO_INTPOLSET_PIN9_Pos 9 /*!< Interrupt polarity set for pin 9 */ +#define GPIO_INTPOLSET_PIN10_Pos 10 /*!< Interrupt polarity set for pin 10 */ +#define GPIO_INTPOLSET_PIN11_Pos 11 /*!< Interrupt polarity set for pin 11 */ +#define GPIO_INTPOLSET_PIN12_Pos 12 /*!< Interrupt polarity set for pin 12 */ +#define GPIO_INTPOLSET_PIN13_Pos 13 /*!< Interrupt polarity set for pin 13 */ +#define GPIO_INTPOLSET_PIN14_Pos 14 /*!< Interrupt polarity set for pin 14 */ +#define GPIO_INTPOLSET_PIN15_Pos 15 /*!< Interrupt polarity set for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTPOLSET_PIN0_Msk 0x00000001UL /*!< Interrupt polarity set for pin 0 */ +#define GPIO_INTPOLSET_PIN1_Msk 0x00000002UL /*!< Interrupt polarity set for pin 1 */ +#define GPIO_INTPOLSET_PIN2_Msk 0x00000004UL /*!< Interrupt polarity set for pin 2 */ +#define GPIO_INTPOLSET_PIN3_Msk 0x00000008UL /*!< Interrupt polarity set for pin 3 */ +#define GPIO_INTPOLSET_PIN4_Msk 0x00000010UL /*!< Interrupt polarity set for pin 4 */ +#define GPIO_INTPOLSET_PIN5_Msk 0x00000020UL /*!< Interrupt polarity set for pin 5 */ +#define GPIO_INTPOLSET_PIN6_Msk 0x00000040UL /*!< Interrupt polarity set for pin 6 */ +#define GPIO_INTPOLSET_PIN7_Msk 0x00000080UL /*!< Interrupt polarity set for pin 7 */ +#define GPIO_INTPOLSET_PIN8_Msk 0x00000100UL /*!< Interrupt polarity set for pin 8 */ +#define GPIO_INTPOLSET_PIN9_Msk 0x00000200UL /*!< Interrupt polarity set for pin 9 */ +#define GPIO_INTPOLSET_PIN10_Msk 0x00000400UL /*!< Interrupt polarity set for pin 10 */ +#define GPIO_INTPOLSET_PIN11_Msk 0x00000800UL /*!< Interrupt polarity set for pin 11 */ +#define GPIO_INTPOLSET_PIN12_Msk 0x00001000UL /*!< Interrupt polarity set for pin 12 */ +#define GPIO_INTPOLSET_PIN13_Msk 0x00002000UL /*!< Interrupt polarity set for pin 13 */ +#define GPIO_INTPOLSET_PIN14_Msk 0x00004000UL /*!< Interrupt polarity set for pin 14 */ +#define GPIO_INTPOLSET_PIN15_Msk 0x00008000UL /*!< Interrupt polarity set for pin 15 */ + +/*-- INTPOLCLR: Interrupt polarity clear register ------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt polarity clear for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt polarity clear for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt polarity clear for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt polarity clear for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt polarity clear for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt polarity clear for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt polarity clear for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt polarity clear for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt polarity clear for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt polarity clear for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt polarity clear for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt polarity clear for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt polarity clear for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt polarity clear for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt polarity clear for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt polarity clear for pin 15 */ +} _GPIO_INTPOLCLR_bits; + +/* Bit field positions: */ +#define GPIO_INTPOLCLR_PIN0_Pos 0 /*!< Interrupt polarity clear for pin 0 */ +#define GPIO_INTPOLCLR_PIN1_Pos 1 /*!< Interrupt polarity clear for pin 1 */ +#define GPIO_INTPOLCLR_PIN2_Pos 2 /*!< Interrupt polarity clear for pin 2 */ +#define GPIO_INTPOLCLR_PIN3_Pos 3 /*!< Interrupt polarity clear for pin 3 */ +#define GPIO_INTPOLCLR_PIN4_Pos 4 /*!< Interrupt polarity clear for pin 4 */ +#define GPIO_INTPOLCLR_PIN5_Pos 5 /*!< Interrupt polarity clear for pin 5 */ +#define GPIO_INTPOLCLR_PIN6_Pos 6 /*!< Interrupt polarity clear for pin 6 */ +#define GPIO_INTPOLCLR_PIN7_Pos 7 /*!< Interrupt polarity clear for pin 7 */ +#define GPIO_INTPOLCLR_PIN8_Pos 8 /*!< Interrupt polarity clear for pin 8 */ +#define GPIO_INTPOLCLR_PIN9_Pos 9 /*!< Interrupt polarity clear for pin 9 */ +#define GPIO_INTPOLCLR_PIN10_Pos 10 /*!< Interrupt polarity clear for pin 10 */ +#define GPIO_INTPOLCLR_PIN11_Pos 11 /*!< Interrupt polarity clear for pin 11 */ +#define GPIO_INTPOLCLR_PIN12_Pos 12 /*!< Interrupt polarity clear for pin 12 */ +#define GPIO_INTPOLCLR_PIN13_Pos 13 /*!< Interrupt polarity clear for pin 13 */ +#define GPIO_INTPOLCLR_PIN14_Pos 14 /*!< Interrupt polarity clear for pin 14 */ +#define GPIO_INTPOLCLR_PIN15_Pos 15 /*!< Interrupt polarity clear for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTPOLCLR_PIN0_Msk 0x00000001UL /*!< Interrupt polarity clear for pin 0 */ +#define GPIO_INTPOLCLR_PIN1_Msk 0x00000002UL /*!< Interrupt polarity clear for pin 1 */ +#define GPIO_INTPOLCLR_PIN2_Msk 0x00000004UL /*!< Interrupt polarity clear for pin 2 */ +#define GPIO_INTPOLCLR_PIN3_Msk 0x00000008UL /*!< Interrupt polarity clear for pin 3 */ +#define GPIO_INTPOLCLR_PIN4_Msk 0x00000010UL /*!< Interrupt polarity clear for pin 4 */ +#define GPIO_INTPOLCLR_PIN5_Msk 0x00000020UL /*!< Interrupt polarity clear for pin 5 */ +#define GPIO_INTPOLCLR_PIN6_Msk 0x00000040UL /*!< Interrupt polarity clear for pin 6 */ +#define GPIO_INTPOLCLR_PIN7_Msk 0x00000080UL /*!< Interrupt polarity clear for pin 7 */ +#define GPIO_INTPOLCLR_PIN8_Msk 0x00000100UL /*!< Interrupt polarity clear for pin 8 */ +#define GPIO_INTPOLCLR_PIN9_Msk 0x00000200UL /*!< Interrupt polarity clear for pin 9 */ +#define GPIO_INTPOLCLR_PIN10_Msk 0x00000400UL /*!< Interrupt polarity clear for pin 10 */ +#define GPIO_INTPOLCLR_PIN11_Msk 0x00000800UL /*!< Interrupt polarity clear for pin 11 */ +#define GPIO_INTPOLCLR_PIN12_Msk 0x00001000UL /*!< Interrupt polarity clear for pin 12 */ +#define GPIO_INTPOLCLR_PIN13_Msk 0x00002000UL /*!< Interrupt polarity clear for pin 13 */ +#define GPIO_INTPOLCLR_PIN14_Msk 0x00004000UL /*!< Interrupt polarity clear for pin 14 */ +#define GPIO_INTPOLCLR_PIN15_Msk 0x00008000UL /*!< Interrupt polarity clear for pin 15 */ + +/*-- INTEDGESET: Interrupt every edge set register -----------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt every edge set for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt every edge set for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt every edge set for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt every edge set for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt every edge set for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt every edge set for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt every edge set for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt every edge set for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt every edge set for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt every edge set for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt every edge set for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt every edge set for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt every edge set for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt every edge set for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt every edge set for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt every edge set for pin 15 */ +} _GPIO_INTEDGESET_bits; + +/* Bit field positions: */ +#define GPIO_INTEDGESET_PIN0_Pos 0 /*!< Interrupt every edge set for pin 0 */ +#define GPIO_INTEDGESET_PIN1_Pos 1 /*!< Interrupt every edge set for pin 1 */ +#define GPIO_INTEDGESET_PIN2_Pos 2 /*!< Interrupt every edge set for pin 2 */ +#define GPIO_INTEDGESET_PIN3_Pos 3 /*!< Interrupt every edge set for pin 3 */ +#define GPIO_INTEDGESET_PIN4_Pos 4 /*!< Interrupt every edge set for pin 4 */ +#define GPIO_INTEDGESET_PIN5_Pos 5 /*!< Interrupt every edge set for pin 5 */ +#define GPIO_INTEDGESET_PIN6_Pos 6 /*!< Interrupt every edge set for pin 6 */ +#define GPIO_INTEDGESET_PIN7_Pos 7 /*!< Interrupt every edge set for pin 7 */ +#define GPIO_INTEDGESET_PIN8_Pos 8 /*!< Interrupt every edge set for pin 8 */ +#define GPIO_INTEDGESET_PIN9_Pos 9 /*!< Interrupt every edge set for pin 9 */ +#define GPIO_INTEDGESET_PIN10_Pos 10 /*!< Interrupt every edge set for pin 10 */ +#define GPIO_INTEDGESET_PIN11_Pos 11 /*!< Interrupt every edge set for pin 11 */ +#define GPIO_INTEDGESET_PIN12_Pos 12 /*!< Interrupt every edge set for pin 12 */ +#define GPIO_INTEDGESET_PIN13_Pos 13 /*!< Interrupt every edge set for pin 13 */ +#define GPIO_INTEDGESET_PIN14_Pos 14 /*!< Interrupt every edge set for pin 14 */ +#define GPIO_INTEDGESET_PIN15_Pos 15 /*!< Interrupt every edge set for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTEDGESET_PIN0_Msk 0x00000001UL /*!< Interrupt every edge set for pin 0 */ +#define GPIO_INTEDGESET_PIN1_Msk 0x00000002UL /*!< Interrupt every edge set for pin 1 */ +#define GPIO_INTEDGESET_PIN2_Msk 0x00000004UL /*!< Interrupt every edge set for pin 2 */ +#define GPIO_INTEDGESET_PIN3_Msk 0x00000008UL /*!< Interrupt every edge set for pin 3 */ +#define GPIO_INTEDGESET_PIN4_Msk 0x00000010UL /*!< Interrupt every edge set for pin 4 */ +#define GPIO_INTEDGESET_PIN5_Msk 0x00000020UL /*!< Interrupt every edge set for pin 5 */ +#define GPIO_INTEDGESET_PIN6_Msk 0x00000040UL /*!< Interrupt every edge set for pin 6 */ +#define GPIO_INTEDGESET_PIN7_Msk 0x00000080UL /*!< Interrupt every edge set for pin 7 */ +#define GPIO_INTEDGESET_PIN8_Msk 0x00000100UL /*!< Interrupt every edge set for pin 8 */ +#define GPIO_INTEDGESET_PIN9_Msk 0x00000200UL /*!< Interrupt every edge set for pin 9 */ +#define GPIO_INTEDGESET_PIN10_Msk 0x00000400UL /*!< Interrupt every edge set for pin 10 */ +#define GPIO_INTEDGESET_PIN11_Msk 0x00000800UL /*!< Interrupt every edge set for pin 11 */ +#define GPIO_INTEDGESET_PIN12_Msk 0x00001000UL /*!< Interrupt every edge set for pin 12 */ +#define GPIO_INTEDGESET_PIN13_Msk 0x00002000UL /*!< Interrupt every edge set for pin 13 */ +#define GPIO_INTEDGESET_PIN14_Msk 0x00004000UL /*!< Interrupt every edge set for pin 14 */ +#define GPIO_INTEDGESET_PIN15_Msk 0x00008000UL /*!< Interrupt every edge set for pin 15 */ + +/*-- INTEDGECLR: Interrupt every edge clear register ---------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt every edge clear for pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt every edge clear for pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt every edge clear for pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt every edge clear for pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt every edge clear for pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt every edge clear for pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt every edge clear for pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt every edge clear for pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt every edge clear for pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt every edge clear for pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt every edge clear for pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt every edge clear for pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt every edge clear for pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt every edge clear for pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt every edge clear for pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt every edge clear for pin 15 */ +} _GPIO_INTEDGECLR_bits; + +/* Bit field positions: */ +#define GPIO_INTEDGECLR_PIN0_Pos 0 /*!< Interrupt every edge clear for pin 0 */ +#define GPIO_INTEDGECLR_PIN1_Pos 1 /*!< Interrupt every edge clear for pin 1 */ +#define GPIO_INTEDGECLR_PIN2_Pos 2 /*!< Interrupt every edge clear for pin 2 */ +#define GPIO_INTEDGECLR_PIN3_Pos 3 /*!< Interrupt every edge clear for pin 3 */ +#define GPIO_INTEDGECLR_PIN4_Pos 4 /*!< Interrupt every edge clear for pin 4 */ +#define GPIO_INTEDGECLR_PIN5_Pos 5 /*!< Interrupt every edge clear for pin 5 */ +#define GPIO_INTEDGECLR_PIN6_Pos 6 /*!< Interrupt every edge clear for pin 6 */ +#define GPIO_INTEDGECLR_PIN7_Pos 7 /*!< Interrupt every edge clear for pin 7 */ +#define GPIO_INTEDGECLR_PIN8_Pos 8 /*!< Interrupt every edge clear for pin 8 */ +#define GPIO_INTEDGECLR_PIN9_Pos 9 /*!< Interrupt every edge clear for pin 9 */ +#define GPIO_INTEDGECLR_PIN10_Pos 10 /*!< Interrupt every edge clear for pin 10 */ +#define GPIO_INTEDGECLR_PIN11_Pos 11 /*!< Interrupt every edge clear for pin 11 */ +#define GPIO_INTEDGECLR_PIN12_Pos 12 /*!< Interrupt every edge clear for pin 12 */ +#define GPIO_INTEDGECLR_PIN13_Pos 13 /*!< Interrupt every edge clear for pin 13 */ +#define GPIO_INTEDGECLR_PIN14_Pos 14 /*!< Interrupt every edge clear for pin 14 */ +#define GPIO_INTEDGECLR_PIN15_Pos 15 /*!< Interrupt every edge clear for pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTEDGECLR_PIN0_Msk 0x00000001UL /*!< Interrupt every edge clear for pin 0 */ +#define GPIO_INTEDGECLR_PIN1_Msk 0x00000002UL /*!< Interrupt every edge clear for pin 1 */ +#define GPIO_INTEDGECLR_PIN2_Msk 0x00000004UL /*!< Interrupt every edge clear for pin 2 */ +#define GPIO_INTEDGECLR_PIN3_Msk 0x00000008UL /*!< Interrupt every edge clear for pin 3 */ +#define GPIO_INTEDGECLR_PIN4_Msk 0x00000010UL /*!< Interrupt every edge clear for pin 4 */ +#define GPIO_INTEDGECLR_PIN5_Msk 0x00000020UL /*!< Interrupt every edge clear for pin 5 */ +#define GPIO_INTEDGECLR_PIN6_Msk 0x00000040UL /*!< Interrupt every edge clear for pin 6 */ +#define GPIO_INTEDGECLR_PIN7_Msk 0x00000080UL /*!< Interrupt every edge clear for pin 7 */ +#define GPIO_INTEDGECLR_PIN8_Msk 0x00000100UL /*!< Interrupt every edge clear for pin 8 */ +#define GPIO_INTEDGECLR_PIN9_Msk 0x00000200UL /*!< Interrupt every edge clear for pin 9 */ +#define GPIO_INTEDGECLR_PIN10_Msk 0x00000400UL /*!< Interrupt every edge clear for pin 10 */ +#define GPIO_INTEDGECLR_PIN11_Msk 0x00000800UL /*!< Interrupt every edge clear for pin 11 */ +#define GPIO_INTEDGECLR_PIN12_Msk 0x00001000UL /*!< Interrupt every edge clear for pin 12 */ +#define GPIO_INTEDGECLR_PIN13_Msk 0x00002000UL /*!< Interrupt every edge clear for pin 13 */ +#define GPIO_INTEDGECLR_PIN14_Msk 0x00004000UL /*!< Interrupt every edge clear for pin 14 */ +#define GPIO_INTEDGECLR_PIN15_Msk 0x00008000UL /*!< Interrupt every edge clear for pin 15 */ + +/*-- INTSTATUS: Interrupt status -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Interrupt status of pin 0 */ + uint32_t PIN1 :1; /*!< Interrupt status of pin 1 */ + uint32_t PIN2 :1; /*!< Interrupt status of pin 2 */ + uint32_t PIN3 :1; /*!< Interrupt status of pin 3 */ + uint32_t PIN4 :1; /*!< Interrupt status of pin 4 */ + uint32_t PIN5 :1; /*!< Interrupt status of pin 5 */ + uint32_t PIN6 :1; /*!< Interrupt status of pin 6 */ + uint32_t PIN7 :1; /*!< Interrupt status of pin 7 */ + uint32_t PIN8 :1; /*!< Interrupt status of pin 8 */ + uint32_t PIN9 :1; /*!< Interrupt status of pin 9 */ + uint32_t PIN10 :1; /*!< Interrupt status of pin 10 */ + uint32_t PIN11 :1; /*!< Interrupt status of pin 11 */ + uint32_t PIN12 :1; /*!< Interrupt status of pin 12 */ + uint32_t PIN13 :1; /*!< Interrupt status of pin 13 */ + uint32_t PIN14 :1; /*!< Interrupt status of pin 14 */ + uint32_t PIN15 :1; /*!< Interrupt status of pin 15 */ +} _GPIO_INTSTATUS_bits; + +/* Bit field positions: */ +#define GPIO_INTSTATUS_PIN0_Pos 0 /*!< Interrupt status of pin 0 */ +#define GPIO_INTSTATUS_PIN1_Pos 1 /*!< Interrupt status of pin 1 */ +#define GPIO_INTSTATUS_PIN2_Pos 2 /*!< Interrupt status of pin 2 */ +#define GPIO_INTSTATUS_PIN3_Pos 3 /*!< Interrupt status of pin 3 */ +#define GPIO_INTSTATUS_PIN4_Pos 4 /*!< Interrupt status of pin 4 */ +#define GPIO_INTSTATUS_PIN5_Pos 5 /*!< Interrupt status of pin 5 */ +#define GPIO_INTSTATUS_PIN6_Pos 6 /*!< Interrupt status of pin 6 */ +#define GPIO_INTSTATUS_PIN7_Pos 7 /*!< Interrupt status of pin 7 */ +#define GPIO_INTSTATUS_PIN8_Pos 8 /*!< Interrupt status of pin 8 */ +#define GPIO_INTSTATUS_PIN9_Pos 9 /*!< Interrupt status of pin 9 */ +#define GPIO_INTSTATUS_PIN10_Pos 10 /*!< Interrupt status of pin 10 */ +#define GPIO_INTSTATUS_PIN11_Pos 11 /*!< Interrupt status of pin 11 */ +#define GPIO_INTSTATUS_PIN12_Pos 12 /*!< Interrupt status of pin 12 */ +#define GPIO_INTSTATUS_PIN13_Pos 13 /*!< Interrupt status of pin 13 */ +#define GPIO_INTSTATUS_PIN14_Pos 14 /*!< Interrupt status of pin 14 */ +#define GPIO_INTSTATUS_PIN15_Pos 15 /*!< Interrupt status of pin 15 */ + +/* Bit field masks: */ +#define GPIO_INTSTATUS_PIN0_Msk 0x00000001UL /*!< Interrupt status of pin 0 */ +#define GPIO_INTSTATUS_PIN1_Msk 0x00000002UL /*!< Interrupt status of pin 1 */ +#define GPIO_INTSTATUS_PIN2_Msk 0x00000004UL /*!< Interrupt status of pin 2 */ +#define GPIO_INTSTATUS_PIN3_Msk 0x00000008UL /*!< Interrupt status of pin 3 */ +#define GPIO_INTSTATUS_PIN4_Msk 0x00000010UL /*!< Interrupt status of pin 4 */ +#define GPIO_INTSTATUS_PIN5_Msk 0x00000020UL /*!< Interrupt status of pin 5 */ +#define GPIO_INTSTATUS_PIN6_Msk 0x00000040UL /*!< Interrupt status of pin 6 */ +#define GPIO_INTSTATUS_PIN7_Msk 0x00000080UL /*!< Interrupt status of pin 7 */ +#define GPIO_INTSTATUS_PIN8_Msk 0x00000100UL /*!< Interrupt status of pin 8 */ +#define GPIO_INTSTATUS_PIN9_Msk 0x00000200UL /*!< Interrupt status of pin 9 */ +#define GPIO_INTSTATUS_PIN10_Msk 0x00000400UL /*!< Interrupt status of pin 10 */ +#define GPIO_INTSTATUS_PIN11_Msk 0x00000800UL /*!< Interrupt status of pin 11 */ +#define GPIO_INTSTATUS_PIN12_Msk 0x00001000UL /*!< Interrupt status of pin 12 */ +#define GPIO_INTSTATUS_PIN13_Msk 0x00002000UL /*!< Interrupt status of pin 13 */ +#define GPIO_INTSTATUS_PIN14_Msk 0x00004000UL /*!< Interrupt status of pin 14 */ +#define GPIO_INTSTATUS_PIN15_Msk 0x00008000UL /*!< Interrupt status of pin 15 */ + +/*-- DMAREQSET: DMA request enable register ------------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< DMA request enable for pin 0 */ + uint32_t PIN1 :1; /*!< DMA request enable for pin 1 */ + uint32_t PIN2 :1; /*!< DMA request enable for pin 2 */ + uint32_t PIN3 :1; /*!< DMA request enable for pin 3 */ + uint32_t PIN4 :1; /*!< DMA request enable for pin 4 */ + uint32_t PIN5 :1; /*!< DMA request enable for pin 5 */ + uint32_t PIN6 :1; /*!< DMA request enable for pin 6 */ + uint32_t PIN7 :1; /*!< DMA request enable for pin 7 */ + uint32_t PIN8 :1; /*!< DMA request enable for pin 8 */ + uint32_t PIN9 :1; /*!< DMA request enable for pin 9 */ + uint32_t PIN10 :1; /*!< DMA request enable for pin 10 */ + uint32_t PIN11 :1; /*!< DMA request enable for pin 11 */ + uint32_t PIN12 :1; /*!< DMA request enable for pin 12 */ + uint32_t PIN13 :1; /*!< DMA request enable for pin 13 */ + uint32_t PIN14 :1; /*!< DMA request enable for pin 14 */ + uint32_t PIN15 :1; /*!< DMA request enable for pin 15 */ +} _GPIO_DMAREQSET_bits; + +/* Bit field positions: */ +#define GPIO_DMAREQSET_PIN0_Pos 0 /*!< DMA request enable for pin 0 */ +#define GPIO_DMAREQSET_PIN1_Pos 1 /*!< DMA request enable for pin 1 */ +#define GPIO_DMAREQSET_PIN2_Pos 2 /*!< DMA request enable for pin 2 */ +#define GPIO_DMAREQSET_PIN3_Pos 3 /*!< DMA request enable for pin 3 */ +#define GPIO_DMAREQSET_PIN4_Pos 4 /*!< DMA request enable for pin 4 */ +#define GPIO_DMAREQSET_PIN5_Pos 5 /*!< DMA request enable for pin 5 */ +#define GPIO_DMAREQSET_PIN6_Pos 6 /*!< DMA request enable for pin 6 */ +#define GPIO_DMAREQSET_PIN7_Pos 7 /*!< DMA request enable for pin 7 */ +#define GPIO_DMAREQSET_PIN8_Pos 8 /*!< DMA request enable for pin 8 */ +#define GPIO_DMAREQSET_PIN9_Pos 9 /*!< DMA request enable for pin 9 */ +#define GPIO_DMAREQSET_PIN10_Pos 10 /*!< DMA request enable for pin 10 */ +#define GPIO_DMAREQSET_PIN11_Pos 11 /*!< DMA request enable for pin 11 */ +#define GPIO_DMAREQSET_PIN12_Pos 12 /*!< DMA request enable for pin 12 */ +#define GPIO_DMAREQSET_PIN13_Pos 13 /*!< DMA request enable for pin 13 */ +#define GPIO_DMAREQSET_PIN14_Pos 14 /*!< DMA request enable for pin 14 */ +#define GPIO_DMAREQSET_PIN15_Pos 15 /*!< DMA request enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_DMAREQSET_PIN0_Msk 0x00000001UL /*!< DMA request enable for pin 0 */ +#define GPIO_DMAREQSET_PIN1_Msk 0x00000002UL /*!< DMA request enable for pin 1 */ +#define GPIO_DMAREQSET_PIN2_Msk 0x00000004UL /*!< DMA request enable for pin 2 */ +#define GPIO_DMAREQSET_PIN3_Msk 0x00000008UL /*!< DMA request enable for pin 3 */ +#define GPIO_DMAREQSET_PIN4_Msk 0x00000010UL /*!< DMA request enable for pin 4 */ +#define GPIO_DMAREQSET_PIN5_Msk 0x00000020UL /*!< DMA request enable for pin 5 */ +#define GPIO_DMAREQSET_PIN6_Msk 0x00000040UL /*!< DMA request enable for pin 6 */ +#define GPIO_DMAREQSET_PIN7_Msk 0x00000080UL /*!< DMA request enable for pin 7 */ +#define GPIO_DMAREQSET_PIN8_Msk 0x00000100UL /*!< DMA request enable for pin 8 */ +#define GPIO_DMAREQSET_PIN9_Msk 0x00000200UL /*!< DMA request enable for pin 9 */ +#define GPIO_DMAREQSET_PIN10_Msk 0x00000400UL /*!< DMA request enable for pin 10 */ +#define GPIO_DMAREQSET_PIN11_Msk 0x00000800UL /*!< DMA request enable for pin 11 */ +#define GPIO_DMAREQSET_PIN12_Msk 0x00001000UL /*!< DMA request enable for pin 12 */ +#define GPIO_DMAREQSET_PIN13_Msk 0x00002000UL /*!< DMA request enable for pin 13 */ +#define GPIO_DMAREQSET_PIN14_Msk 0x00004000UL /*!< DMA request enable for pin 14 */ +#define GPIO_DMAREQSET_PIN15_Msk 0x00008000UL /*!< DMA request enable for pin 15 */ + +/*-- DMAREQCLR: DMA request disable register -----------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< DMA request disable for pin 0 */ + uint32_t PIN1 :1; /*!< DMA request disable for pin 1 */ + uint32_t PIN2 :1; /*!< DMA request disable for pin 2 */ + uint32_t PIN3 :1; /*!< DMA request disable for pin 3 */ + uint32_t PIN4 :1; /*!< DMA request disable for pin 4 */ + uint32_t PIN5 :1; /*!< DMA request disable for pin 5 */ + uint32_t PIN6 :1; /*!< DMA request disable for pin 6 */ + uint32_t PIN7 :1; /*!< DMA request disable for pin 7 */ + uint32_t PIN8 :1; /*!< DMA request disable for pin 8 */ + uint32_t PIN9 :1; /*!< DMA request disable for pin 9 */ + uint32_t PIN10 :1; /*!< DMA request disable for pin 10 */ + uint32_t PIN11 :1; /*!< DMA request disable for pin 11 */ + uint32_t PIN12 :1; /*!< DMA request disable for pin 12 */ + uint32_t PIN13 :1; /*!< DMA request disable for pin 13 */ + uint32_t PIN14 :1; /*!< DMA request disable for pin 14 */ + uint32_t PIN15 :1; /*!< DMA request disable for pin 15 */ +} _GPIO_DMAREQCLR_bits; + +/* Bit field positions: */ +#define GPIO_DMAREQCLR_PIN0_Pos 0 /*!< DMA request disable for pin 0 */ +#define GPIO_DMAREQCLR_PIN1_Pos 1 /*!< DMA request disable for pin 1 */ +#define GPIO_DMAREQCLR_PIN2_Pos 2 /*!< DMA request disable for pin 2 */ +#define GPIO_DMAREQCLR_PIN3_Pos 3 /*!< DMA request disable for pin 3 */ +#define GPIO_DMAREQCLR_PIN4_Pos 4 /*!< DMA request disable for pin 4 */ +#define GPIO_DMAREQCLR_PIN5_Pos 5 /*!< DMA request disable for pin 5 */ +#define GPIO_DMAREQCLR_PIN6_Pos 6 /*!< DMA request disable for pin 6 */ +#define GPIO_DMAREQCLR_PIN7_Pos 7 /*!< DMA request disable for pin 7 */ +#define GPIO_DMAREQCLR_PIN8_Pos 8 /*!< DMA request disable for pin 8 */ +#define GPIO_DMAREQCLR_PIN9_Pos 9 /*!< DMA request disable for pin 9 */ +#define GPIO_DMAREQCLR_PIN10_Pos 10 /*!< DMA request disable for pin 10 */ +#define GPIO_DMAREQCLR_PIN11_Pos 11 /*!< DMA request disable for pin 11 */ +#define GPIO_DMAREQCLR_PIN12_Pos 12 /*!< DMA request disable for pin 12 */ +#define GPIO_DMAREQCLR_PIN13_Pos 13 /*!< DMA request disable for pin 13 */ +#define GPIO_DMAREQCLR_PIN14_Pos 14 /*!< DMA request disable for pin 14 */ +#define GPIO_DMAREQCLR_PIN15_Pos 15 /*!< DMA request disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_DMAREQCLR_PIN0_Msk 0x00000001UL /*!< DMA request disable for pin 0 */ +#define GPIO_DMAREQCLR_PIN1_Msk 0x00000002UL /*!< DMA request disable for pin 1 */ +#define GPIO_DMAREQCLR_PIN2_Msk 0x00000004UL /*!< DMA request disable for pin 2 */ +#define GPIO_DMAREQCLR_PIN3_Msk 0x00000008UL /*!< DMA request disable for pin 3 */ +#define GPIO_DMAREQCLR_PIN4_Msk 0x00000010UL /*!< DMA request disable for pin 4 */ +#define GPIO_DMAREQCLR_PIN5_Msk 0x00000020UL /*!< DMA request disable for pin 5 */ +#define GPIO_DMAREQCLR_PIN6_Msk 0x00000040UL /*!< DMA request disable for pin 6 */ +#define GPIO_DMAREQCLR_PIN7_Msk 0x00000080UL /*!< DMA request disable for pin 7 */ +#define GPIO_DMAREQCLR_PIN8_Msk 0x00000100UL /*!< DMA request disable for pin 8 */ +#define GPIO_DMAREQCLR_PIN9_Msk 0x00000200UL /*!< DMA request disable for pin 9 */ +#define GPIO_DMAREQCLR_PIN10_Msk 0x00000400UL /*!< DMA request disable for pin 10 */ +#define GPIO_DMAREQCLR_PIN11_Msk 0x00000800UL /*!< DMA request disable for pin 11 */ +#define GPIO_DMAREQCLR_PIN12_Msk 0x00001000UL /*!< DMA request disable for pin 12 */ +#define GPIO_DMAREQCLR_PIN13_Msk 0x00002000UL /*!< DMA request disable for pin 13 */ +#define GPIO_DMAREQCLR_PIN14_Msk 0x00004000UL /*!< DMA request disable for pin 14 */ +#define GPIO_DMAREQCLR_PIN15_Msk 0x00008000UL /*!< DMA request disable for pin 15 */ + +/*-- ADCSOCSET: ADC Start Of Conversion enable register ------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< ADC SOC enable for pin 0 */ + uint32_t PIN1 :1; /*!< ADC SOC enable for pin 1 */ + uint32_t PIN2 :1; /*!< ADC SOC enable for pin 2 */ + uint32_t PIN3 :1; /*!< ADC SOC enable for pin 3 */ + uint32_t PIN4 :1; /*!< ADC SOC enable for pin 4 */ + uint32_t PIN5 :1; /*!< ADC SOC enable for pin 5 */ + uint32_t PIN6 :1; /*!< ADC SOC enable for pin 6 */ + uint32_t PIN7 :1; /*!< ADC SOC enable for pin 7 */ + uint32_t PIN8 :1; /*!< ADC SOC enable for pin 8 */ + uint32_t PIN9 :1; /*!< ADC SOC enable for pin 9 */ + uint32_t PIN10 :1; /*!< ADC SOC enable for pin 10 */ + uint32_t PIN11 :1; /*!< ADC SOC enable for pin 11 */ + uint32_t PIN12 :1; /*!< ADC SOC enable for pin 12 */ + uint32_t PIN13 :1; /*!< ADC SOC enable for pin 13 */ + uint32_t PIN14 :1; /*!< ADC SOC enable for pin 14 */ + uint32_t PIN15 :1; /*!< ADC SOC enable for pin 15 */ +} _GPIO_ADCSOCSET_bits; + +/* Bit field positions: */ +#define GPIO_ADCSOCSET_PIN0_Pos 0 /*!< ADC SOC enable for pin 0 */ +#define GPIO_ADCSOCSET_PIN1_Pos 1 /*!< ADC SOC enable for pin 1 */ +#define GPIO_ADCSOCSET_PIN2_Pos 2 /*!< ADC SOC enable for pin 2 */ +#define GPIO_ADCSOCSET_PIN3_Pos 3 /*!< ADC SOC enable for pin 3 */ +#define GPIO_ADCSOCSET_PIN4_Pos 4 /*!< ADC SOC enable for pin 4 */ +#define GPIO_ADCSOCSET_PIN5_Pos 5 /*!< ADC SOC enable for pin 5 */ +#define GPIO_ADCSOCSET_PIN6_Pos 6 /*!< ADC SOC enable for pin 6 */ +#define GPIO_ADCSOCSET_PIN7_Pos 7 /*!< ADC SOC enable for pin 7 */ +#define GPIO_ADCSOCSET_PIN8_Pos 8 /*!< ADC SOC enable for pin 8 */ +#define GPIO_ADCSOCSET_PIN9_Pos 9 /*!< ADC SOC enable for pin 9 */ +#define GPIO_ADCSOCSET_PIN10_Pos 10 /*!< ADC SOC enable for pin 10 */ +#define GPIO_ADCSOCSET_PIN11_Pos 11 /*!< ADC SOC enable for pin 11 */ +#define GPIO_ADCSOCSET_PIN12_Pos 12 /*!< ADC SOC enable for pin 12 */ +#define GPIO_ADCSOCSET_PIN13_Pos 13 /*!< ADC SOC enable for pin 13 */ +#define GPIO_ADCSOCSET_PIN14_Pos 14 /*!< ADC SOC enable for pin 14 */ +#define GPIO_ADCSOCSET_PIN15_Pos 15 /*!< ADC SOC enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_ADCSOCSET_PIN0_Msk 0x00000001UL /*!< ADC SOC enable for pin 0 */ +#define GPIO_ADCSOCSET_PIN1_Msk 0x00000002UL /*!< ADC SOC enable for pin 1 */ +#define GPIO_ADCSOCSET_PIN2_Msk 0x00000004UL /*!< ADC SOC enable for pin 2 */ +#define GPIO_ADCSOCSET_PIN3_Msk 0x00000008UL /*!< ADC SOC enable for pin 3 */ +#define GPIO_ADCSOCSET_PIN4_Msk 0x00000010UL /*!< ADC SOC enable for pin 4 */ +#define GPIO_ADCSOCSET_PIN5_Msk 0x00000020UL /*!< ADC SOC enable for pin 5 */ +#define GPIO_ADCSOCSET_PIN6_Msk 0x00000040UL /*!< ADC SOC enable for pin 6 */ +#define GPIO_ADCSOCSET_PIN7_Msk 0x00000080UL /*!< ADC SOC enable for pin 7 */ +#define GPIO_ADCSOCSET_PIN8_Msk 0x00000100UL /*!< ADC SOC enable for pin 8 */ +#define GPIO_ADCSOCSET_PIN9_Msk 0x00000200UL /*!< ADC SOC enable for pin 9 */ +#define GPIO_ADCSOCSET_PIN10_Msk 0x00000400UL /*!< ADC SOC enable for pin 10 */ +#define GPIO_ADCSOCSET_PIN11_Msk 0x00000800UL /*!< ADC SOC enable for pin 11 */ +#define GPIO_ADCSOCSET_PIN12_Msk 0x00001000UL /*!< ADC SOC enable for pin 12 */ +#define GPIO_ADCSOCSET_PIN13_Msk 0x00002000UL /*!< ADC SOC enable for pin 13 */ +#define GPIO_ADCSOCSET_PIN14_Msk 0x00004000UL /*!< ADC SOC enable for pin 14 */ +#define GPIO_ADCSOCSET_PIN15_Msk 0x00008000UL /*!< ADC SOC enable for pin 15 */ + +/*-- ADCSOCCLR: ADC Start Of Conversion disable register -----------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< ADC SOC disable for pin 0 */ + uint32_t PIN1 :1; /*!< ADC SOC disable for pin 1 */ + uint32_t PIN2 :1; /*!< ADC SOC disable for pin 2 */ + uint32_t PIN3 :1; /*!< ADC SOC disable for pin 3 */ + uint32_t PIN4 :1; /*!< ADC SOC disable for pin 4 */ + uint32_t PIN5 :1; /*!< ADC SOC disable for pin 5 */ + uint32_t PIN6 :1; /*!< ADC SOC disable for pin 6 */ + uint32_t PIN7 :1; /*!< ADC SOC disable for pin 7 */ + uint32_t PIN8 :1; /*!< ADC SOC disable for pin 8 */ + uint32_t PIN9 :1; /*!< ADC SOC disable for pin 9 */ + uint32_t PIN10 :1; /*!< ADC SOC disable for pin 10 */ + uint32_t PIN11 :1; /*!< ADC SOC disable for pin 11 */ + uint32_t PIN12 :1; /*!< ADC SOC disable for pin 12 */ + uint32_t PIN13 :1; /*!< ADC SOC disable for pin 13 */ + uint32_t PIN14 :1; /*!< ADC SOC disable for pin 14 */ + uint32_t PIN15 :1; /*!< ADC SOC disable for pin 15 */ +} _GPIO_ADCSOCCLR_bits; + +/* Bit field positions: */ +#define GPIO_ADCSOCCLR_PIN0_Pos 0 /*!< ADC SOC disable for pin 0 */ +#define GPIO_ADCSOCCLR_PIN1_Pos 1 /*!< ADC SOC disable for pin 1 */ +#define GPIO_ADCSOCCLR_PIN2_Pos 2 /*!< ADC SOC disable for pin 2 */ +#define GPIO_ADCSOCCLR_PIN3_Pos 3 /*!< ADC SOC disable for pin 3 */ +#define GPIO_ADCSOCCLR_PIN4_Pos 4 /*!< ADC SOC disable for pin 4 */ +#define GPIO_ADCSOCCLR_PIN5_Pos 5 /*!< ADC SOC disable for pin 5 */ +#define GPIO_ADCSOCCLR_PIN6_Pos 6 /*!< ADC SOC disable for pin 6 */ +#define GPIO_ADCSOCCLR_PIN7_Pos 7 /*!< ADC SOC disable for pin 7 */ +#define GPIO_ADCSOCCLR_PIN8_Pos 8 /*!< ADC SOC disable for pin 8 */ +#define GPIO_ADCSOCCLR_PIN9_Pos 9 /*!< ADC SOC disable for pin 9 */ +#define GPIO_ADCSOCCLR_PIN10_Pos 10 /*!< ADC SOC disable for pin 10 */ +#define GPIO_ADCSOCCLR_PIN11_Pos 11 /*!< ADC SOC disable for pin 11 */ +#define GPIO_ADCSOCCLR_PIN12_Pos 12 /*!< ADC SOC disable for pin 12 */ +#define GPIO_ADCSOCCLR_PIN13_Pos 13 /*!< ADC SOC disable for pin 13 */ +#define GPIO_ADCSOCCLR_PIN14_Pos 14 /*!< ADC SOC disable for pin 14 */ +#define GPIO_ADCSOCCLR_PIN15_Pos 15 /*!< ADC SOC disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_ADCSOCCLR_PIN0_Msk 0x00000001UL /*!< ADC SOC disable for pin 0 */ +#define GPIO_ADCSOCCLR_PIN1_Msk 0x00000002UL /*!< ADC SOC disable for pin 1 */ +#define GPIO_ADCSOCCLR_PIN2_Msk 0x00000004UL /*!< ADC SOC disable for pin 2 */ +#define GPIO_ADCSOCCLR_PIN3_Msk 0x00000008UL /*!< ADC SOC disable for pin 3 */ +#define GPIO_ADCSOCCLR_PIN4_Msk 0x00000010UL /*!< ADC SOC disable for pin 4 */ +#define GPIO_ADCSOCCLR_PIN5_Msk 0x00000020UL /*!< ADC SOC disable for pin 5 */ +#define GPIO_ADCSOCCLR_PIN6_Msk 0x00000040UL /*!< ADC SOC disable for pin 6 */ +#define GPIO_ADCSOCCLR_PIN7_Msk 0x00000080UL /*!< ADC SOC disable for pin 7 */ +#define GPIO_ADCSOCCLR_PIN8_Msk 0x00000100UL /*!< ADC SOC disable for pin 8 */ +#define GPIO_ADCSOCCLR_PIN9_Msk 0x00000200UL /*!< ADC SOC disable for pin 9 */ +#define GPIO_ADCSOCCLR_PIN10_Msk 0x00000400UL /*!< ADC SOC disable for pin 10 */ +#define GPIO_ADCSOCCLR_PIN11_Msk 0x00000800UL /*!< ADC SOC disable for pin 11 */ +#define GPIO_ADCSOCCLR_PIN12_Msk 0x00001000UL /*!< ADC SOC disable for pin 12 */ +#define GPIO_ADCSOCCLR_PIN13_Msk 0x00002000UL /*!< ADC SOC disable for pin 13 */ +#define GPIO_ADCSOCCLR_PIN14_Msk 0x00004000UL /*!< ADC SOC disable for pin 14 */ +#define GPIO_ADCSOCCLR_PIN15_Msk 0x00008000UL /*!< ADC SOC disable for pin 15 */ + +/*-- RXEVSET: Core RXEV request enable register --------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< RXEV enable for pin 0 */ + uint32_t PIN1 :1; /*!< RXEV enable for pin 1 */ + uint32_t PIN2 :1; /*!< RXEV enable for pin 2 */ + uint32_t PIN3 :1; /*!< RXEV enable for pin 3 */ + uint32_t PIN4 :1; /*!< RXEV enable for pin 4 */ + uint32_t PIN5 :1; /*!< RXEV enable for pin 5 */ + uint32_t PIN6 :1; /*!< RXEV enable for pin 6 */ + uint32_t PIN7 :1; /*!< RXEV enable for pin 7 */ + uint32_t PIN8 :1; /*!< RXEV enable for pin 8 */ + uint32_t PIN9 :1; /*!< RXEV enable for pin 9 */ + uint32_t PIN10 :1; /*!< RXEV enable for pin 10 */ + uint32_t PIN11 :1; /*!< RXEV enable for pin 11 */ + uint32_t PIN12 :1; /*!< RXEV enable for pin 12 */ + uint32_t PIN13 :1; /*!< RXEV enable for pin 13 */ + uint32_t PIN14 :1; /*!< RXEV enable for pin 14 */ + uint32_t PIN15 :1; /*!< RXEV enable for pin 15 */ +} _GPIO_RXEVSET_bits; + +/* Bit field positions: */ +#define GPIO_RXEVSET_PIN0_Pos 0 /*!< RXEV enable for pin 0 */ +#define GPIO_RXEVSET_PIN1_Pos 1 /*!< RXEV enable for pin 1 */ +#define GPIO_RXEVSET_PIN2_Pos 2 /*!< RXEV enable for pin 2 */ +#define GPIO_RXEVSET_PIN3_Pos 3 /*!< RXEV enable for pin 3 */ +#define GPIO_RXEVSET_PIN4_Pos 4 /*!< RXEV enable for pin 4 */ +#define GPIO_RXEVSET_PIN5_Pos 5 /*!< RXEV enable for pin 5 */ +#define GPIO_RXEVSET_PIN6_Pos 6 /*!< RXEV enable for pin 6 */ +#define GPIO_RXEVSET_PIN7_Pos 7 /*!< RXEV enable for pin 7 */ +#define GPIO_RXEVSET_PIN8_Pos 8 /*!< RXEV enable for pin 8 */ +#define GPIO_RXEVSET_PIN9_Pos 9 /*!< RXEV enable for pin 9 */ +#define GPIO_RXEVSET_PIN10_Pos 10 /*!< RXEV enable for pin 10 */ +#define GPIO_RXEVSET_PIN11_Pos 11 /*!< RXEV enable for pin 11 */ +#define GPIO_RXEVSET_PIN12_Pos 12 /*!< RXEV enable for pin 12 */ +#define GPIO_RXEVSET_PIN13_Pos 13 /*!< RXEV enable for pin 13 */ +#define GPIO_RXEVSET_PIN14_Pos 14 /*!< RXEV enable for pin 14 */ +#define GPIO_RXEVSET_PIN15_Pos 15 /*!< RXEV enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_RXEVSET_PIN0_Msk 0x00000001UL /*!< RXEV enable for pin 0 */ +#define GPIO_RXEVSET_PIN1_Msk 0x00000002UL /*!< RXEV enable for pin 1 */ +#define GPIO_RXEVSET_PIN2_Msk 0x00000004UL /*!< RXEV enable for pin 2 */ +#define GPIO_RXEVSET_PIN3_Msk 0x00000008UL /*!< RXEV enable for pin 3 */ +#define GPIO_RXEVSET_PIN4_Msk 0x00000010UL /*!< RXEV enable for pin 4 */ +#define GPIO_RXEVSET_PIN5_Msk 0x00000020UL /*!< RXEV enable for pin 5 */ +#define GPIO_RXEVSET_PIN6_Msk 0x00000040UL /*!< RXEV enable for pin 6 */ +#define GPIO_RXEVSET_PIN7_Msk 0x00000080UL /*!< RXEV enable for pin 7 */ +#define GPIO_RXEVSET_PIN8_Msk 0x00000100UL /*!< RXEV enable for pin 8 */ +#define GPIO_RXEVSET_PIN9_Msk 0x00000200UL /*!< RXEV enable for pin 9 */ +#define GPIO_RXEVSET_PIN10_Msk 0x00000400UL /*!< RXEV enable for pin 10 */ +#define GPIO_RXEVSET_PIN11_Msk 0x00000800UL /*!< RXEV enable for pin 11 */ +#define GPIO_RXEVSET_PIN12_Msk 0x00001000UL /*!< RXEV enable for pin 12 */ +#define GPIO_RXEVSET_PIN13_Msk 0x00002000UL /*!< RXEV enable for pin 13 */ +#define GPIO_RXEVSET_PIN14_Msk 0x00004000UL /*!< RXEV enable for pin 14 */ +#define GPIO_RXEVSET_PIN15_Msk 0x00008000UL /*!< RXEV enable for pin 15 */ + +/*-- RXEVCLR: Core RXEV request disable register -------------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< RXEV disable for pin 0 */ + uint32_t PIN1 :1; /*!< RXEV disable for pin 1 */ + uint32_t PIN2 :1; /*!< RXEV disable for pin 2 */ + uint32_t PIN3 :1; /*!< RXEV disable for pin 3 */ + uint32_t PIN4 :1; /*!< RXEV disable for pin 4 */ + uint32_t PIN5 :1; /*!< RXEV disable for pin 5 */ + uint32_t PIN6 :1; /*!< RXEV disable for pin 6 */ + uint32_t PIN7 :1; /*!< RXEV disable for pin 7 */ + uint32_t PIN8 :1; /*!< RXEV disable for pin 8 */ + uint32_t PIN9 :1; /*!< RXEV disable for pin 9 */ + uint32_t PIN10 :1; /*!< RXEV disable for pin 10 */ + uint32_t PIN11 :1; /*!< RXEV disable for pin 11 */ + uint32_t PIN12 :1; /*!< RXEV disable for pin 12 */ + uint32_t PIN13 :1; /*!< RXEV disable for pin 13 */ + uint32_t PIN14 :1; /*!< RXEV disable for pin 14 */ + uint32_t PIN15 :1; /*!< RXEV disable for pin 15 */ +} _GPIO_RXEVCLR_bits; + +/* Bit field positions: */ +#define GPIO_RXEVCLR_PIN0_Pos 0 /*!< RXEV disable for pin 0 */ +#define GPIO_RXEVCLR_PIN1_Pos 1 /*!< RXEV disable for pin 1 */ +#define GPIO_RXEVCLR_PIN2_Pos 2 /*!< RXEV disable for pin 2 */ +#define GPIO_RXEVCLR_PIN3_Pos 3 /*!< RXEV disable for pin 3 */ +#define GPIO_RXEVCLR_PIN4_Pos 4 /*!< RXEV disable for pin 4 */ +#define GPIO_RXEVCLR_PIN5_Pos 5 /*!< RXEV disable for pin 5 */ +#define GPIO_RXEVCLR_PIN6_Pos 6 /*!< RXEV disable for pin 6 */ +#define GPIO_RXEVCLR_PIN7_Pos 7 /*!< RXEV disable for pin 7 */ +#define GPIO_RXEVCLR_PIN8_Pos 8 /*!< RXEV disable for pin 8 */ +#define GPIO_RXEVCLR_PIN9_Pos 9 /*!< RXEV disable for pin 9 */ +#define GPIO_RXEVCLR_PIN10_Pos 10 /*!< RXEV disable for pin 10 */ +#define GPIO_RXEVCLR_PIN11_Pos 11 /*!< RXEV disable for pin 11 */ +#define GPIO_RXEVCLR_PIN12_Pos 12 /*!< RXEV disable for pin 12 */ +#define GPIO_RXEVCLR_PIN13_Pos 13 /*!< RXEV disable for pin 13 */ +#define GPIO_RXEVCLR_PIN14_Pos 14 /*!< RXEV disable for pin 14 */ +#define GPIO_RXEVCLR_PIN15_Pos 15 /*!< RXEV disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_RXEVCLR_PIN0_Msk 0x00000001UL /*!< RXEV disable for pin 0 */ +#define GPIO_RXEVCLR_PIN1_Msk 0x00000002UL /*!< RXEV disable for pin 1 */ +#define GPIO_RXEVCLR_PIN2_Msk 0x00000004UL /*!< RXEV disable for pin 2 */ +#define GPIO_RXEVCLR_PIN3_Msk 0x00000008UL /*!< RXEV disable for pin 3 */ +#define GPIO_RXEVCLR_PIN4_Msk 0x00000010UL /*!< RXEV disable for pin 4 */ +#define GPIO_RXEVCLR_PIN5_Msk 0x00000020UL /*!< RXEV disable for pin 5 */ +#define GPIO_RXEVCLR_PIN6_Msk 0x00000040UL /*!< RXEV disable for pin 6 */ +#define GPIO_RXEVCLR_PIN7_Msk 0x00000080UL /*!< RXEV disable for pin 7 */ +#define GPIO_RXEVCLR_PIN8_Msk 0x00000100UL /*!< RXEV disable for pin 8 */ +#define GPIO_RXEVCLR_PIN9_Msk 0x00000200UL /*!< RXEV disable for pin 9 */ +#define GPIO_RXEVCLR_PIN10_Msk 0x00000400UL /*!< RXEV disable for pin 10 */ +#define GPIO_RXEVCLR_PIN11_Msk 0x00000800UL /*!< RXEV disable for pin 11 */ +#define GPIO_RXEVCLR_PIN12_Msk 0x00001000UL /*!< RXEV disable for pin 12 */ +#define GPIO_RXEVCLR_PIN13_Msk 0x00002000UL /*!< RXEV disable for pin 13 */ +#define GPIO_RXEVCLR_PIN14_Msk 0x00004000UL /*!< RXEV disable for pin 14 */ +#define GPIO_RXEVCLR_PIN15_Msk 0x00008000UL /*!< RXEV disable for pin 15 */ + +/*-- LOCKKEY: Key register to unlock LOCKSET/LOCKCLR registers for write (KEY=0xADEADBEE) ---------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Key to unlock LOCKSET/LOCKCLR registers for write (KEY=0xADEADBEE) */ +} _GPIO_LOCKKEY_bits; + +/* Bit field positions: */ +#define GPIO_LOCKKEY_VAL_Pos 0 /*!< Key to unlock LOCKSET/LOCKCLR registers for write (KEY=0xADEADBEE) */ + +/* Bit field masks: */ +#define GPIO_LOCKKEY_VAL_Msk 0xFFFFFFFFUL /*!< Key to unlock LOCKSET/LOCKCLR registers for write (KEY=0xADEADBEE) */ + +/* Bit field enums: */ +typedef enum { + GPIO_LOCKKEY_VAL_LOCK = -286331154, /*!< 0xEEEEEEEE, 0xEEEEEEEE, key to lock registers */ + GPIO_LOCKKEY_VAL_UNLOCK = -1377117202, /*!< 0xADEADBEE, 0xADEADBEE, key to unlock registers */ +} GPIO_LOCKKEY_VAL_Enum; + +/*-- LOCKSTAT: LOCKSET/LOCKCLR write enable status register --------------------------------------------------*/ +typedef struct { + uint32_t WREN :1; /*!< LOCKSET/LOCKCLR write enable status */ +} _GPIO_LOCKSTAT_bits; + +/* Bit field positions: */ +#define GPIO_LOCKSTAT_WREN_Pos 0 /*!< LOCKSET/LOCKCLR write enable status */ + +/* Bit field masks: */ +#define GPIO_LOCKSTAT_WREN_Msk 0x00000001UL /*!< LOCKSET/LOCKCLR write enable status */ + +/*-- LOCKSET: Lock pins configuration enable register --------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Lock configuration enable for pin 0 */ + uint32_t PIN1 :1; /*!< Lock configuration enable for pin 1 */ + uint32_t PIN2 :1; /*!< Lock configuration enable for pin 2 */ + uint32_t PIN3 :1; /*!< Lock configuration enable for pin 3 */ + uint32_t PIN4 :1; /*!< Lock configuration enable for pin 4 */ + uint32_t PIN5 :1; /*!< Lock configuration enable for pin 5 */ + uint32_t PIN6 :1; /*!< Lock configuration enable for pin 6 */ + uint32_t PIN7 :1; /*!< Lock configuration enable for pin 7 */ + uint32_t PIN8 :1; /*!< Lock configuration enable for pin 8 */ + uint32_t PIN9 :1; /*!< Lock configuration enable for pin 9 */ + uint32_t PIN10 :1; /*!< Lock configuration enable for pin 10 */ + uint32_t PIN11 :1; /*!< Lock configuration enable for pin 11 */ + uint32_t PIN12 :1; /*!< Lock configuration enable for pin 12 */ + uint32_t PIN13 :1; /*!< Lock configuration enable for pin 13 */ + uint32_t PIN14 :1; /*!< Lock configuration enable for pin 14 */ + uint32_t PIN15 :1; /*!< Lock configuration enable for pin 15 */ +} _GPIO_LOCKSET_bits; + +/* Bit field positions: */ +#define GPIO_LOCKSET_PIN0_Pos 0 /*!< Lock configuration enable for pin 0 */ +#define GPIO_LOCKSET_PIN1_Pos 1 /*!< Lock configuration enable for pin 1 */ +#define GPIO_LOCKSET_PIN2_Pos 2 /*!< Lock configuration enable for pin 2 */ +#define GPIO_LOCKSET_PIN3_Pos 3 /*!< Lock configuration enable for pin 3 */ +#define GPIO_LOCKSET_PIN4_Pos 4 /*!< Lock configuration enable for pin 4 */ +#define GPIO_LOCKSET_PIN5_Pos 5 /*!< Lock configuration enable for pin 5 */ +#define GPIO_LOCKSET_PIN6_Pos 6 /*!< Lock configuration enable for pin 6 */ +#define GPIO_LOCKSET_PIN7_Pos 7 /*!< Lock configuration enable for pin 7 */ +#define GPIO_LOCKSET_PIN8_Pos 8 /*!< Lock configuration enable for pin 8 */ +#define GPIO_LOCKSET_PIN9_Pos 9 /*!< Lock configuration enable for pin 9 */ +#define GPIO_LOCKSET_PIN10_Pos 10 /*!< Lock configuration enable for pin 10 */ +#define GPIO_LOCKSET_PIN11_Pos 11 /*!< Lock configuration enable for pin 11 */ +#define GPIO_LOCKSET_PIN12_Pos 12 /*!< Lock configuration enable for pin 12 */ +#define GPIO_LOCKSET_PIN13_Pos 13 /*!< Lock configuration enable for pin 13 */ +#define GPIO_LOCKSET_PIN14_Pos 14 /*!< Lock configuration enable for pin 14 */ +#define GPIO_LOCKSET_PIN15_Pos 15 /*!< Lock configuration enable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_LOCKSET_PIN0_Msk 0x00000001UL /*!< Lock configuration enable for pin 0 */ +#define GPIO_LOCKSET_PIN1_Msk 0x00000002UL /*!< Lock configuration enable for pin 1 */ +#define GPIO_LOCKSET_PIN2_Msk 0x00000004UL /*!< Lock configuration enable for pin 2 */ +#define GPIO_LOCKSET_PIN3_Msk 0x00000008UL /*!< Lock configuration enable for pin 3 */ +#define GPIO_LOCKSET_PIN4_Msk 0x00000010UL /*!< Lock configuration enable for pin 4 */ +#define GPIO_LOCKSET_PIN5_Msk 0x00000020UL /*!< Lock configuration enable for pin 5 */ +#define GPIO_LOCKSET_PIN6_Msk 0x00000040UL /*!< Lock configuration enable for pin 6 */ +#define GPIO_LOCKSET_PIN7_Msk 0x00000080UL /*!< Lock configuration enable for pin 7 */ +#define GPIO_LOCKSET_PIN8_Msk 0x00000100UL /*!< Lock configuration enable for pin 8 */ +#define GPIO_LOCKSET_PIN9_Msk 0x00000200UL /*!< Lock configuration enable for pin 9 */ +#define GPIO_LOCKSET_PIN10_Msk 0x00000400UL /*!< Lock configuration enable for pin 10 */ +#define GPIO_LOCKSET_PIN11_Msk 0x00000800UL /*!< Lock configuration enable for pin 11 */ +#define GPIO_LOCKSET_PIN12_Msk 0x00001000UL /*!< Lock configuration enable for pin 12 */ +#define GPIO_LOCKSET_PIN13_Msk 0x00002000UL /*!< Lock configuration enable for pin 13 */ +#define GPIO_LOCKSET_PIN14_Msk 0x00004000UL /*!< Lock configuration enable for pin 14 */ +#define GPIO_LOCKSET_PIN15_Msk 0x00008000UL /*!< Lock configuration enable for pin 15 */ + +/*-- LOCKCLR: Lock pins configuration disable register -------------------------------------------------------*/ +typedef struct { + uint32_t PIN0 :1; /*!< Lock configuration disable for pin 0 */ + uint32_t PIN1 :1; /*!< Lock configuration disable for pin 1 */ + uint32_t PIN2 :1; /*!< Lock configuration disable for pin 2 */ + uint32_t PIN3 :1; /*!< Lock configuration disable for pin 3 */ + uint32_t PIN4 :1; /*!< Lock configuration disable for pin 4 */ + uint32_t PIN5 :1; /*!< Lock configuration disable for pin 5 */ + uint32_t PIN6 :1; /*!< Lock configuration disable for pin 6 */ + uint32_t PIN7 :1; /*!< Lock configuration disable for pin 7 */ + uint32_t PIN8 :1; /*!< Lock configuration disable for pin 8 */ + uint32_t PIN9 :1; /*!< Lock configuration disable for pin 9 */ + uint32_t PIN10 :1; /*!< Lock configuration disable for pin 10 */ + uint32_t PIN11 :1; /*!< Lock configuration disable for pin 11 */ + uint32_t PIN12 :1; /*!< Lock configuration disable for pin 12 */ + uint32_t PIN13 :1; /*!< Lock configuration disable for pin 13 */ + uint32_t PIN14 :1; /*!< Lock configuration disable for pin 14 */ + uint32_t PIN15 :1; /*!< Lock configuration disable for pin 15 */ +} _GPIO_LOCKCLR_bits; + +/* Bit field positions: */ +#define GPIO_LOCKCLR_PIN0_Pos 0 /*!< Lock configuration disable for pin 0 */ +#define GPIO_LOCKCLR_PIN1_Pos 1 /*!< Lock configuration disable for pin 1 */ +#define GPIO_LOCKCLR_PIN2_Pos 2 /*!< Lock configuration disable for pin 2 */ +#define GPIO_LOCKCLR_PIN3_Pos 3 /*!< Lock configuration disable for pin 3 */ +#define GPIO_LOCKCLR_PIN4_Pos 4 /*!< Lock configuration disable for pin 4 */ +#define GPIO_LOCKCLR_PIN5_Pos 5 /*!< Lock configuration disable for pin 5 */ +#define GPIO_LOCKCLR_PIN6_Pos 6 /*!< Lock configuration disable for pin 6 */ +#define GPIO_LOCKCLR_PIN7_Pos 7 /*!< Lock configuration disable for pin 7 */ +#define GPIO_LOCKCLR_PIN8_Pos 8 /*!< Lock configuration disable for pin 8 */ +#define GPIO_LOCKCLR_PIN9_Pos 9 /*!< Lock configuration disable for pin 9 */ +#define GPIO_LOCKCLR_PIN10_Pos 10 /*!< Lock configuration disable for pin 10 */ +#define GPIO_LOCKCLR_PIN11_Pos 11 /*!< Lock configuration disable for pin 11 */ +#define GPIO_LOCKCLR_PIN12_Pos 12 /*!< Lock configuration disable for pin 12 */ +#define GPIO_LOCKCLR_PIN13_Pos 13 /*!< Lock configuration disable for pin 13 */ +#define GPIO_LOCKCLR_PIN14_Pos 14 /*!< Lock configuration disable for pin 14 */ +#define GPIO_LOCKCLR_PIN15_Pos 15 /*!< Lock configuration disable for pin 15 */ + +/* Bit field masks: */ +#define GPIO_LOCKCLR_PIN0_Msk 0x00000001UL /*!< Lock configuration disable for pin 0 */ +#define GPIO_LOCKCLR_PIN1_Msk 0x00000002UL /*!< Lock configuration disable for pin 1 */ +#define GPIO_LOCKCLR_PIN2_Msk 0x00000004UL /*!< Lock configuration disable for pin 2 */ +#define GPIO_LOCKCLR_PIN3_Msk 0x00000008UL /*!< Lock configuration disable for pin 3 */ +#define GPIO_LOCKCLR_PIN4_Msk 0x00000010UL /*!< Lock configuration disable for pin 4 */ +#define GPIO_LOCKCLR_PIN5_Msk 0x00000020UL /*!< Lock configuration disable for pin 5 */ +#define GPIO_LOCKCLR_PIN6_Msk 0x00000040UL /*!< Lock configuration disable for pin 6 */ +#define GPIO_LOCKCLR_PIN7_Msk 0x00000080UL /*!< Lock configuration disable for pin 7 */ +#define GPIO_LOCKCLR_PIN8_Msk 0x00000100UL /*!< Lock configuration disable for pin 8 */ +#define GPIO_LOCKCLR_PIN9_Msk 0x00000200UL /*!< Lock configuration disable for pin 9 */ +#define GPIO_LOCKCLR_PIN10_Msk 0x00000400UL /*!< Lock configuration disable for pin 10 */ +#define GPIO_LOCKCLR_PIN11_Msk 0x00000800UL /*!< Lock configuration disable for pin 11 */ +#define GPIO_LOCKCLR_PIN12_Msk 0x00001000UL /*!< Lock configuration disable for pin 12 */ +#define GPIO_LOCKCLR_PIN13_Msk 0x00002000UL /*!< Lock configuration disable for pin 13 */ +#define GPIO_LOCKCLR_PIN14_Msk 0x00004000UL /*!< Lock configuration disable for pin 14 */ +#define GPIO_LOCKCLR_PIN15_Msk 0x00008000UL /*!< Lock configuration disable for pin 15 */ + +/*-- MASKLB: MASKLB: Mask register low byte of port -----------------------------------------------------------*/ +typedef struct { + uint32_t VAL :8; /*!< Mask low byte */ +} _GPIO_MASKLB_MASKLB_bits; + +/* Bit field positions: */ +#define GPIO_MASKLB_MASKLB_VAL_Pos 0 /*!< Mask low byte */ + +/* Bit field masks: */ +#define GPIO_MASKLB_MASKLB_VAL_Msk 0x000000FFUL /*!< Mask low byte */ + +/*-- MASKHB: MASKHB: Mask register High byte of port ----------------------------------------------------------*/ +typedef struct { + uint32_t :8; /*!< RESERVED */ + uint32_t VAL :8; /*!< Mask high byte */ +} _GPIO_MASKHB_MASKHB_bits; + +/* Bit field positions: */ +#define GPIO_MASKHB_MASKHB_VAL_Pos 8 /*!< Mask high byte */ + +/* Bit field masks: */ +#define GPIO_MASKHB_MASKHB_VAL_Msk 0x0000FF00UL /*!< Mask high byte */ + +//Cluster MASKLB: +typedef struct { + union { + /*!< Mask register low byte of port */ + __IO uint32_t MASKLB; /*!< MASKLB : type used for word access */ + __IO _GPIO_MASKLB_MASKLB_bits MASKLB_bit; /*!< MASKLB_bit: structure used for bit access */ + }; +} _GPIO_MASKLB_TypeDef; +//Cluster MASKHB: +typedef struct { + union { + /*!< Mask register High byte of port */ + __IO uint32_t MASKHB; /*!< MASKHB : type used for word access */ + __IO _GPIO_MASKHB_MASKHB_bits MASKHB_bit; /*!< MASKHB_bit: structure used for bit access */ + }; +} _GPIO_MASKHB_TypeDef; +typedef struct { + union { /*!< Data Input register */ + __IO uint32_t DATA; /*!< DATA : type used for word access */ + __IO _GPIO_DATA_bits DATA_bit; /*!< DATA_bit: structure used for bit access */ + }; + union { /*!< Data output register */ + __IO uint32_t DATAOUT; /*!< DATAOUT : type used for word access */ + __IO _GPIO_DATAOUT_bits DATAOUT_bit; /*!< DATAOUT_bit: structure used for bit access */ + }; + union { /*!< Data output set bits register */ + __IO uint32_t DATAOUTSET; /*!< DATAOUTSET : type used for word access */ + __IO _GPIO_DATAOUTSET_bits DATAOUTSET_bit; /*!< DATAOUTSET_bit: structure used for bit access */ + }; + union { /*!< Data output clear bits register */ + __IO uint32_t DATAOUTCLR; /*!< DATAOUTCLR : type used for word access */ + __IO _GPIO_DATAOUTCLR_bits DATAOUTCLR_bit; /*!< DATAOUTCLR_bit: structure used for bit access */ + }; + union { /*!< Data output toogle bits register */ + __IO uint32_t DATAOUTTGL; /*!< DATAOUTTGL : type used for word access */ + __IO _GPIO_DATAOUTTGL_bits DATAOUTTGL_bit; /*!< DATAOUTTGL_bit: structure used for bit access */ + }; + union { /*!< Digital function (PAD) enable register */ + __IO uint32_t DENSET; /*!< DENSET : type used for word access */ + __IO _GPIO_DENSET_bits DENSET_bit; /*!< DENSET_bit: structure used for bit access */ + }; + union { /*!< Digital function (PAD) disable register */ + __IO uint32_t DENCLR; /*!< DENCLR : type used for word access */ + __IO _GPIO_DENCLR_bits DENCLR_bit; /*!< DENCLR_bit: structure used for bit access */ + }; + union { /*!< Select input mode register */ + __IO uint32_t INMODE; /*!< INMODE : type used for word access */ + __IO _GPIO_INMODE_bits INMODE_bit; /*!< INMODE_bit: structure used for bit access */ + }; + union { /*!< Select pull mode register */ + __IO uint32_t PULLMODE; /*!< PULLMODE : type used for word access */ + __IO _GPIO_PULLMODE_bits PULLMODE_bit; /*!< PULLMODE_bit: structure used for bit access */ + }; + union { /*!< Select output mode register */ + __IO uint32_t OUTMODE; /*!< OUTMODE : type used for word access */ + __IO _GPIO_OUTMODE_bits OUTMODE_bit; /*!< OUTMODE_bit: structure used for bit access */ + }; + union { /*!< Select drive mode register */ + __IO uint32_t DRIVEMODE; /*!< DRIVEMODE : type used for word access */ + __IO _GPIO_DRIVEMODE_bits DRIVEMODE_bit; /*!< DRIVEMODE_bit: structure used for bit access */ + }; + union { /*!< Output enable register */ + __IO uint32_t OUTENSET; /*!< OUTENSET : type used for word access */ + __IO _GPIO_OUTENSET_bits OUTENSET_bit; /*!< OUTENSET_bit: structure used for bit access */ + }; + union { /*!< Output disable register */ + __IO uint32_t OUTENCLR; /*!< OUTENCLR : type used for word access */ + __IO _GPIO_OUTENCLR_bits OUTENCLR_bit; /*!< OUTENCLR_bit: structure used for bit access */ + }; + union { /*!< Alternative function enable register */ + __IO uint32_t ALTFUNCSET; /*!< ALTFUNCSET : type used for word access */ + __IO _GPIO_ALTFUNCSET_bits ALTFUNCSET_bit; /*!< ALTFUNCSET_bit: structure used for bit access */ + }; + union { /*!< Alternative function disable register */ + __IO uint32_t ALTFUNCCLR; /*!< ALTFUNCCLR : type used for word access */ + __IO _GPIO_ALTFUNCCLR_bits ALTFUNCCLR_bit; /*!< ALTFUNCCLR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[2]; + union { /*!< Additional double flip-flop syncronization enable register */ + __IO uint32_t SYNCSET; /*!< SYNCSET : type used for word access */ + __IO _GPIO_SYNCSET_bits SYNCSET_bit; /*!< SYNCSET_bit: structure used for bit access */ + }; + union { /*!< Additional double flip-flop syncronization disable register */ + __IO uint32_t SYNCCLR; /*!< SYNCCLR : type used for word access */ + __IO _GPIO_SYNCCLR_bits SYNCCLR_bit; /*!< SYNCCLR_bit: structure used for bit access */ + }; + union { /*!< Qualifier enable register */ + __IO uint32_t QUALSET; /*!< QUALSET : type used for word access */ + __IO _GPIO_QUALSET_bits QUALSET_bit; /*!< QUALSET_bit: structure used for bit access */ + }; + union { /*!< Qualifier disable register */ + __IO uint32_t QUALCLR; /*!< QUALCLR : type used for word access */ + __IO _GPIO_QUALCLR_bits QUALCLR_bit; /*!< QUALCLR_bit: structure used for bit access */ + }; + union { /*!< Qualifier mode set register */ + __IO uint32_t QUALMODESET; /*!< QUALMODESET : type used for word access */ + __IO _GPIO_QUALMODESET_bits QUALMODESET_bit; /*!< QUALMODESET_bit: structure used for bit access */ + }; + union { /*!< Qualifier mode clear register */ + __IO uint32_t QUALMODECLR; /*!< QUALMODECLR : type used for word access */ + __IO _GPIO_QUALMODECLR_bits QUALMODECLR_bit; /*!< QUALMODECLR_bit: structure used for bit access */ + }; + union { /*!< Qualifier sample period register */ + __IO uint32_t QUALSAMPLE; /*!< QUALSAMPLE : type used for word access */ + __IO _GPIO_QUALSAMPLE_bits QUALSAMPLE_bit; /*!< QUALSAMPLE_bit: structure used for bit access */ + }; + union { /*!< Interrupt enable register */ + __IO uint32_t INTENSET; /*!< INTENSET : type used for word access */ + __IO _GPIO_INTENSET_bits INTENSET_bit; /*!< INTENSET_bit: structure used for bit access */ + }; + union { /*!< Interrupt disable register */ + __IO uint32_t INTENCLR; /*!< INTENCLR : type used for word access */ + __IO _GPIO_INTENCLR_bits INTENCLR_bit; /*!< INTENCLR_bit: structure used for bit access */ + }; + union { /*!< Interrupt type set register */ + __IO uint32_t INTTYPESET; /*!< INTTYPESET : type used for word access */ + __IO _GPIO_INTTYPESET_bits INTTYPESET_bit; /*!< INTTYPESET_bit: structure used for bit access */ + }; + union { /*!< Interrupt type clear register */ + __IO uint32_t INTTYPECLR; /*!< INTTYPECLR : type used for word access */ + __IO _GPIO_INTTYPECLR_bits INTTYPECLR_bit; /*!< INTTYPECLR_bit: structure used for bit access */ + }; + union { /*!< Interrupt polarity set register */ + __IO uint32_t INTPOLSET; /*!< INTPOLSET : type used for word access */ + __IO _GPIO_INTPOLSET_bits INTPOLSET_bit; /*!< INTPOLSET_bit: structure used for bit access */ + }; + union { /*!< Interrupt polarity clear register */ + __IO uint32_t INTPOLCLR; /*!< INTPOLCLR : type used for word access */ + __IO _GPIO_INTPOLCLR_bits INTPOLCLR_bit; /*!< INTPOLCLR_bit: structure used for bit access */ + }; + union { /*!< Interrupt every edge set register */ + __IO uint32_t INTEDGESET; /*!< INTEDGESET : type used for word access */ + __IO _GPIO_INTEDGESET_bits INTEDGESET_bit; /*!< INTEDGESET_bit: structure used for bit access */ + }; + union { /*!< Interrupt every edge clear register */ + __IO uint32_t INTEDGECLR; /*!< INTEDGECLR : type used for word access */ + __IO _GPIO_INTEDGECLR_bits INTEDGECLR_bit; /*!< INTEDGECLR_bit: structure used for bit access */ + }; + union { /*!< Interrupt status */ + __IO uint32_t INTSTATUS; /*!< INTSTATUS : type used for word access */ + __IO _GPIO_INTSTATUS_bits INTSTATUS_bit; /*!< INTSTATUS_bit: structure used for bit access */ + }; + union { /*!< DMA request enable register */ + __IO uint32_t DMAREQSET; /*!< DMAREQSET : type used for word access */ + __IO _GPIO_DMAREQSET_bits DMAREQSET_bit; /*!< DMAREQSET_bit: structure used for bit access */ + }; + union { /*!< DMA request disable register */ + __IO uint32_t DMAREQCLR; /*!< DMAREQCLR : type used for word access */ + __IO _GPIO_DMAREQCLR_bits DMAREQCLR_bit; /*!< DMAREQCLR_bit: structure used for bit access */ + }; + union { /*!< ADC Start Of Conversion enable register */ + __IO uint32_t ADCSOCSET; /*!< ADCSOCSET : type used for word access */ + __IO _GPIO_ADCSOCSET_bits ADCSOCSET_bit; /*!< ADCSOCSET_bit: structure used for bit access */ + }; + union { /*!< ADC Start Of Conversion disable register */ + __IO uint32_t ADCSOCCLR; /*!< ADCSOCCLR : type used for word access */ + __IO _GPIO_ADCSOCCLR_bits ADCSOCCLR_bit; /*!< ADCSOCCLR_bit: structure used for bit access */ + }; + union { /*!< Core RXEV request enable register */ + __IO uint32_t RXEVSET; /*!< RXEVSET : type used for word access */ + __IO _GPIO_RXEVSET_bits RXEVSET_bit; /*!< RXEVSET_bit: structure used for bit access */ + }; + union { /*!< Core RXEV request disable register */ + __IO uint32_t RXEVCLR; /*!< RXEVCLR : type used for word access */ + __IO _GPIO_RXEVCLR_bits RXEVCLR_bit; /*!< RXEVCLR_bit: structure used for bit access */ + }; + union { + union { /*!< Key register to unlock LOCKSET/LOCKCLR registers for write (KEY=0xADEADBEE) */ + __O uint32_t LOCKKEY; /*!< LOCKKEY : type used for word access */ + __O _GPIO_LOCKKEY_bits LOCKKEY_bit; /*!< LOCKKEY_bit: structure used for bit access */ + }; + struct { + union { /*!< LOCKSET/LOCKCLR write enable status register */ + __I uint32_t LOCKSTAT; /*!< LOCKSTAT : type used for word access */ + __I _GPIO_LOCKSTAT_bits LOCKSTAT_bit; /*!< LOCKSTAT_bit: structure used for bit access */ + }; + }; + }; + union { /*!< Lock pins configuration enable register */ + __IO uint32_t LOCKSET; /*!< LOCKSET : type used for word access */ + __IO _GPIO_LOCKSET_bits LOCKSET_bit; /*!< LOCKSET_bit: structure used for bit access */ + }; + union { /*!< Lock pins configuration disable register */ + __IO uint32_t LOCKCLR; /*!< LOCKCLR : type used for word access */ + __IO _GPIO_LOCKCLR_bits LOCKCLR_bit; /*!< LOCKCLR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved1[214]; + _GPIO_MASKLB_TypeDef MASKLB[256]; + _GPIO_MASKHB_TypeDef MASKHB[256]; +} GPIO_TypeDef; + + +/******************************************************************************/ +/* UART registers */ +/******************************************************************************/ + +/*-- DR: Data Register ---------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t DATA :8; /*!< Received/Transmitted data character */ + uint32_t FE :1; /*!< Framing error */ + uint32_t PE :1; /*!< Parity error */ + uint32_t BE :1; /*!< Break error */ + uint32_t OE :1; /*!< Overrun error */ +} _UART_DR_bits; + +/* Bit field positions: */ +#define UART_DR_DATA_Pos 0 /*!< Received/Transmitted data character */ +#define UART_DR_FE_Pos 8 /*!< Framing error */ +#define UART_DR_PE_Pos 9 /*!< Parity error */ +#define UART_DR_BE_Pos 10 /*!< Break error */ +#define UART_DR_OE_Pos 11 /*!< Overrun error */ + +/* Bit field masks: */ +#define UART_DR_DATA_Msk 0x000000FFUL /*!< Received/Transmitted data character */ +#define UART_DR_FE_Msk 0x00000100UL /*!< Framing error */ +#define UART_DR_PE_Msk 0x00000200UL /*!< Parity error */ +#define UART_DR_BE_Msk 0x00000400UL /*!< Break error */ +#define UART_DR_OE_Msk 0x00000800UL /*!< Overrun error */ + +/*-- RSR: Receive Status Register/Error Clear Register -------------------------------------------------------*/ +typedef struct { + uint32_t FE :1; /*!< Framing error */ + uint32_t PE :1; /*!< Parity error */ + uint32_t BE :1; /*!< Break error */ + uint32_t OE :1; /*!< Overrun error */ +} _UART_RSR_bits; + +/* Bit field positions: */ +#define UART_RSR_FE_Pos 0 /*!< Framing error */ +#define UART_RSR_PE_Pos 1 /*!< Parity error */ +#define UART_RSR_BE_Pos 2 /*!< Break error */ +#define UART_RSR_OE_Pos 3 /*!< Overrun error */ + +/* Bit field masks: */ +#define UART_RSR_FE_Msk 0x00000001UL /*!< Framing error */ +#define UART_RSR_PE_Msk 0x00000002UL /*!< Parity error */ +#define UART_RSR_BE_Msk 0x00000004UL /*!< Break error */ +#define UART_RSR_OE_Msk 0x00000008UL /*!< Overrun error */ + +/*-- FR: Flag Register ---------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t :3; /*!< RESERVED */ + uint32_t BUSY :1; /*!< UART busy */ + uint32_t RXFE :1; /*!< Receive FIFO empty */ + uint32_t TXFF :1; /*!< Transmit FIFO full */ + uint32_t RXFF :1; /*!< Receive FIFO full */ + uint32_t TXFE :1; /*!< Transmit FIFO empty */ +} _UART_FR_bits; + +/* Bit field positions: */ +#define UART_FR_BUSY_Pos 3 /*!< UART busy */ +#define UART_FR_RXFE_Pos 4 /*!< Receive FIFO empty */ +#define UART_FR_TXFF_Pos 5 /*!< Transmit FIFO full */ +#define UART_FR_RXFF_Pos 6 /*!< Receive FIFO full */ +#define UART_FR_TXFE_Pos 7 /*!< Transmit FIFO empty */ + +/* Bit field masks: */ +#define UART_FR_BUSY_Msk 0x00000008UL /*!< UART busy */ +#define UART_FR_RXFE_Msk 0x00000010UL /*!< Receive FIFO empty */ +#define UART_FR_TXFF_Msk 0x00000020UL /*!< Transmit FIFO full */ +#define UART_FR_RXFF_Msk 0x00000040UL /*!< Receive FIFO full */ +#define UART_FR_TXFE_Msk 0x00000080UL /*!< Transmit FIFO empty */ + +/*-- IBRD: Integer Baud Rate Register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t DIVINT :16; /*!< The integer baud rate divisor */ +} _UART_IBRD_bits; + +/* Bit field positions: */ +#define UART_IBRD_DIVINT_Pos 0 /*!< The integer baud rate divisor */ + +/* Bit field masks: */ +#define UART_IBRD_DIVINT_Msk 0x0000FFFFUL /*!< The integer baud rate divisor */ + +/*-- FBRD: Fractional Baud Rate Register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t DIVFRAC :6; /*!< The fractional baud rate divisor */ +} _UART_FBRD_bits; + +/* Bit field positions: */ +#define UART_FBRD_DIVFRAC_Pos 0 /*!< The fractional baud rate divisor */ + +/* Bit field masks: */ +#define UART_FBRD_DIVFRAC_Msk 0x0000003FUL /*!< The fractional baud rate divisor */ + +/*-- LCRH: Line Control Register -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t BRK :1; /*!< Send break */ + uint32_t PEN :1; /*!< Parity enable */ + uint32_t EPS :1; /*!< Even parity select */ + uint32_t STP2 :1; /*!< Two stop bits select */ + uint32_t FEN :1; /*!< Enable FIFOs */ + uint32_t WLEN :2; /*!< Word length */ + uint32_t SPS :1; /*!< Stick parity select */ +} _UART_LCRH_bits; + +/* Bit field positions: */ +#define UART_LCRH_BRK_Pos 0 /*!< Send break */ +#define UART_LCRH_PEN_Pos 1 /*!< Parity enable */ +#define UART_LCRH_EPS_Pos 2 /*!< Even parity select */ +#define UART_LCRH_STP2_Pos 3 /*!< Two stop bits select */ +#define UART_LCRH_FEN_Pos 4 /*!< Enable FIFOs */ +#define UART_LCRH_WLEN_Pos 5 /*!< Word length */ +#define UART_LCRH_SPS_Pos 7 /*!< Stick parity select */ + +/* Bit field masks: */ +#define UART_LCRH_BRK_Msk 0x00000001UL /*!< Send break */ +#define UART_LCRH_PEN_Msk 0x00000002UL /*!< Parity enable */ +#define UART_LCRH_EPS_Msk 0x00000004UL /*!< Even parity select */ +#define UART_LCRH_STP2_Msk 0x00000008UL /*!< Two stop bits select */ +#define UART_LCRH_FEN_Msk 0x00000010UL /*!< Enable FIFOs */ +#define UART_LCRH_WLEN_Msk 0x00000060UL /*!< Word length */ +#define UART_LCRH_SPS_Msk 0x00000080UL /*!< Stick parity select */ + +/* Bit field enums: */ +typedef enum { + UART_LCRH_WLEN_5bit = 0x0UL, /*!< 5 bit in informational word */ + UART_LCRH_WLEN_6bit = 0x1UL, /*!< 6 bit in informational word */ + UART_LCRH_WLEN_7bit = 0x2UL, /*!< 7 bit in informational word */ + UART_LCRH_WLEN_8bit = 0x3UL, /*!< 8 bit in informational word */ +} UART_LCRH_WLEN_Enum; + +/*-- CR: Control Register ------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t UARTEN :1; /*!< UART enable */ + uint32_t :7; /*!< RESERVED */ + uint32_t TXE :1; /*!< Transmit enable */ + uint32_t RXE :1; /*!< Receive enable */ +} _UART_CR_bits; + +/* Bit field positions: */ +#define UART_CR_UARTEN_Pos 0 /*!< UART enable */ +#define UART_CR_TXE_Pos 8 /*!< Transmit enable */ +#define UART_CR_RXE_Pos 9 /*!< Receive enable */ + +/* Bit field masks: */ +#define UART_CR_UARTEN_Msk 0x00000001UL /*!< UART enable */ +#define UART_CR_TXE_Msk 0x00000100UL /*!< Transmit enable */ +#define UART_CR_RXE_Msk 0x00000200UL /*!< Receive enable */ + +/*-- IFLS: Interrupt FIFO Level Select Register --------------------------------------------------------------*/ +typedef struct { + uint32_t TXIFLSEL :3; /*!< Transmit interrupt FIFO level select */ + uint32_t RXIFLSEL :3; /*!< Receive interrupt FIFO level select */ +} _UART_IFLS_bits; + +/* Bit field positions: */ +#define UART_IFLS_TXIFLSEL_Pos 0 /*!< Transmit interrupt FIFO level select */ +#define UART_IFLS_RXIFLSEL_Pos 3 /*!< Receive interrupt FIFO level select */ + +/* Bit field masks: */ +#define UART_IFLS_TXIFLSEL_Msk 0x00000007UL /*!< Transmit interrupt FIFO level select */ +#define UART_IFLS_RXIFLSEL_Msk 0x00000038UL /*!< Receive interrupt FIFO level select */ + +/* Bit field enums: */ +typedef enum { + UART_IFLS_TXIFLSEL_Lvl18 = 0x0UL, /*!< interrupt on 1/8 */ + UART_IFLS_TXIFLSEL_Lvl14 = 0x1UL, /*!< interrupt on 1/4 */ + UART_IFLS_TXIFLSEL_Lvl12 = 0x2UL, /*!< interrupt on 1/2 */ + UART_IFLS_TXIFLSEL_Lvl34 = 0x3UL, /*!< interrupt on 3/4 */ + UART_IFLS_TXIFLSEL_Lvl78 = 0x4UL, /*!< interrupt on 7/8 */ +} UART_IFLS_TXIFLSEL_Enum; + +typedef enum { + UART_IFLS_RXIFLSEL_Lvl18 = 0x0UL, /*!< interrupt on 1/8 */ + UART_IFLS_RXIFLSEL_Lvl14 = 0x1UL, /*!< interrupt on 1/4 */ + UART_IFLS_RXIFLSEL_Lvl12 = 0x2UL, /*!< interrupt on 1/2 */ + UART_IFLS_RXIFLSEL_Lvl34 = 0x3UL, /*!< interrupt on 3/4 */ + UART_IFLS_RXIFLSEL_Lvl78 = 0x4UL, /*!< interrupt on 7/8 */ +} UART_IFLS_RXIFLSEL_Enum; + +/*-- IMSC: Interrupt Mask Set/Clear Register -----------------------------------------------------------------*/ +typedef struct { + uint32_t :4; /*!< RESERVED */ + uint32_t RXIM :1; /*!< Receive interrupt mask */ + uint32_t TXIM :1; /*!< Transmit interrupt mask */ + uint32_t RTIM :1; /*!< Receive timeout interrupt mask */ + uint32_t FEIM :1; /*!< Framing error interrupt mask */ + uint32_t PEIM :1; /*!< Parity error interrupt mask */ + uint32_t BEIM :1; /*!< Break error interrupt mask */ + uint32_t OEIM :1; /*!< Overrun error interrupt mask */ + uint32_t TDIM :1; /*!< Transmit done interrupt mask */ +} _UART_IMSC_bits; + +/* Bit field positions: */ +#define UART_IMSC_RXIM_Pos 4 /*!< Receive interrupt mask */ +#define UART_IMSC_TXIM_Pos 5 /*!< Transmit interrupt mask */ +#define UART_IMSC_RTIM_Pos 6 /*!< Receive timeout interrupt mask */ +#define UART_IMSC_FEIM_Pos 7 /*!< Framing error interrupt mask */ +#define UART_IMSC_PEIM_Pos 8 /*!< Parity error interrupt mask */ +#define UART_IMSC_BEIM_Pos 9 /*!< Break error interrupt mask */ +#define UART_IMSC_OEIM_Pos 10 /*!< Overrun error interrupt mask */ +#define UART_IMSC_TDIM_Pos 11 /*!< Transmit done interrupt mask */ + +/* Bit field masks: */ +#define UART_IMSC_RXIM_Msk 0x00000010UL /*!< Receive interrupt mask */ +#define UART_IMSC_TXIM_Msk 0x00000020UL /*!< Transmit interrupt mask */ +#define UART_IMSC_RTIM_Msk 0x00000040UL /*!< Receive timeout interrupt mask */ +#define UART_IMSC_FEIM_Msk 0x00000080UL /*!< Framing error interrupt mask */ +#define UART_IMSC_PEIM_Msk 0x00000100UL /*!< Parity error interrupt mask */ +#define UART_IMSC_BEIM_Msk 0x00000200UL /*!< Break error interrupt mask */ +#define UART_IMSC_OEIM_Msk 0x00000400UL /*!< Overrun error interrupt mask */ +#define UART_IMSC_TDIM_Msk 0x00000800UL /*!< Transmit done interrupt mask */ + +/*-- RIS: Raw Interrupt Status Register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t :4; /*!< RESERVED */ + uint32_t RXRIS :1; /*!< Receive interrupt status */ + uint32_t TXRIS :1; /*!< Transmit interrupt status */ + uint32_t RTRIS :1; /*!< Receive timeout interrupt status */ + uint32_t FERIS :1; /*!< Framing error interrupt status */ + uint32_t PERIS :1; /*!< Parity error interrupt status */ + uint32_t BERIS :1; /*!< Break error interrupt status */ + uint32_t OERIS :1; /*!< Overrun error interrupt status */ + uint32_t TDRIS :1; /*!< Transmit done raw interrupt status */ +} _UART_RIS_bits; + +/* Bit field positions: */ +#define UART_RIS_RXRIS_Pos 4 /*!< Receive interrupt status */ +#define UART_RIS_TXRIS_Pos 5 /*!< Transmit interrupt status */ +#define UART_RIS_RTRIS_Pos 6 /*!< Receive timeout interrupt status */ +#define UART_RIS_FERIS_Pos 7 /*!< Framing error interrupt status */ +#define UART_RIS_PERIS_Pos 8 /*!< Parity error interrupt status */ +#define UART_RIS_BERIS_Pos 9 /*!< Break error interrupt status */ +#define UART_RIS_OERIS_Pos 10 /*!< Overrun error interrupt status */ +#define UART_RIS_TDRIS_Pos 11 /*!< Transmit done raw interrupt status */ + +/* Bit field masks: */ +#define UART_RIS_RXRIS_Msk 0x00000010UL /*!< Receive interrupt status */ +#define UART_RIS_TXRIS_Msk 0x00000020UL /*!< Transmit interrupt status */ +#define UART_RIS_RTRIS_Msk 0x00000040UL /*!< Receive timeout interrupt status */ +#define UART_RIS_FERIS_Msk 0x00000080UL /*!< Framing error interrupt status */ +#define UART_RIS_PERIS_Msk 0x00000100UL /*!< Parity error interrupt status */ +#define UART_RIS_BERIS_Msk 0x00000200UL /*!< Break error interrupt status */ +#define UART_RIS_OERIS_Msk 0x00000400UL /*!< Overrun error interrupt status */ +#define UART_RIS_TDRIS_Msk 0x00000800UL /*!< Transmit done raw interrupt status */ + +/*-- MIS: Masked Interrupt Status Register -------------------------------------------------------------------*/ +typedef struct { + uint32_t :4; /*!< RESERVED */ + uint32_t RXMIS :1; /*!< Receive masked interrupt status */ + uint32_t TXMIS :1; /*!< Transmit masked interrupt status */ + uint32_t RTMIS :1; /*!< Receive timeout masked interrupt status */ + uint32_t FEMIS :1; /*!< Framing error masked interrupt status */ + uint32_t PEMIS :1; /*!< Parity error masked interrupt status */ + uint32_t BEMIS :1; /*!< Break error masked interrupt status */ + uint32_t OEMIS :1; /*!< Overrun error masked interrupt status */ + uint32_t TDMIS :1; /*!< Transmit done masked interrupt status */ +} _UART_MIS_bits; + +/* Bit field positions: */ +#define UART_MIS_RXMIS_Pos 4 /*!< Receive masked interrupt status */ +#define UART_MIS_TXMIS_Pos 5 /*!< Transmit masked interrupt status */ +#define UART_MIS_RTMIS_Pos 6 /*!< Receive timeout masked interrupt status */ +#define UART_MIS_FEMIS_Pos 7 /*!< Framing error masked interrupt status */ +#define UART_MIS_PEMIS_Pos 8 /*!< Parity error masked interrupt status */ +#define UART_MIS_BEMIS_Pos 9 /*!< Break error masked interrupt status */ +#define UART_MIS_OEMIS_Pos 10 /*!< Overrun error masked interrupt status */ +#define UART_MIS_TDMIS_Pos 11 /*!< Transmit done masked interrupt status */ + +/* Bit field masks: */ +#define UART_MIS_RXMIS_Msk 0x00000010UL /*!< Receive masked interrupt status */ +#define UART_MIS_TXMIS_Msk 0x00000020UL /*!< Transmit masked interrupt status */ +#define UART_MIS_RTMIS_Msk 0x00000040UL /*!< Receive timeout masked interrupt status */ +#define UART_MIS_FEMIS_Msk 0x00000080UL /*!< Framing error masked interrupt status */ +#define UART_MIS_PEMIS_Msk 0x00000100UL /*!< Parity error masked interrupt status */ +#define UART_MIS_BEMIS_Msk 0x00000200UL /*!< Break error masked interrupt status */ +#define UART_MIS_OEMIS_Msk 0x00000400UL /*!< Overrun error masked interrupt status */ +#define UART_MIS_TDMIS_Msk 0x00000800UL /*!< Transmit done masked interrupt status */ + +/*-- ICR: Interrupt Clear Register ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t :4; /*!< RESERVED */ + uint32_t RXIC :1; /*!< Receive interrupt clear */ + uint32_t TXIC :1; /*!< Transmit interrupt clear */ + uint32_t RTIC :1; /*!< Receive timeout interrupt clear */ + uint32_t FEIC :1; /*!< Framing error interrupt clear */ + uint32_t PEIC :1; /*!< Parity error interrupt clear */ + uint32_t BEIC :1; /*!< Break error interrupt clear */ + uint32_t OEIC :1; /*!< Overrun error interrupt clear */ + uint32_t TDIC :1; /*!< Transmit done interrupt clear */ +} _UART_ICR_bits; + +/* Bit field positions: */ +#define UART_ICR_RXIC_Pos 4 /*!< Receive interrupt clear */ +#define UART_ICR_TXIC_Pos 5 /*!< Transmit interrupt clear */ +#define UART_ICR_RTIC_Pos 6 /*!< Receive timeout interrupt clear */ +#define UART_ICR_FEIC_Pos 7 /*!< Framing error interrupt clear */ +#define UART_ICR_PEIC_Pos 8 /*!< Parity error interrupt clear */ +#define UART_ICR_BEIC_Pos 9 /*!< Break error interrupt clear */ +#define UART_ICR_OEIC_Pos 10 /*!< Overrun error interrupt clear */ +#define UART_ICR_TDIC_Pos 11 /*!< Transmit done interrupt clear */ + +/* Bit field masks: */ +#define UART_ICR_RXIC_Msk 0x00000010UL /*!< Receive interrupt clear */ +#define UART_ICR_TXIC_Msk 0x00000020UL /*!< Transmit interrupt clear */ +#define UART_ICR_RTIC_Msk 0x00000040UL /*!< Receive timeout interrupt clear */ +#define UART_ICR_FEIC_Msk 0x00000080UL /*!< Framing error interrupt clear */ +#define UART_ICR_PEIC_Msk 0x00000100UL /*!< Parity error interrupt clear */ +#define UART_ICR_BEIC_Msk 0x00000200UL /*!< Break error interrupt clear */ +#define UART_ICR_OEIC_Msk 0x00000400UL /*!< Overrun error interrupt clear */ +#define UART_ICR_TDIC_Msk 0x00000800UL /*!< Transmit done interrupt clear */ + +/*-- DMACR: DMA Control Register -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t RXDMAE :1; /*!< Receive DMA enable */ + uint32_t TXDMAE :1; /*!< Transmit DMA enable */ + uint32_t DMAONERR :1; /*!< DMA on error */ +} _UART_DMACR_bits; + +/* Bit field positions: */ +#define UART_DMACR_RXDMAE_Pos 0 /*!< Receive DMA enable */ +#define UART_DMACR_TXDMAE_Pos 1 /*!< Transmit DMA enable */ +#define UART_DMACR_DMAONERR_Pos 2 /*!< DMA on error */ + +/* Bit field masks: */ +#define UART_DMACR_RXDMAE_Msk 0x00000001UL /*!< Receive DMA enable */ +#define UART_DMACR_TXDMAE_Msk 0x00000002UL /*!< Transmit DMA enable */ +#define UART_DMACR_DMAONERR_Msk 0x00000004UL /*!< DMA on error */ + +typedef struct { + union { /*!< Data Register */ + __IO uint32_t DR; /*!< DR : type used for word access */ + __IO _UART_DR_bits DR_bit; /*!< DR_bit: structure used for bit access */ + }; + union { /*!< Receive Status Register/Error Clear Register */ + __IO uint32_t RSR; /*!< RSR : type used for word access */ + __IO _UART_RSR_bits RSR_bit; /*!< RSR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[4]; + union { /*!< Flag Register */ + __I uint32_t FR; /*!< FR : type used for word access */ + __I _UART_FR_bits FR_bit; /*!< FR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved1[2]; + union { /*!< Integer Baud Rate Register */ + __IO uint32_t IBRD; /*!< IBRD : type used for word access */ + __IO _UART_IBRD_bits IBRD_bit; /*!< IBRD_bit: structure used for bit access */ + }; + union { /*!< Fractional Baud Rate Register */ + __IO uint32_t FBRD; /*!< FBRD : type used for word access */ + __IO _UART_FBRD_bits FBRD_bit; /*!< FBRD_bit: structure used for bit access */ + }; + union { /*!< Line Control Register */ + __IO uint32_t LCRH; /*!< LCRH : type used for word access */ + __IO _UART_LCRH_bits LCRH_bit; /*!< LCRH_bit: structure used for bit access */ + }; + union { /*!< Control Register */ + __IO uint32_t CR; /*!< CR : type used for word access */ + __IO _UART_CR_bits CR_bit; /*!< CR_bit: structure used for bit access */ + }; + union { /*!< Interrupt FIFO Level Select Register */ + __IO uint32_t IFLS; /*!< IFLS : type used for word access */ + __IO _UART_IFLS_bits IFLS_bit; /*!< IFLS_bit: structure used for bit access */ + }; + union { /*!< Interrupt Mask Set/Clear Register */ + __IO uint32_t IMSC; /*!< IMSC : type used for word access */ + __IO _UART_IMSC_bits IMSC_bit; /*!< IMSC_bit: structure used for bit access */ + }; + union { /*!< Raw Interrupt Status Register */ + __IO uint32_t RIS; /*!< RIS : type used for word access */ + __IO _UART_RIS_bits RIS_bit; /*!< RIS_bit: structure used for bit access */ + }; + union { /*!< Masked Interrupt Status Register */ + __IO uint32_t MIS; /*!< MIS : type used for word access */ + __IO _UART_MIS_bits MIS_bit; /*!< MIS_bit: structure used for bit access */ + }; + union { /*!< Interrupt Clear Register */ + __IO uint32_t ICR; /*!< ICR : type used for word access */ + __IO _UART_ICR_bits ICR_bit; /*!< ICR_bit: structure used for bit access */ + }; + union { /*!< DMA Control Register */ + __IO uint32_t DMACR; /*!< DMACR : type used for word access */ + __IO _UART_DMACR_bits DMACR_bit; /*!< DMACR_bit: structure used for bit access */ + }; +} UART_TypeDef; + + +/******************************************************************************/ +/* DMA registers */ +/******************************************************************************/ + +/*-- STATUS: Status DMA register -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t MASTEREN :1; /*!< Indicate enable DMA */ + uint32_t :3; /*!< RESERVED */ + uint32_t STATE :4; /*!< State of DMA */ + uint32_t :8; /*!< RESERVED */ + uint32_t CHNLS :5; /*!< Number channel DMA (write: N-1) */ +} _DMA_STATUS_bits; + +/* Bit field positions: */ +#define DMA_STATUS_MASTEREN_Pos 0 /*!< Indicate enable DMA */ +#define DMA_STATUS_STATE_Pos 4 /*!< State of DMA */ +#define DMA_STATUS_CHNLS_Pos 16 /*!< Number channel DMA (write: N-1) */ + +/* Bit field masks: */ +#define DMA_STATUS_MASTEREN_Msk 0x00000001UL /*!< Indicate enable DMA */ +#define DMA_STATUS_STATE_Msk 0x000000F0UL /*!< State of DMA */ +#define DMA_STATUS_CHNLS_Msk 0x001F0000UL /*!< Number channel DMA (write: N-1) */ + +/* Bit field enums: */ +typedef enum { + DMA_STATUS_STATE_Free = 0x0UL, /*!< At rest */ + DMA_STATUS_STATE_ReadConfigData = 0x1UL, /*!< Reading the config data structure */ + DMA_STATUS_STATE_ReadSrcDataEndPtr = 0x2UL, /*!< Reading sourse data end pointer */ + DMA_STATUS_STATE_ReadDstDataEndPtr = 0x3UL, /*!< Reading destination data end pointer */ + DMA_STATUS_STATE_ReadSrcData = 0x4UL, /*!< Reading source data */ + DMA_STATUS_STATE_WrireDstData = 0x5UL, /*!< Writing data to the destination */ + DMA_STATUS_STATE_WaitReq = 0x6UL, /*!< Waiting for a request */ + DMA_STATUS_STATE_WriteConfigData = 0x7UL, /*!< Write config structure of the channel */ + DMA_STATUS_STATE_Pause = 0x8UL, /*!< Suspended */ + DMA_STATUS_STATE_Done = 0x9UL, /*!< Executed */ + DMA_STATUS_STATE_PeriphScatGath = 0xAUL, /*!< mode "peripheral scather-gather" */ +} DMA_STATUS_STATE_Enum; + +/*-- CFG: DMA configuration register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t MASTEREN :1; /*!< Enable DMA */ + uint32_t :4; /*!< RESERVED */ + uint32_t CHPROT :3; /*!< Sets the AHB-Lite protection */ +} _DMA_CFG_bits; + +/* Bit field positions: */ +#define DMA_CFG_MASTEREN_Pos 0 /*!< Enable DMA */ +#define DMA_CFG_CHPROT_Pos 5 /*!< Sets the AHB-Lite protection */ + +/* Bit field masks: */ +#define DMA_CFG_MASTEREN_Msk 0x00000001UL /*!< Enable DMA */ +#define DMA_CFG_CHPROT_Msk 0x000000E0UL /*!< Sets the AHB-Lite protection */ + +/*-- BASEPTR: Channel control data base pointer --------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Base address of the primary control data */ +} _DMA_BASEPTR_bits; + +/* Bit field positions: */ +#define DMA_BASEPTR_VAL_Pos 0 /*!< Base address of the primary control data */ + +/* Bit field masks: */ +#define DMA_BASEPTR_VAL_Msk 0xFFFFFFFFUL /*!< Base address of the primary control data */ + +/*-- ALTBASEPTR: Channel alternate control data base pointer -------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Base address of alternative control data */ +} _DMA_ALTBASEPTR_bits; + +/* Bit field positions: */ +#define DMA_ALTBASEPTR_VAL_Pos 0 /*!< Base address of alternative control data */ + +/* Bit field masks: */ +#define DMA_ALTBASEPTR_VAL_Msk 0xFFFFFFFFUL /*!< Base address of alternative control data */ + +/*-- WAITONREQ: Channel wait on request status ---------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH1 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH2 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH3 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH4 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH5 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH6 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH7 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH8 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH9 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH10 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH11 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH12 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH13 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH14 :1; /*!< Returns the status of the DMA request signals */ + uint32_t CH15 :1; /*!< Returns the status of the DMA request signals */ +} _DMA_WAITONREQ_bits; + +/* Bit field positions: */ +#define DMA_WAITONREQ_CH0_Pos 0 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH1_Pos 1 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH2_Pos 2 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH3_Pos 3 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH4_Pos 4 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH5_Pos 5 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH6_Pos 6 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH7_Pos 7 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH8_Pos 8 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH9_Pos 9 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH10_Pos 10 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH11_Pos 11 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH12_Pos 12 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH13_Pos 13 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH14_Pos 14 /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH15_Pos 15 /*!< Returns the status of the DMA request signals */ + +/* Bit field masks: */ +#define DMA_WAITONREQ_CH0_Msk 0x00000001UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH1_Msk 0x00000002UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH2_Msk 0x00000004UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH3_Msk 0x00000008UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH4_Msk 0x00000010UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH5_Msk 0x00000020UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH6_Msk 0x00000040UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH7_Msk 0x00000080UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH8_Msk 0x00000100UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH9_Msk 0x00000200UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH10_Msk 0x00000400UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH11_Msk 0x00000800UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH12_Msk 0x00001000UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH13_Msk 0x00002000UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH14_Msk 0x00004000UL /*!< Returns the status of the DMA request signals */ +#define DMA_WAITONREQ_CH15_Msk 0x00008000UL /*!< Returns the status of the DMA request signals */ + +/*-- SWREQ: Channel software request -------------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Set software request on channel */ + uint32_t CH1 :1; /*!< Set software request on channel */ + uint32_t CH2 :1; /*!< Set software request on channel */ + uint32_t CH3 :1; /*!< Set software request on channel */ + uint32_t CH4 :1; /*!< Set software request on channel */ + uint32_t CH5 :1; /*!< Set software request on channel */ + uint32_t CH6 :1; /*!< Set software request on channel */ + uint32_t CH7 :1; /*!< Set software request on channel */ + uint32_t CH8 :1; /*!< Set software request on channel */ + uint32_t CH9 :1; /*!< Set software request on channel */ + uint32_t CH10 :1; /*!< Set software request on channel */ + uint32_t CH11 :1; /*!< Set software request on channel */ + uint32_t CH12 :1; /*!< Set software request on channel */ + uint32_t CH13 :1; /*!< Set software request on channel */ + uint32_t CH14 :1; /*!< Set software request on channel */ + uint32_t CH15 :1; /*!< Set software request on channel */ +} _DMA_SWREQ_bits; + +/* Bit field positions: */ +#define DMA_SWREQ_CH0_Pos 0 /*!< Set software request on channel */ +#define DMA_SWREQ_CH1_Pos 1 /*!< Set software request on channel */ +#define DMA_SWREQ_CH2_Pos 2 /*!< Set software request on channel */ +#define DMA_SWREQ_CH3_Pos 3 /*!< Set software request on channel */ +#define DMA_SWREQ_CH4_Pos 4 /*!< Set software request on channel */ +#define DMA_SWREQ_CH5_Pos 5 /*!< Set software request on channel */ +#define DMA_SWREQ_CH6_Pos 6 /*!< Set software request on channel */ +#define DMA_SWREQ_CH7_Pos 7 /*!< Set software request on channel */ +#define DMA_SWREQ_CH8_Pos 8 /*!< Set software request on channel */ +#define DMA_SWREQ_CH9_Pos 9 /*!< Set software request on channel */ +#define DMA_SWREQ_CH10_Pos 10 /*!< Set software request on channel */ +#define DMA_SWREQ_CH11_Pos 11 /*!< Set software request on channel */ +#define DMA_SWREQ_CH12_Pos 12 /*!< Set software request on channel */ +#define DMA_SWREQ_CH13_Pos 13 /*!< Set software request on channel */ +#define DMA_SWREQ_CH14_Pos 14 /*!< Set software request on channel */ +#define DMA_SWREQ_CH15_Pos 15 /*!< Set software request on channel */ + +/* Bit field masks: */ +#define DMA_SWREQ_CH0_Msk 0x00000001UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH1_Msk 0x00000002UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH2_Msk 0x00000004UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH3_Msk 0x00000008UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH4_Msk 0x00000010UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH5_Msk 0x00000020UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH6_Msk 0x00000040UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH7_Msk 0x00000080UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH8_Msk 0x00000100UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH9_Msk 0x00000200UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH10_Msk 0x00000400UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH11_Msk 0x00000800UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH12_Msk 0x00001000UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH13_Msk 0x00002000UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH14_Msk 0x00004000UL /*!< Set software request on channel */ +#define DMA_SWREQ_CH15_Msk 0x00008000UL /*!< Set software request on channel */ + +/*-- USEBURSTSET: Channel useburst set -----------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Enable single requests */ + uint32_t CH1 :1; /*!< Enable single requests */ + uint32_t CH2 :1; /*!< Enable single requests */ + uint32_t CH3 :1; /*!< Enable single requests */ + uint32_t CH4 :1; /*!< Enable single requests */ + uint32_t CH5 :1; /*!< Enable single requests */ + uint32_t CH6 :1; /*!< Enable single requests */ + uint32_t CH7 :1; /*!< Enable single requests */ + uint32_t CH8 :1; /*!< Enable single requests */ + uint32_t CH9 :1; /*!< Enable single requests */ + uint32_t CH10 :1; /*!< Enable single requests */ + uint32_t CH11 :1; /*!< Enable single requests */ + uint32_t CH12 :1; /*!< Enable single requests */ + uint32_t CH13 :1; /*!< Enable single requests */ + uint32_t CH14 :1; /*!< Enable single requests */ + uint32_t CH15 :1; /*!< Enable single requests */ +} _DMA_USEBURSTSET_bits; + +/* Bit field positions: */ +#define DMA_USEBURSTSET_CH0_Pos 0 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH1_Pos 1 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH2_Pos 2 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH3_Pos 3 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH4_Pos 4 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH5_Pos 5 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH6_Pos 6 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH7_Pos 7 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH8_Pos 8 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH9_Pos 9 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH10_Pos 10 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH11_Pos 11 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH12_Pos 12 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH13_Pos 13 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH14_Pos 14 /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH15_Pos 15 /*!< Enable single requests */ + +/* Bit field masks: */ +#define DMA_USEBURSTSET_CH0_Msk 0x00000001UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH1_Msk 0x00000002UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH2_Msk 0x00000004UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH3_Msk 0x00000008UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH4_Msk 0x00000010UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH5_Msk 0x00000020UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH6_Msk 0x00000040UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH7_Msk 0x00000080UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH8_Msk 0x00000100UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH9_Msk 0x00000200UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH10_Msk 0x00000400UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH11_Msk 0x00000800UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH12_Msk 0x00001000UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH13_Msk 0x00002000UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH14_Msk 0x00004000UL /*!< Enable single requests */ +#define DMA_USEBURSTSET_CH15_Msk 0x00008000UL /*!< Enable single requests */ + +/*-- USEBURSTCLR: Channel useburst clear ---------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Disable single requests */ + uint32_t CH1 :1; /*!< Disable single requests */ + uint32_t CH2 :1; /*!< Disable single requests */ + uint32_t CH3 :1; /*!< Disable single requests */ + uint32_t CH4 :1; /*!< Disable single requests */ + uint32_t CH5 :1; /*!< Disable single requests */ + uint32_t CH6 :1; /*!< Disable single requests */ + uint32_t CH7 :1; /*!< Disable single requests */ + uint32_t CH8 :1; /*!< Disable single requests */ + uint32_t CH9 :1; /*!< Disable single requests */ + uint32_t CH10 :1; /*!< Disable single requests */ + uint32_t CH11 :1; /*!< Disable single requests */ + uint32_t CH12 :1; /*!< Disable single requests */ + uint32_t CH13 :1; /*!< Disable single requests */ + uint32_t CH14 :1; /*!< Disable single requests */ + uint32_t CH15 :1; /*!< Disable single requests */ +} _DMA_USEBURSTCLR_bits; + +/* Bit field positions: */ +#define DMA_USEBURSTCLR_CH0_Pos 0 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH1_Pos 1 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH2_Pos 2 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH3_Pos 3 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH4_Pos 4 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH5_Pos 5 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH6_Pos 6 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH7_Pos 7 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH8_Pos 8 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH9_Pos 9 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH10_Pos 10 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH11_Pos 11 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH12_Pos 12 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH13_Pos 13 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH14_Pos 14 /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH15_Pos 15 /*!< Disable single requests */ + +/* Bit field masks: */ +#define DMA_USEBURSTCLR_CH0_Msk 0x00000001UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH1_Msk 0x00000002UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH2_Msk 0x00000004UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH3_Msk 0x00000008UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH4_Msk 0x00000010UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH5_Msk 0x00000020UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH6_Msk 0x00000040UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH7_Msk 0x00000080UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH8_Msk 0x00000100UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH9_Msk 0x00000200UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH10_Msk 0x00000400UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH11_Msk 0x00000800UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH12_Msk 0x00001000UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH13_Msk 0x00002000UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH14_Msk 0x00004000UL /*!< Disable single requests */ +#define DMA_USEBURSTCLR_CH15_Msk 0x00008000UL /*!< Disable single requests */ + +/*-- REQMASKSET: Channel request mask set --------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< External requests are enabled for channel */ + uint32_t CH1 :1; /*!< External requests are enabled for channel */ + uint32_t CH2 :1; /*!< External requests are enabled for channel */ + uint32_t CH3 :1; /*!< External requests are enabled for channel */ + uint32_t CH4 :1; /*!< External requests are enabled for channel */ + uint32_t CH5 :1; /*!< External requests are enabled for channel */ + uint32_t CH6 :1; /*!< External requests are enabled for channel */ + uint32_t CH7 :1; /*!< External requests are enabled for channel */ + uint32_t CH8 :1; /*!< External requests are enabled for channel */ + uint32_t CH9 :1; /*!< External requests are enabled for channel */ + uint32_t CH10 :1; /*!< External requests are enabled for channel */ + uint32_t CH11 :1; /*!< External requests are enabled for channel */ + uint32_t CH12 :1; /*!< External requests are enabled for channel */ + uint32_t CH13 :1; /*!< External requests are enabled for channel */ + uint32_t CH14 :1; /*!< External requests are enabled for channel */ + uint32_t CH15 :1; /*!< External requests are enabled for channel */ +} _DMA_REQMASKSET_bits; + +/* Bit field positions: */ +#define DMA_REQMASKSET_CH0_Pos 0 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH1_Pos 1 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH2_Pos 2 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH3_Pos 3 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH4_Pos 4 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH5_Pos 5 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH6_Pos 6 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH7_Pos 7 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH8_Pos 8 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH9_Pos 9 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH10_Pos 10 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH11_Pos 11 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH12_Pos 12 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH13_Pos 13 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH14_Pos 14 /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH15_Pos 15 /*!< External requests are enabled for channel */ + +/* Bit field masks: */ +#define DMA_REQMASKSET_CH0_Msk 0x00000001UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH1_Msk 0x00000002UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH2_Msk 0x00000004UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH3_Msk 0x00000008UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH4_Msk 0x00000010UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH5_Msk 0x00000020UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH6_Msk 0x00000040UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH7_Msk 0x00000080UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH8_Msk 0x00000100UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH9_Msk 0x00000200UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH10_Msk 0x00000400UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH11_Msk 0x00000800UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH12_Msk 0x00001000UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH13_Msk 0x00002000UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH14_Msk 0x00004000UL /*!< External requests are enabled for channel */ +#define DMA_REQMASKSET_CH15_Msk 0x00008000UL /*!< External requests are enabled for channel */ + +/*-- REQMASKCLR: Channel request mask clear ------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< External requests are disabled for channel */ + uint32_t CH1 :1; /*!< External requests are disabled for channel */ + uint32_t CH2 :1; /*!< External requests are disabled for channel */ + uint32_t CH3 :1; /*!< External requests are disabled for channel */ + uint32_t CH4 :1; /*!< External requests are disabled for channel */ + uint32_t CH5 :1; /*!< External requests are disabled for channel */ + uint32_t CH6 :1; /*!< External requests are disabled for channel */ + uint32_t CH7 :1; /*!< External requests are disabled for channel */ + uint32_t CH8 :1; /*!< External requests are disabled for channel */ + uint32_t CH9 :1; /*!< External requests are disabled for channel */ + uint32_t CH10 :1; /*!< External requests are disabled for channel */ + uint32_t CH11 :1; /*!< External requests are disabled for channel */ + uint32_t CH12 :1; /*!< External requests are disabled for channel */ + uint32_t CH13 :1; /*!< External requests are disabled for channel */ + uint32_t CH14 :1; /*!< External requests are disabled for channel */ + uint32_t CH15 :1; /*!< External requests are disabled for channel */ +} _DMA_REQMASKCLR_bits; + +/* Bit field positions: */ +#define DMA_REQMASKCLR_CH0_Pos 0 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH1_Pos 1 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH2_Pos 2 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH3_Pos 3 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH4_Pos 4 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH5_Pos 5 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH6_Pos 6 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH7_Pos 7 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH8_Pos 8 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH9_Pos 9 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH10_Pos 10 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH11_Pos 11 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH12_Pos 12 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH13_Pos 13 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH14_Pos 14 /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH15_Pos 15 /*!< External requests are disabled for channel */ + +/* Bit field masks: */ +#define DMA_REQMASKCLR_CH0_Msk 0x00000001UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH1_Msk 0x00000002UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH2_Msk 0x00000004UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH3_Msk 0x00000008UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH4_Msk 0x00000010UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH5_Msk 0x00000020UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH6_Msk 0x00000040UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH7_Msk 0x00000080UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH8_Msk 0x00000100UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH9_Msk 0x00000200UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH10_Msk 0x00000400UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH11_Msk 0x00000800UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH12_Msk 0x00001000UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH13_Msk 0x00002000UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH14_Msk 0x00004000UL /*!< External requests are disabled for channel */ +#define DMA_REQMASKCLR_CH15_Msk 0x00008000UL /*!< External requests are disabled for channel */ + +/*-- ENSET: Channel enable set -------------------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Enable channel */ + uint32_t CH1 :1; /*!< Enable channel */ + uint32_t CH2 :1; /*!< Enable channel */ + uint32_t CH3 :1; /*!< Enable channel */ + uint32_t CH4 :1; /*!< Enable channel */ + uint32_t CH5 :1; /*!< Enable channel */ + uint32_t CH6 :1; /*!< Enable channel */ + uint32_t CH7 :1; /*!< Enable channel */ + uint32_t CH8 :1; /*!< Enable channel */ + uint32_t CH9 :1; /*!< Enable channel */ + uint32_t CH10 :1; /*!< Enable channel */ + uint32_t CH11 :1; /*!< Enable channel */ + uint32_t CH12 :1; /*!< Enable channel */ + uint32_t CH13 :1; /*!< Enable channel */ + uint32_t CH14 :1; /*!< Enable channel */ + uint32_t CH15 :1; /*!< Enable channel */ +} _DMA_ENSET_bits; + +/* Bit field positions: */ +#define DMA_ENSET_CH0_Pos 0 /*!< Enable channel */ +#define DMA_ENSET_CH1_Pos 1 /*!< Enable channel */ +#define DMA_ENSET_CH2_Pos 2 /*!< Enable channel */ +#define DMA_ENSET_CH3_Pos 3 /*!< Enable channel */ +#define DMA_ENSET_CH4_Pos 4 /*!< Enable channel */ +#define DMA_ENSET_CH5_Pos 5 /*!< Enable channel */ +#define DMA_ENSET_CH6_Pos 6 /*!< Enable channel */ +#define DMA_ENSET_CH7_Pos 7 /*!< Enable channel */ +#define DMA_ENSET_CH8_Pos 8 /*!< Enable channel */ +#define DMA_ENSET_CH9_Pos 9 /*!< Enable channel */ +#define DMA_ENSET_CH10_Pos 10 /*!< Enable channel */ +#define DMA_ENSET_CH11_Pos 11 /*!< Enable channel */ +#define DMA_ENSET_CH12_Pos 12 /*!< Enable channel */ +#define DMA_ENSET_CH13_Pos 13 /*!< Enable channel */ +#define DMA_ENSET_CH14_Pos 14 /*!< Enable channel */ +#define DMA_ENSET_CH15_Pos 15 /*!< Enable channel */ + +/* Bit field masks: */ +#define DMA_ENSET_CH0_Msk 0x00000001UL /*!< Enable channel */ +#define DMA_ENSET_CH1_Msk 0x00000002UL /*!< Enable channel */ +#define DMA_ENSET_CH2_Msk 0x00000004UL /*!< Enable channel */ +#define DMA_ENSET_CH3_Msk 0x00000008UL /*!< Enable channel */ +#define DMA_ENSET_CH4_Msk 0x00000010UL /*!< Enable channel */ +#define DMA_ENSET_CH5_Msk 0x00000020UL /*!< Enable channel */ +#define DMA_ENSET_CH6_Msk 0x00000040UL /*!< Enable channel */ +#define DMA_ENSET_CH7_Msk 0x00000080UL /*!< Enable channel */ +#define DMA_ENSET_CH8_Msk 0x00000100UL /*!< Enable channel */ +#define DMA_ENSET_CH9_Msk 0x00000200UL /*!< Enable channel */ +#define DMA_ENSET_CH10_Msk 0x00000400UL /*!< Enable channel */ +#define DMA_ENSET_CH11_Msk 0x00000800UL /*!< Enable channel */ +#define DMA_ENSET_CH12_Msk 0x00001000UL /*!< Enable channel */ +#define DMA_ENSET_CH13_Msk 0x00002000UL /*!< Enable channel */ +#define DMA_ENSET_CH14_Msk 0x00004000UL /*!< Enable channel */ +#define DMA_ENSET_CH15_Msk 0x00008000UL /*!< Enable channel */ + +/*-- ENCLR: Channel enable clear -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Disable channel */ + uint32_t CH1 :1; /*!< Disable channel */ + uint32_t CH2 :1; /*!< Disable channel */ + uint32_t CH3 :1; /*!< Disable channel */ + uint32_t CH4 :1; /*!< Disable channel */ + uint32_t CH5 :1; /*!< Disable channel */ + uint32_t CH6 :1; /*!< Disable channel */ + uint32_t CH7 :1; /*!< Disable channel */ + uint32_t CH8 :1; /*!< Disable channel */ + uint32_t CH9 :1; /*!< Disable channel */ + uint32_t CH10 :1; /*!< Disable channel */ + uint32_t CH11 :1; /*!< Disable channel */ + uint32_t CH12 :1; /*!< Disable channel */ + uint32_t CH13 :1; /*!< Disable channel */ + uint32_t CH14 :1; /*!< Disable channel */ + uint32_t CH15 :1; /*!< Disable channel */ +} _DMA_ENCLR_bits; + +/* Bit field positions: */ +#define DMA_ENCLR_CH0_Pos 0 /*!< Disable channel */ +#define DMA_ENCLR_CH1_Pos 1 /*!< Disable channel */ +#define DMA_ENCLR_CH2_Pos 2 /*!< Disable channel */ +#define DMA_ENCLR_CH3_Pos 3 /*!< Disable channel */ +#define DMA_ENCLR_CH4_Pos 4 /*!< Disable channel */ +#define DMA_ENCLR_CH5_Pos 5 /*!< Disable channel */ +#define DMA_ENCLR_CH6_Pos 6 /*!< Disable channel */ +#define DMA_ENCLR_CH7_Pos 7 /*!< Disable channel */ +#define DMA_ENCLR_CH8_Pos 8 /*!< Disable channel */ +#define DMA_ENCLR_CH9_Pos 9 /*!< Disable channel */ +#define DMA_ENCLR_CH10_Pos 10 /*!< Disable channel */ +#define DMA_ENCLR_CH11_Pos 11 /*!< Disable channel */ +#define DMA_ENCLR_CH12_Pos 12 /*!< Disable channel */ +#define DMA_ENCLR_CH13_Pos 13 /*!< Disable channel */ +#define DMA_ENCLR_CH14_Pos 14 /*!< Disable channel */ +#define DMA_ENCLR_CH15_Pos 15 /*!< Disable channel */ + +/* Bit field masks: */ +#define DMA_ENCLR_CH0_Msk 0x00000001UL /*!< Disable channel */ +#define DMA_ENCLR_CH1_Msk 0x00000002UL /*!< Disable channel */ +#define DMA_ENCLR_CH2_Msk 0x00000004UL /*!< Disable channel */ +#define DMA_ENCLR_CH3_Msk 0x00000008UL /*!< Disable channel */ +#define DMA_ENCLR_CH4_Msk 0x00000010UL /*!< Disable channel */ +#define DMA_ENCLR_CH5_Msk 0x00000020UL /*!< Disable channel */ +#define DMA_ENCLR_CH6_Msk 0x00000040UL /*!< Disable channel */ +#define DMA_ENCLR_CH7_Msk 0x00000080UL /*!< Disable channel */ +#define DMA_ENCLR_CH8_Msk 0x00000100UL /*!< Disable channel */ +#define DMA_ENCLR_CH9_Msk 0x00000200UL /*!< Disable channel */ +#define DMA_ENCLR_CH10_Msk 0x00000400UL /*!< Disable channel */ +#define DMA_ENCLR_CH11_Msk 0x00000800UL /*!< Disable channel */ +#define DMA_ENCLR_CH12_Msk 0x00001000UL /*!< Disable channel */ +#define DMA_ENCLR_CH13_Msk 0x00002000UL /*!< Disable channel */ +#define DMA_ENCLR_CH14_Msk 0x00004000UL /*!< Disable channel */ +#define DMA_ENCLR_CH15_Msk 0x00008000UL /*!< Disable channel */ + +/*-- PRIALTSET: Channel primary-alternate set ----------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH1 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH2 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH3 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH4 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH5 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH6 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH7 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH8 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH9 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH10 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH11 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH12 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH13 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH14 :1; /*!< Set primary / alternate channel control data structure */ + uint32_t CH15 :1; /*!< Set primary / alternate channel control data structure */ +} _DMA_PRIALTSET_bits; + +/* Bit field positions: */ +#define DMA_PRIALTSET_CH0_Pos 0 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH1_Pos 1 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH2_Pos 2 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH3_Pos 3 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH4_Pos 4 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH5_Pos 5 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH6_Pos 6 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH7_Pos 7 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH8_Pos 8 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH9_Pos 9 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH10_Pos 10 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH11_Pos 11 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH12_Pos 12 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH13_Pos 13 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH14_Pos 14 /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH15_Pos 15 /*!< Set primary / alternate channel control data structure */ + +/* Bit field masks: */ +#define DMA_PRIALTSET_CH0_Msk 0x00000001UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH1_Msk 0x00000002UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH2_Msk 0x00000004UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH3_Msk 0x00000008UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH4_Msk 0x00000010UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH5_Msk 0x00000020UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH6_Msk 0x00000040UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH7_Msk 0x00000080UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH8_Msk 0x00000100UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH9_Msk 0x00000200UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH10_Msk 0x00000400UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH11_Msk 0x00000800UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH12_Msk 0x00001000UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH13_Msk 0x00002000UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH14_Msk 0x00004000UL /*!< Set primary / alternate channel control data structure */ +#define DMA_PRIALTSET_CH15_Msk 0x00008000UL /*!< Set primary / alternate channel control data structure */ + +/*-- PRIALTCLR: Channel primary-alternate clear --------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH1 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH2 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH3 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH4 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH5 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH6 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH7 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH8 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH9 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH10 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH11 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH12 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH13 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH14 :1; /*!< Clear primary / alternate channel control data structure */ + uint32_t CH15 :1; /*!< Clear primary / alternate channel control data structure */ +} _DMA_PRIALTCLR_bits; + +/* Bit field positions: */ +#define DMA_PRIALTCLR_CH0_Pos 0 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH1_Pos 1 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH2_Pos 2 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH3_Pos 3 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH4_Pos 4 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH5_Pos 5 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH6_Pos 6 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH7_Pos 7 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH8_Pos 8 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH9_Pos 9 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH10_Pos 10 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH11_Pos 11 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH12_Pos 12 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH13_Pos 13 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH14_Pos 14 /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH15_Pos 15 /*!< Clear primary / alternate channel control data structure */ + +/* Bit field masks: */ +#define DMA_PRIALTCLR_CH0_Msk 0x00000001UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH1_Msk 0x00000002UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH2_Msk 0x00000004UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH3_Msk 0x00000008UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH4_Msk 0x00000010UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH5_Msk 0x00000020UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH6_Msk 0x00000040UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH7_Msk 0x00000080UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH8_Msk 0x00000100UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH9_Msk 0x00000200UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH10_Msk 0x00000400UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH11_Msk 0x00000800UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH12_Msk 0x00001000UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH13_Msk 0x00002000UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH14_Msk 0x00004000UL /*!< Clear primary / alternate channel control data structure */ +#define DMA_PRIALTCLR_CH15_Msk 0x00008000UL /*!< Clear primary / alternate channel control data structure */ + +/*-- PRIORITYSET: Channel priority set -----------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Set the priority of channel */ + uint32_t CH1 :1; /*!< Set the priority of channel */ + uint32_t CH2 :1; /*!< Set the priority of channel */ + uint32_t CH3 :1; /*!< Set the priority of channel */ + uint32_t CH4 :1; /*!< Set the priority of channel */ + uint32_t CH5 :1; /*!< Set the priority of channel */ + uint32_t CH6 :1; /*!< Set the priority of channel */ + uint32_t CH7 :1; /*!< Set the priority of channel */ + uint32_t CH8 :1; /*!< Set the priority of channel */ + uint32_t CH9 :1; /*!< Set the priority of channel */ + uint32_t CH10 :1; /*!< Set the priority of channel */ + uint32_t CH11 :1; /*!< Set the priority of channel */ + uint32_t CH12 :1; /*!< Set the priority of channel */ + uint32_t CH13 :1; /*!< Set the priority of channel */ + uint32_t CH14 :1; /*!< Set the priority of channel */ + uint32_t CH15 :1; /*!< Set the priority of channel */ +} _DMA_PRIORITYSET_bits; + +/* Bit field positions: */ +#define DMA_PRIORITYSET_CH0_Pos 0 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH1_Pos 1 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH2_Pos 2 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH3_Pos 3 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH4_Pos 4 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH5_Pos 5 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH6_Pos 6 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH7_Pos 7 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH8_Pos 8 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH9_Pos 9 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH10_Pos 10 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH11_Pos 11 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH12_Pos 12 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH13_Pos 13 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH14_Pos 14 /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH15_Pos 15 /*!< Set the priority of channel */ + +/* Bit field masks: */ +#define DMA_PRIORITYSET_CH0_Msk 0x00000001UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH1_Msk 0x00000002UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH2_Msk 0x00000004UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH3_Msk 0x00000008UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH4_Msk 0x00000010UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH5_Msk 0x00000020UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH6_Msk 0x00000040UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH7_Msk 0x00000080UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH8_Msk 0x00000100UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH9_Msk 0x00000200UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH10_Msk 0x00000400UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH11_Msk 0x00000800UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH12_Msk 0x00001000UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH13_Msk 0x00002000UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH14_Msk 0x00004000UL /*!< Set the priority of channel */ +#define DMA_PRIORITYSET_CH15_Msk 0x00008000UL /*!< Set the priority of channel */ + +/*-- PRIORITYCLR: Channel priority clear ---------------------------------------------------------------------*/ +typedef struct { + uint32_t CH0 :1; /*!< Clear the priority */ + uint32_t CH1 :1; /*!< Clear the priority */ + uint32_t CH2 :1; /*!< Clear the priority */ + uint32_t CH3 :1; /*!< Clear the priority */ + uint32_t CH4 :1; /*!< Clear the priority */ + uint32_t CH5 :1; /*!< Clear the priority */ + uint32_t CH6 :1; /*!< Clear the priority */ + uint32_t CH7 :1; /*!< Clear the priority */ + uint32_t CH8 :1; /*!< Clear the priority */ + uint32_t CH9 :1; /*!< Clear the priority */ + uint32_t CH10 :1; /*!< Clear the priority */ + uint32_t CH11 :1; /*!< Clear the priority */ + uint32_t CH12 :1; /*!< Clear the priority */ + uint32_t CH13 :1; /*!< Clear the priority */ + uint32_t CH14 :1; /*!< Clear the priority */ + uint32_t CH15 :1; /*!< Clear the priority */ +} _DMA_PRIORITYCLR_bits; + +/* Bit field positions: */ +#define DMA_PRIORITYCLR_CH0_Pos 0 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH1_Pos 1 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH2_Pos 2 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH3_Pos 3 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH4_Pos 4 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH5_Pos 5 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH6_Pos 6 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH7_Pos 7 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH8_Pos 8 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH9_Pos 9 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH10_Pos 10 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH11_Pos 11 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH12_Pos 12 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH13_Pos 13 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH14_Pos 14 /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH15_Pos 15 /*!< Clear the priority */ + +/* Bit field masks: */ +#define DMA_PRIORITYCLR_CH0_Msk 0x00000001UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH1_Msk 0x00000002UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH2_Msk 0x00000004UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH3_Msk 0x00000008UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH4_Msk 0x00000010UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH5_Msk 0x00000020UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH6_Msk 0x00000040UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH7_Msk 0x00000080UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH8_Msk 0x00000100UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH9_Msk 0x00000200UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH10_Msk 0x00000400UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH11_Msk 0x00000800UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH12_Msk 0x00001000UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH13_Msk 0x00002000UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH14_Msk 0x00004000UL /*!< Clear the priority */ +#define DMA_PRIORITYCLR_CH15_Msk 0x00008000UL /*!< Clear the priority */ + +/*-- ERRCLR: Bus error register ------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :1; /*!< Indicate Error on bus AHB-Lite */ +} _DMA_ERRCLR_bits; + +/* Bit field positions: */ +#define DMA_ERRCLR_VAL_Pos 0 /*!< Indicate Error on bus AHB-Lite */ + +/* Bit field masks: */ +#define DMA_ERRCLR_VAL_Msk 0x00000001UL /*!< Indicate Error on bus AHB-Lite */ + +typedef struct { + union { /*!< Status DMA register */ + __I uint32_t STATUS; /*!< STATUS : type used for word access */ + __I _DMA_STATUS_bits STATUS_bit; /*!< STATUS_bit: structure used for bit access */ + }; + union { /*!< DMA configuration register */ + __O uint32_t CFG; /*!< CFG : type used for word access */ + __O _DMA_CFG_bits CFG_bit; /*!< CFG_bit: structure used for bit access */ + }; + union { /*!< Channel control data base pointer */ + __IO uint32_t BASEPTR; /*!< BASEPTR : type used for word access */ + __IO _DMA_BASEPTR_bits BASEPTR_bit; /*!< BASEPTR_bit: structure used for bit access */ + }; + union { /*!< Channel alternate control data base pointer */ + __I uint32_t ALTBASEPTR; /*!< ALTBASEPTR : type used for word access */ + __I _DMA_ALTBASEPTR_bits ALTBASEPTR_bit; /*!< ALTBASEPTR_bit: structure used for bit access */ + }; + union { /*!< Channel wait on request status */ + __I uint32_t WAITONREQ; /*!< WAITONREQ : type used for word access */ + __I _DMA_WAITONREQ_bits WAITONREQ_bit; /*!< WAITONREQ_bit: structure used for bit access */ + }; + union { /*!< Channel software request */ + __O uint32_t SWREQ; /*!< SWREQ : type used for word access */ + __O _DMA_SWREQ_bits SWREQ_bit; /*!< SWREQ_bit: structure used for bit access */ + }; + union { /*!< Channel useburst set */ + __IO uint32_t USEBURSTSET; /*!< USEBURSTSET : type used for word access */ + __IO _DMA_USEBURSTSET_bits USEBURSTSET_bit; /*!< USEBURSTSET_bit: structure used for bit access */ + }; + union { /*!< Channel useburst clear */ + __O uint32_t USEBURSTCLR; /*!< USEBURSTCLR : type used for word access */ + __O _DMA_USEBURSTCLR_bits USEBURSTCLR_bit; /*!< USEBURSTCLR_bit: structure used for bit access */ + }; + union { /*!< Channel request mask set */ + __IO uint32_t REQMASKSET; /*!< REQMASKSET : type used for word access */ + __IO _DMA_REQMASKSET_bits REQMASKSET_bit; /*!< REQMASKSET_bit: structure used for bit access */ + }; + union { /*!< Channel request mask clear */ + __O uint32_t REQMASKCLR; /*!< REQMASKCLR : type used for word access */ + __O _DMA_REQMASKCLR_bits REQMASKCLR_bit; /*!< REQMASKCLR_bit: structure used for bit access */ + }; + union { /*!< Channel enable set */ + __IO uint32_t ENSET; /*!< ENSET : type used for word access */ + __IO _DMA_ENSET_bits ENSET_bit; /*!< ENSET_bit: structure used for bit access */ + }; + union { /*!< Channel enable clear */ + __O uint32_t ENCLR; /*!< ENCLR : type used for word access */ + __O _DMA_ENCLR_bits ENCLR_bit; /*!< ENCLR_bit: structure used for bit access */ + }; + union { /*!< Channel primary-alternate set */ + __IO uint32_t PRIALTSET; /*!< PRIALTSET : type used for word access */ + __IO _DMA_PRIALTSET_bits PRIALTSET_bit; /*!< PRIALTSET_bit: structure used for bit access */ + }; + union { /*!< Channel primary-alternate clear */ + __O uint32_t PRIALTCLR; /*!< PRIALTCLR : type used for word access */ + __O _DMA_PRIALTCLR_bits PRIALTCLR_bit; /*!< PRIALTCLR_bit: structure used for bit access */ + }; + union { /*!< Channel priority set */ + __IO uint32_t PRIORITYSET; /*!< PRIORITYSET : type used for word access */ + __IO _DMA_PRIORITYSET_bits PRIORITYSET_bit; /*!< PRIORITYSET_bit: structure used for bit access */ + }; + union { /*!< Channel priority clear */ + __O uint32_t PRIORITYCLR; /*!< PRIORITYCLR : type used for word access */ + __O _DMA_PRIORITYCLR_bits PRIORITYCLR_bit; /*!< PRIORITYCLR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[3]; + union { /*!< Bus error register */ + __IO uint32_t ERRCLR; /*!< ERRCLR : type used for word access */ + __IO _DMA_ERRCLR_bits ERRCLR_bit; /*!< ERRCLR_bit: structure used for bit access */ + }; +} DMA_TypeDef; + + +/******************************************************************************/ +/* MFLASH registers */ +/******************************************************************************/ + +/*-- ADDR: Address Register ----------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Address value for flash operations */ +} _MFLASH_ADDR_bits; + +/* Bit field positions: */ +#define MFLASH_ADDR_VAL_Pos 0 /*!< Address value for flash operations */ + +/* Bit field masks: */ +#define MFLASH_ADDR_VAL_Msk 0xFFFFFFFFUL /*!< Address value for flash operations */ + +/*-- DATA: DATA: Data Register --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Data register value for flash operations */ +} _MFLASH_DATA_DATA_bits; + +/* Bit field positions: */ +#define MFLASH_DATA_DATA_VAL_Pos 0 /*!< Data register value for flash operations */ + +/* Bit field masks: */ +#define MFLASH_DATA_DATA_VAL_Msk 0xFFFFFFFFUL /*!< Data register value for flash operations */ + +/*-- CMD: Command Register -----------------------------------------------------------------------------------*/ +typedef struct { + uint32_t RD :1; /*!< Read enable command */ + uint32_t WR :1; /*!< Write enable command */ + uint32_t ERSEC :1; /*!< Erase sector enable command */ + uint32_t ERALL :1; /*!< Erase all enable command */ + uint32_t :4; /*!< RESERVED */ + uint32_t NVRON :1; /*!< NVR access bit */ + uint32_t :7; /*!< RESERVED */ + uint32_t KEY :16; /*!< Magic Key for flash access "C0DE" */ +} _MFLASH_CMD_bits; + +/* Bit field positions: */ +#define MFLASH_CMD_RD_Pos 0 /*!< Read enable command */ +#define MFLASH_CMD_WR_Pos 1 /*!< Write enable command */ +#define MFLASH_CMD_ERSEC_Pos 2 /*!< Erase sector enable command */ +#define MFLASH_CMD_ERALL_Pos 3 /*!< Erase all enable command */ +#define MFLASH_CMD_NVRON_Pos 8 /*!< NVR access bit */ +#define MFLASH_CMD_KEY_Pos 16 /*!< Magic Key for flash access "C0DE" */ + +/* Bit field masks: */ +#define MFLASH_CMD_RD_Msk 0x00000001UL /*!< Read enable command */ +#define MFLASH_CMD_WR_Msk 0x00000002UL /*!< Write enable command */ +#define MFLASH_CMD_ERSEC_Msk 0x00000004UL /*!< Erase sector enable command */ +#define MFLASH_CMD_ERALL_Msk 0x00000008UL /*!< Erase all enable command */ +#define MFLASH_CMD_NVRON_Msk 0x00000100UL /*!< NVR access bit */ +#define MFLASH_CMD_KEY_Msk 0xFFFF0000UL /*!< Magic Key for flash access "C0DE" */ + +/* Bit field enums: */ +typedef enum { + MFLASH_CMD_KEY_Access = 0xC0DEUL, /*!< magic Key for flash access */ +} MFLASH_CMD_KEY_Enum; + +/*-- STAT: Status Register -----------------------------------------------------------------------------------*/ +typedef struct { + uint32_t BUSY :1; /*!< Busy status bit when command is processing */ + uint32_t IRQF :1; /*!< IRQ Flag set when command done. Set by hardware only if IRQEN bit is set. */ +} _MFLASH_STAT_bits; + +/* Bit field positions: */ +#define MFLASH_STAT_BUSY_Pos 0 /*!< Busy status bit when command is processing */ +#define MFLASH_STAT_IRQF_Pos 1 /*!< IRQ Flag set when command done. Set by hardware only if IRQEN bit is set. */ + +/* Bit field masks: */ +#define MFLASH_STAT_BUSY_Msk 0x00000001UL /*!< Busy status bit when command is processing */ +#define MFLASH_STAT_IRQF_Msk 0x00000002UL /*!< IRQ Flag set when command done. Set by hardware only if IRQEN bit is set. */ + +/*-- CTRL: Control Register ----------------------------------------------------------------------------------*/ +typedef struct { + uint32_t PEN :1; /*!< Prefetch enable bit */ + uint32_t ICEN :1; /*!< I-Cache enable bit */ + uint32_t DCEN :1; /*!< D-Cache enable bit */ + uint32_t :1; /*!< RESERVED */ + uint32_t IRQEN :1; /*!< Interrupt enable bit */ + uint32_t :3; /*!< RESERVED */ + uint32_t IFLUSH :1; /*!< Flush I-Cache request bit */ + uint32_t DFLUSH :1; /*!< Flush D-Cache request bit */ + uint32_t :6; /*!< RESERVED */ + uint32_t LAT :4; /*!< Flash latency */ +} _MFLASH_CTRL_bits; + +/* Bit field positions: */ +#define MFLASH_CTRL_PEN_Pos 0 /*!< Prefetch enable bit */ +#define MFLASH_CTRL_ICEN_Pos 1 /*!< I-Cache enable bit */ +#define MFLASH_CTRL_DCEN_Pos 2 /*!< D-Cache enable bit */ +#define MFLASH_CTRL_IRQEN_Pos 4 /*!< Interrupt enable bit */ +#define MFLASH_CTRL_IFLUSH_Pos 8 /*!< Flush I-Cache request bit */ +#define MFLASH_CTRL_DFLUSH_Pos 9 /*!< Flush D-Cache request bit */ +#define MFLASH_CTRL_LAT_Pos 16 /*!< Flash latency */ + +/* Bit field masks: */ +#define MFLASH_CTRL_PEN_Msk 0x00000001UL /*!< Prefetch enable bit */ +#define MFLASH_CTRL_ICEN_Msk 0x00000002UL /*!< I-Cache enable bit */ +#define MFLASH_CTRL_DCEN_Msk 0x00000004UL /*!< D-Cache enable bit */ +#define MFLASH_CTRL_IRQEN_Msk 0x00000010UL /*!< Interrupt enable bit */ +#define MFLASH_CTRL_IFLUSH_Msk 0x00000100UL /*!< Flush I-Cache request bit */ +#define MFLASH_CTRL_DFLUSH_Msk 0x00000200UL /*!< Flush D-Cache request bit */ +#define MFLASH_CTRL_LAT_Msk 0x000F0000UL /*!< Flash latency */ + +/*-- ICSTAT: ICACHE Status Register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t BUSY :1; /*!< Busy flag for I-Cache flush/test system */ +} _MFLASH_ICSTAT_bits; + +/* Bit field positions: */ +#define MFLASH_ICSTAT_BUSY_Pos 0 /*!< Busy flag for I-Cache flush/test system */ + +/* Bit field masks: */ +#define MFLASH_ICSTAT_BUSY_Msk 0x00000001UL /*!< Busy flag for I-Cache flush/test system */ + +/*-- DCSTAT: DCACHE Status Register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t BUSY :1; /*!< Busy flag for D-Cache flush/test system */ +} _MFLASH_DCSTAT_bits; + +/* Bit field positions: */ +#define MFLASH_DCSTAT_BUSY_Pos 0 /*!< Busy flag for D-Cache flush/test system */ + +/* Bit field masks: */ +#define MFLASH_DCSTAT_BUSY_Msk 0x00000001UL /*!< Busy flag for D-Cache flush/test system */ + +/*-- BDIS: Boot Mode Disable register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t BMDIS :1; /*!< Disable boot mode after system reset command */ +} _MFLASH_BDIS_bits; + +/* Bit field positions: */ +#define MFLASH_BDIS_BMDIS_Pos 0 /*!< Disable boot mode after system reset command */ + +/* Bit field masks: */ +#define MFLASH_BDIS_BMDIS_Msk 0x00000001UL /*!< Disable boot mode after system reset command */ + +//Cluster DATA: +typedef struct { + union { + /*!< Data Register */ + __IO uint32_t DATA; /*!< DATA : type used for word access */ + __IO _MFLASH_DATA_DATA_bits DATA_bit; /*!< DATA_bit: structure used for bit access */ + }; +} _MFLASH_DATA_TypeDef; +typedef struct { + union { /*!< Address Register */ + __IO uint32_t ADDR; /*!< ADDR : type used for word access */ + __IO _MFLASH_ADDR_bits ADDR_bit; /*!< ADDR_bit: structure used for bit access */ + }; + _MFLASH_DATA_TypeDef DATA[2]; + __IO uint32_t Reserved0[6]; + union { /*!< Command Register */ + __IO uint32_t CMD; /*!< CMD : type used for word access */ + __IO _MFLASH_CMD_bits CMD_bit; /*!< CMD_bit: structure used for bit access */ + }; + union { /*!< Status Register */ + __IO uint32_t STAT; /*!< STAT : type used for word access */ + __IO _MFLASH_STAT_bits STAT_bit; /*!< STAT_bit: structure used for bit access */ + }; + union { /*!< Control Register */ + __IO uint32_t CTRL; /*!< CTRL : type used for word access */ + __IO _MFLASH_CTRL_bits CTRL_bit; /*!< CTRL_bit: structure used for bit access */ + }; + __IO uint32_t Reserved1; + union { /*!< ICACHE Status Register */ + __I uint32_t ICSTAT; /*!< ICSTAT : type used for word access */ + __I _MFLASH_ICSTAT_bits ICSTAT_bit; /*!< ICSTAT_bit: structure used for bit access */ + }; + union { /*!< DCACHE Status Register */ + __I uint32_t DCSTAT; /*!< DCSTAT : type used for word access */ + __I _MFLASH_DCSTAT_bits DCSTAT_bit; /*!< DCSTAT_bit: structure used for bit access */ + }; + __IO uint32_t Reserved2[15]; + union { /*!< Boot Mode Disable register */ + __IO uint32_t BDIS; /*!< BDIS : type used for word access */ + __IO _MFLASH_BDIS_bits BDIS_bit; /*!< BDIS_bit: structure used for bit access */ + }; +} MFLASH_TypeDef; + + +/******************************************************************************/ +/* QEP registers */ +/******************************************************************************/ + +/*-- QPOSCNT: Position Counter register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QPOSCNT_bits; + +/* Bit field positions: */ +#define QEP_QPOSCNT_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QPOSCNT_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QPOSINIT: Position Counter Initialization register ------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QPOSINIT_bits; + +/* Bit field positions: */ +#define QEP_QPOSINIT_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QPOSINIT_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QPOSMAX: Maximum Position Count register ----------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QPOSMAX_bits; + +/* Bit field positions: */ +#define QEP_QPOSMAX_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QPOSMAX_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QPOSCMP: Position-compare register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QPOSCMP_bits; + +/* Bit field positions: */ +#define QEP_QPOSCMP_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QPOSCMP_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QPOSILAT: Index Position Latch register -----------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QPOSILAT_bits; + +/* Bit field positions: */ +#define QEP_QPOSILAT_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QPOSILAT_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QPOSSLAT: Strobe Position Latch register ----------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QPOSSLAT_bits; + +/* Bit field positions: */ +#define QEP_QPOSSLAT_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QPOSSLAT_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QPOSLAT: Position Counter Latch register ----------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QPOSLAT_bits; + +/* Bit field positions: */ +#define QEP_QPOSLAT_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QPOSLAT_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QUTMR: Unit Timer register ------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QUTMR_bits; + +/* Bit field positions: */ +#define QEP_QUTMR_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QUTMR_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QUPRD: Unit Period register -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QUPRD_bits; + +/* Bit field positions: */ +#define QEP_QUPRD_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QUPRD_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QWDTMR: Watchdog Timer register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QWDTMR_bits; + +/* Bit field positions: */ +#define QEP_QWDTMR_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QWDTMR_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QWDPRD: Watchdog Period register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QWDPRD_bits; + +/* Bit field positions: */ +#define QEP_QWDPRD_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QWDPRD_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QDECCTL: Decoder Control register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t :5; /*!< RESERVED */ + uint32_t QSP :1; /*!< QEPS input polarity */ + uint32_t QIP :1; /*!< QEPI input polarity */ + uint32_t QBP :1; /*!< QEPB input polarity */ + uint32_t QAP :1; /*!< QEPA input polarity */ + uint32_t IGATE :1; /*!< Index pulse gating option */ + uint32_t SWAP :1; /*!< Swap quadrature clock inputs */ + uint32_t XCR :1; /*!< External clock rate */ + uint32_t SPSEL :1; /*!< Sync output pin selection */ + uint32_t SOEN :1; /*!< Sync output-enable */ + uint32_t QSRC :2; /*!< Position-counter source selection */ +} _QEP_QDECCTL_bits; + +/* Bit field positions: */ +#define QEP_QDECCTL_QSP_Pos 5 /*!< QEPS input polarity */ +#define QEP_QDECCTL_QIP_Pos 6 /*!< QEPI input polarity */ +#define QEP_QDECCTL_QBP_Pos 7 /*!< QEPB input polarity */ +#define QEP_QDECCTL_QAP_Pos 8 /*!< QEPA input polarity */ +#define QEP_QDECCTL_IGATE_Pos 9 /*!< Index pulse gating option */ +#define QEP_QDECCTL_SWAP_Pos 10 /*!< Swap quadrature clock inputs */ +#define QEP_QDECCTL_XCR_Pos 11 /*!< External clock rate */ +#define QEP_QDECCTL_SPSEL_Pos 12 /*!< Sync output pin selection */ +#define QEP_QDECCTL_SOEN_Pos 13 /*!< Sync output-enable */ +#define QEP_QDECCTL_QSRC_Pos 14 /*!< Position-counter source selection */ + +/* Bit field masks: */ +#define QEP_QDECCTL_QSP_Msk 0x00000020UL /*!< QEPS input polarity */ +#define QEP_QDECCTL_QIP_Msk 0x00000040UL /*!< QEPI input polarity */ +#define QEP_QDECCTL_QBP_Msk 0x00000080UL /*!< QEPB input polarity */ +#define QEP_QDECCTL_QAP_Msk 0x00000100UL /*!< QEPA input polarity */ +#define QEP_QDECCTL_IGATE_Msk 0x00000200UL /*!< Index pulse gating option */ +#define QEP_QDECCTL_SWAP_Msk 0x00000400UL /*!< Swap quadrature clock inputs */ +#define QEP_QDECCTL_XCR_Msk 0x00000800UL /*!< External clock rate */ +#define QEP_QDECCTL_SPSEL_Msk 0x00001000UL /*!< Sync output pin selection */ +#define QEP_QDECCTL_SOEN_Msk 0x00002000UL /*!< Sync output-enable */ +#define QEP_QDECCTL_QSRC_Msk 0x0000C000UL /*!< Position-counter source selection */ + +/* Bit field enums: */ +typedef enum { + QEP_QDECCTL_QSRC_Quad = 0x0UL, /*!< quadrature mode */ + QEP_QDECCTL_QSRC_CountDir = 0x1UL, /*!< count/direction mode */ + QEP_QDECCTL_QSRC_Up = 0x2UL, /*!< count up */ + QEP_QDECCTL_QSRC_Down = 0x3UL, /*!< count down */ +} QEP_QDECCTL_QSRC_Enum; + +/*-- QEPCTL: Control register --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t WDE :1; /*!< QEP watchdog enable */ + uint32_t UTE :1; /*!< QEP unit timer enable */ + uint32_t QCLM :1; /*!< QEP capture latch mode */ + uint32_t QPEN :1; /*!< Quadrature position counter enable/software reset */ + uint32_t IEL :2; /*!< Index event latch of position counter (software index marker) */ + uint32_t SEL :1; /*!< Strobe event latch of position counter */ + uint32_t SWI :1; /*!< Software initialization of position counter */ + uint32_t IEI :2; /*!< Index event initialization of position counter */ + uint32_t SEI :2; /*!< Strobe event initialization of position counter */ + uint32_t PCRM :2; /*!< Position counter reset mode */ + uint32_t FREESOFT :2; /*!< Emulation Control Bits */ +} _QEP_QEPCTL_bits; + +/* Bit field positions: */ +#define QEP_QEPCTL_WDE_Pos 0 /*!< QEP watchdog enable */ +#define QEP_QEPCTL_UTE_Pos 1 /*!< QEP unit timer enable */ +#define QEP_QEPCTL_QCLM_Pos 2 /*!< QEP capture latch mode */ +#define QEP_QEPCTL_QPEN_Pos 3 /*!< Quadrature position counter enable/software reset */ +#define QEP_QEPCTL_IEL_Pos 4 /*!< Index event latch of position counter (software index marker) */ +#define QEP_QEPCTL_SEL_Pos 6 /*!< Strobe event latch of position counter */ +#define QEP_QEPCTL_SWI_Pos 7 /*!< Software initialization of position counter */ +#define QEP_QEPCTL_IEI_Pos 8 /*!< Index event initialization of position counter */ +#define QEP_QEPCTL_SEI_Pos 10 /*!< Strobe event initialization of position counter */ +#define QEP_QEPCTL_PCRM_Pos 12 /*!< Position counter reset mode */ +#define QEP_QEPCTL_FREESOFT_Pos 14 /*!< Emulation Control Bits */ + +/* Bit field masks: */ +#define QEP_QEPCTL_WDE_Msk 0x00000001UL /*!< QEP watchdog enable */ +#define QEP_QEPCTL_UTE_Msk 0x00000002UL /*!< QEP unit timer enable */ +#define QEP_QEPCTL_QCLM_Msk 0x00000004UL /*!< QEP capture latch mode */ +#define QEP_QEPCTL_QPEN_Msk 0x00000008UL /*!< Quadrature position counter enable/software reset */ +#define QEP_QEPCTL_IEL_Msk 0x00000030UL /*!< Index event latch of position counter (software index marker) */ +#define QEP_QEPCTL_SEL_Msk 0x00000040UL /*!< Strobe event latch of position counter */ +#define QEP_QEPCTL_SWI_Msk 0x00000080UL /*!< Software initialization of position counter */ +#define QEP_QEPCTL_IEI_Msk 0x00000300UL /*!< Index event initialization of position counter */ +#define QEP_QEPCTL_SEI_Msk 0x00000C00UL /*!< Strobe event initialization of position counter */ +#define QEP_QEPCTL_PCRM_Msk 0x00003000UL /*!< Position counter reset mode */ +#define QEP_QEPCTL_FREESOFT_Msk 0x0000C000UL /*!< Emulation Control Bits */ + +/* Bit field enums: */ +typedef enum { + QEP_QEPCTL_IEL_NoLatch = 0x0UL, /*!< no position counter latch */ + QEP_QEPCTL_IEL_IndPos = 0x1UL, /*!< latch on index signal posedge */ + QEP_QEPCTL_IEL_IndNeg = 0x2UL, /*!< latch on index signal negedge */ + QEP_QEPCTL_IEL_IndMark = 0x3UL, /*!< latch on index marker */ +} QEP_QEPCTL_IEL_Enum; + +typedef enum { + QEP_QEPCTL_IEI_NoInit = 0x0UL, /*!< no initialization */ + QEP_QEPCTL_IEI_QEPIPos = 0x2UL, /*!< init on posedge QEPI */ + QEP_QEPCTL_IEI_QEPINeg = 0x3UL, /*!< init on negedge QEPI */ +} QEP_QEPCTL_IEI_Enum; + +typedef enum { + QEP_QEPCTL_SEI_NoInit = 0x0UL, /*!< no initialization */ + QEP_QEPCTL_SEI_QEPSPos = 0x2UL, /*!< init on posedge QEPI */ + QEP_QEPCTL_SEI_QEPSDir = 0x3UL, /*!< init depends on direction - on posedge if direction is up, on negedge if direction is down */ +} QEP_QEPCTL_SEI_Enum; + +typedef enum { + QEP_QEPCTL_PCRM_Ind = 0x0UL, /*!< reset on index */ + QEP_QEPCTL_PCRM_PosMax = 0x1UL, /*!< reset on max position count */ + QEP_QEPCTL_PCRM_FirstInd = 0x2UL, /*!< reset on the first index */ + QEP_QEPCTL_PCRM_Time = 0x3UL, /*!< reset on time counter */ +} QEP_QEPCTL_PCRM_Enum; + +typedef enum { + QEP_QEPCTL_FREESOFT_Stop = 0x0UL, /*!< counters are blocked */ + QEP_QEPCTL_FREESOFT_StopAtOvf = 0x1UL, /*!< stop after overflow */ + QEP_QEPCTL_FREESOFT_Free = 0x2UL, /*!< no count stop in debug mode */ +} QEP_QEPCTL_FREESOFT_Enum; + +/*-- QCAPCTL: Capture Control register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t UPPS :4; /*!< Unit position event prescaler */ + uint32_t CCPS :3; /*!< QEP capture timer clock prescaler */ + uint32_t SELEVENT :1; /*!< Reset timer control */ + uint32_t :7; /*!< RESERVED */ + uint32_t CEN :1; /*!< Enable eQEP capture */ + uint32_t EPSLD :1; /*!< Enhanced prescalers load */ +} _QEP_QCAPCTL_bits; + +/* Bit field positions: */ +#define QEP_QCAPCTL_UPPS_Pos 0 /*!< Unit position event prescaler */ +#define QEP_QCAPCTL_CCPS_Pos 4 /*!< QEP capture timer clock prescaler */ +#define QEP_QCAPCTL_SELEVENT_Pos 7 /*!< Reset timer control */ +#define QEP_QCAPCTL_CEN_Pos 15 /*!< Enable eQEP capture */ +#define QEP_QCAPCTL_EPSLD_Pos 16 /*!< Enhanced prescalers load */ + +/* Bit field masks: */ +#define QEP_QCAPCTL_UPPS_Msk 0x0000000FUL /*!< Unit position event prescaler */ +#define QEP_QCAPCTL_CCPS_Msk 0x00000070UL /*!< QEP capture timer clock prescaler */ +#define QEP_QCAPCTL_SELEVENT_Msk 0x00000080UL /*!< Reset timer control */ +#define QEP_QCAPCTL_CEN_Msk 0x00008000UL /*!< Enable eQEP capture */ +#define QEP_QCAPCTL_EPSLD_Msk 0x00010000UL /*!< Enhanced prescalers load */ + +/* Bit field enums: */ +typedef enum { + QEP_QCAPCTL_UPPS_Disable = 0x0UL, /*!< quad signal not divided */ + QEP_QCAPCTL_UPPS_Div2 = 0x1UL, /*!< quad signal divided by 2 */ + QEP_QCAPCTL_UPPS_Div4 = 0x2UL, /*!< quad signal divided by 4 */ + QEP_QCAPCTL_UPPS_Div8 = 0x3UL, /*!< quad signal divided by 8 */ + QEP_QCAPCTL_UPPS_Div16 = 0x4UL, /*!< quad signal divided by 16 */ + QEP_QCAPCTL_UPPS_Div32 = 0x5UL, /*!< quad signal divided by 32 */ + QEP_QCAPCTL_UPPS_Div64 = 0x6UL, /*!< quad signal divided by 64 */ + QEP_QCAPCTL_UPPS_Div128 = 0x7UL, /*!< quad signal divided by 128 */ + QEP_QCAPCTL_UPPS_Div256 = 0x8UL, /*!< quad signal divided by 256 */ + QEP_QCAPCTL_UPPS_Div512 = 0x9UL, /*!< quad signal divided by 512 */ + QEP_QCAPCTL_UPPS_Div1024 = 0xAUL, /*!< quad signal divided by 1024 */ + QEP_QCAPCTL_UPPS_Div2048 = 0xBUL, /*!< quad signal divided by 2048 */ +} QEP_QCAPCTL_UPPS_Enum; + +typedef enum { + QEP_QCAPCTL_CCPS_Disable = 0x0UL, /*!< no divider */ + QEP_QCAPCTL_CCPS_Div2 = 0x1UL, /*!< sysclk divided by 2 */ + QEP_QCAPCTL_CCPS_Div4 = 0x2UL, /*!< sysclk divided by 4 */ + QEP_QCAPCTL_CCPS_Div8 = 0x3UL, /*!< sysclk divided by 8 */ + QEP_QCAPCTL_CCPS_Div16 = 0x4UL, /*!< sysclk divided by 16 */ + QEP_QCAPCTL_CCPS_Div32 = 0x5UL, /*!< sysclk divided by 32 */ + QEP_QCAPCTL_CCPS_Div64 = 0x6UL, /*!< sysclk divided by 64 */ + QEP_QCAPCTL_CCPS_Div128 = 0x7UL, /*!< sysclk divided by 128 */ +} QEP_QCAPCTL_CCPS_Enum; + +/*-- QPOSCTL: Position-compare Control register --------------------------------------------------------------*/ +typedef struct { + uint32_t PCSPW :12; /*!< Select-position-compare sync output pulse width */ + uint32_t PCE :1; /*!< Position-compare enable/disable */ + uint32_t PCPOL :1; /*!< Polarity of sync output */ + uint32_t PCLOAD :1; /*!< Position-compare shadow load mode */ + uint32_t PCSHDW :1; /*!< Position-compare shadow enable */ +} _QEP_QPOSCTL_bits; + +/* Bit field positions: */ +#define QEP_QPOSCTL_PCSPW_Pos 0 /*!< Select-position-compare sync output pulse width */ +#define QEP_QPOSCTL_PCE_Pos 12 /*!< Position-compare enable/disable */ +#define QEP_QPOSCTL_PCPOL_Pos 13 /*!< Polarity of sync output */ +#define QEP_QPOSCTL_PCLOAD_Pos 14 /*!< Position-compare shadow load mode */ +#define QEP_QPOSCTL_PCSHDW_Pos 15 /*!< Position-compare shadow enable */ + +/* Bit field masks: */ +#define QEP_QPOSCTL_PCSPW_Msk 0x00000FFFUL /*!< Select-position-compare sync output pulse width */ +#define QEP_QPOSCTL_PCE_Msk 0x00001000UL /*!< Position-compare enable/disable */ +#define QEP_QPOSCTL_PCPOL_Msk 0x00002000UL /*!< Polarity of sync output */ +#define QEP_QPOSCTL_PCLOAD_Msk 0x00004000UL /*!< Position-compare shadow load mode */ +#define QEP_QPOSCTL_PCSHDW_Msk 0x00008000UL /*!< Position-compare shadow enable */ + +/*-- QEINT: Interrupt Enable register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t PCE :1; /*!< Position counter error interrupt enable */ + uint32_t QPE :1; /*!< Quadrature phase error interrupt enable */ + uint32_t QDC :1; /*!< Quadrature direction change interrupt enable */ + uint32_t WTO :1; /*!< Watchdog time out interrupt enable */ + uint32_t PCU :1; /*!< Position counter underflow interrupt enable */ + uint32_t PCO :1; /*!< Position counter overflow interrupt enable */ + uint32_t PCR :1; /*!< Position-compare ready interrupt enable */ + uint32_t PCM :1; /*!< Position-compare match interrupt enable */ + uint32_t SEL :1; /*!< Strobe event latch interrupt enable */ + uint32_t IEL :1; /*!< Index event latch interrupt enable */ + uint32_t UTO :1; /*!< Unit time out interrupt enable */ +} _QEP_QEINT_bits; + +/* Bit field positions: */ +#define QEP_QEINT_PCE_Pos 1 /*!< Position counter error interrupt enable */ +#define QEP_QEINT_QPE_Pos 2 /*!< Quadrature phase error interrupt enable */ +#define QEP_QEINT_QDC_Pos 3 /*!< Quadrature direction change interrupt enable */ +#define QEP_QEINT_WTO_Pos 4 /*!< Watchdog time out interrupt enable */ +#define QEP_QEINT_PCU_Pos 5 /*!< Position counter underflow interrupt enable */ +#define QEP_QEINT_PCO_Pos 6 /*!< Position counter overflow interrupt enable */ +#define QEP_QEINT_PCR_Pos 7 /*!< Position-compare ready interrupt enable */ +#define QEP_QEINT_PCM_Pos 8 /*!< Position-compare match interrupt enable */ +#define QEP_QEINT_SEL_Pos 9 /*!< Strobe event latch interrupt enable */ +#define QEP_QEINT_IEL_Pos 10 /*!< Index event latch interrupt enable */ +#define QEP_QEINT_UTO_Pos 11 /*!< Unit time out interrupt enable */ + +/* Bit field masks: */ +#define QEP_QEINT_PCE_Msk 0x00000002UL /*!< Position counter error interrupt enable */ +#define QEP_QEINT_QPE_Msk 0x00000004UL /*!< Quadrature phase error interrupt enable */ +#define QEP_QEINT_QDC_Msk 0x00000008UL /*!< Quadrature direction change interrupt enable */ +#define QEP_QEINT_WTO_Msk 0x00000010UL /*!< Watchdog time out interrupt enable */ +#define QEP_QEINT_PCU_Msk 0x00000020UL /*!< Position counter underflow interrupt enable */ +#define QEP_QEINT_PCO_Msk 0x00000040UL /*!< Position counter overflow interrupt enable */ +#define QEP_QEINT_PCR_Msk 0x00000080UL /*!< Position-compare ready interrupt enable */ +#define QEP_QEINT_PCM_Msk 0x00000100UL /*!< Position-compare match interrupt enable */ +#define QEP_QEINT_SEL_Msk 0x00000200UL /*!< Strobe event latch interrupt enable */ +#define QEP_QEINT_IEL_Msk 0x00000400UL /*!< Index event latch interrupt enable */ +#define QEP_QEINT_UTO_Msk 0x00000800UL /*!< Unit time out interrupt enable */ + +/*-- QFLG: Interrupt Flag register ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Global interrupt status flag */ + uint32_t PCE :1; /*!< Position counter error interrupt flag */ + uint32_t QPE :1; /*!< Quadrature phase error interrupt flag */ + uint32_t QDC :1; /*!< Quadrature direction change interrupt flag */ + uint32_t WTO :1; /*!< Watchdog timeout interrupt flag */ + uint32_t PCU :1; /*!< Position counter underflow interrupt flag */ + uint32_t PCO :1; /*!< Position counter overflow interrupt flag */ + uint32_t PCR :1; /*!< Position-compare ready interrupt flag */ + uint32_t PCM :1; /*!< QEP compare match event interrupt flag */ + uint32_t SEL :1; /*!< Strobe event latch interrupt flag + */ + uint32_t IEL :1; /*!< Index event latch interrupt flag */ + uint32_t UTO :1; /*!< Unit time out interrupt flag */ + uint32_t :4; /*!< RESERVED */ + uint32_t QFLGLAT :12; /*!< Latches QFLG[11:0] on every QPOSCNT read */ +} _QEP_QFLG_bits; + +/* Bit field positions: */ +#define QEP_QFLG_INT_Pos 0 /*!< Global interrupt status flag */ +#define QEP_QFLG_PCE_Pos 1 /*!< Position counter error interrupt flag */ +#define QEP_QFLG_QPE_Pos 2 /*!< Quadrature phase error interrupt flag */ +#define QEP_QFLG_QDC_Pos 3 /*!< Quadrature direction change interrupt flag */ +#define QEP_QFLG_WTO_Pos 4 /*!< Watchdog timeout interrupt flag */ +#define QEP_QFLG_PCU_Pos 5 /*!< Position counter underflow interrupt flag */ +#define QEP_QFLG_PCO_Pos 6 /*!< Position counter overflow interrupt flag */ +#define QEP_QFLG_PCR_Pos 7 /*!< Position-compare ready interrupt flag */ +#define QEP_QFLG_PCM_Pos 8 /*!< QEP compare match event interrupt flag */ +#define QEP_QFLG_SEL_Pos 9 /*!< Strobe event latch interrupt flag + */ +#define QEP_QFLG_IEL_Pos 10 /*!< Index event latch interrupt flag */ +#define QEP_QFLG_UTO_Pos 11 /*!< Unit time out interrupt flag */ +#define QEP_QFLG_QFLGLAT_Pos 16 /*!< Latches QFLG[11:0] on every QPOSCNT read */ + +/* Bit field masks: */ +#define QEP_QFLG_INT_Msk 0x00000001UL /*!< Global interrupt status flag */ +#define QEP_QFLG_PCE_Msk 0x00000002UL /*!< Position counter error interrupt flag */ +#define QEP_QFLG_QPE_Msk 0x00000004UL /*!< Quadrature phase error interrupt flag */ +#define QEP_QFLG_QDC_Msk 0x00000008UL /*!< Quadrature direction change interrupt flag */ +#define QEP_QFLG_WTO_Msk 0x00000010UL /*!< Watchdog timeout interrupt flag */ +#define QEP_QFLG_PCU_Msk 0x00000020UL /*!< Position counter underflow interrupt flag */ +#define QEP_QFLG_PCO_Msk 0x00000040UL /*!< Position counter overflow interrupt flag */ +#define QEP_QFLG_PCR_Msk 0x00000080UL /*!< Position-compare ready interrupt flag */ +#define QEP_QFLG_PCM_Msk 0x00000100UL /*!< QEP compare match event interrupt flag */ +#define QEP_QFLG_SEL_Msk 0x00000200UL /*!< Strobe event latch interrupt flag + */ +#define QEP_QFLG_IEL_Msk 0x00000400UL /*!< Index event latch interrupt flag */ +#define QEP_QFLG_UTO_Msk 0x00000800UL /*!< Unit time out interrupt flag */ +#define QEP_QFLG_QFLGLAT_Msk 0x0FFF0000UL /*!< Latches QFLG[11:0] on every QPOSCNT read */ + +/*-- QCLR: Interrupt Clear register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Global interrupt clear flag */ + uint32_t PCE :1; /*!< Clear position counter error interrupt flag */ + uint32_t QPE :1; /*!< Clear quadrature phase error interrupt flag */ + uint32_t QDC :1; /*!< Clear quadrature direction change interrupt flag */ + uint32_t WTO :1; /*!< Clear watchdog timeout interrupt flag */ + uint32_t PCU :1; /*!< Clear position counter underflow interrupt flag */ + uint32_t PCO :1; /*!< Clear position counter overflow interrupt flag */ + uint32_t PCR :1; /*!< Clear position-compare ready interrupt flag */ + uint32_t PCM :1; /*!< Clear eQEP compare match event interrupt flag */ + uint32_t SEL :1; /*!< Clear strobe event latch interrupt flag */ + uint32_t IEL :1; /*!< Clear index event latch interrupt flag */ + uint32_t UTO :1; /*!< Clear unit time out interrupt flag */ +} _QEP_QCLR_bits; + +/* Bit field positions: */ +#define QEP_QCLR_INT_Pos 0 /*!< Global interrupt clear flag */ +#define QEP_QCLR_PCE_Pos 1 /*!< Clear position counter error interrupt flag */ +#define QEP_QCLR_QPE_Pos 2 /*!< Clear quadrature phase error interrupt flag */ +#define QEP_QCLR_QDC_Pos 3 /*!< Clear quadrature direction change interrupt flag */ +#define QEP_QCLR_WTO_Pos 4 /*!< Clear watchdog timeout interrupt flag */ +#define QEP_QCLR_PCU_Pos 5 /*!< Clear position counter underflow interrupt flag */ +#define QEP_QCLR_PCO_Pos 6 /*!< Clear position counter overflow interrupt flag */ +#define QEP_QCLR_PCR_Pos 7 /*!< Clear position-compare ready interrupt flag */ +#define QEP_QCLR_PCM_Pos 8 /*!< Clear eQEP compare match event interrupt flag */ +#define QEP_QCLR_SEL_Pos 9 /*!< Clear strobe event latch interrupt flag */ +#define QEP_QCLR_IEL_Pos 10 /*!< Clear index event latch interrupt flag */ +#define QEP_QCLR_UTO_Pos 11 /*!< Clear unit time out interrupt flag */ + +/* Bit field masks: */ +#define QEP_QCLR_INT_Msk 0x00000001UL /*!< Global interrupt clear flag */ +#define QEP_QCLR_PCE_Msk 0x00000002UL /*!< Clear position counter error interrupt flag */ +#define QEP_QCLR_QPE_Msk 0x00000004UL /*!< Clear quadrature phase error interrupt flag */ +#define QEP_QCLR_QDC_Msk 0x00000008UL /*!< Clear quadrature direction change interrupt flag */ +#define QEP_QCLR_WTO_Msk 0x00000010UL /*!< Clear watchdog timeout interrupt flag */ +#define QEP_QCLR_PCU_Msk 0x00000020UL /*!< Clear position counter underflow interrupt flag */ +#define QEP_QCLR_PCO_Msk 0x00000040UL /*!< Clear position counter overflow interrupt flag */ +#define QEP_QCLR_PCR_Msk 0x00000080UL /*!< Clear position-compare ready interrupt flag */ +#define QEP_QCLR_PCM_Msk 0x00000100UL /*!< Clear eQEP compare match event interrupt flag */ +#define QEP_QCLR_SEL_Msk 0x00000200UL /*!< Clear strobe event latch interrupt flag */ +#define QEP_QCLR_IEL_Msk 0x00000400UL /*!< Clear index event latch interrupt flag */ +#define QEP_QCLR_UTO_Msk 0x00000800UL /*!< Clear unit time out interrupt flag */ + +/*-- QFRC: Interrupt Force register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t PCE :1; /*!< Force position counter error interrupt */ + uint32_t QPE :1; /*!< Force quadrature phase error interrupt */ + uint32_t QDC :1; /*!< Force quadrature direction change interrupt */ + uint32_t WTO :1; /*!< Force watchdog time out interrupt */ + uint32_t PCU :1; /*!< Force position counter underflow interrupt */ + uint32_t PCO :1; /*!< Force position counter overflow interrupt */ + uint32_t PCR :1; /*!< Force position-compare ready interrupt */ + uint32_t PCM :1; /*!< Force position-compare match interrupt */ + uint32_t SEL :1; /*!< Force strobe event latch interrupt */ + uint32_t IEL :1; /*!< Force index event latch interrupt */ + uint32_t UTO :1; /*!< Force unit time out interrupt */ +} _QEP_QFRC_bits; + +/* Bit field positions: */ +#define QEP_QFRC_PCE_Pos 1 /*!< Force position counter error interrupt */ +#define QEP_QFRC_QPE_Pos 2 /*!< Force quadrature phase error interrupt */ +#define QEP_QFRC_QDC_Pos 3 /*!< Force quadrature direction change interrupt */ +#define QEP_QFRC_WTO_Pos 4 /*!< Force watchdog time out interrupt */ +#define QEP_QFRC_PCU_Pos 5 /*!< Force position counter underflow interrupt */ +#define QEP_QFRC_PCO_Pos 6 /*!< Force position counter overflow interrupt */ +#define QEP_QFRC_PCR_Pos 7 /*!< Force position-compare ready interrupt */ +#define QEP_QFRC_PCM_Pos 8 /*!< Force position-compare match interrupt */ +#define QEP_QFRC_SEL_Pos 9 /*!< Force strobe event latch interrupt */ +#define QEP_QFRC_IEL_Pos 10 /*!< Force index event latch interrupt */ +#define QEP_QFRC_UTO_Pos 11 /*!< Force unit time out interrupt */ + +/* Bit field masks: */ +#define QEP_QFRC_PCE_Msk 0x00000002UL /*!< Force position counter error interrupt */ +#define QEP_QFRC_QPE_Msk 0x00000004UL /*!< Force quadrature phase error interrupt */ +#define QEP_QFRC_QDC_Msk 0x00000008UL /*!< Force quadrature direction change interrupt */ +#define QEP_QFRC_WTO_Msk 0x00000010UL /*!< Force watchdog time out interrupt */ +#define QEP_QFRC_PCU_Msk 0x00000020UL /*!< Force position counter underflow interrupt */ +#define QEP_QFRC_PCO_Msk 0x00000040UL /*!< Force position counter overflow interrupt */ +#define QEP_QFRC_PCR_Msk 0x00000080UL /*!< Force position-compare ready interrupt */ +#define QEP_QFRC_PCM_Msk 0x00000100UL /*!< Force position-compare match interrupt */ +#define QEP_QFRC_SEL_Msk 0x00000200UL /*!< Force strobe event latch interrupt */ +#define QEP_QFRC_IEL_Msk 0x00000400UL /*!< Force index event latch interrupt */ +#define QEP_QFRC_UTO_Msk 0x00000800UL /*!< Force unit time out interrupt */ + +/*-- QEPSTS: Status register ---------------------------------------------------------------------------------*/ +typedef struct { + uint32_t PCEF :1; /*!< Position counter error flag */ + uint32_t FIMF :1; /*!< First index marker flag */ + uint32_t CDEF :1; /*!< Capture direction error flag */ + uint32_t COEF :1; /*!< Capture overflow error flag */ + uint32_t QDLF :1; /*!< QEP direction latch flag */ + uint32_t QDF :1; /*!< Quadrature direction flag */ + uint32_t FIDF :1; /*!< Direction on the first index marker */ + uint32_t UPEVNT :1; /*!< Unit position event flag */ + uint32_t DCF :1; /*!< Direction change flag */ +} _QEP_QEPSTS_bits; + +/* Bit field positions: */ +#define QEP_QEPSTS_PCEF_Pos 0 /*!< Position counter error flag */ +#define QEP_QEPSTS_FIMF_Pos 1 /*!< First index marker flag */ +#define QEP_QEPSTS_CDEF_Pos 2 /*!< Capture direction error flag */ +#define QEP_QEPSTS_COEF_Pos 3 /*!< Capture overflow error flag */ +#define QEP_QEPSTS_QDLF_Pos 4 /*!< QEP direction latch flag */ +#define QEP_QEPSTS_QDF_Pos 5 /*!< Quadrature direction flag */ +#define QEP_QEPSTS_FIDF_Pos 6 /*!< Direction on the first index marker */ +#define QEP_QEPSTS_UPEVNT_Pos 7 /*!< Unit position event flag */ +#define QEP_QEPSTS_DCF_Pos 8 /*!< Direction change flag */ + +/* Bit field masks: */ +#define QEP_QEPSTS_PCEF_Msk 0x00000001UL /*!< Position counter error flag */ +#define QEP_QEPSTS_FIMF_Msk 0x00000002UL /*!< First index marker flag */ +#define QEP_QEPSTS_CDEF_Msk 0x00000004UL /*!< Capture direction error flag */ +#define QEP_QEPSTS_COEF_Msk 0x00000008UL /*!< Capture overflow error flag */ +#define QEP_QEPSTS_QDLF_Msk 0x00000010UL /*!< QEP direction latch flag */ +#define QEP_QEPSTS_QDF_Msk 0x00000020UL /*!< Quadrature direction flag */ +#define QEP_QEPSTS_FIDF_Msk 0x00000040UL /*!< Direction on the first index marker */ +#define QEP_QEPSTS_UPEVNT_Msk 0x00000080UL /*!< Unit position event flag */ +#define QEP_QEPSTS_DCF_Msk 0x00000100UL /*!< Direction change flag */ + +/*-- QCTMR: Capture Timer register ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QCTMR_bits; + +/* Bit field positions: */ +#define QEP_QCTMR_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QCTMR_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QCPRD: Capture Period register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QCPRD_bits; + +/* Bit field positions: */ +#define QEP_QCPRD_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QCPRD_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QCTMRLAT: Capture Timer Latch register ------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QCTMRLAT_bits; + +/* Bit field positions: */ +#define QEP_QCTMRLAT_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QCTMRLAT_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- QCPRDLAT: Capture Period Latch register -----------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _QEP_QCPRDLAT_bits; + +/* Bit field positions: */ +#define QEP_QCPRDLAT_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define QEP_QCPRDLAT_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- DMAREQ: DMA request register ----------------------------------------------------------------------------*/ +typedef struct { + uint32_t DMAEN :1; /*!< DMA request enable */ +} _QEP_DMAREQ_bits; + +/* Bit field positions: */ +#define QEP_DMAREQ_DMAEN_Pos 0 /*!< DMA request enable */ + +/* Bit field masks: */ +#define QEP_DMAREQ_DMAEN_Msk 0x00000001UL /*!< DMA request enable */ + +/*-- INTCLR: Clear active interrupt register -----------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Active interrupt by read, write 1 to clear interrupt */ +} _QEP_INTCLR_bits; + +/* Bit field positions: */ +#define QEP_INTCLR_INT_Pos 0 /*!< Active interrupt by read, write 1 to clear interrupt */ + +/* Bit field masks: */ +#define QEP_INTCLR_INT_Msk 0x00000001UL /*!< Active interrupt by read, write 1 to clear interrupt */ + +typedef struct { + union { /*!< Position Counter register */ + __IO uint32_t QPOSCNT; /*!< QPOSCNT : type used for word access */ + __IO _QEP_QPOSCNT_bits QPOSCNT_bit; /*!< QPOSCNT_bit: structure used for bit access */ + }; + union { /*!< Position Counter Initialization register */ + __IO uint32_t QPOSINIT; /*!< QPOSINIT : type used for word access */ + __IO _QEP_QPOSINIT_bits QPOSINIT_bit; /*!< QPOSINIT_bit: structure used for bit access */ + }; + union { /*!< Maximum Position Count register */ + __IO uint32_t QPOSMAX; /*!< QPOSMAX : type used for word access */ + __IO _QEP_QPOSMAX_bits QPOSMAX_bit; /*!< QPOSMAX_bit: structure used for bit access */ + }; + union { /*!< Position-compare register */ + __IO uint32_t QPOSCMP; /*!< QPOSCMP : type used for word access */ + __IO _QEP_QPOSCMP_bits QPOSCMP_bit; /*!< QPOSCMP_bit: structure used for bit access */ + }; + union { /*!< Index Position Latch register */ + __I uint32_t QPOSILAT; /*!< QPOSILAT : type used for word access */ + __I _QEP_QPOSILAT_bits QPOSILAT_bit; /*!< QPOSILAT_bit: structure used for bit access */ + }; + union { /*!< Strobe Position Latch register */ + __I uint32_t QPOSSLAT; /*!< QPOSSLAT : type used for word access */ + __I _QEP_QPOSSLAT_bits QPOSSLAT_bit; /*!< QPOSSLAT_bit: structure used for bit access */ + }; + union { /*!< Position Counter Latch register */ + __I uint32_t QPOSLAT; /*!< QPOSLAT : type used for word access */ + __I _QEP_QPOSLAT_bits QPOSLAT_bit; /*!< QPOSLAT_bit: structure used for bit access */ + }; + union { /*!< Unit Timer register */ + __IO uint32_t QUTMR; /*!< QUTMR : type used for word access */ + __IO _QEP_QUTMR_bits QUTMR_bit; /*!< QUTMR_bit: structure used for bit access */ + }; + union { /*!< Unit Period register */ + __IO uint32_t QUPRD; /*!< QUPRD : type used for word access */ + __IO _QEP_QUPRD_bits QUPRD_bit; /*!< QUPRD_bit: structure used for bit access */ + }; + union { /*!< Watchdog Timer register */ + __IO uint32_t QWDTMR; /*!< QWDTMR : type used for word access */ + __IO _QEP_QWDTMR_bits QWDTMR_bit; /*!< QWDTMR_bit: structure used for bit access */ + }; + union { /*!< Watchdog Period register */ + __IO uint32_t QWDPRD; /*!< QWDPRD : type used for word access */ + __IO _QEP_QWDPRD_bits QWDPRD_bit; /*!< QWDPRD_bit: structure used for bit access */ + }; + union { /*!< Decoder Control register */ + __IO uint32_t QDECCTL; /*!< QDECCTL : type used for word access */ + __IO _QEP_QDECCTL_bits QDECCTL_bit; /*!< QDECCTL_bit: structure used for bit access */ + }; + union { /*!< Control register */ + __IO uint32_t QEPCTL; /*!< QEPCTL : type used for word access */ + __IO _QEP_QEPCTL_bits QEPCTL_bit; /*!< QEPCTL_bit: structure used for bit access */ + }; + union { /*!< Capture Control register */ + __IO uint32_t QCAPCTL; /*!< QCAPCTL : type used for word access */ + __IO _QEP_QCAPCTL_bits QCAPCTL_bit; /*!< QCAPCTL_bit: structure used for bit access */ + }; + union { /*!< Position-compare Control register */ + __IO uint32_t QPOSCTL; /*!< QPOSCTL : type used for word access */ + __IO _QEP_QPOSCTL_bits QPOSCTL_bit; /*!< QPOSCTL_bit: structure used for bit access */ + }; + union { /*!< Interrupt Enable register */ + __IO uint32_t QEINT; /*!< QEINT : type used for word access */ + __IO _QEP_QEINT_bits QEINT_bit; /*!< QEINT_bit: structure used for bit access */ + }; + union { /*!< Interrupt Flag register */ + __I uint32_t QFLG; /*!< QFLG : type used for word access */ + __I _QEP_QFLG_bits QFLG_bit; /*!< QFLG_bit: structure used for bit access */ + }; + union { /*!< Interrupt Clear register */ + __IO uint32_t QCLR; /*!< QCLR : type used for word access */ + __IO _QEP_QCLR_bits QCLR_bit; /*!< QCLR_bit: structure used for bit access */ + }; + union { /*!< Interrupt Force register */ + __IO uint32_t QFRC; /*!< QFRC : type used for word access */ + __IO _QEP_QFRC_bits QFRC_bit; /*!< QFRC_bit: structure used for bit access */ + }; + union { /*!< Status register */ + __IO uint32_t QEPSTS; /*!< QEPSTS : type used for word access */ + __IO _QEP_QEPSTS_bits QEPSTS_bit; /*!< QEPSTS_bit: structure used for bit access */ + }; + union { /*!< Capture Timer register */ + __IO uint32_t QCTMR; /*!< QCTMR : type used for word access */ + __IO _QEP_QCTMR_bits QCTMR_bit; /*!< QCTMR_bit: structure used for bit access */ + }; + union { /*!< Capture Period register */ + __IO uint32_t QCPRD; /*!< QCPRD : type used for word access */ + __IO _QEP_QCPRD_bits QCPRD_bit; /*!< QCPRD_bit: structure used for bit access */ + }; + union { /*!< Capture Timer Latch register */ + __I uint32_t QCTMRLAT; /*!< QCTMRLAT : type used for word access */ + __I _QEP_QCTMRLAT_bits QCTMRLAT_bit; /*!< QCTMRLAT_bit: structure used for bit access */ + }; + union { /*!< Capture Period Latch register */ + __I uint32_t QCPRDLAT; /*!< QCPRDLAT : type used for word access */ + __I _QEP_QCPRDLAT_bits QCPRDLAT_bit; /*!< QCPRDLAT_bit: structure used for bit access */ + }; + union { /*!< DMA request register */ + __IO uint32_t DMAREQ; /*!< DMAREQ : type used for word access */ + __IO _QEP_DMAREQ_bits DMAREQ_bit; /*!< DMAREQ_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[3]; + union { /*!< Clear active interrupt register */ + __IO uint32_t INTCLR; /*!< INTCLR : type used for word access */ + __IO _QEP_INTCLR_bits INTCLR_bit; /*!< INTCLR_bit: structure used for bit access */ + }; +} QEP_TypeDef; + + +/******************************************************************************/ +/* ECAP registers */ +/******************************************************************************/ + +/*-- TSCTR: Counter register ---------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Counter value */ +} _ECAP_TSCTR_bits; + +/* Bit field positions: */ +#define ECAP_TSCTR_VAL_Pos 0 /*!< Counter value */ + +/* Bit field masks: */ +#define ECAP_TSCTR_VAL_Msk 0xFFFFFFFFUL /*!< Counter value */ + +/*-- CTRPHS: Counter Phase Sync register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< */ +} _ECAP_CTRPHS_bits; + +/* Bit field positions: */ +#define ECAP_CTRPHS_VAL_Pos 0 /*!< */ + +/* Bit field masks: */ +#define ECAP_CTRPHS_VAL_Msk 0xFFFFFFFFUL /*!< */ + +/*-- CAP0: Capture register 0 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Capture 0 value in CAP mode */ +} _ECAP_CAP0_bits; + +/* Bit field positions: */ +#define ECAP_CAP0_VAL_Pos 0 /*!< Capture 0 value in CAP mode */ + +/* Bit field masks: */ +#define ECAP_CAP0_VAL_Msk 0xFFFFFFFFUL /*!< Capture 0 value in CAP mode */ + +/*-- PRD: Period register ------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Period value in APWM mode */ +} _ECAP_PRD_bits; + +/* Bit field positions: */ +#define ECAP_PRD_VAL_Pos 0 /*!< Period value in APWM mode */ + +/* Bit field masks: */ +#define ECAP_PRD_VAL_Msk 0xFFFFFFFFUL /*!< Period value in APWM mode */ + +/*-- CAP1: Capture register 1 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Capture 1 value in CAP mode */ +} _ECAP_CAP1_bits; + +/* Bit field positions: */ +#define ECAP_CAP1_VAL_Pos 0 /*!< Capture 1 value in CAP mode */ + +/* Bit field masks: */ +#define ECAP_CAP1_VAL_Msk 0xFFFFFFFFUL /*!< Capture 1 value in CAP mode */ + +/*-- CMP: Compare register -----------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Compare value in APWM mode */ +} _ECAP_CMP_bits; + +/* Bit field positions: */ +#define ECAP_CMP_VAL_Pos 0 /*!< Compare value in APWM mode */ + +/* Bit field masks: */ +#define ECAP_CMP_VAL_Msk 0xFFFFFFFFUL /*!< Compare value in APWM mode */ + +/*-- CAP2: Capture register 2 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Capture 2 value in CAP mode */ +} _ECAP_CAP2_bits; + +/* Bit field positions: */ +#define ECAP_CAP2_VAL_Pos 0 /*!< Capture 2 value in CAP mode */ + +/* Bit field masks: */ +#define ECAP_CAP2_VAL_Msk 0xFFFFFFFFUL /*!< Capture 2 value in CAP mode */ + +/*-- PRDSHDW: Period shadow register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Period shadow value in APWM mode */ +} _ECAP_PRDSHDW_bits; + +/* Bit field positions: */ +#define ECAP_PRDSHDW_VAL_Pos 0 /*!< Period shadow value in APWM mode */ + +/* Bit field masks: */ +#define ECAP_PRDSHDW_VAL_Msk 0xFFFFFFFFUL /*!< Period shadow value in APWM mode */ + +/*-- CAP3: Capture register 3 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Capture 3 value in CAP mode */ +} _ECAP_CAP3_bits; + +/* Bit field positions: */ +#define ECAP_CAP3_VAL_Pos 0 /*!< Capture 3 value in CAP mode */ + +/* Bit field masks: */ +#define ECAP_CAP3_VAL_Msk 0xFFFFFFFFUL /*!< Capture 3 value in CAP mode */ + +/*-- CMPSHDW: Compare shadow register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :32; /*!< Compare shadow value in APWM mode */ +} _ECAP_CMPSHDW_bits; + +/* Bit field positions: */ +#define ECAP_CMPSHDW_VAL_Pos 0 /*!< Compare shadow value in APWM mode */ + +/* Bit field masks: */ +#define ECAP_CMPSHDW_VAL_Msk 0xFFFFFFFFUL /*!< Compare shadow value in APWM mode */ + +/*-- ECCTL0: Capture control register 0 ---------------------------------------------------------------------*/ +typedef struct { + uint32_t CAP0POL :1; /*!< Polarity select for capture 0 */ + uint32_t CTRRST0 :1; /*!< Reset counter after event 0 */ + uint32_t CAP1POL :1; /*!< Polarity select for capture 1 */ + uint32_t CTRRST1 :1; /*!< Reset counter after event 1 */ + uint32_t CAP2POL :1; /*!< Polarity select for capture 2 */ + uint32_t CTRRST2 :1; /*!< Reset counter after event 2 */ + uint32_t CAP3POL :1; /*!< Polarity select for capture 3 */ + uint32_t CTRRST3 :1; /*!< Reset counter after event 3 */ + uint32_t CAPLDEN :1; /*!< enable capture */ + uint32_t PRESCALE :5; /*!< Prescaler value */ + uint32_t FREESOFT :2; /*!< Emulation mode control */ +} _ECAP_ECCTL0_bits; + +/* Bit field positions: */ +#define ECAP_ECCTL0_CAP0POL_Pos 0 /*!< Polarity select for capture 0 */ +#define ECAP_ECCTL0_CTRRST0_Pos 1 /*!< Reset counter after event 0 */ +#define ECAP_ECCTL0_CAP1POL_Pos 2 /*!< Polarity select for capture 1 */ +#define ECAP_ECCTL0_CTRRST1_Pos 3 /*!< Reset counter after event 1 */ +#define ECAP_ECCTL0_CAP2POL_Pos 4 /*!< Polarity select for capture 2 */ +#define ECAP_ECCTL0_CTRRST2_Pos 5 /*!< Reset counter after event 2 */ +#define ECAP_ECCTL0_CAP3POL_Pos 6 /*!< Polarity select for capture 3 */ +#define ECAP_ECCTL0_CTRRST3_Pos 7 /*!< Reset counter after event 3 */ +#define ECAP_ECCTL0_CAPLDEN_Pos 8 /*!< enable capture */ +#define ECAP_ECCTL0_PRESCALE_Pos 9 /*!< Prescaler value */ +#define ECAP_ECCTL0_FREESOFT_Pos 14 /*!< Emulation mode control */ + +/* Bit field masks: */ +#define ECAP_ECCTL0_CAP0POL_Msk 0x00000001UL /*!< Polarity select for capture 0 */ +#define ECAP_ECCTL0_CTRRST0_Msk 0x00000002UL /*!< Reset counter after event 0 */ +#define ECAP_ECCTL0_CAP1POL_Msk 0x00000004UL /*!< Polarity select for capture 1 */ +#define ECAP_ECCTL0_CTRRST1_Msk 0x00000008UL /*!< Reset counter after event 1 */ +#define ECAP_ECCTL0_CAP2POL_Msk 0x00000010UL /*!< Polarity select for capture 2 */ +#define ECAP_ECCTL0_CTRRST2_Msk 0x00000020UL /*!< Reset counter after event 2 */ +#define ECAP_ECCTL0_CAP3POL_Msk 0x00000040UL /*!< Polarity select for capture 3 */ +#define ECAP_ECCTL0_CTRRST3_Msk 0x00000080UL /*!< Reset counter after event 3 */ +#define ECAP_ECCTL0_CAPLDEN_Msk 0x00000100UL /*!< enable capture */ +#define ECAP_ECCTL0_PRESCALE_Msk 0x00003E00UL /*!< Prescaler value */ +#define ECAP_ECCTL0_FREESOFT_Msk 0x0000C000UL /*!< Emulation mode control */ + +/* Bit field enums: */ +typedef enum { + ECAP_ECCTL0_FREESOFT_Stop = 0x0UL, /*!< stop timer immedeatelly */ + ECAP_ECCTL0_FREESOFT_StopAtZero = 0x1UL, /*!< stop timer when reach zero */ + ECAP_ECCTL0_FREESOFT_Free = 0x2UL, /*!< normal work */ +} ECAP_ECCTL0_FREESOFT_Enum; + +/*-- ECCTL1: Capture control register 1 ----------------------------------------------------------------------*/ +typedef struct { + uint32_t CONTOST :1; /*!< Capture mode */ + uint32_t STOPWRAP :2; /*!< Stop compare value */ + uint32_t REARM :1; /*!< Reset and enable controller, capture reg load */ + uint32_t TSCTRSTOP :1; /*!< Enable Timer */ + uint32_t SYNCIEN :1; /*!< Sync in enable */ + uint32_t SYNCOSEL :2; /*!< SYNCO source selection */ + uint32_t SWSYNC :1; /*!< Software timers sync */ + uint32_t CAPAPWM :1; /*!< Capture mode or APWM mode */ + uint32_t APWMPOL :1; /*!< High/low level APWM */ +} _ECAP_ECCTL1_bits; + +/* Bit field positions: */ +#define ECAP_ECCTL1_CONTOST_Pos 0 /*!< Capture mode */ +#define ECAP_ECCTL1_STOPWRAP_Pos 1 /*!< Stop compare value */ +#define ECAP_ECCTL1_REARM_Pos 3 /*!< Reset and enable controller, capture reg load */ +#define ECAP_ECCTL1_TSCTRSTOP_Pos 4 /*!< Enable Timer */ +#define ECAP_ECCTL1_SYNCIEN_Pos 5 /*!< Sync in enable */ +#define ECAP_ECCTL1_SYNCOSEL_Pos 6 /*!< SYNCO source selection */ +#define ECAP_ECCTL1_SWSYNC_Pos 8 /*!< Software timers sync */ +#define ECAP_ECCTL1_CAPAPWM_Pos 9 /*!< Capture mode or APWM mode */ +#define ECAP_ECCTL1_APWMPOL_Pos 10 /*!< High/low level APWM */ + +/* Bit field masks: */ +#define ECAP_ECCTL1_CONTOST_Msk 0x00000001UL /*!< Capture mode */ +#define ECAP_ECCTL1_STOPWRAP_Msk 0x00000006UL /*!< Stop compare value */ +#define ECAP_ECCTL1_REARM_Msk 0x00000008UL /*!< Reset and enable controller, capture reg load */ +#define ECAP_ECCTL1_TSCTRSTOP_Msk 0x00000010UL /*!< Enable Timer */ +#define ECAP_ECCTL1_SYNCIEN_Msk 0x00000020UL /*!< Sync in enable */ +#define ECAP_ECCTL1_SYNCOSEL_Msk 0x000000C0UL /*!< SYNCO source selection */ +#define ECAP_ECCTL1_SWSYNC_Msk 0x00000100UL /*!< Software timers sync */ +#define ECAP_ECCTL1_CAPAPWM_Msk 0x00000200UL /*!< Capture mode or APWM mode */ +#define ECAP_ECCTL1_APWMPOL_Msk 0x00000400UL /*!< High/low level APWM */ + +/* Bit field enums: */ +typedef enum { + ECAP_ECCTL1_SYNCOSEL_Bypass = 0x0UL, /*!< sync in connected with sync out */ + ECAP_ECCTL1_SYNCOSEL_CTREqPrd = 0x1UL, /*!< sync out generated when CTR = PRD */ + ECAP_ECCTL1_SYNCOSEL_Disable = 0x2UL, /*!< sync out generate disabled */ +} ECAP_ECCTL1_SYNCOSEL_Enum; + +/*-- ECEINT: Interrupt mask register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t CEVT0 :1; /*!< enable int CEVT0 */ + uint32_t CEVT1 :1; /*!< enable int CEVT1 */ + uint32_t CEVT2 :1; /*!< enable int CEVT2 */ + uint32_t CEVT3 :1; /*!< enable int CEVT3 */ + uint32_t CTROVF :1; /*!< enable int CTR_OVF */ + uint32_t CTRPRD :1; /*!< enable int CTR=PRD */ + uint32_t CTRCMP :1; /*!< enable int CTR=CMP */ +} _ECAP_ECEINT_bits; + +/* Bit field positions: */ +#define ECAP_ECEINT_CEVT0_Pos 1 /*!< enable int CEVT0 */ +#define ECAP_ECEINT_CEVT1_Pos 2 /*!< enable int CEVT1 */ +#define ECAP_ECEINT_CEVT2_Pos 3 /*!< enable int CEVT2 */ +#define ECAP_ECEINT_CEVT3_Pos 4 /*!< enable int CEVT3 */ +#define ECAP_ECEINT_CTROVF_Pos 5 /*!< enable int CTR_OVF */ +#define ECAP_ECEINT_CTRPRD_Pos 6 /*!< enable int CTR=PRD */ +#define ECAP_ECEINT_CTRCMP_Pos 7 /*!< enable int CTR=CMP */ + +/* Bit field masks: */ +#define ECAP_ECEINT_CEVT0_Msk 0x00000002UL /*!< enable int CEVT0 */ +#define ECAP_ECEINT_CEVT1_Msk 0x00000004UL /*!< enable int CEVT1 */ +#define ECAP_ECEINT_CEVT2_Msk 0x00000008UL /*!< enable int CEVT2 */ +#define ECAP_ECEINT_CEVT3_Msk 0x00000010UL /*!< enable int CEVT3 */ +#define ECAP_ECEINT_CTROVF_Msk 0x00000020UL /*!< enable int CTR_OVF */ +#define ECAP_ECEINT_CTRPRD_Msk 0x00000040UL /*!< enable int CTR=PRD */ +#define ECAP_ECEINT_CTRCMP_Msk 0x00000080UL /*!< enable int CTR=CMP */ + +/*-- ECFLG: Interrupt status register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< indicate global interrupt */ + uint32_t CEVT0 :1; /*!< Hap interrupt CEVT0 */ + uint32_t CEVT1 :1; /*!< Hap interrupt CEVT1 */ + uint32_t CEVT2 :1; /*!< Hap interrupt CEVT2 */ + uint32_t CEVT3 :1; /*!< Hap interrupt CEVT3 */ + uint32_t CTROVF :1; /*!< Hap interrupt CTROVF */ + uint32_t CTRPRD :1; /*!< Hap interrupt CTR=PRD */ + uint32_t CTRCMP :1; /*!< Hap interrupt CTR=CMP */ +} _ECAP_ECFLG_bits; + +/* Bit field positions: */ +#define ECAP_ECFLG_INT_Pos 0 /*!< indicate global interrupt */ +#define ECAP_ECFLG_CEVT0_Pos 1 /*!< Hap interrupt CEVT0 */ +#define ECAP_ECFLG_CEVT1_Pos 2 /*!< Hap interrupt CEVT1 */ +#define ECAP_ECFLG_CEVT2_Pos 3 /*!< Hap interrupt CEVT2 */ +#define ECAP_ECFLG_CEVT3_Pos 4 /*!< Hap interrupt CEVT3 */ +#define ECAP_ECFLG_CTROVF_Pos 5 /*!< Hap interrupt CTROVF */ +#define ECAP_ECFLG_CTRPRD_Pos 6 /*!< Hap interrupt CTR=PRD */ +#define ECAP_ECFLG_CTRCMP_Pos 7 /*!< Hap interrupt CTR=CMP */ + +/* Bit field masks: */ +#define ECAP_ECFLG_INT_Msk 0x00000001UL /*!< indicate global interrupt */ +#define ECAP_ECFLG_CEVT0_Msk 0x00000002UL /*!< Hap interrupt CEVT0 */ +#define ECAP_ECFLG_CEVT1_Msk 0x00000004UL /*!< Hap interrupt CEVT1 */ +#define ECAP_ECFLG_CEVT2_Msk 0x00000008UL /*!< Hap interrupt CEVT2 */ +#define ECAP_ECFLG_CEVT3_Msk 0x00000010UL /*!< Hap interrupt CEVT3 */ +#define ECAP_ECFLG_CTROVF_Msk 0x00000020UL /*!< Hap interrupt CTROVF */ +#define ECAP_ECFLG_CTRPRD_Msk 0x00000040UL /*!< Hap interrupt CTR=PRD */ +#define ECAP_ECFLG_CTRCMP_Msk 0x00000080UL /*!< Hap interrupt CTR=CMP */ + +/*-- ECCLR: Clear interrupt register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< reset global interrupt */ + uint32_t CEVT0 :1; /*!< reset intstatus */ + uint32_t CEVT1 :1; /*!< reset intstatus */ + uint32_t CEVT2 :1; /*!< reset intstatus */ + uint32_t CEVT3 :1; /*!< reset intstatus */ + uint32_t CTROVF :1; /*!< reset intstatus */ + uint32_t CTRPRD :1; /*!< reset intstatus */ + uint32_t CTRCMP :1; /*!< reset intstatus */ +} _ECAP_ECCLR_bits; + +/* Bit field positions: */ +#define ECAP_ECCLR_INT_Pos 0 /*!< reset global interrupt */ +#define ECAP_ECCLR_CEVT0_Pos 1 /*!< reset intstatus */ +#define ECAP_ECCLR_CEVT1_Pos 2 /*!< reset intstatus */ +#define ECAP_ECCLR_CEVT2_Pos 3 /*!< reset intstatus */ +#define ECAP_ECCLR_CEVT3_Pos 4 /*!< reset intstatus */ +#define ECAP_ECCLR_CTROVF_Pos 5 /*!< reset intstatus */ +#define ECAP_ECCLR_CTRPRD_Pos 6 /*!< reset intstatus */ +#define ECAP_ECCLR_CTRCMP_Pos 7 /*!< reset intstatus */ + +/* Bit field masks: */ +#define ECAP_ECCLR_INT_Msk 0x00000001UL /*!< reset global interrupt */ +#define ECAP_ECCLR_CEVT0_Msk 0x00000002UL /*!< reset intstatus */ +#define ECAP_ECCLR_CEVT1_Msk 0x00000004UL /*!< reset intstatus */ +#define ECAP_ECCLR_CEVT2_Msk 0x00000008UL /*!< reset intstatus */ +#define ECAP_ECCLR_CEVT3_Msk 0x00000010UL /*!< reset intstatus */ +#define ECAP_ECCLR_CTROVF_Msk 0x00000020UL /*!< reset intstatus */ +#define ECAP_ECCLR_CTRPRD_Msk 0x00000040UL /*!< reset intstatus */ +#define ECAP_ECCLR_CTRCMP_Msk 0x00000080UL /*!< reset intstatus */ + +/*-- ECFRC: Force interrupt register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t CEVT0 :1; /*!< gen test interrupt */ + uint32_t CEVT1 :1; /*!< gen test interrupt */ + uint32_t CEVT2 :1; /*!< gen test interrupt */ + uint32_t CEVT3 :1; /*!< gen test interrupt */ + uint32_t CTROVF :1; /*!< gen test interrupt */ + uint32_t CTRPRD :1; /*!< gen test interrupt */ + uint32_t CTRCMP :1; /*!< gen test interrupt */ +} _ECAP_ECFRC_bits; + +/* Bit field positions: */ +#define ECAP_ECFRC_CEVT0_Pos 1 /*!< gen test interrupt */ +#define ECAP_ECFRC_CEVT1_Pos 2 /*!< gen test interrupt */ +#define ECAP_ECFRC_CEVT2_Pos 3 /*!< gen test interrupt */ +#define ECAP_ECFRC_CEVT3_Pos 4 /*!< gen test interrupt */ +#define ECAP_ECFRC_CTROVF_Pos 5 /*!< gen test interrupt */ +#define ECAP_ECFRC_CTRPRD_Pos 6 /*!< gen test interrupt */ +#define ECAP_ECFRC_CTRCMP_Pos 7 /*!< gen test interrupt */ + +/* Bit field masks: */ +#define ECAP_ECFRC_CEVT0_Msk 0x00000002UL /*!< gen test interrupt */ +#define ECAP_ECFRC_CEVT1_Msk 0x00000004UL /*!< gen test interrupt */ +#define ECAP_ECFRC_CEVT2_Msk 0x00000008UL /*!< gen test interrupt */ +#define ECAP_ECFRC_CEVT3_Msk 0x00000010UL /*!< gen test interrupt */ +#define ECAP_ECFRC_CTROVF_Msk 0x00000020UL /*!< gen test interrupt */ +#define ECAP_ECFRC_CTRPRD_Msk 0x00000040UL /*!< gen test interrupt */ +#define ECAP_ECFRC_CTRCMP_Msk 0x00000080UL /*!< gen test interrupt */ + +/*-- PEINT: Active interrupt status register -----------------------------------------------------------------*/ +typedef struct { + uint32_t PEINT :1; /*!< active interrupt flag */ +} _ECAP_PEINT_bits; + +/* Bit field positions: */ +#define ECAP_PEINT_PEINT_Pos 0 /*!< active interrupt flag */ + +/* Bit field masks: */ +#define ECAP_PEINT_PEINT_Msk 0x00000001UL /*!< active interrupt flag */ + +typedef struct { + union { /*!< Counter register */ + __IO uint32_t TSCTR; /*!< TSCTR : type used for word access */ + __IO _ECAP_TSCTR_bits TSCTR_bit; /*!< TSCTR_bit: structure used for bit access */ + }; + union { /*!< Counter Phase Sync register */ + __IO uint32_t CTRPHS; /*!< CTRPHS : type used for word access */ + __IO _ECAP_CTRPHS_bits CTRPHS_bit; /*!< CTRPHS_bit: structure used for bit access */ + }; + union { + union { /*!< Capture register 0 */ + __IO uint32_t CAP0; /*!< CAP0 : type used for word access */ + __IO _ECAP_CAP0_bits CAP0_bit; /*!< CAP0_bit: structure used for bit access */ + }; + struct { + union { /*!< Period register */ + __IO uint32_t PRD; /*!< PRD : type used for word access */ + __IO _ECAP_PRD_bits PRD_bit; /*!< PRD_bit: structure used for bit access */ + }; + }; + }; + union { + union { /*!< Capture register 1 */ + __IO uint32_t CAP1; /*!< CAP1 : type used for word access */ + __IO _ECAP_CAP1_bits CAP1_bit; /*!< CAP1_bit: structure used for bit access */ + }; + struct { + union { /*!< Compare register */ + __IO uint32_t CMP; /*!< CMP : type used for word access */ + __IO _ECAP_CMP_bits CMP_bit; /*!< CMP_bit: structure used for bit access */ + }; + }; + }; + union { + union { /*!< Capture register 2 */ + __IO uint32_t CAP2; /*!< CAP2 : type used for word access */ + __IO _ECAP_CAP2_bits CAP2_bit; /*!< CAP2_bit: structure used for bit access */ + }; + struct { + union { /*!< Period shadow register */ + __IO uint32_t PRDSHDW; /*!< PRDSHDW : type used for word access */ + __IO _ECAP_PRDSHDW_bits PRDSHDW_bit; /*!< PRDSHDW_bit: structure used for bit access */ + }; + }; + }; + union { + union { /*!< Capture register 3 */ + __IO uint32_t CAP3; /*!< CAP3 : type used for word access */ + __IO _ECAP_CAP3_bits CAP3_bit; /*!< CAP3_bit: structure used for bit access */ + }; + struct { + union { /*!< Compare shadow register */ + __IO uint32_t CMPSHDW; /*!< CMPSHDW : type used for word access */ + __IO _ECAP_CMPSHDW_bits CMPSHDW_bit; /*!< CMPSHDW_bit: structure used for bit access */ + }; + }; + }; + __IO uint32_t Reserved0[4]; + union { /*!< Capture control register 0 */ + __IO uint32_t ECCTL0; /*!< ECCTL0 : type used for word access */ + __IO _ECAP_ECCTL0_bits ECCTL0_bit; /*!< ECCTL0_bit: structure used for bit access */ + }; + union { /*!< Capture control register 1 */ + __IO uint32_t ECCTL1; /*!< ECCTL1 : type used for word access */ + __IO _ECAP_ECCTL1_bits ECCTL1_bit; /*!< ECCTL1_bit: structure used for bit access */ + }; + union { /*!< Interrupt mask register */ + __IO uint32_t ECEINT; /*!< ECEINT : type used for word access */ + __IO _ECAP_ECEINT_bits ECEINT_bit; /*!< ECEINT_bit: structure used for bit access */ + }; + union { /*!< Interrupt status register */ + __I uint32_t ECFLG; /*!< ECFLG : type used for word access */ + __I _ECAP_ECFLG_bits ECFLG_bit; /*!< ECFLG_bit: structure used for bit access */ + }; + union { /*!< Clear interrupt register */ + __IO uint32_t ECCLR; /*!< ECCLR : type used for word access */ + __IO _ECAP_ECCLR_bits ECCLR_bit; /*!< ECCLR_bit: structure used for bit access */ + }; + union { /*!< Force interrupt register */ + __IO uint32_t ECFRC; /*!< ECFRC : type used for word access */ + __IO _ECAP_ECFRC_bits ECFRC_bit; /*!< ECFRC_bit: structure used for bit access */ + }; + union { /*!< Active interrupt status register */ + __IO uint32_t PEINT; /*!< PEINT : type used for word access */ + __IO _ECAP_PEINT_bits PEINT_bit; /*!< PEINT_bit: structure used for bit access */ + }; +} ECAP_TypeDef; + + +/******************************************************************************/ +/* PWM registers */ +/******************************************************************************/ + +/*-- TBCTL: Time-Base Control Register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t CTRMODE :2; /*!< Counter mode */ + uint32_t PHSEN :1; /*!< Counter register load from phase register enable */ + uint32_t PRDLD :1; /*!< Active period register load from shadow register select */ + uint32_t SYNCOSEL :2; /*!< Synchronization Output Select. These bits select the source of the PWM_SYNCO signal. */ + uint32_t SWFSYNC :1; /*!< Software forced synchronization pulse */ + uint32_t HSPCLKDIV :3; /*!< High speed time-base clock prescale bits */ + uint32_t CLKDIV :3; /*!< Time-base clock prescale bits */ + uint32_t PHSDIR :1; /*!< Phase direction bit */ + uint32_t FREESOFT :2; /*!< Emulation mode bits - select the behavior of the time-base counter during emulation events */ + uint32_t SHDWGLOB :1; /*!< Global enable for all shadow loads */ +} _PWM_TBCTL_bits; + +/* Bit field positions: */ +#define PWM_TBCTL_CTRMODE_Pos 0 /*!< Counter mode */ +#define PWM_TBCTL_PHSEN_Pos 2 /*!< Counter register load from phase register enable */ +#define PWM_TBCTL_PRDLD_Pos 3 /*!< Active period register load from shadow register select */ +#define PWM_TBCTL_SYNCOSEL_Pos 4 /*!< Synchronization Output Select. These bits select the source of the PWM_SYNCO signal. */ +#define PWM_TBCTL_SWFSYNC_Pos 6 /*!< Software forced synchronization pulse */ +#define PWM_TBCTL_HSPCLKDIV_Pos 7 /*!< High speed time-base clock prescale bits */ +#define PWM_TBCTL_CLKDIV_Pos 10 /*!< Time-base clock prescale bits */ +#define PWM_TBCTL_PHSDIR_Pos 13 /*!< Phase direction bit */ +#define PWM_TBCTL_FREESOFT_Pos 14 /*!< Emulation mode bits - select the behavior of the time-base counter during emulation events */ +#define PWM_TBCTL_SHDWGLOB_Pos 16 /*!< Global enable for all shadow loads */ + +/* Bit field masks: */ +#define PWM_TBCTL_CTRMODE_Msk 0x00000003UL /*!< Counter mode */ +#define PWM_TBCTL_PHSEN_Msk 0x00000004UL /*!< Counter register load from phase register enable */ +#define PWM_TBCTL_PRDLD_Msk 0x00000008UL /*!< Active period register load from shadow register select */ +#define PWM_TBCTL_SYNCOSEL_Msk 0x00000030UL /*!< Synchronization Output Select. These bits select the source of the PWM_SYNCO signal. */ +#define PWM_TBCTL_SWFSYNC_Msk 0x00000040UL /*!< Software forced synchronization pulse */ +#define PWM_TBCTL_HSPCLKDIV_Msk 0x00000380UL /*!< High speed time-base clock prescale bits */ +#define PWM_TBCTL_CLKDIV_Msk 0x00001C00UL /*!< Time-base clock prescale bits */ +#define PWM_TBCTL_PHSDIR_Msk 0x00002000UL /*!< Phase direction bit */ +#define PWM_TBCTL_FREESOFT_Msk 0x0000C000UL /*!< Emulation mode bits - select the behavior of the time-base counter during emulation events */ +#define PWM_TBCTL_SHDWGLOB_Msk 0x00010000UL /*!< Global enable for all shadow loads */ + +/* Bit field enums: */ +typedef enum { + PWM_TBCTL_CTRMODE_Up = 0x0UL, /*!< count direction up */ + PWM_TBCTL_CTRMODE_Down = 0x1UL, /*!< count direction down */ + PWM_TBCTL_CTRMODE_UpDown = 0x2UL, /*!< count direction up-down */ + PWM_TBCTL_CTRMODE_Stop = 0x3UL, /*!< counter stopped */ +} PWM_TBCTL_CTRMODE_Enum; + +typedef enum { + PWM_TBCTL_SYNCOSEL_SYNCI = 0x0UL, /*!< PWM_SYNCI is source for PWM_SYNCO */ + PWM_TBCTL_SYNCOSEL_CTREqZero = 0x1UL, /*!< CTR = 0000h is source for PWM_SYNCO */ + PWM_TBCTL_SYNCOSEL_CTREqCMPB = 0x2UL, /*!< CTR = CMPB is source for PWM_SYNCO */ + PWM_TBCTL_SYNCOSEL_Disable = 0x3UL, /*!< PWM_SYNCO generation disabled */ +} PWM_TBCTL_SYNCOSEL_Enum; + +typedef enum { + PWM_TBCTL_HSPCLKDIV_Div1 = 0x0UL, /*!< clock not divided */ + PWM_TBCTL_HSPCLKDIV_Div2 = 0x1UL, /*!< clock divided by 2 */ + PWM_TBCTL_HSPCLKDIV_Div4 = 0x2UL, /*!< clock divided by 4 */ + PWM_TBCTL_HSPCLKDIV_Div6 = 0x3UL, /*!< clock divided by 6 */ + PWM_TBCTL_HSPCLKDIV_Div8 = 0x4UL, /*!< clock divided by 8 */ + PWM_TBCTL_HSPCLKDIV_Div10 = 0x5UL, /*!< clock divided by 10 */ + PWM_TBCTL_HSPCLKDIV_Div12 = 0x6UL, /*!< clock divided by 12 */ + PWM_TBCTL_HSPCLKDIV_Div14 = 0x7UL, /*!< clock divided by 14 */ +} PWM_TBCTL_HSPCLKDIV_Enum; + +typedef enum { + PWM_TBCTL_CLKDIV_Div1 = 0x0UL, /*!< clock not divided */ + PWM_TBCTL_CLKDIV_Div2 = 0x1UL, /*!< clock divided by 2 */ + PWM_TBCTL_CLKDIV_Div4 = 0x2UL, /*!< clock divided by 4 */ + PWM_TBCTL_CLKDIV_Div8 = 0x3UL, /*!< clock divided by 8 */ + PWM_TBCTL_CLKDIV_Div16 = 0x4UL, /*!< clock divided by 16 */ + PWM_TBCTL_CLKDIV_Div32 = 0x5UL, /*!< clock divided by 32 */ + PWM_TBCTL_CLKDIV_Div64 = 0x6UL, /*!< clock divided by 64 */ + PWM_TBCTL_CLKDIV_Div128 = 0x7UL, /*!< clock divided by 128 */ +} PWM_TBCTL_CLKDIV_Enum; + +typedef enum { + PWM_TBCTL_FREESOFT_StopAtTBCLK = 0x0UL, /*!< stop timer at next TBCLK tact */ + PWM_TBCTL_FREESOFT_StopAtPeriod = 0x1UL, /*!< stop timer when period ends */ + PWM_TBCTL_FREESOFT_FreeRun = 0x2UL, /*!< free run mode */ +} PWM_TBCTL_FREESOFT_Enum; + +/*-- TBSTS: Time-Base Status Register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t CTRDIR :1; /*!< Time-Base counter direction status bit */ + uint32_t SYNCI :1; /*!< Input synchronization latched status bit */ + uint32_t CTRMAX :1; /*!< Time-Base counter max latched status bit */ +} _PWM_TBSTS_bits; + +/* Bit field positions: */ +#define PWM_TBSTS_CTRDIR_Pos 0 /*!< Time-Base counter direction status bit */ +#define PWM_TBSTS_SYNCI_Pos 1 /*!< Input synchronization latched status bit */ +#define PWM_TBSTS_CTRMAX_Pos 2 /*!< Time-Base counter max latched status bit */ + +/* Bit field masks: */ +#define PWM_TBSTS_CTRDIR_Msk 0x00000001UL /*!< Time-Base counter direction status bit */ +#define PWM_TBSTS_SYNCI_Msk 0x00000002UL /*!< Input synchronization latched status bit */ +#define PWM_TBSTS_CTRMAX_Msk 0x00000004UL /*!< Time-Base counter max latched status bit */ + +/*-- TBPHS: Time-Base Phase Register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t :16; /*!< RESERVED */ + uint32_t TBPHS :16; /*!< Time-base counter phase */ +} _PWM_TBPHS_bits; + +/* Bit field positions: */ +#define PWM_TBPHS_TBPHS_Pos 16 /*!< Time-base counter phase */ + +/* Bit field masks: */ +#define PWM_TBPHS_TBPHS_Msk 0xFFFF0000UL /*!< Time-base counter phase */ + +/*-- TBCTR: Time-Base Counter Register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :16; /*!< Current time-base counter value */ +} _PWM_TBCTR_bits; + +/* Bit field positions: */ +#define PWM_TBCTR_VAL_Pos 0 /*!< Current time-base counter value */ + +/* Bit field masks: */ +#define PWM_TBCTR_VAL_Msk 0x0000FFFFUL /*!< Current time-base counter value */ + +/*-- TBPRD: Time-Base Period Register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :16; /*!< Period of the time-base counter */ +} _PWM_TBPRD_bits; + +/* Bit field positions: */ +#define PWM_TBPRD_VAL_Pos 0 /*!< Period of the time-base counter */ + +/* Bit field masks: */ +#define PWM_TBPRD_VAL_Msk 0x0000FFFFUL /*!< Period of the time-base counter */ + +/*-- CMPCTL: Counter-Compare Control Register ----------------------------------------------------------------*/ +typedef struct { + uint32_t LOADAMODE :2; /*!< Active CMPA load from shadow select mode */ + uint32_t LOADBMODE :2; /*!< Active CMPB load from shadow select mode */ + uint32_t SHDWAMODE :1; /*!< CMPA register operating mode */ + uint32_t :1; /*!< RESERVED */ + uint32_t SHDWBMODE :1; /*!< CMPB register operating mode */ + uint32_t :1; /*!< RESERVED */ + uint32_t SHDWAFULL :1; /*!< CMPA shadow register full status flag */ + uint32_t SHDWBFULL :1; /*!< CMPB shadow register full status flag */ +} _PWM_CMPCTL_bits; + +/* Bit field positions: */ +#define PWM_CMPCTL_LOADAMODE_Pos 0 /*!< Active CMPA load from shadow select mode */ +#define PWM_CMPCTL_LOADBMODE_Pos 2 /*!< Active CMPB load from shadow select mode */ +#define PWM_CMPCTL_SHDWAMODE_Pos 4 /*!< CMPA register operating mode */ +#define PWM_CMPCTL_SHDWBMODE_Pos 6 /*!< CMPB register operating mode */ +#define PWM_CMPCTL_SHDWAFULL_Pos 8 /*!< CMPA shadow register full status flag */ +#define PWM_CMPCTL_SHDWBFULL_Pos 9 /*!< CMPB shadow register full status flag */ + +/* Bit field masks: */ +#define PWM_CMPCTL_LOADAMODE_Msk 0x00000003UL /*!< Active CMPA load from shadow select mode */ +#define PWM_CMPCTL_LOADBMODE_Msk 0x0000000CUL /*!< Active CMPB load from shadow select mode */ +#define PWM_CMPCTL_SHDWAMODE_Msk 0x00000010UL /*!< CMPA register operating mode */ +#define PWM_CMPCTL_SHDWBMODE_Msk 0x00000040UL /*!< CMPB register operating mode */ +#define PWM_CMPCTL_SHDWAFULL_Msk 0x00000100UL /*!< CMPA shadow register full status flag */ +#define PWM_CMPCTL_SHDWBFULL_Msk 0x00000200UL /*!< CMPB shadow register full status flag */ + +/* Bit field enums: */ +typedef enum { + PWM_CMPCTL_LOADAMODE_CTREqZero = 0x0UL, /*!< shadow load for CMPx (x=A,B) when CTR = 0 */ + PWM_CMPCTL_LOADAMODE_CTREqPRD = 0x1UL, /*!< shadow load for CMPx (x=A,B) when CTR = PRD */ + PWM_CMPCTL_LOADAMODE_CTREqZeroPRD = 0x2UL, /*!< shadow load for CMPx (x=A,B) when CTR = 0 or CTR = PRD */ + PWM_CMPCTL_LOADAMODE_Disable = 0x3UL, /*!< shadow load for CMPx (x=A,B) disabled */ +} PWM_CMPCTL_LOADAMODE_Enum; + +typedef enum { + PWM_CMPCTL_LOADBMODE_CTREqZero = 0x0UL, /*!< shadow load for CMPx (x=A,B) when CTR = 0 */ + PWM_CMPCTL_LOADBMODE_CTREqPRD = 0x1UL, /*!< shadow load for CMPx (x=A,B) when CTR = PRD */ + PWM_CMPCTL_LOADBMODE_CTREqZeroPRD = 0x2UL, /*!< shadow load for CMPx (x=A,B) when CTR = 0 or CTR = PRD */ + PWM_CMPCTL_LOADBMODE_Disable = 0x3UL, /*!< shadow load for CMPx (x=A,B) disabled */ +} PWM_CMPCTL_LOADBMODE_Enum; + +/*-- CMPA: Counter-Compare A Register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t :16; /*!< RESERVED */ + uint32_t CMPA :16; /*!< The value compared to the time-base counter (TBCTR) */ +} _PWM_CMPA_bits; + +/* Bit field positions: */ +#define PWM_CMPA_CMPA_Pos 16 /*!< The value compared to the time-base counter (TBCTR) */ + +/* Bit field masks: */ +#define PWM_CMPA_CMPA_Msk 0xFFFF0000UL /*!< The value compared to the time-base counter (TBCTR) */ + +/*-- CMPB: Counter-Compare B Register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t :16; /*!< RESERVED */ + uint32_t CMPB :16; /*!< The value compared to the time-base counter (TBCTR) */ +} _PWM_CMPB_bits; + +/* Bit field positions: */ +#define PWM_CMPB_CMPB_Pos 16 /*!< The value compared to the time-base counter (TBCTR) */ + +/* Bit field masks: */ +#define PWM_CMPB_CMPB_Msk 0xFFFF0000UL /*!< The value compared to the time-base counter (TBCTR) */ + +/*-- AQCTLA: Action-Qualifier Output A Control Register ------------------------------------------------------*/ +typedef struct { + uint32_t ZRO :2; /*!< Action when counter equals zero */ + uint32_t PRD :2; /*!< Action when the counter equals the period */ + uint32_t CAU :2; /*!< Action when the counter equals the active CMPA register and the counter is incrementing */ + uint32_t CAD :2; /*!< Action when the counter equals the active CMPA register and the counter is decrementing */ + uint32_t CBU :2; /*!< Action when the counter equals the active CMPB register and the counter is incrementing */ + uint32_t CBD :2; /*!< Action when the time-base counter equals the active CMPB register and the counter is decrementing + */ +} _PWM_AQCTLA_bits; + +/* Bit field positions: */ +#define PWM_AQCTLA_ZRO_Pos 0 /*!< Action when counter equals zero */ +#define PWM_AQCTLA_PRD_Pos 2 /*!< Action when the counter equals the period */ +#define PWM_AQCTLA_CAU_Pos 4 /*!< Action when the counter equals the active CMPA register and the counter is incrementing */ +#define PWM_AQCTLA_CAD_Pos 6 /*!< Action when the counter equals the active CMPA register and the counter is decrementing */ +#define PWM_AQCTLA_CBU_Pos 8 /*!< Action when the counter equals the active CMPB register and the counter is incrementing */ +#define PWM_AQCTLA_CBD_Pos 10 /*!< Action when the time-base counter equals the active CMPB register and the counter is decrementing + */ + +/* Bit field masks: */ +#define PWM_AQCTLA_ZRO_Msk 0x00000003UL /*!< Action when counter equals zero */ +#define PWM_AQCTLA_PRD_Msk 0x0000000CUL /*!< Action when the counter equals the period */ +#define PWM_AQCTLA_CAU_Msk 0x00000030UL /*!< Action when the counter equals the active CMPA register and the counter is incrementing */ +#define PWM_AQCTLA_CAD_Msk 0x000000C0UL /*!< Action when the counter equals the active CMPA register and the counter is decrementing */ +#define PWM_AQCTLA_CBU_Msk 0x00000300UL /*!< Action when the counter equals the active CMPB register and the counter is incrementing */ +#define PWM_AQCTLA_CBD_Msk 0x00000C00UL /*!< Action when the time-base counter equals the active CMPB register and the counter is decrementing + */ + +/* Bit field enums: */ +typedef enum { + PWM_AQCTLA_ZRO_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLA_ZRO_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLA_ZRO_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLA_ZRO_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLA_ZRO_Enum; + +typedef enum { + PWM_AQCTLA_PRD_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLA_PRD_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLA_PRD_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLA_PRD_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLA_PRD_Enum; + +typedef enum { + PWM_AQCTLA_CAU_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLA_CAU_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLA_CAU_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLA_CAU_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLA_CAU_Enum; + +typedef enum { + PWM_AQCTLA_CAD_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLA_CAD_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLA_CAD_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLA_CAD_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLA_CAD_Enum; + +typedef enum { + PWM_AQCTLA_CBU_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLA_CBU_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLA_CBU_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLA_CBU_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLA_CBU_Enum; + +typedef enum { + PWM_AQCTLA_CBD_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLA_CBD_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLA_CBD_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLA_CBD_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLA_CBD_Enum; + +/*-- AQCTLB: Action-Qualifier Output B Control Register ------------------------------------------------------*/ +typedef struct { + uint32_t ZRO :2; /*!< Action when counter equals zero */ + uint32_t PRD :2; /*!< Action when the counter equals the period */ + uint32_t CAU :2; /*!< Action when the counter equals the active CMPA register and the counter is incrementing */ + uint32_t CAD :2; /*!< Action when the counter equals the active CMPA register and the counter is decrementing */ + uint32_t CBU :2; /*!< Action when the counter equals the active CMPB register and the counter is incrementing */ + uint32_t CBD :2; /*!< Action when the time-base counter equals the active CMPB register and the counter is decrementing + */ +} _PWM_AQCTLB_bits; + +/* Bit field positions: */ +#define PWM_AQCTLB_ZRO_Pos 0 /*!< Action when counter equals zero */ +#define PWM_AQCTLB_PRD_Pos 2 /*!< Action when the counter equals the period */ +#define PWM_AQCTLB_CAU_Pos 4 /*!< Action when the counter equals the active CMPA register and the counter is incrementing */ +#define PWM_AQCTLB_CAD_Pos 6 /*!< Action when the counter equals the active CMPA register and the counter is decrementing */ +#define PWM_AQCTLB_CBU_Pos 8 /*!< Action when the counter equals the active CMPB register and the counter is incrementing */ +#define PWM_AQCTLB_CBD_Pos 10 /*!< Action when the time-base counter equals the active CMPB register and the counter is decrementing + */ + +/* Bit field masks: */ +#define PWM_AQCTLB_ZRO_Msk 0x00000003UL /*!< Action when counter equals zero */ +#define PWM_AQCTLB_PRD_Msk 0x0000000CUL /*!< Action when the counter equals the period */ +#define PWM_AQCTLB_CAU_Msk 0x00000030UL /*!< Action when the counter equals the active CMPA register and the counter is incrementing */ +#define PWM_AQCTLB_CAD_Msk 0x000000C0UL /*!< Action when the counter equals the active CMPA register and the counter is decrementing */ +#define PWM_AQCTLB_CBU_Msk 0x00000300UL /*!< Action when the counter equals the active CMPB register and the counter is incrementing */ +#define PWM_AQCTLB_CBD_Msk 0x00000C00UL /*!< Action when the time-base counter equals the active CMPB register and the counter is decrementing + */ + +/* Bit field enums: */ +typedef enum { + PWM_AQCTLB_ZRO_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLB_ZRO_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLB_ZRO_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLB_ZRO_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLB_ZRO_Enum; + +typedef enum { + PWM_AQCTLB_PRD_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLB_PRD_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLB_PRD_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLB_PRD_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLB_PRD_Enum; + +typedef enum { + PWM_AQCTLB_CAU_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLB_CAU_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLB_CAU_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLB_CAU_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLB_CAU_Enum; + +typedef enum { + PWM_AQCTLB_CAD_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLB_CAD_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLB_CAD_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLB_CAD_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLB_CAD_Enum; + +typedef enum { + PWM_AQCTLB_CBU_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLB_CBU_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLB_CBU_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLB_CBU_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLB_CBU_Enum; + +typedef enum { + PWM_AQCTLB_CBD_NoAction = 0x0UL, /*!< no action */ + PWM_AQCTLB_CBD_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCTLB_CBD_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQCTLB_CBD_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQCTLB_CBD_Enum; + +/*-- AQSFRC: Action-Qualifier Software Force Register --------------------------------------------------------*/ +typedef struct { + uint32_t ACTSFA :2; /*!< Action when one-time software force A is invoked */ + uint32_t OTSFA :1; /*!< One-time software forced event on output A */ + uint32_t ACTSFB :2; /*!< Action when one-time software force B is invoked */ + uint32_t OTSFB :1; /*!< One-time software forced event on output B */ + uint32_t RLDCSF :2; /*!< AQCSFRC active register reload from shadow options */ +} _PWM_AQSFRC_bits; + +/* Bit field positions: */ +#define PWM_AQSFRC_ACTSFA_Pos 0 /*!< Action when one-time software force A is invoked */ +#define PWM_AQSFRC_OTSFA_Pos 2 /*!< One-time software forced event on output A */ +#define PWM_AQSFRC_ACTSFB_Pos 3 /*!< Action when one-time software force B is invoked */ +#define PWM_AQSFRC_OTSFB_Pos 5 /*!< One-time software forced event on output B */ +#define PWM_AQSFRC_RLDCSF_Pos 6 /*!< AQCSFRC active register reload from shadow options */ + +/* Bit field masks: */ +#define PWM_AQSFRC_ACTSFA_Msk 0x00000003UL /*!< Action when one-time software force A is invoked */ +#define PWM_AQSFRC_OTSFA_Msk 0x00000004UL /*!< One-time software forced event on output A */ +#define PWM_AQSFRC_ACTSFB_Msk 0x00000018UL /*!< Action when one-time software force B is invoked */ +#define PWM_AQSFRC_OTSFB_Msk 0x00000020UL /*!< One-time software forced event on output B */ +#define PWM_AQSFRC_RLDCSF_Msk 0x000000C0UL /*!< AQCSFRC active register reload from shadow options */ + +/* Bit field enums: */ +typedef enum { + PWM_AQSFRC_ACTSFA_NoAction = 0x0UL, /*!< no action */ + PWM_AQSFRC_ACTSFA_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQSFRC_ACTSFA_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQSFRC_ACTSFA_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQSFRC_ACTSFA_Enum; + +typedef enum { + PWM_AQSFRC_ACTSFB_NoAction = 0x0UL, /*!< no action */ + PWM_AQSFRC_ACTSFB_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQSFRC_ACTSFB_Set = 0x2UL, /*!< set PWMA/PWMB */ + PWM_AQSFRC_ACTSFB_Toggle = 0x3UL, /*!< inverse PWMA/PWMB */ +} PWM_AQSFRC_ACTSFB_Enum; + +typedef enum { + PWM_AQSFRC_RLDCSF_CTREqZero = 0x0UL, /*!< load when CTR = 0 */ + PWM_AQSFRC_RLDCSF_CTREqPRD = 0x1UL, /*!< load when CTR = PRD */ + PWM_AQSFRC_RLDCSF_CTREqZeroPRD = 0x2UL, /*!< load when CTR = 0 or CTR = PRD */ + PWM_AQSFRC_RLDCSF_NoShadow = 0x3UL, /*!< load immediatelly */ +} PWM_AQSFRC_RLDCSF_Enum; + +/*-- AQCSFRC: Action-Qualifier Continuous Software Force Register --------------------------------------------*/ +typedef struct { + uint32_t CSFA :2; /*!< Continuous software force on output A */ + uint32_t CSFB :2; /*!< Continuous software force on output B */ +} _PWM_AQCSFRC_bits; + +/* Bit field positions: */ +#define PWM_AQCSFRC_CSFA_Pos 0 /*!< Continuous software force on output A */ +#define PWM_AQCSFRC_CSFB_Pos 2 /*!< Continuous software force on output B */ + +/* Bit field masks: */ +#define PWM_AQCSFRC_CSFA_Msk 0x00000003UL /*!< Continuous software force on output A */ +#define PWM_AQCSFRC_CSFB_Msk 0x0000000CUL /*!< Continuous software force on output B */ + +/* Bit field enums: */ +typedef enum { + PWM_AQCSFRC_CSFA_NoAction = 0x0UL, /*!< no action */ + PWM_AQCSFRC_CSFA_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCSFRC_CSFA_Set = 0x2UL, /*!< set PWMA/PWMB */ +} PWM_AQCSFRC_CSFA_Enum; + +typedef enum { + PWM_AQCSFRC_CSFB_NoAction = 0x0UL, /*!< no action */ + PWM_AQCSFRC_CSFB_Clear = 0x1UL, /*!< clear PWMA/PWMB */ + PWM_AQCSFRC_CSFB_Set = 0x2UL, /*!< set PWMA/PWMB */ +} PWM_AQCSFRC_CSFB_Enum; + +/*-- DBCTL: Dead-Band Generator Control Register -------------------------------------------------------------*/ +typedef struct { + uint32_t OUTMODE :2; /*!< Dead-band output mode control */ + uint32_t POLSEL :2; /*!< Polarity select control */ + uint32_t INMODE :2; /*!< Dead band input mode control */ +} _PWM_DBCTL_bits; + +/* Bit field positions: */ +#define PWM_DBCTL_OUTMODE_Pos 0 /*!< Dead-band output mode control */ +#define PWM_DBCTL_POLSEL_Pos 2 /*!< Polarity select control */ +#define PWM_DBCTL_INMODE_Pos 4 /*!< Dead band input mode control */ + +/* Bit field masks: */ +#define PWM_DBCTL_OUTMODE_Msk 0x00000003UL /*!< Dead-band output mode control */ +#define PWM_DBCTL_POLSEL_Msk 0x0000000CUL /*!< Polarity select control */ +#define PWM_DBCTL_INMODE_Msk 0x00000030UL /*!< Dead band input mode control */ + +/* Bit field enums: */ +typedef enum { + PWM_DBCTL_OUTMODE_NoSpec = 0x0UL, /*!< edge for deadtime is no specified */ + PWM_DBCTL_OUTMODE_BNeg = 0x1UL, /*!< deadtime on PWMB negedge */ + PWM_DBCTL_OUTMODE_APos = 0x2UL, /*!< deadtime on PWMA posedge */ + PWM_DBCTL_OUTMODE_Apos_BNeg = 0x3UL, /*!< deadtime on PWMA posedge and PWMB negedge */ +} PWM_DBCTL_OUTMODE_Enum; + +typedef enum { + PWM_DBCTL_POLSEL_InvDisable = 0x0UL, /*!< inverse disabled */ + PWM_DBCTL_POLSEL_InvA = 0x1UL, /*!< inverse on PWMA */ + PWM_DBCTL_POLSEL_InvB = 0x2UL, /*!< inverse on PWMB */ + PWM_DBCTL_POLSEL_InvAB = 0x3UL, /*!< inverse on PWMA and PWMB */ +} PWM_DBCTL_POLSEL_Enum; + +typedef enum { + PWM_DBCTL_INMODE_APosNeg = 0x0UL, /*!< PWMA is used for posedge and negedge control */ + PWM_DBCTL_INMODE_ANeg_BPos = 0x1UL, /*!< PWMA is used for negedge and PWMB is used for posedge control */ + PWM_DBCTL_INMODE_APos_BNeg = 0x2UL, /*!< PWMA is used for posedge and PWMB is used for negedge control */ + PWM_DBCTL_INMODE_BPosNeg = 0x3UL, /*!< PWMB is used for posedge and negedge control */ +} PWM_DBCTL_INMODE_Enum; + +/*-- DBRED: Dead-Band Generator Rising Edge Delay Register ---------------------------------------------------*/ +typedef struct { + uint32_t DEL :10; /*!< Rising edge delay count */ +} _PWM_DBRED_bits; + +/* Bit field positions: */ +#define PWM_DBRED_DEL_Pos 0 /*!< Rising edge delay count */ + +/* Bit field masks: */ +#define PWM_DBRED_DEL_Msk 0x000003FFUL /*!< Rising edge delay count */ + +/*-- DBFED: Dead-Band Generator Falling Edge Delay Register --------------------------------------------------*/ +typedef struct { + uint32_t DEL :10; /*!< Falling edge delay count */ +} _PWM_DBFED_bits; + +/* Bit field positions: */ +#define PWM_DBFED_DEL_Pos 0 /*!< Falling edge delay count */ + +/* Bit field masks: */ +#define PWM_DBFED_DEL_Msk 0x000003FFUL /*!< Falling edge delay count */ + +/*-- TZSEL: Trip-Zone Select Register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t CBC :1; /*!< Cycle-by-Cycle trip-zone 0 enable + */ + uint32_t :7; /*!< RESERVED */ + uint32_t OST :1; /*!< One-Shot trip-zone 0 enable */ +} _PWM_TZSEL_bits; + +/* Bit field positions: */ +#define PWM_TZSEL_CBC_Pos 0 /*!< Cycle-by-Cycle trip-zone 0 enable + */ +#define PWM_TZSEL_OST_Pos 8 /*!< One-Shot trip-zone 0 enable */ + +/* Bit field masks: */ +#define PWM_TZSEL_CBC_Msk 0x00000001UL /*!< Cycle-by-Cycle trip-zone 0 enable + */ +#define PWM_TZSEL_OST_Msk 0x00000100UL /*!< One-Shot trip-zone 0 enable */ + +/*-- TZCTL: Trip-Zone Control Register -----------------------------------------------------------------------*/ +typedef struct { + uint32_t TZA :2; /*!< When a trip event occurs the following action is taken on output A */ + uint32_t TZB :2; /*!< When a trip event occurs the following action is taken on output B */ +} _PWM_TZCTL_bits; + +/* Bit field positions: */ +#define PWM_TZCTL_TZA_Pos 0 /*!< When a trip event occurs the following action is taken on output A */ +#define PWM_TZCTL_TZB_Pos 2 /*!< When a trip event occurs the following action is taken on output B */ + +/* Bit field masks: */ +#define PWM_TZCTL_TZA_Msk 0x00000003UL /*!< When a trip event occurs the following action is taken on output A */ +#define PWM_TZCTL_TZB_Msk 0x0000000CUL /*!< When a trip event occurs the following action is taken on output B */ + +/* Bit field enums: */ +typedef enum { + PWM_TZCTL_TZA_Z = 0x0UL, /*!< PWMA/PWMB go to Z on failture */ + PWM_TZCTL_TZA_Set = 0x1UL, /*!< PWMA/PWMB go to 1 on failture */ + PWM_TZCTL_TZA_Clear = 0x2UL, /*!< PWMA/PWMB go to 0 on failture */ + PWM_TZCTL_TZA_NoAction = 0x3UL, /*!< no action on failture */ +} PWM_TZCTL_TZA_Enum; + +typedef enum { + PWM_TZCTL_TZB_Z = 0x0UL, /*!< PWMA/PWMB go to Z on failture */ + PWM_TZCTL_TZB_Set = 0x1UL, /*!< PWMA/PWMB go to 1 on failture */ + PWM_TZCTL_TZB_Clear = 0x2UL, /*!< PWMA/PWMB go to 0 on failture */ + PWM_TZCTL_TZB_NoAction = 0x3UL, /*!< no action on failture */ +} PWM_TZCTL_TZB_Enum; + +/*-- TZEINT: Trip-Zone Enable Interrupt Register -------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t CBC :1; /*!< Trip-zone Cycle-by-Cycle interrupt enable */ + uint32_t OST :1; /*!< Trip-zone One-Shot interrupt enable */ +} _PWM_TZEINT_bits; + +/* Bit field positions: */ +#define PWM_TZEINT_CBC_Pos 1 /*!< Trip-zone Cycle-by-Cycle interrupt enable */ +#define PWM_TZEINT_OST_Pos 2 /*!< Trip-zone One-Shot interrupt enable */ + +/* Bit field masks: */ +#define PWM_TZEINT_CBC_Msk 0x00000002UL /*!< Trip-zone Cycle-by-Cycle interrupt enable */ +#define PWM_TZEINT_OST_Msk 0x00000004UL /*!< Trip-zone One-Shot interrupt enable */ + +/*-- TZFLG: Trip-Zone Flag Register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Latched trip interrupt status flag */ + uint32_t CBC :1; /*!< Latched status flag for Cycle-By-Cycle trip event */ + uint32_t OST :1; /*!< Latched status flag for a One-Shot trip event */ +} _PWM_TZFLG_bits; + +/* Bit field positions: */ +#define PWM_TZFLG_INT_Pos 0 /*!< Latched trip interrupt status flag */ +#define PWM_TZFLG_CBC_Pos 1 /*!< Latched status flag for Cycle-By-Cycle trip event */ +#define PWM_TZFLG_OST_Pos 2 /*!< Latched status flag for a One-Shot trip event */ + +/* Bit field masks: */ +#define PWM_TZFLG_INT_Msk 0x00000001UL /*!< Latched trip interrupt status flag */ +#define PWM_TZFLG_CBC_Msk 0x00000002UL /*!< Latched status flag for Cycle-By-Cycle trip event */ +#define PWM_TZFLG_OST_Msk 0x00000004UL /*!< Latched status flag for a One-Shot trip event */ + +/*-- TZCLR: Trip-Zone Clear Register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Clear trip-zone interrupt flag */ + uint32_t CBC :1; /*!< Clear flag for Cycle-By-Cycle trip latch + */ + uint32_t OST :1; /*!< Clear flag for One-Shot trip latch */ +} _PWM_TZCLR_bits; + +/* Bit field positions: */ +#define PWM_TZCLR_INT_Pos 0 /*!< Clear trip-zone interrupt flag */ +#define PWM_TZCLR_CBC_Pos 1 /*!< Clear flag for Cycle-By-Cycle trip latch + */ +#define PWM_TZCLR_OST_Pos 2 /*!< Clear flag for One-Shot trip latch */ + +/* Bit field masks: */ +#define PWM_TZCLR_INT_Msk 0x00000001UL /*!< Clear trip-zone interrupt flag */ +#define PWM_TZCLR_CBC_Msk 0x00000002UL /*!< Clear flag for Cycle-By-Cycle trip latch + */ +#define PWM_TZCLR_OST_Msk 0x00000004UL /*!< Clear flag for One-Shot trip latch */ + +/*-- TZFRC: Trip-Zone Force Register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t CBC :1; /*!< Force a Cycle-by-Cycle trip event via software */ + uint32_t OST :1; /*!< Force a One-Shot trip event via software */ +} _PWM_TZFRC_bits; + +/* Bit field positions: */ +#define PWM_TZFRC_CBC_Pos 1 /*!< Force a Cycle-by-Cycle trip event via software */ +#define PWM_TZFRC_OST_Pos 2 /*!< Force a One-Shot trip event via software */ + +/* Bit field masks: */ +#define PWM_TZFRC_CBC_Msk 0x00000002UL /*!< Force a Cycle-by-Cycle trip event via software */ +#define PWM_TZFRC_OST_Msk 0x00000004UL /*!< Force a One-Shot trip event via software */ + +/*-- ETSEL: Event-Trigger Selection Register -----------------------------------------------------------------*/ +typedef struct { + uint32_t INTSEL :3; /*!< PWM_INT interrupt selection options */ + uint32_t INTEN :1; /*!< Enable PWM_INT interrupt generation */ + uint32_t :4; /*!< RESERVED */ + uint32_t SOCASEL :3; /*!< PWM_SOCA selection Options */ + uint32_t SOCAEN :1; /*!< Enable the ADC start of conversion A PWM_SOCA pulse */ + uint32_t SOCBSEL :3; /*!< PWM_SOCB selection Options */ + uint32_t SOCBEN :1; /*!< Enable the ADC start of conversion B PWM_SOCB pulse */ + uint32_t DRQASEL :3; /*!< PWM A DMA request event selection */ + uint32_t DRQAEN :1; /*!< Enable the DMA request from PWM A */ + uint32_t DRQBSEL :3; /*!< PWM B DMA request event selection */ + uint32_t DRQBEN :1; /*!< Enable the DMA request from PWM B */ +} _PWM_ETSEL_bits; + +/* Bit field positions: */ +#define PWM_ETSEL_INTSEL_Pos 0 /*!< PWM_INT interrupt selection options */ +#define PWM_ETSEL_INTEN_Pos 3 /*!< Enable PWM_INT interrupt generation */ +#define PWM_ETSEL_SOCASEL_Pos 8 /*!< PWM_SOCA selection Options */ +#define PWM_ETSEL_SOCAEN_Pos 11 /*!< Enable the ADC start of conversion A PWM_SOCA pulse */ +#define PWM_ETSEL_SOCBSEL_Pos 12 /*!< PWM_SOCB selection Options */ +#define PWM_ETSEL_SOCBEN_Pos 15 /*!< Enable the ADC start of conversion B PWM_SOCB pulse */ +#define PWM_ETSEL_DRQASEL_Pos 16 /*!< PWM A DMA request event selection */ +#define PWM_ETSEL_DRQAEN_Pos 19 /*!< Enable the DMA request from PWM A */ +#define PWM_ETSEL_DRQBSEL_Pos 20 /*!< PWM B DMA request event selection */ +#define PWM_ETSEL_DRQBEN_Pos 23 /*!< Enable the DMA request from PWM B */ + +/* Bit field masks: */ +#define PWM_ETSEL_INTSEL_Msk 0x00000007UL /*!< PWM_INT interrupt selection options */ +#define PWM_ETSEL_INTEN_Msk 0x00000008UL /*!< Enable PWM_INT interrupt generation */ +#define PWM_ETSEL_SOCASEL_Msk 0x00000700UL /*!< PWM_SOCA selection Options */ +#define PWM_ETSEL_SOCAEN_Msk 0x00000800UL /*!< Enable the ADC start of conversion A PWM_SOCA pulse */ +#define PWM_ETSEL_SOCBSEL_Msk 0x00007000UL /*!< PWM_SOCB selection Options */ +#define PWM_ETSEL_SOCBEN_Msk 0x00008000UL /*!< Enable the ADC start of conversion B PWM_SOCB pulse */ +#define PWM_ETSEL_DRQASEL_Msk 0x00070000UL /*!< PWM A DMA request event selection */ +#define PWM_ETSEL_DRQAEN_Msk 0x00080000UL /*!< Enable the DMA request from PWM A */ +#define PWM_ETSEL_DRQBSEL_Msk 0x00700000UL /*!< PWM B DMA request event selection */ +#define PWM_ETSEL_DRQBEN_Msk 0x00800000UL /*!< Enable the DMA request from PWM B */ + +/* Bit field enums: */ +typedef enum { + PWM_ETSEL_INTSEL_CTREqZero = 0x1UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = 0 */ + PWM_ETSEL_INTSEL_CTREqPRD = 0x2UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = PRD */ + PWM_ETSEL_INTSEL_CTREqCMPA_OnUp = 0x4UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count up */ + PWM_ETSEL_INTSEL_CTREqCMPA_OnDown = 0x5UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count down */ + PWM_ETSEL_INTSEL_CTREqCMPB_OnUp = 0x6UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count up */ + PWM_ETSEL_INTSEL_CTREqCMPB_OnDown = 0x7UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count down */ +} PWM_ETSEL_INTSEL_Enum; + +typedef enum { + PWM_ETSEL_SOCASEL_CTREqZero = 0x1UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = 0 */ + PWM_ETSEL_SOCASEL_CTREqPRD = 0x2UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = PRD */ + PWM_ETSEL_SOCASEL_CTREqCMPA_OnUp = 0x4UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count up */ + PWM_ETSEL_SOCASEL_CTREqCMPA_OnDown = 0x5UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count down */ + PWM_ETSEL_SOCASEL_CTREqCMPB_OnUp = 0x6UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count up */ + PWM_ETSEL_SOCASEL_CTREqCMPB_OnDown = 0x7UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count down */ +} PWM_ETSEL_SOCASEL_Enum; + +typedef enum { + PWM_ETSEL_SOCBSEL_CTREqZero = 0x1UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = 0 */ + PWM_ETSEL_SOCBSEL_CTREqPRD = 0x2UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = PRD */ + PWM_ETSEL_SOCBSEL_CTREqCMPA_OnUp = 0x4UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count up */ + PWM_ETSEL_SOCBSEL_CTREqCMPA_OnDown = 0x5UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count down */ + PWM_ETSEL_SOCBSEL_CTREqCMPB_OnUp = 0x6UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count up */ + PWM_ETSEL_SOCBSEL_CTREqCMPB_OnDown = 0x7UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count down */ +} PWM_ETSEL_SOCBSEL_Enum; + +typedef enum { + PWM_ETSEL_DRQASEL_CTREqZero = 0x1UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = 0 */ + PWM_ETSEL_DRQASEL_CTREqPRD = 0x2UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = PRD */ + PWM_ETSEL_DRQASEL_CTREqCMPA_OnUp = 0x4UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count up */ + PWM_ETSEL_DRQASEL_CTREqCMPA_OnDown = 0x5UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count down */ + PWM_ETSEL_DRQASEL_CTREqCMPB_OnUp = 0x6UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count up */ + PWM_ETSEL_DRQASEL_CTREqCMPB_OnDown = 0x7UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count down */ +} PWM_ETSEL_DRQASEL_Enum; + +typedef enum { + PWM_ETSEL_DRQBSEL_CTREqZero = 0x1UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = 0 */ + PWM_ETSEL_DRQBSEL_CTREqPRD = 0x2UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = PRD */ + PWM_ETSEL_DRQBSEL_CTREqCMPA_OnUp = 0x4UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count up */ + PWM_ETSEL_DRQBSEL_CTREqCMPA_OnDown = 0x5UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPA when count down */ + PWM_ETSEL_DRQBSEL_CTREqCMPB_OnUp = 0x6UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count up */ + PWM_ETSEL_DRQBSEL_CTREqCMPB_OnDown = 0x7UL, /*!< generate PWM_SOCA/PWM_SOCB/PWN_INT impulse on CTR = CMPB when count down */ +} PWM_ETSEL_DRQBSEL_Enum; + +/*-- ETPS: Event-Trigger Prescale Register -------------------------------------------------------------------*/ +typedef struct { + uint32_t INTPRD :2; /*!< PWM interrupt (PWM_INT) period select */ + uint32_t INTCNT :2; /*!< PWM interrupt event (PWM_INT) counter register */ + uint32_t :4; /*!< RESERVED */ + uint32_t SOCAPRD :2; /*!< PWM ADC Start-of-Conversion A event (PWM_SOCA) period select */ + uint32_t SOCACNT :2; /*!< PWM ADC Start-of-Conversion A event (PWM_SOCA) counter register */ + uint32_t SOCBPRD :2; /*!< PWM ADC Start-of-Conversion B event (PWM_SOCB) period select */ + uint32_t SOCBCNT :2; /*!< PWM ADC Start-of-Conversion B event (PWM_SOCB) counter register */ + uint32_t DRQAPRD :2; /*!< PWM DMA request A period select */ + uint32_t DRQACNT :2; /*!< PWM DMA request event A counter */ + uint32_t DRQBPRD :2; /*!< PWM DMA request B period select */ + uint32_t DRQBCNT :2; /*!< PWM DMA request event B counter */ +} _PWM_ETPS_bits; + +/* Bit field positions: */ +#define PWM_ETPS_INTPRD_Pos 0 /*!< PWM interrupt (PWM_INT) period select */ +#define PWM_ETPS_INTCNT_Pos 2 /*!< PWM interrupt event (PWM_INT) counter register */ +#define PWM_ETPS_SOCAPRD_Pos 8 /*!< PWM ADC Start-of-Conversion A event (PWM_SOCA) period select */ +#define PWM_ETPS_SOCACNT_Pos 10 /*!< PWM ADC Start-of-Conversion A event (PWM_SOCA) counter register */ +#define PWM_ETPS_SOCBPRD_Pos 12 /*!< PWM ADC Start-of-Conversion B event (PWM_SOCB) period select */ +#define PWM_ETPS_SOCBCNT_Pos 14 /*!< PWM ADC Start-of-Conversion B event (PWM_SOCB) counter register */ +#define PWM_ETPS_DRQAPRD_Pos 16 /*!< PWM DMA request A period select */ +#define PWM_ETPS_DRQACNT_Pos 18 /*!< PWM DMA request event A counter */ +#define PWM_ETPS_DRQBPRD_Pos 20 /*!< PWM DMA request B period select */ +#define PWM_ETPS_DRQBCNT_Pos 22 /*!< PWM DMA request event B counter */ + +/* Bit field masks: */ +#define PWM_ETPS_INTPRD_Msk 0x00000003UL /*!< PWM interrupt (PWM_INT) period select */ +#define PWM_ETPS_INTCNT_Msk 0x0000000CUL /*!< PWM interrupt event (PWM_INT) counter register */ +#define PWM_ETPS_SOCAPRD_Msk 0x00000300UL /*!< PWM ADC Start-of-Conversion A event (PWM_SOCA) period select */ +#define PWM_ETPS_SOCACNT_Msk 0x00000C00UL /*!< PWM ADC Start-of-Conversion A event (PWM_SOCA) counter register */ +#define PWM_ETPS_SOCBPRD_Msk 0x00003000UL /*!< PWM ADC Start-of-Conversion B event (PWM_SOCB) period select */ +#define PWM_ETPS_SOCBCNT_Msk 0x0000C000UL /*!< PWM ADC Start-of-Conversion B event (PWM_SOCB) counter register */ +#define PWM_ETPS_DRQAPRD_Msk 0x00030000UL /*!< PWM DMA request A period select */ +#define PWM_ETPS_DRQACNT_Msk 0x000C0000UL /*!< PWM DMA request event A counter */ +#define PWM_ETPS_DRQBPRD_Msk 0x00300000UL /*!< PWM DMA request B period select */ +#define PWM_ETPS_DRQBCNT_Msk 0x00C00000UL /*!< PWM DMA request event B counter */ + +/*-- ETFLG: Event-Trigger Flag Register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Latched PWM Interrupt (PWM_INT) status flag */ + uint32_t :1; /*!< RESERVED */ + uint32_t SOCA :1; /*!< Latched PWM ADC Start-of-Conversion A (PWM_SOCA) status flag */ + uint32_t SOCB :1; /*!< Latched PWM ADC Start-of-Conversion B (PWM_SOCB) status flag */ + uint32_t DRQA :1; /*!< Latched PWM DMA request A status flag */ + uint32_t DRQB :1; /*!< Latched PWM DMA request B status flag */ +} _PWM_ETFLG_bits; + +/* Bit field positions: */ +#define PWM_ETFLG_INT_Pos 0 /*!< Latched PWM Interrupt (PWM_INT) status flag */ +#define PWM_ETFLG_SOCA_Pos 2 /*!< Latched PWM ADC Start-of-Conversion A (PWM_SOCA) status flag */ +#define PWM_ETFLG_SOCB_Pos 3 /*!< Latched PWM ADC Start-of-Conversion B (PWM_SOCB) status flag */ +#define PWM_ETFLG_DRQA_Pos 4 /*!< Latched PWM DMA request A status flag */ +#define PWM_ETFLG_DRQB_Pos 5 /*!< Latched PWM DMA request B status flag */ + +/* Bit field masks: */ +#define PWM_ETFLG_INT_Msk 0x00000001UL /*!< Latched PWM Interrupt (PWM_INT) status flag */ +#define PWM_ETFLG_SOCA_Msk 0x00000004UL /*!< Latched PWM ADC Start-of-Conversion A (PWM_SOCA) status flag */ +#define PWM_ETFLG_SOCB_Msk 0x00000008UL /*!< Latched PWM ADC Start-of-Conversion B (PWM_SOCB) status flag */ +#define PWM_ETFLG_DRQA_Msk 0x00000010UL /*!< Latched PWM DMA request A status flag */ +#define PWM_ETFLG_DRQB_Msk 0x00000020UL /*!< Latched PWM DMA request B status flag */ + +/*-- ETCLR: Event-Trigger Clear Register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Latched PWM Interrupt (PWM_INT) flag clear bit */ + uint32_t :1; /*!< RESERVED */ + uint32_t SOCA :1; /*!< Latched PWM ADC Start-of-Conversion A (PWM_SOCA) flag clear bit */ + uint32_t SOCB :1; /*!< Latched PWM ADC Start-of-Conversion B (PWM_SOCB) flag clear bit */ + uint32_t DRQA :1; /*!< Latched PWM DMA request A flag clear bit */ + uint32_t DRQB :1; /*!< Latched PWM DMA request B flag clear bit */ +} _PWM_ETCLR_bits; + +/* Bit field positions: */ +#define PWM_ETCLR_INT_Pos 0 /*!< Latched PWM Interrupt (PWM_INT) flag clear bit */ +#define PWM_ETCLR_SOCA_Pos 2 /*!< Latched PWM ADC Start-of-Conversion A (PWM_SOCA) flag clear bit */ +#define PWM_ETCLR_SOCB_Pos 3 /*!< Latched PWM ADC Start-of-Conversion B (PWM_SOCB) flag clear bit */ +#define PWM_ETCLR_DRQA_Pos 4 /*!< Latched PWM DMA request A flag clear bit */ +#define PWM_ETCLR_DRQB_Pos 5 /*!< Latched PWM DMA request B flag clear bit */ + +/* Bit field masks: */ +#define PWM_ETCLR_INT_Msk 0x00000001UL /*!< Latched PWM Interrupt (PWM_INT) flag clear bit */ +#define PWM_ETCLR_SOCA_Msk 0x00000004UL /*!< Latched PWM ADC Start-of-Conversion A (PWM_SOCA) flag clear bit */ +#define PWM_ETCLR_SOCB_Msk 0x00000008UL /*!< Latched PWM ADC Start-of-Conversion B (PWM_SOCB) flag clear bit */ +#define PWM_ETCLR_DRQA_Msk 0x00000010UL /*!< Latched PWM DMA request A flag clear bit */ +#define PWM_ETCLR_DRQB_Msk 0x00000020UL /*!< Latched PWM DMA request B flag clear bit */ + +/*-- ETFRC: Event-Trigger Force Register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< PWM_INT force bit. */ + uint32_t :1; /*!< RESERVED */ + uint32_t SOCA :1; /*!< PWM_SOCA force bit */ + uint32_t SOCB :1; /*!< PWM_SOCB force bit */ + uint32_t DRQA :1; /*!< PWM DMA request A force bit */ + uint32_t DRQB :1; /*!< PWM DMA request B force bit */ +} _PWM_ETFRC_bits; + +/* Bit field positions: */ +#define PWM_ETFRC_INT_Pos 0 /*!< PWM_INT force bit. */ +#define PWM_ETFRC_SOCA_Pos 2 /*!< PWM_SOCA force bit */ +#define PWM_ETFRC_SOCB_Pos 3 /*!< PWM_SOCB force bit */ +#define PWM_ETFRC_DRQA_Pos 4 /*!< PWM DMA request A force bit */ +#define PWM_ETFRC_DRQB_Pos 5 /*!< PWM DMA request B force bit */ + +/* Bit field masks: */ +#define PWM_ETFRC_INT_Msk 0x00000001UL /*!< PWM_INT force bit. */ +#define PWM_ETFRC_SOCA_Msk 0x00000004UL /*!< PWM_SOCA force bit */ +#define PWM_ETFRC_SOCB_Msk 0x00000008UL /*!< PWM_SOCB force bit */ +#define PWM_ETFRC_DRQA_Msk 0x00000010UL /*!< PWM DMA request A force bit */ +#define PWM_ETFRC_DRQB_Msk 0x00000020UL /*!< PWM DMA request B force bit */ + +/*-- PCCTL: PWM-Chopper Control Register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t CHPEN :1; /*!< PWM-chopping enable */ + uint32_t OSTWTH :4; /*!< One-Shot pulse width */ + uint32_t CHPFREQ :3; /*!< Chopping clock frequency */ + uint32_t CHPDUTY :3; /*!< Chopping clock duty cycle */ +} _PWM_PCCTL_bits; + +/* Bit field positions: */ +#define PWM_PCCTL_CHPEN_Pos 0 /*!< PWM-chopping enable */ +#define PWM_PCCTL_OSTWTH_Pos 1 /*!< One-Shot pulse width */ +#define PWM_PCCTL_CHPFREQ_Pos 5 /*!< Chopping clock frequency */ +#define PWM_PCCTL_CHPDUTY_Pos 8 /*!< Chopping clock duty cycle */ + +/* Bit field masks: */ +#define PWM_PCCTL_CHPEN_Msk 0x00000001UL /*!< PWM-chopping enable */ +#define PWM_PCCTL_OSTWTH_Msk 0x0000001EUL /*!< One-Shot pulse width */ +#define PWM_PCCTL_CHPFREQ_Msk 0x000000E0UL /*!< Chopping clock frequency */ +#define PWM_PCCTL_CHPDUTY_Msk 0x00000700UL /*!< Chopping clock duty cycle */ + +/* Bit field enums: */ +typedef enum { + PWM_PCCTL_CHPFREQ_Div1 = 0x0UL, /*!< sync frequency divide by 1 */ + PWM_PCCTL_CHPFREQ_Div2 = 0x1UL, /*!< sync frequency divide by 2 */ + PWM_PCCTL_CHPFREQ_Div3 = 0x2UL, /*!< sync frequency divide by 3 */ + PWM_PCCTL_CHPFREQ_Div4 = 0x3UL, /*!< sync frequency divide by 4 */ + PWM_PCCTL_CHPFREQ_Div5 = 0x4UL, /*!< sync frequency divide by 5 */ + PWM_PCCTL_CHPFREQ_Div6 = 0x5UL, /*!< sync frequency divide by 6 */ + PWM_PCCTL_CHPFREQ_Div7 = 0x6UL, /*!< sync frequency divide by 7 */ + PWM_PCCTL_CHPFREQ_Div8 = 0x7UL, /*!< sync frequency divide by 8 */ +} PWM_PCCTL_CHPFREQ_Enum; + +typedef enum { + PWM_PCCTL_CHPDUTY_Duty_1_8 = 0x0UL, /*!< duty 1/8 */ + PWM_PCCTL_CHPDUTY_Duty_2_8 = 0x1UL, /*!< duty 2/8 */ + PWM_PCCTL_CHPDUTY_Duty_3_8 = 0x2UL, /*!< duty 3/8 */ + PWM_PCCTL_CHPDUTY_Duty_4_8 = 0x3UL, /*!< duty 4/8 */ + PWM_PCCTL_CHPDUTY_Duty_5_8 = 0x4UL, /*!< duty 5/8 */ + PWM_PCCTL_CHPDUTY_Duty_6_8 = 0x5UL, /*!< duty 6/8 */ + PWM_PCCTL_CHPDUTY_Duty_7_8 = 0x6UL, /*!< duty 7/8 */ +} PWM_PCCTL_CHPDUTY_Enum; + +/*-- FWDTH: Filter Width select Register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t VAL :8; /*!< Pulse filter width selection */ +} _PWM_FWDTH_bits; + +/* Bit field positions: */ +#define PWM_FWDTH_VAL_Pos 0 /*!< Pulse filter width selection */ + +/* Bit field masks: */ +#define PWM_FWDTH_VAL_Msk 0x000000FFUL /*!< Pulse filter width selection */ + +/*-- HDSEL: Hold Detector event Select Register --------------------------------------------------------------*/ +typedef struct { + uint32_t ADCDC0 :1; /*!< Hold detector event by ADC Digital Comparator 0 enable */ + uint32_t ADCDC1 :1; /*!< Hold detector event by ADC Digital Comparator 1 enable */ + uint32_t ADCDC2 :1; /*!< Hold detector event by ADC Digital Comparator 2 enable */ + uint32_t ADCDC3 :1; /*!< Hold detector event by ADC Digital Comparator 3 enable */ + uint32_t :24; /*!< RESERVED */ + uint32_t CBC :1; /*!< Cycle-by-Cycle hold detector enable */ + uint32_t :2; /*!< RESERVED */ + uint32_t OST :1; /*!< One-Shot hold detector enable */ +} _PWM_HDSEL_bits; + +/* Bit field positions: */ +#define PWM_HDSEL_ADCDC0_Pos 0 /*!< Hold detector event by ADC Digital Comparator 0 enable */ +#define PWM_HDSEL_ADCDC1_Pos 1 /*!< Hold detector event by ADC Digital Comparator 1 enable */ +#define PWM_HDSEL_ADCDC2_Pos 2 /*!< Hold detector event by ADC Digital Comparator 2 enable */ +#define PWM_HDSEL_ADCDC3_Pos 3 /*!< Hold detector event by ADC Digital Comparator 3 enable */ +#define PWM_HDSEL_CBC_Pos 28 /*!< Cycle-by-Cycle hold detector enable */ +#define PWM_HDSEL_OST_Pos 31 /*!< One-Shot hold detector enable */ + +/* Bit field masks: */ +#define PWM_HDSEL_ADCDC0_Msk 0x00000001UL /*!< Hold detector event by ADC Digital Comparator 0 enable */ +#define PWM_HDSEL_ADCDC1_Msk 0x00000002UL /*!< Hold detector event by ADC Digital Comparator 1 enable */ +#define PWM_HDSEL_ADCDC2_Msk 0x00000004UL /*!< Hold detector event by ADC Digital Comparator 2 enable */ +#define PWM_HDSEL_ADCDC3_Msk 0x00000008UL /*!< Hold detector event by ADC Digital Comparator 3 enable */ +#define PWM_HDSEL_CBC_Msk 0x10000000UL /*!< Cycle-by-Cycle hold detector enable */ +#define PWM_HDSEL_OST_Msk 0x80000000UL /*!< One-Shot hold detector enable */ + +/*-- HDCTL: Hold Detector Control register -------------------------------------------------------------------*/ +typedef struct { + uint32_t HDA :2; /*!< Action when hold detection A is invoked */ + uint32_t HDB :2; /*!< Action when hold detection B is invoked */ +} _PWM_HDCTL_bits; + +/* Bit field positions: */ +#define PWM_HDCTL_HDA_Pos 0 /*!< Action when hold detection A is invoked */ +#define PWM_HDCTL_HDB_Pos 2 /*!< Action when hold detection B is invoked */ + +/* Bit field masks: */ +#define PWM_HDCTL_HDA_Msk 0x00000003UL /*!< Action when hold detection A is invoked */ +#define PWM_HDCTL_HDB_Msk 0x0000000CUL /*!< Action when hold detection B is invoked */ + +/* Bit field enums: */ +typedef enum { + PWM_HDCTL_HDA_Set = 0x1UL, /*!< PWMA/PWMB go to 1 on failture */ + PWM_HDCTL_HDA_Clear = 0x2UL, /*!< PWMA/PWMB go to 0 on failture */ + PWM_HDCTL_HDA_NoAction = 0x3UL, /*!< no action on failture */ +} PWM_HDCTL_HDA_Enum; + +typedef enum { + PWM_HDCTL_HDB_Set = 0x1UL, /*!< PWMA/PWMB go to 1 on failture */ + PWM_HDCTL_HDB_Clear = 0x2UL, /*!< PWMA/PWMB go to 0 on failture */ + PWM_HDCTL_HDB_NoAction = 0x3UL, /*!< no action on failture */ +} PWM_HDCTL_HDB_Enum; + +/*-- HDEINT: Hold Detector Enable Interrupt Register ---------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t CBC :1; /*!< Hold detector Cycle-by-Cycle interrupt enable */ + uint32_t OST :1; /*!< Hold detector One-Shot interrupt enable */ +} _PWM_HDEINT_bits; + +/* Bit field positions: */ +#define PWM_HDEINT_CBC_Pos 1 /*!< Hold detector Cycle-by-Cycle interrupt enable */ +#define PWM_HDEINT_OST_Pos 2 /*!< Hold detector One-Shot interrupt enable */ + +/* Bit field masks: */ +#define PWM_HDEINT_CBC_Msk 0x00000002UL /*!< Hold detector Cycle-by-Cycle interrupt enable */ +#define PWM_HDEINT_OST_Msk 0x00000004UL /*!< Hold detector One-Shot interrupt enable */ + +/*-- HDFLG: Hold Detector Flag Register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Latched hold detector interrupt status flag */ + uint32_t CBC :1; /*!< Latched status flag for hold detector Cycle-by-Cycle event */ + uint32_t OST :1; /*!< Latched status flag for hold detector One-Shot event */ +} _PWM_HDFLG_bits; + +/* Bit field positions: */ +#define PWM_HDFLG_INT_Pos 0 /*!< Latched hold detector interrupt status flag */ +#define PWM_HDFLG_CBC_Pos 1 /*!< Latched status flag for hold detector Cycle-by-Cycle event */ +#define PWM_HDFLG_OST_Pos 2 /*!< Latched status flag for hold detector One-Shot event */ + +/* Bit field masks: */ +#define PWM_HDFLG_INT_Msk 0x00000001UL /*!< Latched hold detector interrupt status flag */ +#define PWM_HDFLG_CBC_Msk 0x00000002UL /*!< Latched status flag for hold detector Cycle-by-Cycle event */ +#define PWM_HDFLG_OST_Msk 0x00000004UL /*!< Latched status flag for hold detector One-Shot event */ + +/*-- HDCLR: Register clear HD flag ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Clear hold detector interrupt flag */ + uint32_t CBC :1; /*!< Clear flag for Cycle-By-Cycle hold detector latch + */ + uint32_t OST :1; /*!< Clear flag for One-Shot hold detector latch */ +} _PWM_HDCLR_bits; + +/* Bit field positions: */ +#define PWM_HDCLR_INT_Pos 0 /*!< Clear hold detector interrupt flag */ +#define PWM_HDCLR_CBC_Pos 1 /*!< Clear flag for Cycle-By-Cycle hold detector latch + */ +#define PWM_HDCLR_OST_Pos 2 /*!< Clear flag for One-Shot hold detector latch */ + +/* Bit field masks: */ +#define PWM_HDCLR_INT_Msk 0x00000001UL /*!< Clear hold detector interrupt flag */ +#define PWM_HDCLR_CBC_Msk 0x00000002UL /*!< Clear flag for Cycle-By-Cycle hold detector latch + */ +#define PWM_HDCLR_OST_Msk 0x00000004UL /*!< Clear flag for One-Shot hold detector latch */ + +/*-- HDFRC: Hold Detector Force Register ---------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t CBC :1; /*!< Force a Cycle-by-Cycle hold detector event via software */ + uint32_t OST :1; /*!< Force a One-Shot hold detector event via software */ +} _PWM_HDFRC_bits; + +/* Bit field positions: */ +#define PWM_HDFRC_CBC_Pos 1 /*!< Force a Cycle-by-Cycle hold detector event via software */ +#define PWM_HDFRC_OST_Pos 2 /*!< Force a One-Shot hold detector event via software */ + +/* Bit field masks: */ +#define PWM_HDFRC_CBC_Msk 0x00000002UL /*!< Force a Cycle-by-Cycle hold detector event via software */ +#define PWM_HDFRC_OST_Msk 0x00000004UL /*!< Force a One-Shot hold detector event via software */ + +/*-- HDINTCLR: Hold Detector Interrupt pending Clear Register ------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Clear HD interrupt pending */ +} _PWM_HDINTCLR_bits; + +/* Bit field positions: */ +#define PWM_HDINTCLR_INT_Pos 0 /*!< Clear HD interrupt pending */ + +/* Bit field masks: */ +#define PWM_HDINTCLR_INT_Msk 0x00000001UL /*!< Clear HD interrupt pending */ + +/*-- TZINTCLR: Trip-Zone Interrupt pending Clear Register ----------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Clear TZ interrupt pending */ +} _PWM_TZINTCLR_bits; + +/* Bit field positions: */ +#define PWM_TZINTCLR_INT_Pos 0 /*!< Clear TZ interrupt pending */ + +/* Bit field masks: */ +#define PWM_TZINTCLR_INT_Msk 0x00000001UL /*!< Clear TZ interrupt pending */ + +/*-- INTCLR: PWM Interrupt pending Clear Register ------------------------------------------------------------*/ +typedef struct { + uint32_t INT :1; /*!< Clear interrupt pending */ +} _PWM_INTCLR_bits; + +/* Bit field positions: */ +#define PWM_INTCLR_INT_Pos 0 /*!< Clear interrupt pending */ + +/* Bit field masks: */ +#define PWM_INTCLR_INT_Msk 0x00000001UL /*!< Clear interrupt pending */ + +typedef struct { + union { /*!< Time-Base Control Register */ + __IO uint32_t TBCTL; /*!< TBCTL : type used for word access */ + __IO _PWM_TBCTL_bits TBCTL_bit; /*!< TBCTL_bit: structure used for bit access */ + }; + union { /*!< Time-Base Status Register */ + __IO uint32_t TBSTS; /*!< TBSTS : type used for word access */ + __IO _PWM_TBSTS_bits TBSTS_bit; /*!< TBSTS_bit: structure used for bit access */ + }; + union { /*!< Time-Base Phase Register */ + __IO uint32_t TBPHS; /*!< TBPHS : type used for word access */ + __IO _PWM_TBPHS_bits TBPHS_bit; /*!< TBPHS_bit: structure used for bit access */ + }; + union { /*!< Time-Base Counter Register */ + __IO uint32_t TBCTR; /*!< TBCTR : type used for word access */ + __IO _PWM_TBCTR_bits TBCTR_bit; /*!< TBCTR_bit: structure used for bit access */ + }; + union { /*!< Time-Base Period Register */ + __IO uint32_t TBPRD; /*!< TBPRD : type used for word access */ + __IO _PWM_TBPRD_bits TBPRD_bit; /*!< TBPRD_bit: structure used for bit access */ + }; + union { /*!< Counter-Compare Control Register */ + __IO uint32_t CMPCTL; /*!< CMPCTL : type used for word access */ + __IO _PWM_CMPCTL_bits CMPCTL_bit; /*!< CMPCTL_bit: structure used for bit access */ + }; + union { /*!< Counter-Compare A Register */ + __IO uint32_t CMPA; /*!< CMPA : type used for word access */ + __IO _PWM_CMPA_bits CMPA_bit; /*!< CMPA_bit: structure used for bit access */ + }; + union { /*!< Counter-Compare B Register */ + __IO uint32_t CMPB; /*!< CMPB : type used for word access */ + __IO _PWM_CMPB_bits CMPB_bit; /*!< CMPB_bit: structure used for bit access */ + }; + union { /*!< Action-Qualifier Output A Control Register */ + __IO uint32_t AQCTLA; /*!< AQCTLA : type used for word access */ + __IO _PWM_AQCTLA_bits AQCTLA_bit; /*!< AQCTLA_bit: structure used for bit access */ + }; + union { /*!< Action-Qualifier Output B Control Register */ + __IO uint32_t AQCTLB; /*!< AQCTLB : type used for word access */ + __IO _PWM_AQCTLB_bits AQCTLB_bit; /*!< AQCTLB_bit: structure used for bit access */ + }; + union { /*!< Action-Qualifier Software Force Register */ + __IO uint32_t AQSFRC; /*!< AQSFRC : type used for word access */ + __IO _PWM_AQSFRC_bits AQSFRC_bit; /*!< AQSFRC_bit: structure used for bit access */ + }; + union { /*!< Action-Qualifier Continuous Software Force Register */ + __IO uint32_t AQCSFRC; /*!< AQCSFRC : type used for word access */ + __IO _PWM_AQCSFRC_bits AQCSFRC_bit; /*!< AQCSFRC_bit: structure used for bit access */ + }; + union { /*!< Dead-Band Generator Control Register */ + __IO uint32_t DBCTL; /*!< DBCTL : type used for word access */ + __IO _PWM_DBCTL_bits DBCTL_bit; /*!< DBCTL_bit: structure used for bit access */ + }; + union { /*!< Dead-Band Generator Rising Edge Delay Register */ + __IO uint32_t DBRED; /*!< DBRED : type used for word access */ + __IO _PWM_DBRED_bits DBRED_bit; /*!< DBRED_bit: structure used for bit access */ + }; + union { /*!< Dead-Band Generator Falling Edge Delay Register */ + __IO uint32_t DBFED; /*!< DBFED : type used for word access */ + __IO _PWM_DBFED_bits DBFED_bit; /*!< DBFED_bit: structure used for bit access */ + }; + union { /*!< Trip-Zone Select Register */ + __IO uint32_t TZSEL; /*!< TZSEL : type used for word access */ + __IO _PWM_TZSEL_bits TZSEL_bit; /*!< TZSEL_bit: structure used for bit access */ + }; + union { /*!< Trip-Zone Control Register */ + __IO uint32_t TZCTL; /*!< TZCTL : type used for word access */ + __IO _PWM_TZCTL_bits TZCTL_bit; /*!< TZCTL_bit: structure used for bit access */ + }; + union { /*!< Trip-Zone Enable Interrupt Register */ + __IO uint32_t TZEINT; /*!< TZEINT : type used for word access */ + __IO _PWM_TZEINT_bits TZEINT_bit; /*!< TZEINT_bit: structure used for bit access */ + }; + union { /*!< Trip-Zone Flag Register */ + __I uint32_t TZFLG; /*!< TZFLG : type used for word access */ + __I _PWM_TZFLG_bits TZFLG_bit; /*!< TZFLG_bit: structure used for bit access */ + }; + union { /*!< Trip-Zone Clear Register */ + __IO uint32_t TZCLR; /*!< TZCLR : type used for word access */ + __IO _PWM_TZCLR_bits TZCLR_bit; /*!< TZCLR_bit: structure used for bit access */ + }; + union { /*!< Trip-Zone Force Register */ + __IO uint32_t TZFRC; /*!< TZFRC : type used for word access */ + __IO _PWM_TZFRC_bits TZFRC_bit; /*!< TZFRC_bit: structure used for bit access */ + }; + union { /*!< Event-Trigger Selection Register */ + __IO uint32_t ETSEL; /*!< ETSEL : type used for word access */ + __IO _PWM_ETSEL_bits ETSEL_bit; /*!< ETSEL_bit: structure used for bit access */ + }; + union { /*!< Event-Trigger Prescale Register */ + __IO uint32_t ETPS; /*!< ETPS : type used for word access */ + __IO _PWM_ETPS_bits ETPS_bit; /*!< ETPS_bit: structure used for bit access */ + }; + union { /*!< Event-Trigger Flag Register */ + __I uint32_t ETFLG; /*!< ETFLG : type used for word access */ + __I _PWM_ETFLG_bits ETFLG_bit; /*!< ETFLG_bit: structure used for bit access */ + }; + union { /*!< Event-Trigger Clear Register */ + __IO uint32_t ETCLR; /*!< ETCLR : type used for word access */ + __IO _PWM_ETCLR_bits ETCLR_bit; /*!< ETCLR_bit: structure used for bit access */ + }; + union { /*!< Event-Trigger Force Register */ + __IO uint32_t ETFRC; /*!< ETFRC : type used for word access */ + __IO _PWM_ETFRC_bits ETFRC_bit; /*!< ETFRC_bit: structure used for bit access */ + }; + union { /*!< PWM-Chopper Control Register */ + __IO uint32_t PCCTL; /*!< PCCTL : type used for word access */ + __IO _PWM_PCCTL_bits PCCTL_bit; /*!< PCCTL_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0; + union { /*!< Filter Width select Register */ + __IO uint32_t FWDTH; /*!< FWDTH : type used for word access */ + __IO _PWM_FWDTH_bits FWDTH_bit; /*!< FWDTH_bit: structure used for bit access */ + }; + __IO uint32_t Reserved1[5]; + union { /*!< Hold Detector event Select Register */ + __IO uint32_t HDSEL; /*!< HDSEL : type used for word access */ + __IO _PWM_HDSEL_bits HDSEL_bit; /*!< HDSEL_bit: structure used for bit access */ + }; + union { /*!< Hold Detector Control register */ + __IO uint32_t HDCTL; /*!< HDCTL : type used for word access */ + __IO _PWM_HDCTL_bits HDCTL_bit; /*!< HDCTL_bit: structure used for bit access */ + }; + union { /*!< Hold Detector Enable Interrupt Register */ + __IO uint32_t HDEINT; /*!< HDEINT : type used for word access */ + __IO _PWM_HDEINT_bits HDEINT_bit; /*!< HDEINT_bit: structure used for bit access */ + }; + union { /*!< Hold Detector Flag Register */ + __I uint32_t HDFLG; /*!< HDFLG : type used for word access */ + __I _PWM_HDFLG_bits HDFLG_bit; /*!< HDFLG_bit: structure used for bit access */ + }; + union { /*!< Register clear HD flag */ + __IO uint32_t HDCLR; /*!< HDCLR : type used for word access */ + __IO _PWM_HDCLR_bits HDCLR_bit; /*!< HDCLR_bit: structure used for bit access */ + }; + union { /*!< Hold Detector Force Register */ + __IO uint32_t HDFRC; /*!< HDFRC : type used for word access */ + __IO _PWM_HDFRC_bits HDFRC_bit; /*!< HDFRC_bit: structure used for bit access */ + }; + union { /*!< Hold Detector Interrupt pending Clear Register */ + __O uint32_t HDINTCLR; /*!< HDINTCLR : type used for word access */ + __O _PWM_HDINTCLR_bits HDINTCLR_bit; /*!< HDINTCLR_bit: structure used for bit access */ + }; + union { /*!< Trip-Zone Interrupt pending Clear Register */ + __O uint32_t TZINTCLR; /*!< TZINTCLR : type used for word access */ + __O _PWM_TZINTCLR_bits TZINTCLR_bit; /*!< TZINTCLR_bit: structure used for bit access */ + }; + union { /*!< PWM Interrupt pending Clear Register */ + __O uint32_t INTCLR; /*!< INTCLR : type used for word access */ + __O _PWM_INTCLR_bits INTCLR_bit; /*!< INTCLR_bit: structure used for bit access */ + }; +} PWM_TypeDef; + + +/******************************************************************************/ +/* SPI registers */ +/******************************************************************************/ + +/*-- CR0: Control register 0 ---------------------------------------------------------------------------------*/ +typedef struct { + uint32_t DSS :4; /*!< Size of data */ + uint32_t FRF :2; /*!< Select protocol */ + uint32_t SPO :1; /*!< Polarity SSPCLKOUT */ + uint32_t SPH :1; /*!< Phase SSPCLKOUT */ + uint32_t SCR :8; /*!< Value divider */ +} _SPI_CR0_bits; + +/* Bit field positions: */ +#define SPI_CR0_DSS_Pos 0 /*!< Size of data */ +#define SPI_CR0_FRF_Pos 4 /*!< Select protocol */ +#define SPI_CR0_SPO_Pos 6 /*!< Polarity SSPCLKOUT */ +#define SPI_CR0_SPH_Pos 7 /*!< Phase SSPCLKOUT */ +#define SPI_CR0_SCR_Pos 8 /*!< Value divider */ + +/* Bit field masks: */ +#define SPI_CR0_DSS_Msk 0x0000000FUL /*!< Size of data */ +#define SPI_CR0_FRF_Msk 0x00000030UL /*!< Select protocol */ +#define SPI_CR0_SPO_Msk 0x00000040UL /*!< Polarity SSPCLKOUT */ +#define SPI_CR0_SPH_Msk 0x00000080UL /*!< Phase SSPCLKOUT */ +#define SPI_CR0_SCR_Msk 0x0000FF00UL /*!< Value divider */ + +/* Bit field enums: */ +typedef enum { + SPI_CR0_DSS_4bit = 0x3UL, /*!< data size 4 bit */ + SPI_CR0_DSS_5bit = 0x4UL, /*!< data size 5 bit */ + SPI_CR0_DSS_6bit = 0x5UL, /*!< data size 6 bit */ + SPI_CR0_DSS_7bit = 0x6UL, /*!< data size 7 bit */ + SPI_CR0_DSS_8bit = 0x7UL, /*!< data size 8 bit */ + SPI_CR0_DSS_9bit = 0x8UL, /*!< data size 9 bit */ + SPI_CR0_DSS_10bit = 0x9UL, /*!< data size 10 bit */ + SPI_CR0_DSS_11bit = 0xAUL, /*!< data size 11 bit */ + SPI_CR0_DSS_12bit = 0xBUL, /*!< data size 12 bit */ + SPI_CR0_DSS_13bit = 0xCUL, /*!< data size 13 bit */ + SPI_CR0_DSS_14bit = 0xDUL, /*!< data size 14 bit */ + SPI_CR0_DSS_15bit = 0xEUL, /*!< data size 15 bit */ + SPI_CR0_DSS_16bit = 0xFUL, /*!< data size 16 bit */ +} SPI_CR0_DSS_Enum; + +typedef enum { + SPI_CR0_FRF_SPI = 0x0UL, /*!< SPI of Motorola */ + SPI_CR0_FRF_SSI = 0x1UL, /*!< SSI of Texas Instruments */ + SPI_CR0_FRF_Microwire = 0x2UL, /*!< Microwire of National Semiconductor */ +} SPI_CR0_FRF_Enum; + +/*-- CR1: Control register 1 ---------------------------------------------------------------------------------*/ +typedef struct { + uint32_t :1; /*!< RESERVED */ + uint32_t SSE :1; /*!< Enable transceiver */ + uint32_t MS :1; /*!< Select mode */ + uint32_t SOD :1; /*!< Disable bit data */ + uint32_t :4; /*!< RESERVED */ + uint32_t RXIFLSEL :4; /*!< Receive interrupt FIFO level select */ + uint32_t TXIFLSEL :4; /*!< Transmit interrupt FIFO level select */ +} _SPI_CR1_bits; + +/* Bit field positions: */ +#define SPI_CR1_SSE_Pos 1 /*!< Enable transceiver */ +#define SPI_CR1_MS_Pos 2 /*!< Select mode */ +#define SPI_CR1_SOD_Pos 3 /*!< Disable bit data */ +#define SPI_CR1_RXIFLSEL_Pos 8 /*!< Receive interrupt FIFO level select */ +#define SPI_CR1_TXIFLSEL_Pos 12 /*!< Transmit interrupt FIFO level select */ + +/* Bit field masks: */ +#define SPI_CR1_SSE_Msk 0x00000002UL /*!< Enable transceiver */ +#define SPI_CR1_MS_Msk 0x00000004UL /*!< Select mode */ +#define SPI_CR1_SOD_Msk 0x00000008UL /*!< Disable bit data */ +#define SPI_CR1_RXIFLSEL_Msk 0x00000F00UL /*!< Receive interrupt FIFO level select */ +#define SPI_CR1_TXIFLSEL_Msk 0x0000F000UL /*!< Transmit interrupt FIFO level select */ + +/*-- DR: Data register ---------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t DATA :16; /*!< */ +} _SPI_DR_bits; + +/* Bit field positions: */ +#define SPI_DR_DATA_Pos 0 /*!< */ + +/* Bit field masks: */ +#define SPI_DR_DATA_Msk 0x0000FFFFUL /*!< */ + +/*-- SR: State register --------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t TFE :1; /*!< FIFO buffer empty flag transmitter */ + uint32_t TNF :1; /*!< Indicator the transmitter FIFO buffer is not full */ + uint32_t RNE :1; /*!< Indicate not empty receive buffer */ + uint32_t RFF :1; /*!< Indicate full receive buffer */ + uint32_t BSY :1; /*!< Activity flag */ +} _SPI_SR_bits; + +/* Bit field positions: */ +#define SPI_SR_TFE_Pos 0 /*!< FIFO buffer empty flag transmitter */ +#define SPI_SR_TNF_Pos 1 /*!< Indicator the transmitter FIFO buffer is not full */ +#define SPI_SR_RNE_Pos 2 /*!< Indicate not empty receive buffer */ +#define SPI_SR_RFF_Pos 3 /*!< Indicate full receive buffer */ +#define SPI_SR_BSY_Pos 4 /*!< Activity flag */ + +/* Bit field masks: */ +#define SPI_SR_TFE_Msk 0x00000001UL /*!< FIFO buffer empty flag transmitter */ +#define SPI_SR_TNF_Msk 0x00000002UL /*!< Indicator the transmitter FIFO buffer is not full */ +#define SPI_SR_RNE_Msk 0x00000004UL /*!< Indicate not empty receive buffer */ +#define SPI_SR_RFF_Msk 0x00000008UL /*!< Indicate full receive buffer */ +#define SPI_SR_BSY_Msk 0x00000010UL /*!< Activity flag */ + +/*-- CPSR: Clock division factor register --------------------------------------------------------------------*/ +typedef struct { + uint32_t CPSDVSR :8; /*!< Clock division factor. Bit0 always 0 */ +} _SPI_CPSR_bits; + +/* Bit field positions: */ +#define SPI_CPSR_CPSDVSR_Pos 0 /*!< Clock division factor. Bit0 always 0 */ + +/* Bit field masks: */ +#define SPI_CPSR_CPSDVSR_Msk 0x000000FFUL /*!< Clock division factor. Bit0 always 0 */ + +/*-- IMSC: Mask interrupt register ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t RORIM :1; /*!< Interrupt mask bit SSPRORINTR buffer overflow receiver */ + uint32_t RTIM :1; /*!< Interrupt mask bit SSPRTINTR timeout receiver */ + uint32_t RXIM :1; /*!< SSPRXINTR interrupt mask bit to fill 50% or less of the receiver FIFO buffer */ + uint32_t TXIM :1; /*!< SSPTXINTR interrupt mask bit to fill 50% or less of the FIFO buffer of the transmitter */ +} _SPI_IMSC_bits; + +/* Bit field positions: */ +#define SPI_IMSC_RORIM_Pos 0 /*!< Interrupt mask bit SSPRORINTR buffer overflow receiver */ +#define SPI_IMSC_RTIM_Pos 1 /*!< Interrupt mask bit SSPRTINTR timeout receiver */ +#define SPI_IMSC_RXIM_Pos 2 /*!< SSPRXINTR interrupt mask bit to fill 50% or less of the receiver FIFO buffer */ +#define SPI_IMSC_TXIM_Pos 3 /*!< SSPTXINTR interrupt mask bit to fill 50% or less of the FIFO buffer of the transmitter */ + +/* Bit field masks: */ +#define SPI_IMSC_RORIM_Msk 0x00000001UL /*!< Interrupt mask bit SSPRORINTR buffer overflow receiver */ +#define SPI_IMSC_RTIM_Msk 0x00000002UL /*!< Interrupt mask bit SSPRTINTR timeout receiver */ +#define SPI_IMSC_RXIM_Msk 0x00000004UL /*!< SSPRXINTR interrupt mask bit to fill 50% or less of the receiver FIFO buffer */ +#define SPI_IMSC_TXIM_Msk 0x00000008UL /*!< SSPTXINTR interrupt mask bit to fill 50% or less of the FIFO buffer of the transmitter */ + +/*-- RIS: Status register interrupt without mask -------------------------------------------------------------*/ +typedef struct { + uint32_t RORRIS :1; /*!< Interrupt status before masking SSPRORINTR */ + uint32_t RTRIS :1; /*!< Interrupt status before masking SSPRTINTR */ + uint32_t RXRIS :1; /*!< Interrupt status before masking SSPRXINTR */ + uint32_t TXRIS :1; /*!< Interrupt status before masking SSPTXINTR */ +} _SPI_RIS_bits; + +/* Bit field positions: */ +#define SPI_RIS_RORRIS_Pos 0 /*!< Interrupt status before masking SSPRORINTR */ +#define SPI_RIS_RTRIS_Pos 1 /*!< Interrupt status before masking SSPRTINTR */ +#define SPI_RIS_RXRIS_Pos 2 /*!< Interrupt status before masking SSPRXINTR */ +#define SPI_RIS_TXRIS_Pos 3 /*!< Interrupt status before masking SSPTXINTR */ + +/* Bit field masks: */ +#define SPI_RIS_RORRIS_Msk 0x00000001UL /*!< Interrupt status before masking SSPRORINTR */ +#define SPI_RIS_RTRIS_Msk 0x00000002UL /*!< Interrupt status before masking SSPRTINTR */ +#define SPI_RIS_RXRIS_Msk 0x00000004UL /*!< Interrupt status before masking SSPRXINTR */ +#define SPI_RIS_TXRIS_Msk 0x00000008UL /*!< Interrupt status before masking SSPTXINTR */ + +/*-- MIS: Status register interrupt masking account ----------------------------------------------------------*/ +typedef struct { + uint32_t RORRIS :1; /*!< Masked interrupt status SSPRORINTR */ + uint32_t RTRIS :1; /*!< Masked interrupt status SSPRTINTR */ + uint32_t RXRIS :1; /*!< Masked interrupt status SSPRXINTR */ + uint32_t TXRIS :1; /*!< Masked interrupt status SSPTXINTR */ +} _SPI_MIS_bits; + +/* Bit field positions: */ +#define SPI_MIS_RORRIS_Pos 0 /*!< Masked interrupt status SSPRORINTR */ +#define SPI_MIS_RTRIS_Pos 1 /*!< Masked interrupt status SSPRTINTR */ +#define SPI_MIS_RXRIS_Pos 2 /*!< Masked interrupt status SSPRXINTR */ +#define SPI_MIS_TXRIS_Pos 3 /*!< Masked interrupt status SSPTXINTR */ + +/* Bit field masks: */ +#define SPI_MIS_RORRIS_Msk 0x00000001UL /*!< Masked interrupt status SSPRORINTR */ +#define SPI_MIS_RTRIS_Msk 0x00000002UL /*!< Masked interrupt status SSPRTINTR */ +#define SPI_MIS_RXRIS_Msk 0x00000004UL /*!< Masked interrupt status SSPRXINTR */ +#define SPI_MIS_TXRIS_Msk 0x00000008UL /*!< Masked interrupt status SSPTXINTR */ + +/*-- ICR: Register reset interrupt ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t RORIC :1; /*!< Reset interrupt SSPRORINTR */ + uint32_t RTIC :1; /*!< Reset interrupt SSPRTINTR */ +} _SPI_ICR_bits; + +/* Bit field positions: */ +#define SPI_ICR_RORIC_Pos 0 /*!< Reset interrupt SSPRORINTR */ +#define SPI_ICR_RTIC_Pos 1 /*!< Reset interrupt SSPRTINTR */ + +/* Bit field masks: */ +#define SPI_ICR_RORIC_Msk 0x00000001UL /*!< Reset interrupt SSPRORINTR */ +#define SPI_ICR_RTIC_Msk 0x00000002UL /*!< Reset interrupt SSPRTINTR */ + +/*-- DMACR: Control register DMA -----------------------------------------------------------------------------*/ +typedef struct { + uint32_t RXDMAE :1; /*!< DMA enable bit at reception */ + uint32_t TXDMAE :1; /*!< DMA enable bit transmission */ +} _SPI_DMACR_bits; + +/* Bit field positions: */ +#define SPI_DMACR_RXDMAE_Pos 0 /*!< DMA enable bit at reception */ +#define SPI_DMACR_TXDMAE_Pos 1 /*!< DMA enable bit transmission */ + +/* Bit field masks: */ +#define SPI_DMACR_RXDMAE_Msk 0x00000001UL /*!< DMA enable bit at reception */ +#define SPI_DMACR_TXDMAE_Msk 0x00000002UL /*!< DMA enable bit transmission */ + +typedef struct { + union { /*!< Control register 0 */ + __IO uint32_t CR0; /*!< CR0 : type used for word access */ + __IO _SPI_CR0_bits CR0_bit; /*!< CR0_bit: structure used for bit access */ + }; + union { /*!< Control register 1 */ + __IO uint32_t CR1; /*!< CR1 : type used for word access */ + __IO _SPI_CR1_bits CR1_bit; /*!< CR1_bit: structure used for bit access */ + }; + union { /*!< Data register */ + __IO uint32_t DR; /*!< DR : type used for word access */ + __IO _SPI_DR_bits DR_bit; /*!< DR_bit: structure used for bit access */ + }; + union { /*!< State register */ + __I uint32_t SR; /*!< SR : type used for word access */ + __I _SPI_SR_bits SR_bit; /*!< SR_bit: structure used for bit access */ + }; + union { /*!< Clock division factor register */ + __IO uint32_t CPSR; /*!< CPSR : type used for word access */ + __IO _SPI_CPSR_bits CPSR_bit; /*!< CPSR_bit: structure used for bit access */ + }; + union { /*!< Mask interrupt register */ + __IO uint32_t IMSC; /*!< IMSC : type used for word access */ + __IO _SPI_IMSC_bits IMSC_bit; /*!< IMSC_bit: structure used for bit access */ + }; + union { /*!< Status register interrupt without mask */ + __I uint32_t RIS; /*!< RIS : type used for word access */ + __I _SPI_RIS_bits RIS_bit; /*!< RIS_bit: structure used for bit access */ + }; + union { /*!< Status register interrupt masking account */ + __I uint32_t MIS; /*!< MIS : type used for word access */ + __I _SPI_MIS_bits MIS_bit; /*!< MIS_bit: structure used for bit access */ + }; + union { /*!< Register reset interrupt */ + __O uint32_t ICR; /*!< ICR : type used for word access */ + __O _SPI_ICR_bits ICR_bit; /*!< ICR_bit: structure used for bit access */ + }; + union { /*!< Control register DMA */ + __IO uint32_t DMACR; /*!< DMACR : type used for word access */ + __IO _SPI_DMACR_bits DMACR_bit; /*!< DMACR_bit: structure used for bit access */ + }; +} SPI_TypeDef; + + +/******************************************************************************/ +/* I2C registers */ +/******************************************************************************/ + +/*-- SDA: Data register --------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t DATA :8; /*!< Data field */ +} _I2C_SDA_bits; + +/* Bit field positions: */ +#define I2C_SDA_DATA_Pos 0 /*!< Data field */ + +/* Bit field masks: */ +#define I2C_SDA_DATA_Msk 0x000000FFUL /*!< Data field */ + +/*-- ST: Status register -------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t MODE :6; /*!< Status code */ + uint32_t :1; /*!< RESERVED */ + uint32_t INT :1; /*!< Interrupt flag */ +} _I2C_ST_bits; + +/* Bit field positions: */ +#define I2C_ST_MODE_Pos 0 /*!< Status code */ +#define I2C_ST_INT_Pos 7 /*!< Interrupt flag */ + +/* Bit field masks: */ +#define I2C_ST_MODE_Msk 0x0000003FUL /*!< Status code */ +#define I2C_ST_INT_Msk 0x00000080UL /*!< Interrupt flag */ + +/* Bit field enums: */ +typedef enum { + I2C_ST_MODE_IDLE = 0x0UL, /*!< General - Idle, no valid status information available */ + I2C_ST_MODE_STDONE = 0x1UL, /*!< FS master - Start condition generated */ + I2C_ST_MODE_RSDONE = 0x2UL, /*!< FS master - Repeated start condition generated */ + I2C_ST_MODE_IDLARL = 0x3UL, /*!< FS master - Arbitration lost, unaddressed slave mode entered */ + I2C_ST_MODE_MTADPA = 0x4UL, /*!< FS master transmit - Slave address sent, positive ACK */ + I2C_ST_MODE_MTADNA = 0x5UL, /*!< FS master transmit - Slave address sent, negative ACK */ + I2C_ST_MODE_MTDAPA = 0x6UL, /*!< FS master transmit - Data byte sent, positive ACK */ + I2C_ST_MODE_MTDANA = 0x7UL, /*!< FS master transmit - Data byte sent, negative ACK */ + I2C_ST_MODE_MRADPA = 0x8UL, /*!< FS master receive - Slave addres sent, positive ACK */ + I2C_ST_MODE_MRADNA = 0x9UL, /*!< FS master receive - Slave addres sent, negative ACK */ + I2C_ST_MODE_MRDAPA = 0xAUL, /*!< FS master receive - Data byte received, positive ACK */ + I2C_ST_MODE_MRDANA = 0xBUL, /*!< FS master receive - Data byte received, negative ACK */ + I2C_ST_MODE_MTMCER = 0xCUL, /*!< FS master - Mastercode transmitted, error detected (positive ACK) */ + I2C_ST_MODE_SRADPA = 0x10UL, /*!< FS slave receive - Slave address received, positive ACK */ + I2C_ST_MODE_SRAAPA = 0x11UL, /*!< FS slave receive - Slave address received after arbitration loss, positive ACK */ + I2C_ST_MODE_SRDAPA = 0x12UL, /*!< FS slave receive - Data byte received, positive ACK */ + I2C_ST_MODE_SRDANA = 0x13UL, /*!< FS slave receive - Data byte received, negative ACK */ + I2C_ST_MODE_STADPA = 0x14UL, /*!< FS slave transmit - Slave address received, positive ACK */ + I2C_ST_MODE_STAAPA = 0x15UL, /*!< FS slave transmit - Slave address received, negative ACK */ + I2C_ST_MODE_STDAPA = 0x16UL, /*!< FS slave transmit - Data byte sent, positive ACK */ + I2C_ST_MODE_STDANA = 0x17UL, /*!< FS slave transmit - Data byte sent, negative ACK */ + I2C_ST_MODE_SATADP = 0x18UL, /*!< FS slave transmit alert response - Alert response address received, positive ACK */ + I2C_ST_MODE_SATAAP = 0x19UL, /*!< FS slave transmit alert response - Alert response address received after arbitration loss, positive ACK */ + I2C_ST_MODE_SATDAP = 0x1AUL, /*!< FS slave transmit alert response - Alert response data byte sent, positive ACK */ + I2C_ST_MODE_SATDAN = 0x1BUL, /*!< FS slave transmit alert response - Alert response data byte sent, negative ACK */ + I2C_ST_MODE_SSTOP = 0x1CUL, /*!< FS slave - Slave mode stop condition detected */ + I2C_ST_MODE_SGADPA = 0x1DUL, /*!< FS slave - Global call address received, positive ACK */ + I2C_ST_MODE_SDAAPA = 0x1EUL, /*!< FS slave - Global call address received after arbitration loss, positive ACK */ + I2C_ST_MODE_BERROR = 0x1FUL, /*!< General - Bus error detected (invalid start or stop condition */ + I2C_ST_MODE_HMTMCOK = 0x21UL, /*!< HS master - Master code transmitted OK - switched to HS mode */ + I2C_ST_MODE_HRSDONE = 0x22UL, /*!< HS master - Repeated start condition generated */ + I2C_ST_MODE_HIDLARL = 0x23UL, /*!< HS master - Arbitration lost, HS unaddressed slave mode entered */ + I2C_ST_MODE_HMTADPA = 0x24UL, /*!< HS master transmit - Slave address sent, positive ACK */ + I2C_ST_MODE_HMTADNA = 0x25UL, /*!< HS master transmit - Slave address sent, negative ACK */ + I2C_ST_MODE_HMTDAPA = 0x26UL, /*!< HS master transmit - Data byte sent, positive ACK */ + I2C_ST_MODE_HMTDANA = 0x27UL, /*!< HS master transmit - Data byte sent, negative ACK */ + I2C_ST_MODE_HMRADPA = 0x28UL, /*!< HS master receive - Slave address sent, positive ACK */ + I2C_ST_MODE_HMRADNA = 0x29UL, /*!< HS master receive - Slave address sent, negative ACK */ + I2C_ST_MODE_HMRDAPA = 0x2AUL, /*!< HS master receive - Data byte received, positive ACK */ + I2C_ST_MODE_HMRDANA = 0x2BUL, /*!< HS master receive - Data byte received, negative ACK */ + I2C_ST_MODE_HSRADPA = 0x30UL, /*!< HS slave receive - Slave address received, positive ACK */ + I2C_ST_MODE_HSRDAPA = 0x32UL, /*!< HS slave receive - Data byte received, positive ACK */ + I2C_ST_MODE_HSRDANA = 0x33UL, /*!< HS slave receive - Data byte received, negative ACK */ + I2C_ST_MODE_HSTADPA = 0x34UL, /*!< HS slave transmit - Slave address received, positive ACK */ + I2C_ST_MODE_HSTDAPA = 0x36UL, /*!< HS slave transmit - Data byte sent, positive ACK */ + I2C_ST_MODE_HSTDANA = 0x37UL, /*!< HS slave transmit - Data byte sent, negative ACK */ +} I2C_ST_MODE_Enum; + +/*-- CST: Status and control register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t BB :1; /*!< Bus Busy */ + uint32_t TOCDIV :2; /*!< SMBus Timeout Divider */ + uint32_t TOERR :1; /*!< SMBus Timeout Error */ + uint32_t TSDA :1; /*!< Bit test SDA */ + uint32_t TGSCL :1; /*!< Toggle SCL */ + uint32_t PECNEXT :1; /*!< PEC Next */ + uint32_t PECFAULT :1; /*!< Packet Error Fault */ +} _I2C_CST_bits; + +/* Bit field positions: */ +#define I2C_CST_BB_Pos 0 /*!< Bus Busy */ +#define I2C_CST_TOCDIV_Pos 1 /*!< SMBus Timeout Divider */ +#define I2C_CST_TOERR_Pos 3 /*!< SMBus Timeout Error */ +#define I2C_CST_TSDA_Pos 4 /*!< Bit test SDA */ +#define I2C_CST_TGSCL_Pos 5 /*!< Toggle SCL */ +#define I2C_CST_PECNEXT_Pos 6 /*!< PEC Next */ +#define I2C_CST_PECFAULT_Pos 7 /*!< Packet Error Fault */ + +/* Bit field masks: */ +#define I2C_CST_BB_Msk 0x00000001UL /*!< Bus Busy */ +#define I2C_CST_TOCDIV_Msk 0x00000006UL /*!< SMBus Timeout Divider */ +#define I2C_CST_TOERR_Msk 0x00000008UL /*!< SMBus Timeout Error */ +#define I2C_CST_TSDA_Msk 0x00000010UL /*!< Bit test SDA */ +#define I2C_CST_TGSCL_Msk 0x00000020UL /*!< Toggle SCL */ +#define I2C_CST_PECNEXT_Msk 0x00000040UL /*!< PEC Next */ +#define I2C_CST_PECFAULT_Msk 0x00000080UL /*!< Packet Error Fault */ + +/* Bit field enums: */ +typedef enum { + I2C_CST_TOCDIV_Disable = 0x0UL, /*!< disable clock */ + I2C_CST_TOCDIV_Div4 = 0x1UL, /*!< clock divided by 4 */ + I2C_CST_TOCDIV_Div8 = 0x2UL, /*!< clock divided by 8 */ + I2C_CST_TOCDIV_Div16 = 0x3UL, /*!< clock divided by 16 */ +} I2C_CST_TOCDIV_Enum; + +/*-- CTL0: Control register 0 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t START :1; /*!< Start bit */ + uint32_t STOP :1; /*!< Stop bit */ + uint32_t INTEN :1; /*!< Interrupt enable bit */ + uint32_t :1; /*!< RESERVED */ + uint32_t ACK :1; /*!< Acknowledge bit */ + uint32_t GCMEN :1; /*!< Global call match enable */ + uint32_t SMBARE :1; /*!< SMBus Alert Response Match Enable */ + uint32_t CLRST :1; /*!< Clear interrupt status */ +} _I2C_CTL0_bits; + +/* Bit field positions: */ +#define I2C_CTL0_START_Pos 0 /*!< Start bit */ +#define I2C_CTL0_STOP_Pos 1 /*!< Stop bit */ +#define I2C_CTL0_INTEN_Pos 2 /*!< Interrupt enable bit */ +#define I2C_CTL0_ACK_Pos 4 /*!< Acknowledge bit */ +#define I2C_CTL0_GCMEN_Pos 5 /*!< Global call match enable */ +#define I2C_CTL0_SMBARE_Pos 6 /*!< SMBus Alert Response Match Enable */ +#define I2C_CTL0_CLRST_Pos 7 /*!< Clear interrupt status */ + +/* Bit field masks: */ +#define I2C_CTL0_START_Msk 0x00000001UL /*!< Start bit */ +#define I2C_CTL0_STOP_Msk 0x00000002UL /*!< Stop bit */ +#define I2C_CTL0_INTEN_Msk 0x00000004UL /*!< Interrupt enable bit */ +#define I2C_CTL0_ACK_Msk 0x00000010UL /*!< Acknowledge bit */ +#define I2C_CTL0_GCMEN_Msk 0x00000020UL /*!< Global call match enable */ +#define I2C_CTL0_SMBARE_Msk 0x00000040UL /*!< SMBus Alert Response Match Enable */ +#define I2C_CTL0_CLRST_Msk 0x00000080UL /*!< Clear interrupt status */ + +/*-- ADDR: Register own address ------------------------------------------------------------------------------*/ +typedef struct { + uint32_t ADDR :7; /*!< Own 7-bit address */ + uint32_t SAEN :1; /*!< Enable address recognition */ +} _I2C_ADDR_bits; + +/* Bit field positions: */ +#define I2C_ADDR_ADDR_Pos 0 /*!< Own 7-bit address */ +#define I2C_ADDR_SAEN_Pos 7 /*!< Enable address recognition */ + +/* Bit field masks: */ +#define I2C_ADDR_ADDR_Msk 0x0000007FUL /*!< Own 7-bit address */ +#define I2C_ADDR_SAEN_Msk 0x00000080UL /*!< Enable address recognition */ + +/*-- CTL1: Control register 1 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t ENABLE :1; /*!< Enable I2C */ + uint32_t SCLFRQ :7; /*!< SCL frequency (bits [6:0]) */ +} _I2C_CTL1_bits; + +/* Bit field positions: */ +#define I2C_CTL1_ENABLE_Pos 0 /*!< Enable I2C */ +#define I2C_CTL1_SCLFRQ_Pos 1 /*!< SCL frequency (bits [6:0]) */ + +/* Bit field masks: */ +#define I2C_CTL1_ENABLE_Msk 0x00000001UL /*!< Enable I2C */ +#define I2C_CTL1_SCLFRQ_Msk 0x000000FEUL /*!< SCL frequency (bits [6:0]) */ + +/*-- TOPR: Prescaler load register ---------------------------------------------------------------------------*/ +typedef struct { + uint32_t SMBTOPR :8; /*!< Prescaler reload value */ +} _I2C_TOPR_bits; + +/* Bit field positions: */ +#define I2C_TOPR_SMBTOPR_Pos 0 /*!< Prescaler reload value */ + +/* Bit field masks: */ +#define I2C_TOPR_SMBTOPR_Msk 0x000000FFUL /*!< Prescaler reload value */ + +/*-- CTL2: Control register 2 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t S10ADR :3; /*!< Upper bits of 10-bit slave address */ + uint32_t S10EN :1; /*!< Enabled 10-bit slave address */ + uint32_t HSDIV :4; /*!< SCL frequency select in HS master mode (bits [3:0]) */ +} _I2C_CTL2_bits; + +/* Bit field positions: */ +#define I2C_CTL2_S10ADR_Pos 0 /*!< Upper bits of 10-bit slave address */ +#define I2C_CTL2_S10EN_Pos 3 /*!< Enabled 10-bit slave address */ +#define I2C_CTL2_HSDIV_Pos 4 /*!< SCL frequency select in HS master mode (bits [3:0]) */ + +/* Bit field masks: */ +#define I2C_CTL2_S10ADR_Msk 0x00000007UL /*!< Upper bits of 10-bit slave address */ +#define I2C_CTL2_S10EN_Msk 0x00000008UL /*!< Enabled 10-bit slave address */ +#define I2C_CTL2_HSDIV_Msk 0x000000F0UL /*!< SCL frequency select in HS master mode (bits [3:0]) */ + +/*-- CTL3: Control register 3 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t SCLFRQ :8; /*!< SCL frequency (bits [14:7]) */ +} _I2C_CTL3_bits; + +/* Bit field positions: */ +#define I2C_CTL3_SCLFRQ_Pos 0 /*!< SCL frequency (bits [14:7]) */ + +/* Bit field masks: */ +#define I2C_CTL3_SCLFRQ_Msk 0x000000FFUL /*!< SCL frequency (bits [14:7]) */ + +/*-- CTL4: Control Register 4 --------------------------------------------------------------------------------*/ +typedef struct { + uint32_t HSDIV :8; /*!< SCL frequency select in HS master mode (bits [11:4]) */ +} _I2C_CTL4_bits; + +/* Bit field positions: */ +#define I2C_CTL4_HSDIV_Pos 0 /*!< SCL frequency select in HS master mode (bits [11:4]) */ + +/* Bit field masks: */ +#define I2C_CTL4_HSDIV_Msk 0x000000FFUL /*!< SCL frequency select in HS master mode (bits [11:4]) */ + +typedef struct { + union { /*!< Data register */ + __IO uint32_t SDA; /*!< SDA : type used for word access */ + __IO _I2C_SDA_bits SDA_bit; /*!< SDA_bit: structure used for bit access */ + }; + union { /*!< Status register */ + __I uint32_t ST; /*!< ST : type used for word access */ + __I _I2C_ST_bits ST_bit; /*!< ST_bit: structure used for bit access */ + }; + union { /*!< Status and control register */ + __IO uint32_t CST; /*!< CST : type used for word access */ + __IO _I2C_CST_bits CST_bit; /*!< CST_bit: structure used for bit access */ + }; + union { /*!< Control register 0 */ + __IO uint32_t CTL0; /*!< CTL0 : type used for word access */ + __IO _I2C_CTL0_bits CTL0_bit; /*!< CTL0_bit: structure used for bit access */ + }; + union { /*!< Register own address */ + __IO uint32_t ADDR; /*!< ADDR : type used for word access */ + __IO _I2C_ADDR_bits ADDR_bit; /*!< ADDR_bit: structure used for bit access */ + }; + union { /*!< Control register 1 */ + __IO uint32_t CTL1; /*!< CTL1 : type used for word access */ + __IO _I2C_CTL1_bits CTL1_bit; /*!< CTL1_bit: structure used for bit access */ + }; + union { /*!< Prescaler load register */ + __IO uint32_t TOPR; /*!< TOPR : type used for word access */ + __IO _I2C_TOPR_bits TOPR_bit; /*!< TOPR_bit: structure used for bit access */ + }; + union { /*!< Control register 2 */ + __IO uint32_t CTL2; /*!< CTL2 : type used for word access */ + __IO _I2C_CTL2_bits CTL2_bit; /*!< CTL2_bit: structure used for bit access */ + }; + union { /*!< Control register 3 */ + __IO uint32_t CTL3; /*!< CTL3 : type used for word access */ + __IO _I2C_CTL3_bits CTL3_bit; /*!< CTL3_bit: structure used for bit access */ + }; + union { /*!< Control Register 4 */ + __IO uint32_t CTL4; /*!< CTL4 : type used for word access */ + __IO _I2C_CTL4_bits CTL4_bit; /*!< CTL4_bit: structure used for bit access */ + }; +} I2C_TypeDef; + + +/******************************************************************************/ +/* CAN registers */ +/******************************************************************************/ + +/*-- CLC: CAN Clock Control Register -------------------------------------------------------------------------*/ +typedef struct { + uint32_t DISR :1; /*!< Module Disable Request bit */ + uint32_t DISS :1; /*!< Module Disable Status Bit */ +} _CAN_CLC_bits; + +/* Bit field positions: */ +#define CAN_CLC_DISR_Pos 0 /*!< Module Disable Request bit */ +#define CAN_CLC_DISS_Pos 1 /*!< Module Disable Status Bit */ + +/* Bit field masks: */ +#define CAN_CLC_DISR_Msk 0x00000001UL /*!< Module Disable Request bit */ +#define CAN_CLC_DISS_Msk 0x00000002UL /*!< Module Disable Status Bit */ + +/*-- ID: Module Identification Register ----------------------------------------------------------------------*/ +typedef struct { + uint32_t MODREV :8; /*!< Module Revision Number */ + uint32_t MODTYPE :8; /*!< Module type */ + uint32_t MODNUM :16; /*!< Module Number Value */ +} _CAN_ID_bits; + +/* Bit field positions: */ +#define CAN_ID_MODREV_Pos 0 /*!< Module Revision Number */ +#define CAN_ID_MODTYPE_Pos 8 /*!< Module type */ +#define CAN_ID_MODNUM_Pos 16 /*!< Module Number Value */ + +/* Bit field masks: */ +#define CAN_ID_MODREV_Msk 0x000000FFUL /*!< Module Revision Number */ +#define CAN_ID_MODTYPE_Msk 0x0000FF00UL /*!< Module type */ +#define CAN_ID_MODNUM_Msk 0xFFFF0000UL /*!< Module Number Value */ + +/*-- FDR: Fractional Divider Register ------------------------------------------------------------------------*/ +typedef struct { + uint32_t STEP :10; /*!< Step Value */ + uint32_t :1; /*!< RESERVED */ + uint32_t SM :1; /*!< Suspend Mode */ + uint32_t SC :2; /*!< Suspend Control */ + uint32_t DM :2; /*!< Divider Mode */ + uint32_t RESULT :10; /*!< Result Value */ + uint32_t :2; /*!< RESERVED */ + uint32_t SUSACK :1; /*!< Suspend Mode Acknowledge */ + uint32_t SUSREQ :1; /*!< Suspend Mode Request */ + uint32_t ENHW :1; /*!< Enable Hardware Clock Control */ + uint32_t DISCLK :1; /*!< Disable Clock */ +} _CAN_FDR_bits; + +/* Bit field positions: */ +#define CAN_FDR_STEP_Pos 0 /*!< Step Value */ +#define CAN_FDR_SM_Pos 11 /*!< Suspend Mode */ +#define CAN_FDR_SC_Pos 12 /*!< Suspend Control */ +#define CAN_FDR_DM_Pos 14 /*!< Divider Mode */ +#define CAN_FDR_RESULT_Pos 16 /*!< Result Value */ +#define CAN_FDR_SUSACK_Pos 28 /*!< Suspend Mode Acknowledge */ +#define CAN_FDR_SUSREQ_Pos 29 /*!< Suspend Mode Request */ +#define CAN_FDR_ENHW_Pos 30 /*!< Enable Hardware Clock Control */ +#define CAN_FDR_DISCLK_Pos 31 /*!< Disable Clock */ + +/* Bit field masks: */ +#define CAN_FDR_STEP_Msk 0x000003FFUL /*!< Step Value */ +#define CAN_FDR_SM_Msk 0x00000800UL /*!< Suspend Mode */ +#define CAN_FDR_SC_Msk 0x00003000UL /*!< Suspend Control */ +#define CAN_FDR_DM_Msk 0x0000C000UL /*!< Divider Mode */ +#define CAN_FDR_RESULT_Msk 0x03FF0000UL /*!< Result Value */ +#define CAN_FDR_SUSACK_Msk 0x10000000UL /*!< Suspend Mode Acknowledge */ +#define CAN_FDR_SUSREQ_Msk 0x20000000UL /*!< Suspend Mode Request */ +#define CAN_FDR_ENHW_Msk 0x40000000UL /*!< Enable Hardware Clock Control */ +#define CAN_FDR_DISCLK_Msk 0x80000000UL /*!< Disable Clock */ + +/* Bit field enums: */ +typedef enum { + CAN_FDR_DM_Disable = 0x0UL, /*!< counter disabled */ + CAN_FDR_DM_NormalMode = 0x1UL, /*!< normal operation mode */ + CAN_FDR_DM_DividerMode = 0x2UL, /*!< divider operation mode */ +} CAN_FDR_DM_Enum; + +/*-- LIST: LIST: List Register0 -------------------------------------------------------------------------------*/ +typedef struct { + uint32_t BEGIN :8; /*!< List Begin */ + uint32_t END :8; /*!< List End */ + uint32_t SIZE :8; /*!< List Size */ + uint32_t EMPTY :1; /*!< List Empty Indication */ +} _CAN_LIST_LIST_bits; + +/* Bit field positions: */ +#define CAN_LIST_LIST_BEGIN_Pos 0 /*!< List Begin */ +#define CAN_LIST_LIST_END_Pos 8 /*!< List End */ +#define CAN_LIST_LIST_SIZE_Pos 16 /*!< List Size */ +#define CAN_LIST_LIST_EMPTY_Pos 24 /*!< List Empty Indication */ + +/* Bit field masks: */ +#define CAN_LIST_LIST_BEGIN_Msk 0x000000FFUL /*!< List Begin */ +#define CAN_LIST_LIST_END_Msk 0x0000FF00UL /*!< List End */ +#define CAN_LIST_LIST_SIZE_Msk 0x00FF0000UL /*!< List Size */ +#define CAN_LIST_LIST_EMPTY_Msk 0x01000000UL /*!< List Empty Indication */ + +/*-- MSPND: MSPND: Message Pending Register0 ------------------------------------------------------------------*/ +typedef struct { + uint32_t PND :32; /*!< Message Pending */ +} _CAN_MSPND_MSPND_bits; + +/* Bit field positions: */ +#define CAN_MSPND_MSPND_PND_Pos 0 /*!< Message Pending */ + +/* Bit field masks: */ +#define CAN_MSPND_MSPND_PND_Msk 0xFFFFFFFFUL /*!< Message Pending */ + +/*-- MSID: MSID: Message Index Register0 ----------------------------------------------------------------------*/ +typedef struct { + uint32_t INDEX :8; /*!< Message Pending Index */ +} _CAN_MSID_MSID_bits; + +/* Bit field positions: */ +#define CAN_MSID_MSID_INDEX_Pos 0 /*!< Message Pending Index */ + +/* Bit field masks: */ +#define CAN_MSID_MSID_INDEX_Msk 0x000000FFUL /*!< Message Pending Index */ + +/*-- MSIMASK: Message Index Mask Register --------------------------------------------------------------------*/ +typedef struct { + uint32_t IM :32; /*!< Message Index Mask */ +} _CAN_MSIMASK_bits; + +/* Bit field positions: */ +#define CAN_MSIMASK_IM_Pos 0 /*!< Message Index Mask */ + +/* Bit field masks: */ +#define CAN_MSIMASK_IM_Msk 0xFFFFFFFFUL /*!< Message Index Mask */ + +/*-- PANCTR: Panel Control Register --------------------------------------------------------------------------*/ +typedef struct { + uint32_t PANCMD :8; /*!< Panel Command */ + uint32_t BUSY :1; /*!< Panel Busy Flag */ + uint32_t RBUSY :1; /*!< Result Busy Flag */ + uint32_t :6; /*!< RESERVED */ + uint32_t PANAR1 :8; /*!< Panel argument 1 */ + uint32_t PANAR2 :8; /*!< Panel argument 2 */ +} _CAN_PANCTR_bits; + +/* Bit field positions: */ +#define CAN_PANCTR_PANCMD_Pos 0 /*!< Panel Command */ +#define CAN_PANCTR_BUSY_Pos 8 /*!< Panel Busy Flag */ +#define CAN_PANCTR_RBUSY_Pos 9 /*!< Result Busy Flag */ +#define CAN_PANCTR_PANAR1_Pos 16 /*!< Panel argument 1 */ +#define CAN_PANCTR_PANAR2_Pos 24 /*!< Panel argument 2 */ + +/* Bit field masks: */ +#define CAN_PANCTR_PANCMD_Msk 0x000000FFUL /*!< Panel Command */ +#define CAN_PANCTR_BUSY_Msk 0x00000100UL /*!< Panel Busy Flag */ +#define CAN_PANCTR_RBUSY_Msk 0x00000200UL /*!< Result Busy Flag */ +#define CAN_PANCTR_PANAR1_Msk 0x00FF0000UL /*!< Panel argument 1 */ +#define CAN_PANCTR_PANAR2_Msk 0xFF000000UL /*!< Panel argument 2 */ + +/*-- MCR: ---------------------------------------------------------------------------------------------------*/ +typedef struct { + uint32_t :12; /*!< RESERVED */ + uint32_t MPSEL :4; /*!< Message Pending Selector */ +} _CAN_MCR_bits; + +/* Bit field positions: */ +#define CAN_MCR_MPSEL_Pos 12 /*!< Message Pending Selector */ + +/* Bit field masks: */ +#define CAN_MCR_MPSEL_Msk 0x0000F000UL /*!< Message Pending Selector */ + +/*-- MITR: Module Interrupt Trigger Register -----------------------------------------------------------------*/ +typedef struct { + uint32_t IT :16; /*!< Interrupt Trigger */ +} _CAN_MITR_bits; + +/* Bit field positions: */ +#define CAN_MITR_IT_Pos 0 /*!< Interrupt Trigger */ + +/* Bit field masks: */ +#define CAN_MITR_IT_Msk 0x0000FFFFUL /*!< Interrupt Trigger */ + +/*-- Node: NCR: Node control register0 ------------------------------------------------------------------------*/ +typedef struct { + uint32_t INIT :1; /*!< Node Initialization */ + uint32_t TRIE :1; /*!< Transfer Interrupt Enable */ + uint32_t LECIE :1; /*!< LEC Indicated Error Interrupt Enable */ + uint32_t ALIE :1; /*!< Alert Interrupt Enable */ + uint32_t CANDIS :1; /*!< CAN Disable */ + uint32_t :1; /*!< RESERVED */ + uint32_t CCE :1; /*!< Configuration Change Enable */ + uint32_t CALM :1; /*!< CAN Analyzer Mode */ + uint32_t SUSEN :1; /*!< Suspend Enable */ +} _CAN_Node_NCR_bits; + +/* Bit field positions: */ +#define CAN_Node_NCR_INIT_Pos 0 /*!< Node Initialization */ +#define CAN_Node_NCR_TRIE_Pos 1 /*!< Transfer Interrupt Enable */ +#define CAN_Node_NCR_LECIE_Pos 2 /*!< LEC Indicated Error Interrupt Enable */ +#define CAN_Node_NCR_ALIE_Pos 3 /*!< Alert Interrupt Enable */ +#define CAN_Node_NCR_CANDIS_Pos 4 /*!< CAN Disable */ +#define CAN_Node_NCR_CCE_Pos 6 /*!< Configuration Change Enable */ +#define CAN_Node_NCR_CALM_Pos 7 /*!< CAN Analyzer Mode */ +#define CAN_Node_NCR_SUSEN_Pos 8 /*!< Suspend Enable */ + +/* Bit field masks: */ +#define CAN_Node_NCR_INIT_Msk 0x00000001UL /*!< Node Initialization */ +#define CAN_Node_NCR_TRIE_Msk 0x00000002UL /*!< Transfer Interrupt Enable */ +#define CAN_Node_NCR_LECIE_Msk 0x00000004UL /*!< LEC Indicated Error Interrupt Enable */ +#define CAN_Node_NCR_ALIE_Msk 0x00000008UL /*!< Alert Interrupt Enable */ +#define CAN_Node_NCR_CANDIS_Msk 0x00000010UL /*!< CAN Disable */ +#define CAN_Node_NCR_CCE_Msk 0x00000040UL /*!< Configuration Change Enable */ +#define CAN_Node_NCR_CALM_Msk 0x00000080UL /*!< CAN Analyzer Mode */ +#define CAN_Node_NCR_SUSEN_Msk 0x00000100UL /*!< Suspend Enable */ + +/*-- Node: NSR: Node Status Register0 -------------------------------------------------------------------------*/ +typedef struct { + uint32_t LEC :3; /*!< Last Error Code */ + uint32_t TXOK :1; /*!< Message Transmitted Successfully */ + uint32_t RXOK :1; /*!< Message Received Successfully */ + uint32_t ALERT :1; /*!< Alert Warning */ + uint32_t EWRN :1; /*!< Error Warning Status */ + uint32_t BOFF :1; /*!< Bus-Off Status */ + uint32_t LLE :1; /*!< List Length Error */ + uint32_t LOE :1; /*!< List Object Error */ + uint32_t SUSACK :1; /*!< Suspend Acknowledge */ +} _CAN_Node_NSR_bits; + +/* Bit field positions: */ +#define CAN_Node_NSR_LEC_Pos 0 /*!< Last Error Code */ +#define CAN_Node_NSR_TXOK_Pos 3 /*!< Message Transmitted Successfully */ +#define CAN_Node_NSR_RXOK_Pos 4 /*!< Message Received Successfully */ +#define CAN_Node_NSR_ALERT_Pos 5 /*!< Alert Warning */ +#define CAN_Node_NSR_EWRN_Pos 6 /*!< Error Warning Status */ +#define CAN_Node_NSR_BOFF_Pos 7 /*!< Bus-Off Status */ +#define CAN_Node_NSR_LLE_Pos 8 /*!< List Length Error */ +#define CAN_Node_NSR_LOE_Pos 9 /*!< List Object Error */ +#define CAN_Node_NSR_SUSACK_Pos 10 /*!< Suspend Acknowledge */ + +/* Bit field masks: */ +#define CAN_Node_NSR_LEC_Msk 0x00000007UL /*!< Last Error Code */ +#define CAN_Node_NSR_TXOK_Msk 0x00000008UL /*!< Message Transmitted Successfully */ +#define CAN_Node_NSR_RXOK_Msk 0x00000010UL /*!< Message Received Successfully */ +#define CAN_Node_NSR_ALERT_Msk 0x00000020UL /*!< Alert Warning */ +#define CAN_Node_NSR_EWRN_Msk 0x00000040UL /*!< Error Warning Status */ +#define CAN_Node_NSR_BOFF_Msk 0x00000080UL /*!< Bus-Off Status */ +#define CAN_Node_NSR_LLE_Msk 0x00000100UL /*!< List Length Error */ +#define CAN_Node_NSR_LOE_Msk 0x00000200UL /*!< List Object Error */ +#define CAN_Node_NSR_SUSACK_Msk 0x00000400UL /*!< Suspend Acknowledge */ + +/* Bit field enums: */ +typedef enum { + CAN_Node_NSR_LEC_NoErr = 0x0UL, /*!< no error */ + CAN_Node_NSR_LEC_StuffErr = 0x1UL, /*!< stuff error */ + CAN_Node_NSR_LEC_FormErr = 0x2UL, /*!< form error */ + CAN_Node_NSR_LEC_AckErr = 0x3UL, /*!< acknowlegment error */ + CAN_Node_NSR_LEC_Bit1Err = 0x4UL, /*!< bit 1 error */ + CAN_Node_NSR_LEC_Bit0Err = 0x5UL, /*!< bit 0 error */ + CAN_Node_NSR_LEC_CRCErr = 0x6UL, /*!< CRC error */ + CAN_Node_NSR_LEC_WriteEn = 0x7UL, /*!< enable hardware write */ +} CAN_Node_NSR_LEC_Enum; + +/*-- Node: NIPR: Node Interrupt Pointer Register0 -------------------------------------------------------------*/ +typedef struct { + uint32_t ALINP :4; /*!< Alert Interrupt Node Pointer */ + uint32_t LECINP :4; /*!< Last Error Code Interrupt Node Pointer */ + uint32_t TRINP :4; /*!< Transfer OK Interrupt Node Pointer */ + uint32_t CFCINP :4; /*!< Frame Counter Interrupt Node Pointer */ +} _CAN_Node_NIPR_bits; + +/* Bit field positions: */ +#define CAN_Node_NIPR_ALINP_Pos 0 /*!< Alert Interrupt Node Pointer */ +#define CAN_Node_NIPR_LECINP_Pos 4 /*!< Last Error Code Interrupt Node Pointer */ +#define CAN_Node_NIPR_TRINP_Pos 8 /*!< Transfer OK Interrupt Node Pointer */ +#define CAN_Node_NIPR_CFCINP_Pos 12 /*!< Frame Counter Interrupt Node Pointer */ + +/* Bit field masks: */ +#define CAN_Node_NIPR_ALINP_Msk 0x0000000FUL /*!< Alert Interrupt Node Pointer */ +#define CAN_Node_NIPR_LECINP_Msk 0x000000F0UL /*!< Last Error Code Interrupt Node Pointer */ +#define CAN_Node_NIPR_TRINP_Msk 0x00000F00UL /*!< Transfer OK Interrupt Node Pointer */ +#define CAN_Node_NIPR_CFCINP_Msk 0x0000F000UL /*!< Frame Counter Interrupt Node Pointer */ + +/*-- Node: NPCR: Node Port Control Register0 ------------------------------------------------------------------*/ +typedef struct { + uint32_t RXSEL :3; /*!< Receive Select */ + uint32_t :5; /*!< RESERVED */ + uint32_t LBM :1; /*!< Loop-Back Mode */ +} _CAN_Node_NPCR_bits; + +/* Bit field positions: */ +#define CAN_Node_NPCR_RXSEL_Pos 0 /*!< Receive Select */ +#define CAN_Node_NPCR_LBM_Pos 8 /*!< Loop-Back Mode */ + +/* Bit field masks: */ +#define CAN_Node_NPCR_RXSEL_Msk 0x00000007UL /*!< Receive Select */ +#define CAN_Node_NPCR_LBM_Msk 0x00000100UL /*!< Loop-Back Mode */ + +/*-- Node: NBTR: Node Bit Timing Register0 --------------------------------------------------------------------*/ +typedef struct { + uint32_t BRP :6; /*!< Baud Rate Prescaler */ + uint32_t SJW :2; /*!< Synchronization Jump Width */ + uint32_t TSEG1 :4; /*!< Time Segment Before Sample Point */ + uint32_t TSEG2 :3; /*!< Time Segment After Sample Point */ + uint32_t DIV8 :1; /*!< Divide Prescaler Clock by 8 */ +} _CAN_Node_NBTR_bits; + +/* Bit field positions: */ +#define CAN_Node_NBTR_BRP_Pos 0 /*!< Baud Rate Prescaler */ +#define CAN_Node_NBTR_SJW_Pos 6 /*!< Synchronization Jump Width */ +#define CAN_Node_NBTR_TSEG1_Pos 8 /*!< Time Segment Before Sample Point */ +#define CAN_Node_NBTR_TSEG2_Pos 12 /*!< Time Segment After Sample Point */ +#define CAN_Node_NBTR_DIV8_Pos 15 /*!< Divide Prescaler Clock by 8 */ + +/* Bit field masks: */ +#define CAN_Node_NBTR_BRP_Msk 0x0000003FUL /*!< Baud Rate Prescaler */ +#define CAN_Node_NBTR_SJW_Msk 0x000000C0UL /*!< Synchronization Jump Width */ +#define CAN_Node_NBTR_TSEG1_Msk 0x00000F00UL /*!< Time Segment Before Sample Point */ +#define CAN_Node_NBTR_TSEG2_Msk 0x00007000UL /*!< Time Segment After Sample Point */ +#define CAN_Node_NBTR_DIV8_Msk 0x00008000UL /*!< Divide Prescaler Clock by 8 */ + +/*-- Node: NECNT: Node Error Counter Register0 ----------------------------------------------------------------*/ +typedef struct { + uint32_t REC :8; /*!< Receive Error Counter */ + uint32_t TEC :8; /*!< Transmit Error Counter */ + uint32_t EWRNLVL :8; /*!< Error Warning Level */ + uint32_t LETD :1; /*!< Last Error Transfer Direction */ + uint32_t LEINC :1; /*!< Last Error Increment */ +} _CAN_Node_NECNT_bits; + +/* Bit field positions: */ +#define CAN_Node_NECNT_REC_Pos 0 /*!< Receive Error Counter */ +#define CAN_Node_NECNT_TEC_Pos 8 /*!< Transmit Error Counter */ +#define CAN_Node_NECNT_EWRNLVL_Pos 16 /*!< Error Warning Level */ +#define CAN_Node_NECNT_LETD_Pos 24 /*!< Last Error Transfer Direction */ +#define CAN_Node_NECNT_LEINC_Pos 25 /*!< Last Error Increment */ + +/* Bit field masks: */ +#define CAN_Node_NECNT_REC_Msk 0x000000FFUL /*!< Receive Error Counter */ +#define CAN_Node_NECNT_TEC_Msk 0x0000FF00UL /*!< Transmit Error Counter */ +#define CAN_Node_NECNT_EWRNLVL_Msk 0x00FF0000UL /*!< Error Warning Level */ +#define CAN_Node_NECNT_LETD_Msk 0x01000000UL /*!< Last Error Transfer Direction */ +#define CAN_Node_NECNT_LEINC_Msk 0x02000000UL /*!< Last Error Increment */ + +/*-- Node: NFCR: Node Frame Counter Register0 -----------------------------------------------------------------*/ +typedef struct { + uint32_t CFC :16; /*!< CAN Frame Counter */ + uint32_t CFSEL :3; /*!< CAN Frame Count Selection */ + uint32_t CFMOD :2; /*!< CAN Frame Counter Mode */ + uint32_t :1; /*!< RESERVED */ + uint32_t CFCIE :1; /*!< CAN Frame Counter Interrupt Enable */ + uint32_t CFCOV :1; /*!< CAN Frame Counter Overflow Flag */ +} _CAN_Node_NFCR_bits; + +/* Bit field positions: */ +#define CAN_Node_NFCR_CFC_Pos 0 /*!< CAN Frame Counter */ +#define CAN_Node_NFCR_CFSEL_Pos 16 /*!< CAN Frame Count Selection */ +#define CAN_Node_NFCR_CFMOD_Pos 19 /*!< CAN Frame Counter Mode */ +#define CAN_Node_NFCR_CFCIE_Pos 22 /*!< CAN Frame Counter Interrupt Enable */ +#define CAN_Node_NFCR_CFCOV_Pos 23 /*!< CAN Frame Counter Overflow Flag */ + +/* Bit field masks: */ +#define CAN_Node_NFCR_CFC_Msk 0x0000FFFFUL /*!< CAN Frame Counter */ +#define CAN_Node_NFCR_CFSEL_Msk 0x00070000UL /*!< CAN Frame Count Selection */ +#define CAN_Node_NFCR_CFMOD_Msk 0x00180000UL /*!< CAN Frame Counter Mode */ +#define CAN_Node_NFCR_CFCIE_Msk 0x00400000UL /*!< CAN Frame Counter Interrupt Enable */ +#define CAN_Node_NFCR_CFCOV_Msk 0x00800000UL /*!< CAN Frame Counter Overflow Flag */ + +//Cluster LIST: +typedef struct { + union { + /*!< List Register0 */ + __I uint32_t LIST; /*!< LIST : type used for word access */ + __I _CAN_LIST_LIST_bits LIST_bit; /*!< LIST_bit: structure used for bit access */ + }; +} _CAN_LIST_TypeDef; +//Cluster MSPND: +typedef struct { + union { + /*!< Message Pending Register0 */ + __IO uint32_t MSPND; /*!< MSPND : type used for word access */ + __IO _CAN_MSPND_MSPND_bits MSPND_bit; /*!< MSPND_bit: structure used for bit access */ + }; +} _CAN_MSPND_TypeDef; +//Cluster MSID: +typedef struct { + union { + /*!< Message Index Register0 */ + __I uint32_t MSID; /*!< MSID : type used for word access */ + __I _CAN_MSID_MSID_bits MSID_bit; /*!< MSID_bit: structure used for bit access */ + }; +} _CAN_MSID_TypeDef; +//Cluster Node: +typedef struct { + union { + /*!< Node control register0 */ + __IO uint32_t NCR; /*!< NCR : type used for word access */ + __IO _CAN_Node_NCR_bits NCR_bit; /*!< NCR_bit: structure used for bit access */ + }; + union { + /*!< Node Status Register0 */ + __IO uint32_t NSR; /*!< NSR : type used for word access */ + __IO _CAN_Node_NSR_bits NSR_bit; /*!< NSR_bit: structure used for bit access */ + }; + union { + /*!< Node Interrupt Pointer Register0 */ + __IO uint32_t NIPR; /*!< NIPR : type used for word access */ + __IO _CAN_Node_NIPR_bits NIPR_bit; /*!< NIPR_bit: structure used for bit access */ + }; + union { + /*!< Node Port Control Register0 */ + __IO uint32_t NPCR; /*!< NPCR : type used for word access */ + __IO _CAN_Node_NPCR_bits NPCR_bit; /*!< NPCR_bit: structure used for bit access */ + }; + union { + /*!< Node Bit Timing Register0 */ + __IO uint32_t NBTR; /*!< NBTR : type used for word access */ + __IO _CAN_Node_NBTR_bits NBTR_bit; /*!< NBTR_bit: structure used for bit access */ + }; + union { + /*!< Node Error Counter Register0 */ + __IO uint32_t NECNT; /*!< NECNT : type used for word access */ + __IO _CAN_Node_NECNT_bits NECNT_bit; /*!< NECNT_bit: structure used for bit access */ + }; + union { + /*!< Node Frame Counter Register0 */ + __IO uint32_t NFCR; /*!< NFCR : type used for word access */ + __IO _CAN_Node_NFCR_bits NFCR_bit; /*!< NFCR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0[57]; +} _CAN_Node_TypeDef; +typedef struct { + union { /*!< CAN Clock Control Register */ + __IO uint32_t CLC; /*!< CLC : type used for word access */ + __IO _CAN_CLC_bits CLC_bit; /*!< CLC_bit: structure used for bit access */ + }; + __IO uint32_t Reserved0; + union { /*!< Module Identification Register */ + __IO uint32_t ID; /*!< ID : type used for word access */ + __IO _CAN_ID_bits ID_bit; /*!< ID_bit: structure used for bit access */ + }; + union { /*!< Fractional Divider Register */ + __IO uint32_t FDR; /*!< FDR : type used for word access */ + __IO _CAN_FDR_bits FDR_bit; /*!< FDR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved1[60]; + _CAN_LIST_TypeDef LIST[8]; + __IO uint32_t Reserved2[8]; + _CAN_MSPND_TypeDef MSPND[4]; + __IO uint32_t Reserved3[12]; + _CAN_MSID_TypeDef MSID[4]; + __IO uint32_t Reserved4[12]; + union { /*!< Message Index Mask Register */ + __IO uint32_t MSIMASK; /*!< MSIMASK : type used for word access */ + __IO _CAN_MSIMASK_bits MSIMASK_bit; /*!< MSIMASK_bit: structure used for bit access */ + }; + union { /*!< Panel Control Register */ + __IO uint32_t PANCTR; /*!< PANCTR : type used for word access */ + __IO _CAN_PANCTR_bits PANCTR_bit; /*!< PANCTR_bit: structure used for bit access */ + }; + union { /*!< */ + __IO uint32_t MCR; /*!< MCR : type used for word access */ + __IO _CAN_MCR_bits MCR_bit; /*!< MCR_bit: structure used for bit access */ + }; + union { /*!< Module Interrupt Trigger Register */ + __O uint32_t MITR; /*!< MITR : type used for word access */ + __O _CAN_MITR_bits MITR_bit; /*!< MITR_bit: structure used for bit access */ + }; + __IO uint32_t Reserved5[12]; + _CAN_Node_TypeDef Node[2]; +} CAN_TypeDef; + + +/******************************************************************************/ +/* CANMSG registers */ +/******************************************************************************/ + +/*-- Msg: MOFCR: Message Object Function Control Register0 ----------------------------------------------------*/ +typedef struct { + uint32_t MMC :4; /*!< Message Mode Control */ + uint32_t :4; /*!< RESERVED */ + uint32_t GDFS :1; /*!< Gateway Data Frame Selected */ + uint32_t IDC :1; /*!< Identifier Copy */ + uint32_t DLCC :1; /*!< Data Lengh Code Copy */ + uint32_t DATC :1; /*!< Data Copy */ + uint32_t :4; /*!< RESERVED */ + uint32_t RXIE :1; /*!< Receive Interrupt Enable */ + uint32_t TXIE :1; /*!< Transmit Interrupt Enable */ + uint32_t OVIE :1; /*!< Overflow Interrupt Enable */ + uint32_t :1; /*!< RESERVED */ + uint32_t FRREN :1; /*!< Foreign Remote Request Enable */ + uint32_t RMM :1; /*!< Transmit Object Remote Monitoring */ + uint32_t SDT :1; /*!< Single Data Transfer */ + uint32_t STT :1; /*!< Single Transmit Trial */ + uint32_t DLC :4; /*!< Data Length Code */ +} _CANMSG_Msg_MOFCR_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MOFCR_MMC_Pos 0 /*!< Message Mode Control */ +#define CANMSG_Msg_MOFCR_GDFS_Pos 8 /*!< Gateway Data Frame Selected */ +#define CANMSG_Msg_MOFCR_IDC_Pos 9 /*!< Identifier Copy */ +#define CANMSG_Msg_MOFCR_DLCC_Pos 10 /*!< Data Lengh Code Copy */ +#define CANMSG_Msg_MOFCR_DATC_Pos 11 /*!< Data Copy */ +#define CANMSG_Msg_MOFCR_RXIE_Pos 16 /*!< Receive Interrupt Enable */ +#define CANMSG_Msg_MOFCR_TXIE_Pos 17 /*!< Transmit Interrupt Enable */ +#define CANMSG_Msg_MOFCR_OVIE_Pos 18 /*!< Overflow Interrupt Enable */ +#define CANMSG_Msg_MOFCR_FRREN_Pos 20 /*!< Foreign Remote Request Enable */ +#define CANMSG_Msg_MOFCR_RMM_Pos 21 /*!< Transmit Object Remote Monitoring */ +#define CANMSG_Msg_MOFCR_SDT_Pos 22 /*!< Single Data Transfer */ +#define CANMSG_Msg_MOFCR_STT_Pos 23 /*!< Single Transmit Trial */ +#define CANMSG_Msg_MOFCR_DLC_Pos 24 /*!< Data Length Code */ + +/* Bit field masks: */ +#define CANMSG_Msg_MOFCR_MMC_Msk 0x0000000FUL /*!< Message Mode Control */ +#define CANMSG_Msg_MOFCR_GDFS_Msk 0x00000100UL /*!< Gateway Data Frame Selected */ +#define CANMSG_Msg_MOFCR_IDC_Msk 0x00000200UL /*!< Identifier Copy */ +#define CANMSG_Msg_MOFCR_DLCC_Msk 0x00000400UL /*!< Data Lengh Code Copy */ +#define CANMSG_Msg_MOFCR_DATC_Msk 0x00000800UL /*!< Data Copy */ +#define CANMSG_Msg_MOFCR_RXIE_Msk 0x00010000UL /*!< Receive Interrupt Enable */ +#define CANMSG_Msg_MOFCR_TXIE_Msk 0x00020000UL /*!< Transmit Interrupt Enable */ +#define CANMSG_Msg_MOFCR_OVIE_Msk 0x00040000UL /*!< Overflow Interrupt Enable */ +#define CANMSG_Msg_MOFCR_FRREN_Msk 0x00100000UL /*!< Foreign Remote Request Enable */ +#define CANMSG_Msg_MOFCR_RMM_Msk 0x00200000UL /*!< Transmit Object Remote Monitoring */ +#define CANMSG_Msg_MOFCR_SDT_Msk 0x00400000UL /*!< Single Data Transfer */ +#define CANMSG_Msg_MOFCR_STT_Msk 0x00800000UL /*!< Single Transmit Trial */ +#define CANMSG_Msg_MOFCR_DLC_Msk 0x0F000000UL /*!< Data Length Code */ + +/* Bit field enums: */ +typedef enum { + CANMSG_Msg_MOFCR_MMC_MsgObj = 0x0UL, /*!< message object */ + CANMSG_Msg_MOFCR_MMC_RXObj = 0x1UL, /*!< receiver FIFO structure object */ + CANMSG_Msg_MOFCR_MMC_TXObj = 0x2UL, /*!< transmitter FIFO structure object */ + CANMSG_Msg_MOFCR_MMC_SlaveTXObj = 0x3UL, /*!< transmitter FIFO structure slave object */ + CANMSG_Msg_MOFCR_MMC_SrcObj = 0x4UL, /*!< gateway source object */ +} CANMSG_Msg_MOFCR_MMC_Enum; + +/*-- Msg: MOFGPR: Message Object FIFO/Gateway Pointer Register0 -----------------------------------------------*/ +typedef struct { + uint32_t BOT :8; /*!< Botom Pointer */ + uint32_t TOP :8; /*!< Top Pointer */ + uint32_t CUR :8; /*!< Current Object Pointer */ + uint32_t SEL :8; /*!< Object Select Pointer */ +} _CANMSG_Msg_MOFGPR_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MOFGPR_BOT_Pos 0 /*!< Botom Pointer */ +#define CANMSG_Msg_MOFGPR_TOP_Pos 8 /*!< Top Pointer */ +#define CANMSG_Msg_MOFGPR_CUR_Pos 16 /*!< Current Object Pointer */ +#define CANMSG_Msg_MOFGPR_SEL_Pos 24 /*!< Object Select Pointer */ + +/* Bit field masks: */ +#define CANMSG_Msg_MOFGPR_BOT_Msk 0x000000FFUL /*!< Botom Pointer */ +#define CANMSG_Msg_MOFGPR_TOP_Msk 0x0000FF00UL /*!< Top Pointer */ +#define CANMSG_Msg_MOFGPR_CUR_Msk 0x00FF0000UL /*!< Current Object Pointer */ +#define CANMSG_Msg_MOFGPR_SEL_Msk 0xFF000000UL /*!< Object Select Pointer */ + +/*-- Msg: MOIPR: Message Object Interrupt Pointer Register0 ---------------------------------------------------*/ +typedef struct { + uint32_t RXINP :4; /*!< Receive Interrupt Node Pointer */ + uint32_t TXINP :4; /*!< Transmit Interrupt Node Pointer */ + uint32_t MPN :8; /*!< Message Pending Number */ + uint32_t CFCVAL :16; /*!< CAN Frame Counter Value */ +} _CANMSG_Msg_MOIPR_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MOIPR_RXINP_Pos 0 /*!< Receive Interrupt Node Pointer */ +#define CANMSG_Msg_MOIPR_TXINP_Pos 4 /*!< Transmit Interrupt Node Pointer */ +#define CANMSG_Msg_MOIPR_MPN_Pos 8 /*!< Message Pending Number */ +#define CANMSG_Msg_MOIPR_CFCVAL_Pos 16 /*!< CAN Frame Counter Value */ + +/* Bit field masks: */ +#define CANMSG_Msg_MOIPR_RXINP_Msk 0x0000000FUL /*!< Receive Interrupt Node Pointer */ +#define CANMSG_Msg_MOIPR_TXINP_Msk 0x000000F0UL /*!< Transmit Interrupt Node Pointer */ +#define CANMSG_Msg_MOIPR_MPN_Msk 0x0000FF00UL /*!< Message Pending Number */ +#define CANMSG_Msg_MOIPR_CFCVAL_Msk 0xFFFF0000UL /*!< CAN Frame Counter Value */ + +/*-- Msg: MOAMR: Message Object Acceptance Mask Register0 -----------------------------------------------------*/ +typedef struct { + uint32_t AM :29; /*!< Acceptance Mask for Message Identifier */ + uint32_t MIDE :1; /*!< Acceptance Mask Bit for Message IDE Bit */ +} _CANMSG_Msg_MOAMR_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MOAMR_AM_Pos 0 /*!< Acceptance Mask for Message Identifier */ +#define CANMSG_Msg_MOAMR_MIDE_Pos 29 /*!< Acceptance Mask Bit for Message IDE Bit */ + +/* Bit field masks: */ +#define CANMSG_Msg_MOAMR_AM_Msk 0x1FFFFFFFUL /*!< Acceptance Mask for Message Identifier */ +#define CANMSG_Msg_MOAMR_MIDE_Msk 0x20000000UL /*!< Acceptance Mask Bit for Message IDE Bit */ + +/*-- Msg: MODATAL: Message Object Data Register Low0 ----------------------------------------------------------*/ +typedef struct { + uint32_t DB0 :8; /*!< Data byte 0 of message object */ + uint32_t DB1 :8; /*!< Data byte 1 of message object */ + uint32_t DB2 :8; /*!< Data byte 2 of message object */ + uint32_t DB3 :8; /*!< Data byte 3 of message object */ +} _CANMSG_Msg_MODATAL_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MODATAL_DB0_Pos 0 /*!< Data byte 0 of message object */ +#define CANMSG_Msg_MODATAL_DB1_Pos 8 /*!< Data byte 1 of message object */ +#define CANMSG_Msg_MODATAL_DB2_Pos 16 /*!< Data byte 2 of message object */ +#define CANMSG_Msg_MODATAL_DB3_Pos 24 /*!< Data byte 3 of message object */ + +/* Bit field masks: */ +#define CANMSG_Msg_MODATAL_DB0_Msk 0x000000FFUL /*!< Data byte 0 of message object */ +#define CANMSG_Msg_MODATAL_DB1_Msk 0x0000FF00UL /*!< Data byte 1 of message object */ +#define CANMSG_Msg_MODATAL_DB2_Msk 0x00FF0000UL /*!< Data byte 2 of message object */ +#define CANMSG_Msg_MODATAL_DB3_Msk 0xFF000000UL /*!< Data byte 3 of message object */ + +/*-- Msg: MODATAH: Message Object Data Register High0 ---------------------------------------------------------*/ +typedef struct { + uint32_t DB4 :8; /*!< Data byte 4 of message object */ + uint32_t DB5 :8; /*!< Data byte 5 of message object */ + uint32_t DB6 :8; /*!< Data byte 6 of message object */ + uint32_t DB7 :8; /*!< Data byte 7 of message object */ +} _CANMSG_Msg_MODATAH_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MODATAH_DB4_Pos 0 /*!< Data byte 4 of message object */ +#define CANMSG_Msg_MODATAH_DB5_Pos 8 /*!< Data byte 5 of message object */ +#define CANMSG_Msg_MODATAH_DB6_Pos 16 /*!< Data byte 6 of message object */ +#define CANMSG_Msg_MODATAH_DB7_Pos 24 /*!< Data byte 7 of message object */ + +/* Bit field masks: */ +#define CANMSG_Msg_MODATAH_DB4_Msk 0x000000FFUL /*!< Data byte 4 of message object */ +#define CANMSG_Msg_MODATAH_DB5_Msk 0x0000FF00UL /*!< Data byte 5 of message object */ +#define CANMSG_Msg_MODATAH_DB6_Msk 0x00FF0000UL /*!< Data byte 6 of message object */ +#define CANMSG_Msg_MODATAH_DB7_Msk 0xFF000000UL /*!< Data byte 7 of message object */ + +/*-- Msg: MOAR: Message Object Arbitration Register0 ----------------------------------------------------------*/ +typedef struct { + uint32_t ID :29; /*!< CAN identifier of Message Object */ + uint32_t IDE :1; /*!< Identifier Extension Bit of Messgae Object */ + uint32_t PRI :2; /*!< Priority Class */ +} _CANMSG_Msg_MOAR_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MOAR_ID_Pos 0 /*!< CAN identifier of Message Object */ +#define CANMSG_Msg_MOAR_IDE_Pos 29 /*!< Identifier Extension Bit of Messgae Object */ +#define CANMSG_Msg_MOAR_PRI_Pos 30 /*!< Priority Class */ + +/* Bit field masks: */ +#define CANMSG_Msg_MOAR_ID_Msk 0x1FFFFFFFUL /*!< CAN identifier of Message Object */ +#define CANMSG_Msg_MOAR_IDE_Msk 0x20000000UL /*!< Identifier Extension Bit of Messgae Object */ +#define CANMSG_Msg_MOAR_PRI_Msk 0xC0000000UL /*!< Priority Class */ + +/*-- Msg: MOCTR: Message Object Control Register0 -------------------------------------------------------------*/ +typedef struct { + uint32_t RESRXPND :1; /*!< Reset Receive Pending */ + uint32_t RESTXPND :1; /*!< Reset Transmit Pending */ + uint32_t RESRXUPD :1; /*!< Reset Receive Updating */ + uint32_t RESNEWDAT :1; /*!< Reset New Data */ + uint32_t RESMSGLST :1; /*!< Reset Message Lost */ + uint32_t RESMSGVAL :1; /*!< Reset Message Valid */ + uint32_t RESRTSEL :1; /*!< Reset Receive/Transmit Selected */ + uint32_t RESRXEN :1; /*!< Reset Receive Enable */ + uint32_t RESTXRQ :1; /*!< Reset Transmit Request */ + uint32_t RESTXEN0 :1; /*!< Reset Transmit Enable 0 */ + uint32_t RESTXEN1 :1; /*!< Reset Transmit Enable 1 */ + uint32_t RESDIR :1; /*!< Reset Message Direction */ + uint32_t :4; /*!< RESERVED */ + uint32_t SETRXPND :1; /*!< Set Receive Pending */ + uint32_t SETTXPND :1; /*!< Set Transmit Pending */ + uint32_t SETRXUPD :1; /*!< Set Receive Updating */ + uint32_t SETNEWDAT :1; /*!< Set New Data */ + uint32_t SETMSGLST :1; /*!< Set Message Lost */ + uint32_t SETMSGVAL :1; /*!< Set Message Valid */ + uint32_t SETRTSEL :1; /*!< Set Receive/Transmit Selected */ + uint32_t SETRXEN :1; /*!< Set Receive Enable */ + uint32_t SETTXRQ :1; /*!< Set Transmit Request */ + uint32_t SETTXEN0 :1; /*!< Set Transmit Enable 0 */ + uint32_t SETTXEN1 :1; /*!< Set Transmit Enable 1 */ + uint32_t SETDIR :1; /*!< Set Message Direction */ +} _CANMSG_Msg_MOCTR_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MOCTR_RESRXPND_Pos 0 /*!< Reset Receive Pending */ +#define CANMSG_Msg_MOCTR_RESTXPND_Pos 1 /*!< Reset Transmit Pending */ +#define CANMSG_Msg_MOCTR_RESRXUPD_Pos 2 /*!< Reset Receive Updating */ +#define CANMSG_Msg_MOCTR_RESNEWDAT_Pos 3 /*!< Reset New Data */ +#define CANMSG_Msg_MOCTR_RESMSGLST_Pos 4 /*!< Reset Message Lost */ +#define CANMSG_Msg_MOCTR_RESMSGVAL_Pos 5 /*!< Reset Message Valid */ +#define CANMSG_Msg_MOCTR_RESRTSEL_Pos 6 /*!< Reset Receive/Transmit Selected */ +#define CANMSG_Msg_MOCTR_RESRXEN_Pos 7 /*!< Reset Receive Enable */ +#define CANMSG_Msg_MOCTR_RESTXRQ_Pos 8 /*!< Reset Transmit Request */ +#define CANMSG_Msg_MOCTR_RESTXEN0_Pos 9 /*!< Reset Transmit Enable 0 */ +#define CANMSG_Msg_MOCTR_RESTXEN1_Pos 10 /*!< Reset Transmit Enable 1 */ +#define CANMSG_Msg_MOCTR_RESDIR_Pos 11 /*!< Reset Message Direction */ +#define CANMSG_Msg_MOCTR_SETRXPND_Pos 16 /*!< Set Receive Pending */ +#define CANMSG_Msg_MOCTR_SETTXPND_Pos 17 /*!< Set Transmit Pending */ +#define CANMSG_Msg_MOCTR_SETRXUPD_Pos 18 /*!< Set Receive Updating */ +#define CANMSG_Msg_MOCTR_SETNEWDAT_Pos 19 /*!< Set New Data */ +#define CANMSG_Msg_MOCTR_SETMSGLST_Pos 20 /*!< Set Message Lost */ +#define CANMSG_Msg_MOCTR_SETMSGVAL_Pos 21 /*!< Set Message Valid */ +#define CANMSG_Msg_MOCTR_SETRTSEL_Pos 22 /*!< Set Receive/Transmit Selected */ +#define CANMSG_Msg_MOCTR_SETRXEN_Pos 23 /*!< Set Receive Enable */ +#define CANMSG_Msg_MOCTR_SETTXRQ_Pos 24 /*!< Set Transmit Request */ +#define CANMSG_Msg_MOCTR_SETTXEN0_Pos 25 /*!< Set Transmit Enable 0 */ +#define CANMSG_Msg_MOCTR_SETTXEN1_Pos 26 /*!< Set Transmit Enable 1 */ +#define CANMSG_Msg_MOCTR_SETDIR_Pos 27 /*!< Set Message Direction */ + +/* Bit field masks: */ +#define CANMSG_Msg_MOCTR_RESRXPND_Msk 0x00000001UL /*!< Reset Receive Pending */ +#define CANMSG_Msg_MOCTR_RESTXPND_Msk 0x00000002UL /*!< Reset Transmit Pending */ +#define CANMSG_Msg_MOCTR_RESRXUPD_Msk 0x00000004UL /*!< Reset Receive Updating */ +#define CANMSG_Msg_MOCTR_RESNEWDAT_Msk 0x00000008UL /*!< Reset New Data */ +#define CANMSG_Msg_MOCTR_RESMSGLST_Msk 0x00000010UL /*!< Reset Message Lost */ +#define CANMSG_Msg_MOCTR_RESMSGVAL_Msk 0x00000020UL /*!< Reset Message Valid */ +#define CANMSG_Msg_MOCTR_RESRTSEL_Msk 0x00000040UL /*!< Reset Receive/Transmit Selected */ +#define CANMSG_Msg_MOCTR_RESRXEN_Msk 0x00000080UL /*!< Reset Receive Enable */ +#define CANMSG_Msg_MOCTR_RESTXRQ_Msk 0x00000100UL /*!< Reset Transmit Request */ +#define CANMSG_Msg_MOCTR_RESTXEN0_Msk 0x00000200UL /*!< Reset Transmit Enable 0 */ +#define CANMSG_Msg_MOCTR_RESTXEN1_Msk 0x00000400UL /*!< Reset Transmit Enable 1 */ +#define CANMSG_Msg_MOCTR_RESDIR_Msk 0x00000800UL /*!< Reset Message Direction */ +#define CANMSG_Msg_MOCTR_SETRXPND_Msk 0x00010000UL /*!< Set Receive Pending */ +#define CANMSG_Msg_MOCTR_SETTXPND_Msk 0x00020000UL /*!< Set Transmit Pending */ +#define CANMSG_Msg_MOCTR_SETRXUPD_Msk 0x00040000UL /*!< Set Receive Updating */ +#define CANMSG_Msg_MOCTR_SETNEWDAT_Msk 0x00080000UL /*!< Set New Data */ +#define CANMSG_Msg_MOCTR_SETMSGLST_Msk 0x00100000UL /*!< Set Message Lost */ +#define CANMSG_Msg_MOCTR_SETMSGVAL_Msk 0x00200000UL /*!< Set Message Valid */ +#define CANMSG_Msg_MOCTR_SETRTSEL_Msk 0x00400000UL /*!< Set Receive/Transmit Selected */ +#define CANMSG_Msg_MOCTR_SETRXEN_Msk 0x00800000UL /*!< Set Receive Enable */ +#define CANMSG_Msg_MOCTR_SETTXRQ_Msk 0x01000000UL /*!< Set Transmit Request */ +#define CANMSG_Msg_MOCTR_SETTXEN0_Msk 0x02000000UL /*!< Set Transmit Enable 0 */ +#define CANMSG_Msg_MOCTR_SETTXEN1_Msk 0x04000000UL /*!< Set Transmit Enable 1 */ +#define CANMSG_Msg_MOCTR_SETDIR_Msk 0x08000000UL /*!< Set Message Direction */ + +/*-- Msg: MOSTAT: Message Object Status Register 0 ------------------------------------------------------------*/ +typedef struct { + uint32_t RXPND :1; /*!< Receive Pending */ + uint32_t TXPND :1; /*!< Transmit Pending */ + uint32_t RXUPD :1; /*!< Receive Updating */ + uint32_t NEWDAT :1; /*!< New Data */ + uint32_t MSGLST :1; /*!< Message Lost */ + uint32_t MSGVAL :1; /*!< Message Valid */ + uint32_t RTSEL :1; /*!< Receive/Transmit Selected */ + uint32_t RXEN :1; /*!< Receive Enable */ + uint32_t TXRQ :1; /*!< Transmit Request */ + uint32_t TXEN0 :1; /*!< Transmit Enable 0 */ + uint32_t TXEN1 :1; /*!< Transmit Enable 1 */ + uint32_t DIR :1; /*!< Message Direction */ + uint32_t LIST :4; /*!< List Allocation */ + uint32_t PPREV :8; /*!< Pointer To Previous Message Object */ + uint32_t PNEXT :8; /*!< Pointer to Next Message Object */ +} _CANMSG_Msg_MOSTAT_bits; + +/* Bit field positions: */ +#define CANMSG_Msg_MOSTAT_RXPND_Pos 0 /*!< Receive Pending */ +#define CANMSG_Msg_MOSTAT_TXPND_Pos 1 /*!< Transmit Pending */ +#define CANMSG_Msg_MOSTAT_RXUPD_Pos 2 /*!< Receive Updating */ +#define CANMSG_Msg_MOSTAT_NEWDAT_Pos 3 /*!< New Data */ +#define CANMSG_Msg_MOSTAT_MSGLST_Pos 4 /*!< Message Lost */ +#define CANMSG_Msg_MOSTAT_MSGVAL_Pos 5 /*!< Message Valid */ +#define CANMSG_Msg_MOSTAT_RTSEL_Pos 6 /*!< Receive/Transmit Selected */ +#define CANMSG_Msg_MOSTAT_RXEN_Pos 7 /*!< Receive Enable */ +#define CANMSG_Msg_MOSTAT_TXRQ_Pos 8 /*!< Transmit Request */ +#define CANMSG_Msg_MOSTAT_TXEN0_Pos 9 /*!< Transmit Enable 0 */ +#define CANMSG_Msg_MOSTAT_TXEN1_Pos 10 /*!< Transmit Enable 1 */ +#define CANMSG_Msg_MOSTAT_DIR_Pos 11 /*!< Message Direction */ +#define CANMSG_Msg_MOSTAT_LIST_Pos 12 /*!< List Allocation */ +#define CANMSG_Msg_MOSTAT_PPREV_Pos 16 /*!< Pointer To Previous Message Object */ +#define CANMSG_Msg_MOSTAT_PNEXT_Pos 24 /*!< Pointer to Next Message Object */ + +/* Bit field masks: */ +#define CANMSG_Msg_MOSTAT_RXPND_Msk 0x00000001UL /*!< Receive Pending */ +#define CANMSG_Msg_MOSTAT_TXPND_Msk 0x00000002UL /*!< Transmit Pending */ +#define CANMSG_Msg_MOSTAT_RXUPD_Msk 0x00000004UL /*!< Receive Updating */ +#define CANMSG_Msg_MOSTAT_NEWDAT_Msk 0x00000008UL /*!< New Data */ +#define CANMSG_Msg_MOSTAT_MSGLST_Msk 0x00000010UL /*!< Message Lost */ +#define CANMSG_Msg_MOSTAT_MSGVAL_Msk 0x00000020UL /*!< Message Valid */ +#define CANMSG_Msg_MOSTAT_RTSEL_Msk 0x00000040UL /*!< Receive/Transmit Selected */ +#define CANMSG_Msg_MOSTAT_RXEN_Msk 0x00000080UL /*!< Receive Enable */ +#define CANMSG_Msg_MOSTAT_TXRQ_Msk 0x00000100UL /*!< Transmit Request */ +#define CANMSG_Msg_MOSTAT_TXEN0_Msk 0x00000200UL /*!< Transmit Enable 0 */ +#define CANMSG_Msg_MOSTAT_TXEN1_Msk 0x00000400UL /*!< Transmit Enable 1 */ +#define CANMSG_Msg_MOSTAT_DIR_Msk 0x00000800UL /*!< Message Direction */ +#define CANMSG_Msg_MOSTAT_LIST_Msk 0x0000F000UL /*!< List Allocation */ +#define CANMSG_Msg_MOSTAT_PPREV_Msk 0x00FF0000UL /*!< Pointer To Previous Message Object */ +#define CANMSG_Msg_MOSTAT_PNEXT_Msk 0xFF000000UL /*!< Pointer to Next Message Object */ + +//Cluster Msg: +typedef struct { + union { + /*!< Message Object Function Control Register0 */ + __IO uint32_t MOFCR; /*!< MOFCR : type used for word access */ + __IO _CANMSG_Msg_MOFCR_bits MOFCR_bit; /*!< MOFCR_bit: structure used for bit access */ + }; + union { + /*!< Message Object FIFO/Gateway Pointer Register0 */ + __IO uint32_t MOFGPR; /*!< MOFGPR : type used for word access */ + __IO _CANMSG_Msg_MOFGPR_bits MOFGPR_bit; /*!< MOFGPR_bit: structure used for bit access */ + }; + union { + /*!< Message Object Interrupt Pointer Register0 */ + __IO uint32_t MOIPR; /*!< MOIPR : type used for word access */ + __IO _CANMSG_Msg_MOIPR_bits MOIPR_bit; /*!< MOIPR_bit: structure used for bit access */ + }; + union { + /*!< Message Object Acceptance Mask Register0 */ + __IO uint32_t MOAMR; /*!< MOAMR : type used for word access */ + __IO _CANMSG_Msg_MOAMR_bits MOAMR_bit; /*!< MOAMR_bit: structure used for bit access */ + }; + union { + /*!< Message Object Data Register Low0 */ + __IO uint32_t MODATAL; /*!< MODATAL : type used for word access */ + __IO _CANMSG_Msg_MODATAL_bits MODATAL_bit; /*!< MODATAL_bit: structure used for bit access */ + }; + union { + /*!< Message Object Data Register High0 */ + __IO uint32_t MODATAH; /*!< MODATAH : type used for word access */ + __IO _CANMSG_Msg_MODATAH_bits MODATAH_bit; /*!< MODATAH_bit: structure used for bit access */ + }; + union { + /*!< Message Object Arbitration Register0 */ + __IO uint32_t MOAR; /*!< MOAR : type used for word access */ + __IO _CANMSG_Msg_MOAR_bits MOAR_bit; /*!< MOAR_bit: structure used for bit access */ + }; + union { + union { + /*!< Message Object Control Register0 */ + __O uint32_t MOCTR; /*!< MOCTR : type used for word access */ + __O _CANMSG_Msg_MOCTR_bits MOCTR_bit; /*!< MOCTR_bit: structure used for bit access */ + }; + union { + /*!< Message Object Status Register 0 */ + __I uint32_t MOSTAT; /*!< MOSTAT : type used for word access */ + __I _CANMSG_Msg_MOSTAT_bits MOSTAT_bit; /*!< MOSTAT_bit: structure used for bit access */ + }; + }; +} _CANMSG_Msg_TypeDef; +typedef struct { + _CANMSG_Msg_TypeDef Msg[64]; +} CANMSG_TypeDef; + + +/* ----------------- End of section using anonymous unions ---------------- */ +#if defined(__CC_ARM) + #pragma pop +#elif defined(__ICCARM__) + /* leave anonymous unions enabled */ +#elif defined(__GNUC__) + /* anonymous unions are enabled by default */ +#elif defined(__TMS470__) + /* anonymous unions are enabled by default */ +#elif defined(__TASKING__) + #pragma warning restore +#elif defined (__CMCPPARM__) + /* anonymous unions are enabled by default */ +#else + #warning Not supported compiler type +#endif + +/******************************************************************************/ +/* Peripheral memory map */ +/******************************************************************************/ +#define ADC_BASE 0x40000000UL +#define GPIOA_BASE 0x40010000UL +#define GPIOB_BASE 0x40011000UL +#define CAN_BASE 0x40020000UL +#define CANMSG_BASE 0x40021000UL +#define MFLASH_BASE 0x40030000UL +#define SIU_BASE 0x40040000UL +#define RCU_BASE 0x40041000UL +#define PMU_BASE 0x40042000UL +#define WDT_BASE 0x40043000UL +#define DMA_BASE 0x40044000UL +#define UART0_BASE 0x40045000UL +#define UART1_BASE 0x40046000UL +#define SPI_BASE 0x40047000UL +#define TMR0_BASE 0x40048000UL +#define TMR1_BASE 0x40049000UL +#define TMR2_BASE 0x4004A000UL +#define TMR3_BASE 0x4004B000UL +#define PWM0_BASE 0x4004C000UL +#define PWM1_BASE 0x4004D000UL +#define PWM2_BASE 0x4004E000UL +#define QEP_BASE 0x4004F000UL +#define I2C_BASE 0x40050000UL +#define ECAP0_BASE 0x40051000UL +#define ECAP1_BASE 0x40052000UL +#define ECAP2_BASE 0x40053000UL + +/******************************************************************************/ +/* Peripheral declaration */ +/******************************************************************************/ +#define ADC ((ADC_TypeDef *) ADC_BASE) +#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) +#define CAN ((CAN_TypeDef *) CAN_BASE) +#define CANMSG ((CANMSG_TypeDef *) CANMSG_BASE) +#define MFLASH ((MFLASH_TypeDef *) MFLASH_BASE) +#define SIU ((SIU_TypeDef *) SIU_BASE) +#define RCU ((RCU_TypeDef *) RCU_BASE) +#define PMU ((PMU_TypeDef *) PMU_BASE) +#define WDT ((WDT_TypeDef *) WDT_BASE) +#define DMA ((DMA_TypeDef *) DMA_BASE) +#define UART0 ((UART_TypeDef *) UART0_BASE) +#define UART1 ((UART_TypeDef *) UART1_BASE) +#define SPI ((SPI_TypeDef *) SPI_BASE) +#define TMR0 ((TMR_TypeDef *) TMR0_BASE) +#define TMR1 ((TMR_TypeDef *) TMR1_BASE) +#define TMR2 ((TMR_TypeDef *) TMR2_BASE) +#define TMR3 ((TMR_TypeDef *) TMR3_BASE) +#define PWM0 ((PWM_TypeDef *) PWM0_BASE) +#define PWM1 ((PWM_TypeDef *) PWM1_BASE) +#define PWM2 ((PWM_TypeDef *) PWM2_BASE) +#define QEP ((QEP_TypeDef *) QEP_BASE) +#define I2C ((I2C_TypeDef *) I2C_BASE) +#define ECAP0 ((ECAP_TypeDef *) ECAP0_BASE) +#define ECAP1 ((ECAP_TypeDef *) ECAP1_BASE) +#define ECAP2 ((ECAP_TypeDef *) ECAP2_BASE) + +/******************************************************************************/ +/* Peripheral capabilities */ +/******************************************************************************/ +#define ADC_PRESENT +#define ADC_TOTAL 1 +typedef enum { + ADC_Num +} ADC_Num_TypeDef; + +#define GPIO_PRESENT +#define GPIO_TOTAL 2 +typedef enum { + GPIOA_Num, + GPIOB_Num +} GPIO_Num_TypeDef; + +#define CAN_PRESENT +#define CAN_TOTAL 1 +typedef enum { + CAN_Num +} CAN_Num_TypeDef; + +#define CANMSG_PRESENT +#define CANMSG_TOTAL 1 +typedef enum { + CANMSG_Num +} CANMSG_Num_TypeDef; + +#define MFLASH_PRESENT +#define MFLASH_TOTAL 1 +typedef enum { + MFLASH_Num +} MFLASH_Num_TypeDef; + +#define SIU_PRESENT +#define SIU_TOTAL 1 +typedef enum { + SIU_Num +} SIU_Num_TypeDef; + +#define RCU_PRESENT +#define RCU_TOTAL 1 +typedef enum { + RCU_Num +} RCU_Num_TypeDef; + +#define PMU_PRESENT +#define PMU_TOTAL 1 +typedef enum { + PMU_Num +} PMU_Num_TypeDef; + +#define WDT_PRESENT +#define WDT_TOTAL 1 +typedef enum { + WDT_Num +} WDT_Num_TypeDef; + +#define DMA_PRESENT +#define DMA_TOTAL 1 +typedef enum { + DMA_Num +} DMA_Num_TypeDef; + +#define UART_PRESENT +#define UART_TOTAL 2 +typedef enum { + UART0_Num, + UART1_Num +} UART_Num_TypeDef; + +#define SPI_PRESENT +#define SPI_TOTAL 1 +typedef enum { + SPI_Num +} SPI_Num_TypeDef; + +#define TMR_PRESENT +#define TMR_TOTAL 4 +typedef enum { + TMR0_Num, + TMR1_Num, + TMR2_Num, + TMR3_Num +} TMR_Num_TypeDef; + +#define PWM_PRESENT +#define PWM_TOTAL 3 +typedef enum { + PWM0_Num, + PWM1_Num, + PWM2_Num +} PWM_Num_TypeDef; + +#define QEP_PRESENT +#define QEP_TOTAL 1 +typedef enum { + QEP_Num +} QEP_Num_TypeDef; + +#define I2C_PRESENT +#define I2C_TOTAL 1 +typedef enum { + I2C_Num +} I2C_Num_TypeDef; + +#define ECAP_PRESENT +#define ECAP_TOTAL 3 +typedef enum { + ECAP0_Num, + ECAP1_Num, + ECAP2_Num +} ECAP_Num_TypeDef; + +/******************************************************************************/ +/* Peripheral assertions */ +/******************************************************************************/ +#define IS_ADC_PERIPH(PERIPH) (((PERIPH) == ADC)) +#define IS_GPIO_PERIPH(PERIPH) (((PERIPH) == GPIOA) || \ + ((PERIPH) == GPIOB)) +#define IS_CAN_PERIPH(PERIPH) (((PERIPH) == CAN)) +#define IS_CANMSG_PERIPH(PERIPH) (((PERIPH) == CANMSG)) +#define IS_MFLASH_PERIPH(PERIPH) (((PERIPH) == MFLASH)) +#define IS_SIU_PERIPH(PERIPH) (((PERIPH) == SIU)) +#define IS_RCU_PERIPH(PERIPH) (((PERIPH) == RCU)) +#define IS_PMU_PERIPH(PERIPH) (((PERIPH) == PMU)) +#define IS_WDT_PERIPH(PERIPH) (((PERIPH) == WDT)) +#define IS_DMA_PERIPH(PERIPH) (((PERIPH) == DMA)) +#define IS_UART_PERIPH(PERIPH) (((PERIPH) == UART0) || \ + ((PERIPH) == UART1)) +#define IS_SPI_PERIPH(PERIPH) (((PERIPH) == SPI)) +#define IS_TMR_PERIPH(PERIPH) (((PERIPH) == TMR0) || \ + ((PERIPH) == TMR1) || \ + ((PERIPH) == TMR2) || \ + ((PERIPH) == TMR3)) +#define IS_PWM_PERIPH(PERIPH) (((PERIPH) == PWM0) || \ + ((PERIPH) == PWM1) || \ + ((PERIPH) == PWM2)) +#define IS_QEP_PERIPH(PERIPH) (((PERIPH) == QEP)) +#define IS_I2C_PERIPH(PERIPH) (((PERIPH) == I2C)) +#define IS_ECAP_PERIPH(PERIPH) (((PERIPH) == ECAP0) || \ + ((PERIPH) == ECAP1) || \ + ((PERIPH) == ECAP2)) + +#ifdef __cplusplus +} +#endif + +#endif /* __K1921VK035_H */ + +/************************** (C) COPYRIGHT 2019 NIIET ************************* +* +* END OF FILE K1921VK035.h */ diff --git a/platform/Device/NIIET/K1921VK035/Include/system_K1921VK035.h b/platform/Device/NIIET/K1921VK035/Include/system_K1921VK035.h new file mode 100644 index 0000000..829ee17 --- /dev/null +++ b/platform/Device/NIIET/K1921VK035/Include/system_K1921VK035.h @@ -0,0 +1,52 @@ +/*============================================================================== + * Инициализация К1921ВК035 + *------------------------------------------------------------------------------ + * НИИЭТ, Богдан Колбов + *============================================================================== + * ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО + * ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ + * ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ + * НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ + * ПРЕДНАЗНАЧЕНО ДЛЯ ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЕЙ И НАПРАВЛЕНО ТОЛЬКО НА + * ПРЕДОСТАВЛЕНИЕ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ О ПРОДУКТЕ, С ЦЕЛЬЮ СОХРАНИТЬ ВРЕМЯ + * ПОТРЕБИТЕЛЮ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ + * ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА ПРЯМОЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ИЛИ + * ПО ИНЫМ ТРЕБОВАНИЯМ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ + * ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. + * + * 2018 АО "НИИЭТ" + *============================================================================== + */ + +#ifndef SYSTEM_K1921VK035_H +#define SYSTEM_K1921VK035_H + +#ifdef __cplusplus +extern "C" { +#endif + +//-- Includes ------------------------------------------------------------------ +#include + +//-- Defines ------------------------------------------------------------------- +#define OSICLK_VAL 8000000 +#ifndef OSECLK_VAL +#define OSECLK_VAL 0 +#endif +#define OSECLK_STARTUP_TIMEOUT 0x100000 +#define SYSCLK_SWITCH_TIMEOUT 0x100000 + +//-- Variables ----------------------------------------------------------------- +extern uint32_t SystemCoreClock; // System Clock Frequency (Core Clock) +extern uint32_t uwTick; +//-- Functions ----------------------------------------------------------------- +// Initialize the System +extern void SystemInit(void); +// Updates the SystemCoreClock with current core Clock retrieved from registers +extern void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif // SYSTEM_K1921VK035_H diff --git a/platform/Device/NIIET/K1921VK035/Source/ARM/startup_K1921VK035.s b/platform/Device/NIIET/K1921VK035/Source/ARM/startup_K1921VK035.s new file mode 100644 index 0000000..efcf387 --- /dev/null +++ b/platform/Device/NIIET/K1921VK035/Source/ARM/startup_K1921VK035.s @@ -0,0 +1,393 @@ +;******************** (C) COPYRIGHT 2018 NIIET ******************** +;* File Name : startup_K1921VK035.s +;* Author : NIIET +;* Version : V1.7 +;* Date : 02.05.2018 +;* Description : K1921VK035 vector table for MDK-ARM +;* toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == Reset_Handler +;* - Set the vector table entries with the exceptions ISR address +;* - Configure the clock system +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM4 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +; 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, NIIET 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. +;******************************************************************************* + +; 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 WDT_IRQHandler ; Watchdog timer interrupt + DCD RCU_IRQHandler ; Reset and clock unit interrupt + DCD MFLASH_IRQHandler ; MFLASH interrupt + DCD GPIOA_IRQHandler ; GPIO A interrupt + DCD GPIOB_IRQHandler ; GPIO B interrupt + DCD DMA_CH0_IRQHandler ; DMA channel 0 interrupt + DCD DMA_CH1_IRQHandler ; DMA channel 1 interrupt + DCD DMA_CH2_IRQHandler ; DMA channel 2 interrupt + DCD DMA_CH3_IRQHandler ; DMA channel 3 interrupt + DCD DMA_CH4_IRQHandler ; DMA channel 4 interrupt + DCD DMA_CH5_IRQHandler ; DMA channel 5 interrupt + DCD DMA_CH6_IRQHandler ; DMA channel 6 interrupt + DCD DMA_CH7_IRQHandler ; DMA channel 7 interrupt + DCD DMA_CH8_IRQHandler ; DMA channel 8 interrupt + DCD DMA_CH9_IRQHandler ; DMA channel 9 interrupt + DCD DMA_CH10_IRQHandler ; DMA channel 10 interrupt + DCD DMA_CH11_IRQHandler ; DMA channel 11 interrupt + DCD DMA_CH12_IRQHandler ; DMA channel 12 interrupt + DCD DMA_CH13_IRQHandler ; DMA channel 13 interrupt + DCD DMA_CH14_IRQHandler ; DMA channel 14 interrupt + DCD DMA_CH15_IRQHandler ; DMA channel 15 interrupt + DCD TMR0_IRQHandler ; Timer 0 interrupt + DCD TMR1_IRQHandler ; Timer 1 interrupt + DCD TMR2_IRQHandler ; Timer 2 interrupt + DCD TMR3_IRQHandler ; Timer 3 interrupt + DCD UART0_TD_IRQHandler ; UART0 Transmit Done interrupt + DCD UART0_RX_IRQHandler ; UART0 Recieve interrupt + DCD UART0_TX_IRQHandler ; UART0 Transmit interrupt + DCD UART0_E_RT_IRQHandler ; UART0 Error and Receive Timeout interrupt + DCD UART1_TD_IRQHandler ; UART1 Transmit Done interrupt + DCD UART1_RX_IRQHandler ; UART1 Recieve interrupt + DCD UART1_TX_IRQHandler ; UART1 Transmit interrupt + DCD UART1_E_RT_IRQHandler ; UART1 Error and Receive Timeout interrupt + DCD SPI_RO_RT_IRQHandler ; SPI RX FIFO overrun and Receive Timeout interrupt + DCD SPI_RX_IRQHandler ; SPI Receive interrupt + DCD SPI_TX_IRQHandler ; SPI Transmit interrupt + DCD I2C_IRQHandler ; I2C interrupt + DCD ECAP0_IRQHandler ; ECAP0 interrupt + DCD ECAP1_IRQHandler ; ECAP1 interrupt + DCD ECAP2_IRQHandler ; ECAP2 interrupt + DCD PWM0_IRQHandler ; PWM0 interrupt + DCD PWM0_HD_IRQHandler ; PWM0 HD interrupt + DCD PWM0_TZ_IRQHandler ; PWM0 TZ interrupt + DCD PWM1_IRQHandler ; PWM1 interrupt + DCD PWM1_HD_IRQHandler ; PWM1 HD interrupt + DCD PWM1_TZ_IRQHandler ; PWM1 TZ interrupt + DCD PWM2_IRQHandler ; PWM2 interrupt + DCD PWM2_HD_IRQHandler ; PWM2 HD interrupt + DCD PWM2_TZ_IRQHandler ; PWM2 TZ interrupt + DCD QEP_IRQHandler ; QEP interrupt + DCD ADC_SEQ0_IRQHandler ; ADC Sequencer 0 interrupt + DCD ADC_SEQ1_IRQHandler ; ADC Sequencer 1 interrupt + DCD ADC_DC_IRQHandler ; ADC Digital Comparator interrupt + DCD CAN0_IRQHandler ; CAN0 interrupt + DCD CAN1_IRQHandler ; CAN1 interrupt + DCD CAN2_IRQHandler ; CAN2 interrupt + DCD CAN3_IRQHandler ; CAN3 interrupt + DCD CAN4_IRQHandler ; CAN4 interrupt + DCD CAN5_IRQHandler ; CAN5 interrupt + DCD CAN6_IRQHandler ; CAN6 interrupt + DCD CAN7_IRQHandler ; CAN7 interrupt + DCD CAN8_IRQHandler ; CAN8 interrupt + DCD CAN9_IRQHandler ; CAN9 interrupt + DCD CAN10_IRQHandler ; CAN10 interrupt + DCD CAN11_IRQHandler ; CAN11 interrupt + DCD CAN12_IRQHandler ; CAN12 interrupt + DCD CAN13_IRQHandler ; CAN13 interrupt + DCD CAN14_IRQHandler ; CAN14 interrupt + DCD CAN15_IRQHandler ; CAN15 interrupt + DCD FPU_IRQHandler ; FPU exception interrupt + +__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 WDT_IRQHandler [WEAK] + EXPORT RCU_IRQHandler [WEAK] + EXPORT MFLASH_IRQHandler [WEAK] + EXPORT GPIOA_IRQHandler [WEAK] + EXPORT GPIOB_IRQHandler [WEAK] + EXPORT DMA_CH0_IRQHandler [WEAK] + EXPORT DMA_CH1_IRQHandler [WEAK] + EXPORT DMA_CH2_IRQHandler [WEAK] + EXPORT DMA_CH3_IRQHandler [WEAK] + EXPORT DMA_CH4_IRQHandler [WEAK] + EXPORT DMA_CH5_IRQHandler [WEAK] + EXPORT DMA_CH6_IRQHandler [WEAK] + EXPORT DMA_CH7_IRQHandler [WEAK] + EXPORT DMA_CH8_IRQHandler [WEAK] + EXPORT DMA_CH9_IRQHandler [WEAK] + EXPORT DMA_CH10_IRQHandler [WEAK] + EXPORT DMA_CH11_IRQHandler [WEAK] + EXPORT DMA_CH12_IRQHandler [WEAK] + EXPORT DMA_CH13_IRQHandler [WEAK] + EXPORT DMA_CH14_IRQHandler [WEAK] + EXPORT DMA_CH15_IRQHandler [WEAK] + EXPORT TMR0_IRQHandler [WEAK] + EXPORT TMR1_IRQHandler [WEAK] + EXPORT TMR2_IRQHandler [WEAK] + EXPORT TMR3_IRQHandler [WEAK] + EXPORT UART0_TD_IRQHandler [WEAK] + EXPORT UART0_RX_IRQHandler [WEAK] + EXPORT UART0_TX_IRQHandler [WEAK] + EXPORT UART0_E_RT_IRQHandler [WEAK] + EXPORT UART1_TD_IRQHandler [WEAK] + EXPORT UART1_RX_IRQHandler [WEAK] + EXPORT UART1_TX_IRQHandler [WEAK] + EXPORT UART1_E_RT_IRQHandler [WEAK] + EXPORT SPI_RO_RT_IRQHandler [WEAK] + EXPORT SPI_RX_IRQHandler [WEAK] + EXPORT SPI_TX_IRQHandler [WEAK] + EXPORT I2C_IRQHandler [WEAK] + EXPORT ECAP0_IRQHandler [WEAK] + EXPORT ECAP1_IRQHandler [WEAK] + EXPORT ECAP2_IRQHandler [WEAK] + EXPORT PWM0_IRQHandler [WEAK] + EXPORT PWM0_HD_IRQHandler [WEAK] + EXPORT PWM0_TZ_IRQHandler [WEAK] + EXPORT PWM1_IRQHandler [WEAK] + EXPORT PWM1_HD_IRQHandler [WEAK] + EXPORT PWM1_TZ_IRQHandler [WEAK] + EXPORT PWM2_IRQHandler [WEAK] + EXPORT PWM2_HD_IRQHandler [WEAK] + EXPORT PWM2_TZ_IRQHandler [WEAK] + EXPORT QEP_IRQHandler [WEAK] + EXPORT ADC_SEQ0_IRQHandler [WEAK] + EXPORT ADC_SEQ1_IRQHandler [WEAK] + EXPORT ADC_DC_IRQHandler [WEAK] + EXPORT CAN0_IRQHandler [WEAK] + EXPORT CAN1_IRQHandler [WEAK] + EXPORT CAN2_IRQHandler [WEAK] + EXPORT CAN3_IRQHandler [WEAK] + EXPORT CAN4_IRQHandler [WEAK] + EXPORT CAN5_IRQHandler [WEAK] + EXPORT CAN6_IRQHandler [WEAK] + EXPORT CAN7_IRQHandler [WEAK] + EXPORT CAN8_IRQHandler [WEAK] + EXPORT CAN9_IRQHandler [WEAK] + EXPORT CAN10_IRQHandler [WEAK] + EXPORT CAN11_IRQHandler [WEAK] + EXPORT CAN12_IRQHandler [WEAK] + EXPORT CAN13_IRQHandler [WEAK] + EXPORT CAN14_IRQHandler [WEAK] + EXPORT CAN15_IRQHandler [WEAK] + EXPORT FPU_IRQHandler [WEAK] + + + +WDT_IRQHandler +RCU_IRQHandler +MFLASH_IRQHandler +GPIOA_IRQHandler +GPIOB_IRQHandler +DMA_CH0_IRQHandler +DMA_CH1_IRQHandler +DMA_CH2_IRQHandler +DMA_CH3_IRQHandler +DMA_CH4_IRQHandler +DMA_CH5_IRQHandler +DMA_CH6_IRQHandler +DMA_CH7_IRQHandler +DMA_CH8_IRQHandler +DMA_CH9_IRQHandler +DMA_CH10_IRQHandler +DMA_CH11_IRQHandler +DMA_CH12_IRQHandler +DMA_CH13_IRQHandler +DMA_CH14_IRQHandler +DMA_CH15_IRQHandler +TMR0_IRQHandler +TMR1_IRQHandler +TMR2_IRQHandler +TMR3_IRQHandler +UART0_TD_IRQHandler +UART0_RX_IRQHandler +UART0_TX_IRQHandler +UART0_E_RT_IRQHandler +UART1_TD_IRQHandler +UART1_RX_IRQHandler +UART1_TX_IRQHandler +UART1_E_RT_IRQHandler +SPI_RO_RT_IRQHandler +SPI_RX_IRQHandler +SPI_TX_IRQHandler +I2C_IRQHandler +ECAP0_IRQHandler +ECAP1_IRQHandler +ECAP2_IRQHandler +PWM0_IRQHandler +PWM0_HD_IRQHandler +PWM0_TZ_IRQHandler +PWM1_IRQHandler +PWM1_HD_IRQHandler +PWM1_TZ_IRQHandler +PWM2_IRQHandler +PWM2_HD_IRQHandler +PWM2_TZ_IRQHandler +QEP_IRQHandler +ADC_SEQ0_IRQHandler +ADC_SEQ1_IRQHandler +ADC_DC_IRQHandler +CAN0_IRQHandler +CAN1_IRQHandler +CAN2_IRQHandler +CAN3_IRQHandler +CAN4_IRQHandler +CAN5_IRQHandler +CAN6_IRQHandler +CAN7_IRQHandler +CAN8_IRQHandler +CAN9_IRQHandler +CAN10_IRQHandler +CAN11_IRQHandler +CAN12_IRQHandler +CAN13_IRQHandler +CAN14_IRQHandler +CAN15_IRQHandler +FPU_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 2018 NIIET *****END OF FILE***** diff --git a/platform/Device/NIIET/K1921VK035/Source/system_K1921VK035.c b/platform/Device/NIIET/K1921VK035/Source/system_K1921VK035.c new file mode 100644 index 0000000..dae457a --- /dev/null +++ b/platform/Device/NIIET/K1921VK035/Source/system_K1921VK035.c @@ -0,0 +1,167 @@ +/*============================================================================== + * Инициализация К1921ВК035 + *------------------------------------------------------------------------------ + * НИИЭТ, Богдан Колбов + *============================================================================== + * ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО + * ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ + * ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ + * НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ + * ПРЕДНАЗНАЧЕНО ДЛЯ ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЕЙ И НАПРАВЛЕНО ТОЛЬКО НА + * ПРЕДОСТАВЛЕНИЕ ДОПОЛНИТЕЛЬНОЙ ИНФОРМАЦИИ О ПРОДУКТЕ, С ЦЕЛЬЮ СОХРАНИТЬ ВРЕМЯ + * ПОТРЕБИТЕЛЮ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ + * ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА ПРЯМОЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ИЛИ + * ПО ИНЫМ ТРЕБОВАНИЯМ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ + * ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. + * + * 2018 АО "НИИЭТ" + *============================================================================== + */ + +//-- Includes ------------------------------------------------------------------ +#include "system_K1921VK035.h" +#include "K1921VK035.h" + +//-- Variables ----------------------------------------------------------------- +uint32_t SystemCoreClock; // System Clock Frequency (Core Clock) +uint32_t uwTick; // Milliseconds ticks + +//-- Functions ----------------------------------------------------------------- +void SystemCoreClockUpdate(void) +{ + uint32_t current_sysclk; + uint32_t pll_n, pll_m, pll_od, pll_refclk, pll_div = 1; + + current_sysclk = RCU->SYSCLKSTAT_bit.SYSSTAT; + + switch (current_sysclk) { + case RCU_SYSCLKSTAT_SYSSTAT_OSICLK: + SystemCoreClock = OSICLK_VAL; + break; + case RCU_SYSCLKSTAT_SYSSTAT_OSECLK: + SystemCoreClock = OSECLK_VAL; + break; + case RCU_SYSCLKSTAT_SYSSTAT_PLLDIVCLK: + case RCU_SYSCLKSTAT_SYSSTAT_PLLCLK: + if (current_sysclk == RCU_SYSCLKSTAT_SYSSTAT_PLLDIVCLK) + pll_div = RCU->PLLDIV_bit.DIV + 1; + pll_n = RCU->PLLCFG_bit.N; + pll_m = RCU->PLLCFG_bit.M; + pll_od = RCU->PLLCFG_bit.OD; + if (RCU->PLLCFG_bit.REFSRC == RCU_PLLCFG_REFSRC_OSICLK) + pll_refclk = OSICLK_VAL; + else // RCU->PLLCFG_bit.REFSRC == RCU_PLLCFG_REFSRC_OSECLK + pll_refclk = OSECLK_VAL; + SystemCoreClock = (pll_refclk * pll_m) / (pll_n * (1 << pll_od) * pll_div); + break; + } +} + +void ClkInit() +{ + uint32_t timeout_counter = 0; + uint32_t sysclk_source; + +//clockout control +#if defined CKO_OSI + SIU->CLKOUTCTL = SIU_CLKOUTCTL_CLKOUTEN_Msk; + RCU->CLKOUTCFG = (RCU_CLKOUTCFG_CLKSEL_OSICLK << RCU_CLKOUTCFG_CLKSEL_Pos) | + (RCU_CLKOUTCFG_CLKEN_Msk); //CKO = OSICLK +#elif defined CKO_OSE && (OSECLK_VAL != 0) + SIU->CLKOUTCTL = SIU_CLKOUTCTL_CLKOUTEN_Msk; + RCU->CLKOUTCFG = (RCU_CLKOUTCFG_CLKSEL_OSECLK << RCU_CLKOUTCFG_CLKSEL_Pos) | + (RCU_CLKOUTCFG_CLKEN_Msk); //CKO = OSECLK +#elif defined CKO_PLL + SIU->CLKOUTCTL = SIU_CLKOUTCTL_CLKOUTEN_Msk; + RCU->CLKOUTCFG = (RCU_CLKOUTCFG_CLKSEL_PLLCLK << RCU_CLKOUTCFG_CLKSEL_Pos) | + (1 << RCU_CLKOUTCFG_DIVN_Pos) | + (RCU_CLKOUTCFG_DIVEN_Msk) | + (RCU_CLKOUTCFG_CLKEN_Msk); //CKO = PLLCLK/4 +#endif + +//wait till external oscillator is ready +#if defined OSECLK_VAL && (OSECLK_VAL != 0) + while ((!RCU->SYSCLKSTAT_bit.OSECLKOK) && (timeout_counter < OSECLK_STARTUP_TIMEOUT)) + timeout_counter++; + if (timeout_counter == OSECLK_STARTUP_TIMEOUT) //OSE failed to startup + while (1) { + }; +#endif + +//select system clock +#ifdef SYSCLK_PLL +//PLLCLK = REFSRC * (M/N) * (1/(2^OD)) +#if (OSECLK_VAL == 8000000) + RCU->PLLCFG = (RCU_PLLCFG_REFSRC_OSECLK << RCU_PLLCFG_REFSRC_Pos) | + (1 << RCU_PLLCFG_N_Pos) | + (25 << RCU_PLLCFG_M_Pos); +#elif (OSECLK_VAL == 12000000) + RCU->PLLCFG = (RCU_PLLCFG_REFSRC_OSECLK << RCU_PLLCFG_REFSRC_Pos) | + (3 << RCU_PLLCFG_N_Pos) | + (50 << RCU_PLLCFG_M_Pos); +#elif (OSECLK_VAL == 16000000) + RCU->PLLCFG = (RCU_PLLCFG_REFSRC_OSECLK << RCU_PLLCFG_REFSRC_Pos) | + (2 << RCU_PLLCFG_N_Pos) | + (25 << RCU_PLLCFG_M_Pos); +#elif (OSECLK_VAL == 20000000) + RCU->PLLCFG = (RCU_PLLCFG_REFSRC_OSECLK << RCU_PLLCFG_REFSRC_Pos) | + (2 << RCU_PLLCFG_N_Pos) | + (20 << RCU_PLLCFG_M_Pos); +#elif (OSECLK_VAL == 24000000) + RCU->PLLCFG = (RCU_PLLCFG_REFSRC_OSECLK << RCU_PLLCFG_REFSRC_Pos) | + (3 << RCU_PLLCFG_N_Pos) | + (25 << RCU_PLLCFG_M_Pos); +#elif defined OSICLK_VAL + RCU->PLLCFG = (RCU_PLLCFG_REFSRC_OSICLK << RCU_PLLCFG_REFSRC_Pos) | + (1 << RCU_PLLCFG_N_Pos) | + (25 << RCU_PLLCFG_M_Pos); +#else +#error "Please define OSICLK_VAL and OSECLK_VAL with correct values!" +#endif + RCU->PLLCFG |= (1 << RCU_PLLCFG_OD_Pos) | + (RCU_PLLCFG_OUTEN_Msk); + while (!RCU->PLLCFG_bit.LOCK) { + }; + // additional waitstates + MFLASH->CTRL = (3 << MFLASH_CTRL_LAT_Pos); + //select PLL as source system clock + sysclk_source = RCU_SYSCLKCFG_SYSSEL_PLLCLK; +#elif defined SYSCLK_OSI + sysclk_source = RCU_SYSCLKCFG_SYSSEL_OSICLK; +#elif defined SYSCLK_OSE + sysclk_source = RCU_SYSCLKCFG_SYSSEL_OSECLK; +#else +#error "Please define SYSCLK source (SYSCLK_PLL | SYSCLK_OSI | SYSCLK_OSE)!" +#endif + + //switch sysclk + RCU->SYSCLKCFG = (sysclk_source << RCU_SYSCLKCFG_SYSSEL_Pos); + // Wait switching done + timeout_counter = 0; + while ((RCU->SYSCLKSTAT_bit.SYSSTAT != RCU->SYSCLKCFG_bit.SYSSEL) && (timeout_counter < SYSCLK_SWITCH_TIMEOUT)) + timeout_counter++; + if (timeout_counter == SYSCLK_SWITCH_TIMEOUT) //SYSCLK failed to switch + while (1) { + }; + + //flush and enable cache + MFLASH->CTRL_bit.IFLUSH = 1; + while (MFLASH->ICSTAT_bit.BUSY) { + }; + MFLASH->CTRL_bit.DFLUSH = 1; + while (MFLASH->DCSTAT_bit.BUSY) { + }; + MFLASH->CTRL |= (MFLASH_CTRL_DCEN_Msk) | (MFLASH_CTRL_ICEN_Msk) | (MFLASH_CTRL_PEN_Msk); +} + +void FPUInit() +{ + SCB->CPACR = 0x00F00000; + __DSB(); + __ISB(); +} +void SystemInit(void) +{ + ClkInit(); + FPUInit(); +} diff --git a/platform/Device/NIIET/K1921VK035/РП_1921ВК035_201219.pdf b/platform/Device/NIIET/K1921VK035/РП_1921ВК035_201219.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ac78e7774436086ec80334f443110b49044fcf93 GIT binary patch literal 7685928 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

P%OA2R^T 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
HLwK3sSe#scK@#xmxBbeH0X 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∾d&=O0rg<#4JgtbU>sEh?} z6yokI+1eiZKfklG*~wZJU}RW@oN{pRP>`S!;OwnX9esYsoaZ_&{8WB$+4}k|{^ag4 zIrxoEnHd)Ezioee_QYN?Px+Jggc;WuBZA%(6)-j+{sudbWzNp zH{OpLiwlz89-!Ro^V-Tr_RbX!2X!j?S)_Xa5XR=IRQn9<|HARtH_yQl?#xkOs^Uq} znVRez=m!8B3}|l7LzES$!ZejrHVabp@~(flHexxMZhImbv8+$Pqm&-2Cpx*uQ(T~@ zyt+NEXZO_ZkRJi5l71gpMY7I#K9zU)FTf*H{sL64JPQ((X?H3Yw36pljpnM;aK{dL zMe3)2Rj|^^9FzA8+#O34b;J)W`7^s|TMAlDe(Gz$+Gk=pSL=hg%&e0MfZvgg1Od?; z^N+6AYm%)MF1BW5XXIsMtDkEuV0BnYn7**iYc^dzK#j9i{dSEr?B>dGsE z0y@ZRC4wo#gj&{OnnSWsLnacCb^JcnhOVSmkZEu-&TyJTsDV#1NR@?X!Aa1Pr=V5TUd-Xm!8fFe_4292Xysb5v=*J()yO& z{Jj&Q`$y=ZD!rCWoGuy=lYN8n`jC)-V7Miu7ct}6GGJW+U23K!%<&-=fl+Vzi4P>%(TOOL7b^#*6liEE?36h|#+5k)3STLA1acZ4G zuE9bkFhSEmE)W#~xL`&;6_ZgCuYORk-B@w!H$kvY^@B)3+gobQ3knMw96!3!*@rzx zXs}Dk_#fiULXANxE{!48KkKTO4_Q)JS4-6?8VNEBvtzaJMN;NBmBI2k3zyJ|G50PV zbX3zO^eEDS;HNTra_xVcE2Xc~8=tvkz!J%dqK)Xo99AJy|Abi2_pF|^&~{1=^HTm% z&YtX`;o>Ub-B!b6N>a}6Vb08vDq+DbVc-UclNIr^sE{58pk(Y2cM+xrM(a=4geY%= zz?&bhw@z1XG@-`4yz`lx7cj!=fLos|QZ-~XvkHZ2yyJ#PbJvp*p+~7NktqnDELh=A zEl6xv2Gk2Bs2WpQQO}w%#=q&-qhG!da-I5Gxk&g2LTAcx*k)SS`|M%7f(a&(OsY?r zGe!%BWs*y|G9eR6>8sQ3svfTeo-cC}`H@n`cwb+Is#7M5(OfHg>TEJ3`lMZfI^u|7 zq4cM=P+Sm0baf70GQT`hg)7@_cD@}Ucc{|l2FS%q$98x5Sv3aAIyo)#P=y=aRil3h z%d0H*F<1{eare6@0b1Z1OQoscXGXxujZs&K2s7>aO?#Ia=(T0xFXL37#TJ*q+urP$ zm%fYBrFXX1gwsrOPUC!95zp2v_2*}VaTl=U>T3FSKho77d`8GFN6MR$Y3wafA%&0EblM(X8~ zSERa5`OC;WE%gflS7D^f$4I#HbS|V})FXi8Y=qdD3Pf-HY)^;&U<@MTBu*Dj7*Oa( zIH8y$WxgNBO&(wpROO;J{c>{x+e6mub4N0F^sH_9OpjXpm~owv7600eddu+sfcfNp zJ@_+q2TbG*y>Q0?6o#2@rI+(sbFB-{yHuG{B$EOt;9RCyVHijmD<87#q+Mp?PaYSS z4$b?Aj-aM|t4{v0*B{uJr7nBUQY&BWScvDf5k3xrl!qyAcV9dcZWGxpqywz$LgN*)LNe z*sEL)mu5EWFob&)v@H%sdjK2ezlAw&=H3KMP%P*vs#GUR-A{uT?p3W~X3aI%m0#yp zYQeab!$3Xu4cYjzq_>Zb5Z5`1Tt4(`ieyMx*=mY}%J%X4$y6&~gUxi~-MNZZ1HjhgT3Z3QY`l_NVIJ#62b1F1}#m?`Hn2XaC z`H`DW7)Ngvk&13w7M0tD9$nEunz|~jCzat`5d>47O`~3ycolnd3JK`+Q;+CRAk5-r zYqY5^l^X_GlMV>nYa8{@S8bZx0bFEE6d@Bed5`oToLB0#1>N zU{DksAOLBgesGpoWI`N75%I{s1CyDlq5q|8Sy>>_aK0zOBTQ%|MxeG`GDv7yu5@6? zuIrblIcLdP4oqO98b=cy*mD`<_j#GA-{+5oWDFzLPGhBta8@YSir7px4{8XHiviC$iQ$m zzsSy$+fy^De98jftHhw zVzITFktFT7l`C`2JiDw3_v7WW&9=H-9w*ZFW5&_TfJqmFbjnJ@`Gb&H#uv?Psj$h# z5ryhcha{`h^ZL@NQRT-}dau2CsE-FsvCSk1qR|bhVunQ8!uLBpK5AM~++rzUg&P+$ z&YF82$ih=mZq_*8#?kS0OFbcB=juJKg(It<;>LE_G! zPv{R9;Vq;wTEQ5ga6Xn!m?YZb&Xz~JgPyAfCojtk4bH|c-T-@#AsmPUbl~l$P2GSALknc!E3cednBgT1L;|L# zX@b;8gO*haWv9I*=dd&)^NMoW=s(Ye!8ra%*G`q8jwN$mJi*)CL4>F(DkIhjrC-< zY+hoZg+HEF%JqKVeJo77@ooD&J+~<15)N6xPr5%%VUcBMBRHj|DHN$h%aZx}uv*NV z$mM24?SCCSkd=GZW-ccoGJBJk+Mvhh$aErfG8nMtKXthk4;T1TuGn^$hNop7uiCCD z8OHF;gfW2f{S`$LbXhxy=kcmO*VEeY@x)1zsY{)@=&x-xVk>VwsIEJB ztj&~KXHJkZcATM)pXqe}&0^B!7H-$%iYsXh!nkZLtvp*SMk?~!+jl)cjPU40)Krgj zUN7lnUhI6A6?E=WZ;M>3idvzrSU1$0e=XB;C=d^PWo10d>8Ha3d>pdpe9qn=heh$=eC5P?M&IF@ENsW1@Cjcx)` zvz~{WXgT0Amwm)#2{&HK1E9K%vAY}$h7LB*&}YpUVrJApPt`5-<2i%py~_kMfE!0-IDOtiAk z@M)J#s$2zA@p;is)bS==uF~y$)&cod6Fp+_OLNqGOt+E3deWFPJGHw@+f=rK&0Y*X zkX)r>Zmv*n3f*U?Vp&_L7dLtA;QYHO=0Io^xOBcrZ$k!ESMlR&V=KtW$%>FLe#y;Q1++3geOtt(|3U|%>Kf19Z&-DWqT z(>PO9!_4WW}%e41EPkR1RQ~7lH8g zKZIg=Wvqb1j^yvEMhZ3c@v7xezQ3A<@!Eu(S(~)Ee%V$`0P2Wf;&#I&2h%ey?Ml z%}LsSzy|;dw)hKzeDQfQu_d6jM52H5{%XBxN6UPbLP>V^bTVl;s<^S+za^tUr$0;f z87VKZ$_meg(-uB&CQz$F^VTM#MJyZiiu62-47RM%SW8z9Oa259)DsT`3cFvnA>mI9 zpkHHKXP7}hFGtT25j5khm5mCHexOWDO6HZ-nMYGQzr~Idk=sHEE(04MLrWreA@}}d; zbigI!>5h9CI3nsk_2wHa(Wss#5p=<&ar|IREoZ~%zx2Tsi44CG(O4cKpaG&vsSzO% zNj;@TjAPk)bVL~^MzB9+`0!*zR26#mGiO-`M_+9h55V$oVKoI7+y$|vlyhY#91XAO z6tH%7uoDB8CB`)sc-4(wvWc1pC8U=0QsPu4w!0_5_07jXc!|_o%p`iyTCJ-RTerWi zsT%G&j#47Pr85g)?mF|f{TIMRI9)Y$)3v2nyHALqflT*M*n=1MZ95NakhN0Rq`NL2 zyL>#AK`Td9LhdrllVmQp?{S3MuOK2*eO7`{?y#Ra!IV&@eiH6HrrZM;(_NGW$XCV| zFNBEo)7#tfNDAM$`9diq5UI0apTw=<}gPJe&vwn_;}f zSMhh(u&0ms6od-_Mf4T$5=e?N;!qEs{Oyy1ywiZbM^}J#CF}tB6qpC;!$$6`q(MdA zY~TVA_K^Ra_p6y~?Fd3pNlC=glpTqZE!&uLo@SO@)msX5 zhO3-N0ISlh*}B}}=E15z`Ga+*0>OGBEdSH|w-qdwc|RdT z3J8FmoJftu5Ov`P>+bAFySVo(2x0FrJwBO`Dn|Y{(Vma3w`bwCsHlx`r_phngz@ki zcsu8L7Q4GwttI2{6iqwLQ|~CxAe)RtpjN_7K34*-$1!H%Z|I44;zTMsS{jGMiZ`hu5NYjBp7!UL4kebCBw;{Duzs-J-!g&PM5f<+dTUO_@*X8`t0 zTZxV0_=*u{PBo-Ez_vi^V#3l>3)m4j4YbvirViX;8%*eb$M_j9)U!X(HS7#_3YFoE zd0GzMJYq#1BKbg?=vgYDTKvQ^iXX+f`=nnD?j4G4By4Fp&5?<->lKfa!A2Ze!Mxs= zYTEabi})f7osk&|eqWz=F^BJU?k^xob#zu#0DU*O|uzCVC#S4_vI_H;Phu6+rX+bpVs-NEVWRE%46 zfY+9<9~(QFez`r^f!ZFRM8Qa%p-`eB^k|2ypiU}qP67SE^sV}FO&Rtl7G7CebGCq6 zz(s(kDb}qWAaHYFMPB@7yNq2kBl4}6e{MggT_KS-&!#yqk@8G(`yRU-t7o|`k@SDt zpGDEbaENSWhF}hj4RQdloiKbyQ$62lK0wiByr%5?8C$q}F~XjRHr4Wq8ysaXyYCW< zmKX1MPJl}x2DUk(+6yIo2JqrMgd7RxvqbMaSHgYW&`^%yO#*0BgwhBf_O+8?U`;}i$mZyKK!EDJAtA9oW*J635zcuBJnQKsK#-H)g1UA3t(#ug8Mngtt8G& zb*BZ#O>xz;cOwwtO*HvxnflX)U5T<)N@(mD*cq#REJQf2dbbs8PI?kQU~wGrc{6T7 zok)|R{icGtM4<#}kj(QKtvt%y^;IqOKC)= zRx*FOSYod*nd^r>l^hmuEOPfPX(;0Ox#gz?mCojHmD~m}604&li=#mYF79LRiN* zVJX%KRmM5TTi(!?0*8ISznLB!@!a6g)LJ*Qd%MUAuLjRhHWBJGbn^q#9gcsCAf}t? zxqgww0W{X(bxd_IHyx%lVfr6i2w`f@+m_@%6zO1UCfJ(hgNs*ko;jdGy)%ug=y`SJ z^GJ&?Lq5srLDh7Q(iM6%9Hd&r7e!X@B9M_oh?tr(<{qo0h_^$rtXnEM`FEVmfdt)9 zTRY1RMKHLm6I+F=CJ=?eIXvCEUn zVcWJ$bfL_J9#?mE&xktFg-Nqzw8(e^9bi>jJD%=X1j*%C5}lvWRU1t^W*2xz9l2-M zck#<$l&EjACn6_1E`2s-Lf;KH-GnZvCY%Ba4 zt8G)f6zKfiA0Y6F0$qe|4#w~^9>gmK9Q_;3P2uHt_LRNhqO)BO)jHVo>eQUEv}yiJ zdB0)pJuNFLmZ->?mth+uA~N@-&$fyXxEfQf-NBX%&nC<_G;Ie_pUJ5t(i@Hv$b29K zr$~LIApbGrBW6G{fk98eVI$D+9T$3N&!hhR@CbJrx;x0lzgi&Q0j#;jWy2Ab)&E1Ghf7hZWvm)BiohZri80mc0v@_7b3w+r8` zey{c-Aetdm#)^0++3e8X$wjsu<7t)?%L-(X+?fnFM-f>3bRpJckNT>YnOy90*wXT!FHoQ61sj5oQL@_IzMS{iHERf8W^ZG-O@xV z2dHe-noZ7&YVB&^_Q=is9$L#<$owrT*S@QpOpiQsSs%esjoh^IyM}75@=$^=MW0w% zYY2mlJoO!-AWw|dWx5q2#%xcXsB^SSB*m+UZmM#Pp2F=q?+oD2iQflN#=&1hiF1T0 za`e_(TD6|6a(XgL6_VwF^*qIKk<3)QnS2TAIrs?lqg2cF;pSO4tah81XLBO6w#VDb z7SWfj=|r-1m741~M~9Z`GD_-M)?L2g2D;W7weho`_w*iI0`2;Bt_tpTq59W(GichxqB@wW_&_6nob)We^SYGISr%hZ0okyB$NK9lOj-!$W{2 zX_%-f2_5NG?1*R6$o+;)iCIhOXe%Ib0*XCy)%D84O0r7Wl|-B@Q@-niizY>1D09c{?R(sDrV25-lw{KuGWTFg;; zRs+hn|kS zb!G!z9`(ApljCTaC;cI55C6x1zwf4vVv5hFxtWus!g$>q2$kY>G1q$`kf^aqC-j8? zqYd4J41j(S5jtHuNNt(CC_9*&21?U&&i*9Ee$x75#en=14iTjvdPCB9;n~b@ z0ErgK^HFyd_t~UR7^&w-cxgJ{Vf){R+`+~Sz5;!HaNA4)Es5x_E};M>C3SW=uQs{I z2VW-$?!@xq|!=At#)DC6e?CF8g9pI*|S&0DW>F3 z(^yV64EWfW=k+eKS)Hx8Lr_5zC8u8x(ayoU(t#1|$exC=On2yC^~hOT+WFm~>Vb9A zq|R2^f5zdlkgD9n8ZKsN6C5o^7%G;& zq4zpeih6}Qi3O#0PgAwLAJ>B`hNY!!eA!JqkdHL*Kj3&9G+F;cY{h>#5A6&sVWGIW z>Hg0s8Aa`Eoqq?5vg5NbvHc#c$jeJ7;_fV_qxtct(--#vnYcJ5lg zJ$if&dJbB8c6??gS|&EO|Kee!XX9X`|4)zyJw5|1D+|YeXd>xv;sz{2+5u^!DDT(Q_}FxTL#KlDe%^h63bto(-fI{Q~}H83BT zrR=3+JMb)vQN-78uA-3vuvu?=Ts^`Hhp$hJ-MS?^HK}JSeEZn^R97b#t&>G&B7TpT ziJ+OLNPVYo@3SU~d4f$$Utw)uuXln_yuJ|+lf8TfpI>*3JbZukcxPAm=oW5_Z)=Zk zE_lF!2-#al1Kcj(0Xt;_Hc(!BN(5ywu zuQaym=v%)e?*o26s?p;*{#ZEBL<0&$nmg83HUWv-SQmPZG~7nfDF2z{DL>s27eOTs z<$ts8GUVr+HD4NTm_tEvw{~H`cVW#nYVQy%z zG*mEmAdNeSDFP!dbIN~_GUA`tei)$XTa3a#?+vm*+6<6j`sXS3S6^fSJJZSx1~M%Q z+)=#*G$zjRoxz+UvdsQ2Y1mGdyvn8+4;oHXOPm54eo*rtS@DOqy~TN4jXDoD0uAsQftug-7kg;E!pIj*cP!9}vuTNb`Z74n!{=r6K1@xBfM)5F2^jaWd8sucui ztj@h7#MTP88r^-d#4d-rbC(3jNi4f})P&N&dUF@B>0tOQCSa)dm=DRH-TE*RO{#%( z+r6Dvc;`Kv18`}3u*-We^U!R)|AxR%EHGzh3?_#XC5uf4acoC|@y_N+>c^Vd?LNSe zLVvqI+uAL(bP=*2WLzb;D9MNpKX=rt<{4E7eU4}b#5B)DU|E5Bs-`k08c`bwMArk*RPyn4D3RhReT*lvhNqdz3@X;W@K$YJ1lXOH zw$yy;e!Xz+V7>F$M33a0_!S({W}o(oW`As2d|Q<|x^d0^AUMf!P5UYH-bj?b>5=~P zdFO*!&@>qYV7oXu&_+O*6e><*#Ft0F|p8d{C_N(wuT)x+aF)F zyq~#PCTQu%7r-ev`cTqNXs!!&O%P~11oD{uR|3_2bG+vry4h>OOqpl$7+4Q(CgXbb zs)I_yX4~i7T)ywe+wb-bTf67kS@;`2-_Lq4H>aP+3pcixpO2@z+jMFs!f6iG`ENs^m*uHX&h)*T+sDt($4TzU zlhV?Y;Nd8`3eN&;t>WV8-mHAxy%xWsL1_yt{;T)f)ao-e7Fvv(*(mqH1_WJ~^M z5oV5Y3sEUNsK(cWCnq%4?mIj~F?jI$zR9_ZlKu(<KSq_=qA0^v9S^eMZoP}{D}JDN1Z zut+Ctsw=i3KO#6_G*{U0(RK&nfgTcu2zx>f?G=lNbRItP_N6V&s_hy!V;5~Th{Qlr zMM|$6g^wQ5;FK_WP69_wqlWdJ+A~W%qEX4iqEpare==Rdg0bMStCf&!rRW55c|-B% z!#}RZ;bH$?vc@u>LTavemc`5eP#ASEC%UQ;6pc$@h|Ctj@8IfN|0rq(rAD_w~Ok=F0It3-k(5MMW(u*0_$(USS3#jV(AOLt2bu&1%_A#K}yy>MR z=<8>X9U-i4cg5KKCDQbOe@}?xs*9xbTHzO(K^yaP8e~cfG@^o2^3IJCf=rG zNw?5M(5s2WFOL{DmyqO%u&7c~KJ_JwG*CPH`nuArFcM#l;}-Nx84;TzA8KMXc*3IB zwDN;;fTWmRxcD-?E4Yx*UCmjrINCu1a)7DG(-~2SFoX?K^^s-pB`;Pv03q6y+6L)7<-+PAdaoX`Drqt5w`+2 z8phdU8QH*8{Y9NgR)5=6qL}r(@N&_iQ4kPhv=<;Ud87?R88kr_s}TFIM=UKam)LyK zB6C*&VfzOsEGRune@aNMibxR)UO$L~n<8Cg_#th-{R{%{a(g;fI&6TbY7m%%{IE^W zopwmy14*c{nmCWSdGnu>N*Lvq6$b(4;|+G7TY)a_$n;#H@H3{|=@zDg;pqXRgQyao z>+Tl6qK6hx5mgq0q-Qx<7OXE>S_O8uq_%>6?|RyPOc@?F3tvo|)nXYr*WnrrMxd0s zKU}g#ObR(V|BHF8l6rO}(p2qgp5Yl3$t06Oa!F)0>xK9FVxRPF5k{mCJ$d6kHT2cX zOhZ*K`XBmZ$zkcv2YcI%B?h?iNe(i*#=#wWb;^)j<5MS+PXJ$5Ps6K;#I1FgKXbCoMRDU#T&9HeH^OH-1KGy21QZe>CnQ4z$6)Kcr{F?;+ zZg+XUKIUuj_^y9m*y`YqGqi|F5;yi+K}swWN<@~`FiQ32g9La~G6AP4r04`Dxj;3;jO~tah3~u*0c-J46FTOQ_kVkhF zp^y9VfG4cyPrcd*DB8-^zA$x6MV&dh+-;{Ny)|8_2d1b@u~KGCFVTLcFAxZL$#5C^ z5WO`b=Fkinq*J$m>?u^)bdwx8Pz+fy4ZGATLNb5aYJ!+DVc^w=9~MZdWTb?iVha>i zox|ji`xlxg^*4dKV_9tszzu)%_zN{zk0ipbg~>QK_!BysUwdu z%D30x4^rPF?x23?2q7u%4l42!g{q2TQ-!pPRMaQ&;@O(d$A97pRLNsTblpHwcs^sX zsd9)=Krr+G7jlO_{u{RPJd?C0%n(2JuZ8UE@V;A`UvY+s(IajztVxe3s$OVl&(q$#s|(VacD!H zw;=has=d%p|G-iXQ&Q^tlLqZg5?;V9@f_Sac`@;Dt7rTYS!A#WeQ4ScIMj|-%n5&2 zpCBi!0S;NcFg)0C-HAsbu>Qd8bcdZSIf~7_6)N>kw;R*AxKf}(=TEMD`L<7kVkjO< zxtZ*+%j?&J*2j%acCBGy?l_NA#8V=L&J_L5RHFRbMFxhXYOm^uR-UDu$r)uY{orfqnx&kcd(lSNMg1rS+9G#&$GM6QYLp&i&deOS4cGGk3a-&%=UrWR6lsG{Q7QZW;D<7Lu6C2~C6yr#8D@CPuXn z|M6Gn(%T7TzhP>O{4+*;csnT@h?3$kEl#+OV$*7yFa`3c;$Iuo86a92`rOt9gLFk}FmoJq&Ugz~#DsEpgQ2ZJ&_(v|QsQ>%q}iTkAf3Zgoc+CR4({ zwRhg+V~kOoWJ9ObNed<+5qRh%$(v=;wKo^8hx(@UkBKrlLIJtiE#`OvZG<-)J5O=9 zw#V|)0d&vC-Ntm@^Aek&`g&f|dwdjD3F%0#^9$e{qtZl-3sB^n2rJdOzR0;JlXfDd zqiYoyi8a~X0f^f=8ui=0suIY-aE&UJOCQhW_K^!??n;OcECujNsh=Gj_3YJW6zXG@ z>L8O{e>J=jCjQJlVfp(=>KSrn)b5%RsD;2Ow2=W#6|_1LqQNAqDyfW})GWFolj-XJ z`aS4G=AWpkV12HD>?T!>Dda`aj1-aG>zk^Suv9(5uo;V%dCbtEaomJM#_e}%)NL{# zllZgalrJI~P9V|niClCEX?v81w;DCP8ya2phm*3zPXgwFgJMJeoaj8nNh5>ZyG!6% zwjqmugpl1?bwo(0x! z_ha)uhqOO3#vPoZw-v6#itGEEH%G^bz8ZIlVNQss94SVC2OmUo5YiZiqm*Q9`8~a~2vy!p6lZM`Y2ukV!`_zPZOu9hqZ2=XkT7`kA;Kz|K$PxpJ8nO1D;0rzp*#A zU+nEa$erSU!EpZtx3MrV(Xz7PGqbVLGBN!Z+{VC6&+s4M?subQV4-LK&*}aD!)=Tl zjO_pIoGxii#vHZ5ZlTHl?3%d5ISQY{N<*DqdjM#_#GP$}YJiRt^P9wv8~XAUiEKPd zb*$9njOSssxu`rMlKdldiGlJol0NnI^?n_6%T;_i@WaECwlj3Z@gdIQ^?kj*+XGCz zGP<@N+CHSsxJ{ zHwv$Ke?IbhbA7$NUnkYTaJum4OZ|TCqjLOSO<(tszOdDLnMZo`OTa$9k7~D0_;`4| zgPP z*MW{&W!VFfJ+UIiXzdntI?TPq=$jXR!2r7rsx$TFh1|W&Hbi$f1_ML8-EXnapkg=n zweR5Bp^qv$k4M@&rudxd;Ab`Uz14XD!xf?yp5&{0=Ifk802rPtL5kybtjr@^A!vm6 zJ|OYmI8OKs)f7loY?ayxA(C55+Bk?Dit6u;I68)k1p*=-4QQzp>pOAw^#QzZiSx zAX}p5Td-~0w{6?DZTq%u+cs|7wr$(CZBKvS%tXv@B3``r$BDD+)UJv+J91@Z)?S%w zmcRv$V)CHw1?6Qrr8PN(`MWk6M=b9M1DS)mR{=d7h}|xMbw6MChvXWu|K5co2IZb zALc?w@I}551sSr0ODcbYkF1MY`W9#IChK6^5157V6 z#@X#ojP%GVQrGHhES-x)qVT&v=8@kcaCr$?HAideiN4F946V$#9jnDvz-P!`vi6=oA4jGJCC598Y*%>{MaJo3O z;-99oS2027T)Cz8kNxCe(%P9F$#av{A?Sx8>~IeUyKuv`_68ZZ;gSUWp@`clo|6lME-(Uv_Aq%lxJ9@lGNB%=ao^|?rap%)Fcb*dB<~iWz1W;vOoLA z^cQGW<3$&E&EKdfTH!vuQo#!PK_?9^BDbQaFcz9CPD8PHkzk^TCn20FOcFbWu$YD> zUbliqw9a2|oY-V%In=PAsBl+IZmTqBvIl6+*3;~70xhtYg>bq9JI)g|4e_$kY zj@`y&&lWcQen(`zl-`>7%kPiW%n`g(Sd}x9IihIIO}so(@l{`Y%NFni^BT_{O(S&v z{ufJlg3IhB6+GYcspoNd>q0@GlVcX}i0BQD&Feztk5kyno?Z%lodQiGS}AP?GnOiz z+-t=i(ZZB0+aF4bOL#NlaOLXFIVS-l+w7LC2(nd8GjXkHL^42W>b7z;9$bEqW}0hd=XPiw@$bp9IO(Wu{rfGe;VSR*bFWef}unxr&2W6Z!E z++J_I{{vwkHNi5@8uc`^*l@njeFPEkFH`2?J^oFfcEl%l9gxMj*A=_67>*o%EGH1c z8GwG4wZ<}v#Th{V9l`7xAkCqc$rT`LBYPk2(4Xz_4j=@%*8~s#bn^ALrw;zJZSGpN zzHEXUzsiL3kW08jMnA9vg`U|hyW4{^P^{4RJP7(XoE`hLic188y+i)V%a3BR5JAqT zZOgdA^^J0Lizp7 zrLPtT3P+M4vM!y&tMVP1Z=WQpe!pGUsKLIN(wA8z&bnKIdmv$`MX&KEtVqm+GLo>$ zq5LW+aQXNifP;VvhjPVWZUs)Cx*Ep=ph7v$OsaTbxkD>wy{-z!1ENDoK&b+KFY$%j zFsED}wf?jcy*~K$6(wlH?Qs}MTXKMg-<1-*4{*28MpmLjBiz_|mp@~4LB z+m>}~Stp*h`>XUo(j7Y}1zq9&nm`BgS2=auBH?j2>`!gt?Gt3zt)xS)nqvfFB)=+a zb0b>o8xw0r@$9HRM7FJ6rZk{S+V0-uLreFPODhA})=A?RYw2}&UCPzbnd=<``#qlr z0Ge=-w!U{;w&jmR#dP-`?+>3#sST=Z?Y{fL2B#;Uy*A=a$|o4^vsLvA!RlB|E+! z8#5&zAFi=Ee7{3JpO=mWx*hNLJ-Qx`m$Tp4d#fYI_al_g`{(L}@9XxfBlhPZbLLu& z@9TPF$NQxvG<0F%<78o>q{Vi-s}}j7M6Sp8BP1K`!`EefF`eeV5zATkip;k;+UMS$ z=WDNLr&~kT_x5LfzsKkPd5X?fwxx&D`#rVAmRH@;*Zbob-F7F7*Xzm4W99DVEOaKv z_tkM{DD}4|gLbR>8%ZD~_DxSOHwUvi~&>B}?Yw;kEmksSQ@NJGovC0+_v?3x=*opTva zxBJiC!c{LJc=10>d((X8hl_YbKrDvn_?Ot0`{RX!(IgOQ`@WfZ>DK~&A}yoCft8m1 z!uQQKoA! zMID9*E6P2eL|WGt>Ulv_Q@q&XYHvX4sWabWL@Bc}$yFsg42(!|3$K060Y@IW z2&dw!rP&(#d*8oV1b<+04~#MLz~R!n`csKs0ik>TLEln*dJFEWQ+GIzQMOv}p7B1& zq7l0k=&CZ(y*kuq+|0R9zp9qN(=T*0Uk(LPk8{$bZAAIjNuQ!avcirUTcj78J^}c; z>N(-?Xw$g4s^2Ezz3tS{!=!$bfB0b3Vmo2BLzO*)9&OW_Z#KWJtR1ZWs#B8xw`&$dF72+-xb2Npd+=Ip%7MNZvt)%h6 ztl2a)VSihwPG@2k-4%=H(O@Gmb{gH_ui`NeRqR<9p1TkbpKSOf*(9WKEF-~;)x;Oa z7LA$b^*`RP=Tx>IgCDjms<_Sbt4=hX#vYgD5a@Uz&t#1Zm5h2`*ed>xB-v#K&2xJ+jMD#JEp zuT8O+tmRa+$gK}MyDxc*qQSKsgw3FR<+SkUb5o6ecsN)e<%yc1H)Xqd$ck~B+ygZ& z#R%3hjZC0kJmHa^ya&AxE$+_LW=2>`g3=h(GUc2dsBU_&z*qor6}%RBIf^_7>arwS zBSd&oFeeZrJ~+iqnh2(PzstfhG*$%dFyZp6xJ(3GSy`Sr1-=^|WrJMK8AC z9>*%o*Y-o&A^sgNi!HUU$^udyw{Z;1^pa>}A_Tp-MJXQT+V5S&qMCEPK>Ig6+mEfPyzna*wNBc7pS4I_} z97lb)LtIj)*ScGLmB^s!Gb9=pK%*pI`M!%RXN|`W!`C;&EUx6J{sj~Fd(mYl%E1dS zVc)R}-YLvudMpV zqfGdLEod;b=By#j^@nDkJxT6o?eCS}8vA=woO_Sno6nUG5gW+{J@QT=x{b$M7w30whKI8C~0d-Fh2sHZ_Fv>F%9@-zU+qjf{~T zY~M^Kr}e&7%U|b;uGQ1dNb%upE|WO(U3N}}4#u6I?w zxjHYS^7%|nzS~Hn&NLpBtv*~Zt0S}OMZ3X42E*@l8jj;?5_n9l^qgsj(Lp17Y{e^v zCHSny3mGs*(jB$}VQ16Ws?FC`No-OZxlI#2waIVwkpbdZgYlZBJ`|Fm?Sde=wO$%5E0ESb%s}FBoWB|od8q{Yfx&|sNY;O zvqV13h-@2l)y$vEDpCy4tM}>Xf@hF@8I_^(_p=E`y}PFTgYLZC`Dibm-N}b#EK{?W zQ*Rawiy!Q(!kg2UNr`|X-r7fG(xKn~u))JBWx-8-Z53F0jHO(+dbAU;KN$R5LlHeV z^slSF0rqj85gpCKI-Xh?J(W#-D*eIbYNu6eJeu8cyA#sBo8jkz&S0ar8QoZrrNgkd zb;}>0QVD~)2P~zE{*oyK>Q_jMUX7KOqq9=l&!2LXgd zheyd~4$@BaF_c%)mN(ix7RBQt1*3_Tvhm=0-B8AEC@FZ~%mz-DO44DwRpZG-e(sxl zLDc#)&bWi5LfluU!muAWtqEi*Il1rlDgJo=;o}ndn?FngI{6!~`x*jnj;E+DvxN7} zx_CAgX8888%N#&oLT8r)>`YR*-C&0 z`~p(JgU6V#*e3!XZV_! zS4>tLfR9{H!_;tuS0pQiC)CpZe*e;49xnu+F0g;LHq~ZmQu&njb-T(YTL|SyT_j4V z7u1PU>R%;ai8LFIWbw4Oi32gu>lq>n5);V>VE!1B$b;FObR{?x$ySJIX zoLk%J*ggyi9Srr^)({jn(bV7n!kQZ`rxbeH+J(lG6&@?1k~LXZ8~;$f$(7W|@ik{2 z5!Z+*e#0@YL)y`0M5M3rcbn%Py5EM2pnn$cY2}TTR;~|>-lvGbPm}|*G3s`lDrm5@ z%u!^7V4gNq96a!LoUe;}V`7F^AIl)P6j2+gdYP$R_x0+oIaywad|NbwTVGka3;7f^ zPdx>U)|g&`2Q01MAXQQvfU(9fR8|!gBG<+nHq}Z?L>XGsv}6h#XTufXP|=nS)`dVz zMoFkXvWdLq_4u1KeW%EY1p+T^r)L2+3w2b#)>|5AQL+JB%F!S+dqcs1*kW#hw5k_& zD0vCwXpyo3PoQBmyHCRmZddoC-B%8g=&-8wje~|*=NJd}PC1~q9-qJhiIq8W0uwsp zWdnw=IB~RLgiX#4^rnV0m~40QJPABli>Ei!q{dvVa(#|r)&f?EtIl*ALp3QO_)n=9GvD1?9&cck$Grcj|E+f-5FtuAy zOX1m%-_Wdm-O8RcVXXFz7T#h>IXakW!+U@IYnZNb|1r$R&DCm*+QD{g|KIRkgI?^>k<8h#rlz>RcG?mh?%F~pV*>(%~v5F)1FR_uq!VVxhWFk5YR zxQ@JOH2Y{^SsEY?KSX)#vTFaP5*7%l38qybV-91xR5N;eg&hCS5ID;R7=)B0vszGb zhtpNo8Fk1K3IOOsHYfE=Gr!tK?m!y;6d~|f_u)Z>xcjKEy42GTF+eR%SyyeEVYp%D zKs14psuAiy1b#D_65@ibuIPi_%wWICC>SfVts~3_fndNhSX}2o1<1wBE8B}P^CQBL z%@1>i{p~!|{w{ERjs0$jD9>1(@q}~{{7tTw#glCV3&p1PvLCaY5kqIK?VFAN53Ca) z>2&dWr0AW0Mn{3n=51qWMNz6HI{>}ClW$RJ*U5XO&-T&LA@%m~QqArxundM5Kb=;v z_SS{6P#C>I%WEG%{qnI4idNI(iCLlm%TDZBWRw=DzwFN?*#0QZ414iCWz|~iZ@6uO zILI+tjq_lu7b|GvzZD(~A2#%fpwojV$Z=ZDLblYB%kA>tON7D-?xCT{@dASh2n@2@ za@e~(RVrdc{qZF$qTh~{q~K0S@T(i6MWq6P+C}GKSLLh z4Y1~DMQk{E7)GmnR#<9TYmi=s)7JQP=2mPdXge5A>YGV?j~FQaw*MHUcGmi9w2%QS z(83jn?b-h6@`lvl+^-&|O*@qUZuB)f09vViqCo+7I};F!J2NtWU1rRm$2q1862!(@ zU5HQVN(jEl?S!{Z<7bx-)eh~pM9vn*#2%S!eMt+Ghxf2&jN#jW5Vyq#7U**o z6$Hg&U5!EG%xA|$3s#da>Bm9Vz#F3J#UL1eFj*O?l49W| zxR}BiW!88@*nt1DE`PzIgjvM6#0Y2hj*1aniI%K3hfw#WfnZ|ca8UPG!GQGv4aGvE zq3)V{n2$n0jA4v#3lVy9XZ)i4;jmHnVX0->2mn!mak(f5PdX|Al38(CDF?CD^Bsih zEPD$ajP@bK$AkvM)&@=?}FC;5fmz)G%@(x@lJ$X6Jnd19e7un^R(osni09y#HqA^-oI*$J8e zkR5mOnpzooZiKfs?!Si%DhNXx10~Di(KgU6uSpuLhp$b;{$_vcgHW)z=y(Gqo4MZo zHqhJdCdkb+tw~pOH_J7U|5}?kkS$H7|CKcDKP`}`gS&wuK##H$H?I=Nat3t zh!rRBd`_GVa{%hN^;v@g&Q5=lV+<^DyV2cWF)o1||HTkE?4>WaS>ujd_H`w2e4-4F#0!__rW-cr;0!!3i2G<-0yodj)-fXTpjDCa3 zySTOEe@?4up3SvZPXySo*}d3Vq_ctM?IL21^Xx7#ooIM_@%&`9|e97jRe|;P? z57T`7Jt<58x!DB|HZBFfX$0|jSywiyj4e$SQ3ry^!l^E}{6;$qE=yRk)*|NIW&PI2eq^AnN+NYvty%4 z+sPNB@Bf0;=o_q-n9(ZY4Yra*?{yET7M7Fo#t9?#1uzilW{R=8@3>f8aesL$vTzV= zm%vFaAPGY!1iTh`ph6vW*aBE^Gxl{SZ!9zR|nmbDv)kP#%u*e(D z{VR{cToO?(KwB{t2WIs7quTwnCXCyfRg1|UQGE?bqPhs8eMM0Z5=DDz>Zdogv<%)K zPTre`n(FAqviSH@>urz&y@(SQbZ_1E7Ro3aqj!7f)|&Rm^POK0EP;H!D$%U`vBDa*5(WXQ!q~H&UpF2bp^!0V>S1s z-Zw3-8X)wT#|u$eIAo(l?HDQTT1lDm>qyQh>&L^SrxhPfm$Rl}P5 zi0Z1Y`cQL7M6@PjSV~4T_6B7YBr!^fjSx>QhGu_C)P&joC;nuq`lt4Zs!qo+-M;S| znBzx=G?&qZB!Z3k70`EF_<4myV>ko?qY@n9I#;4#Eak{C&~B*XkY*LsFi`o7{G$A# zu#f}5P|c13_w|prhDPcL?M(k(S{)umH#p(ap70-~M*T5vrQsdl@JkJzQwW4=5h1B} zgewG7z9jGODjeaL|@xfaoc6V0J@Eyjwi#L2vJp9oK4OUbcO3wTa(#81o>8yq-p4NYIZAzTx}~Ml zs`2n%J1qSRUM%nrKmEI%KcEtLzwEp--S<7eag8o|_xYr*khV{!x;B)6k0{lzK)cmc zL)+CgJ~Gs*xmaOgTXQFevDe&36>i&xfIjI~)NQTZDc~M&zVpKaNM$t$CU5^n(;&~C zx?j1K4M1#teJ;42$3P?7^*!ejJ(Y|3pNs=c7Vt3BY14_Tw9jO91H`(t z6^h-|7nVL_76Shys~6VR+{WI%9>6#oxmCe>b9dj}Y?VL#y|lyM_(NaQi6OCrnHKJF zSf2XLb1eEUX3^syyiOK|FXoA0^DNf+=30x8cWy^VVa}C}@q2trqK_e!zbo}pND;>< z6dM2<#p|qA!C|vkRy?K+gn7mZKL0qaT~+c>bA}M5m?K6;G~-}$JnSM=6=LNNd*jIz z)Cvv}?NwW%Aj?Q_5$_88L(7GV6Oji87I9aEjS8JNRhga;)7(L4bmhjPl^G&jG(Pt+ z62#{9dHM>=gb5c_`)#lduS524mT>Xk^fl>R+|NGF0D0lBzI`zf;IP0*v~Wq^kO5%7 zKuA7xfu3v_ zt&lVZi1-mT96^=4&t4UbdFu3$)FPq5&^0y+F!n6wbm~XfJ*aAY445!kA}X>Dv434X%}2nK)&B#v+>f?-+{W<5i}uuVlh2*hGig`wk2f%=(_9hmu+cup2Zq^_yV z(L1)lFl*=73FL0u%!(9_w~B{#(C6Td{?+0`bXK`Ec1l1e zWpge23W)A8t3P(DX=G%0CC4po3#9sXxW?eDoa)rJ#3A=P*BM$W$pOIjSKk|6GbWt~-xU4~qPNE)v!+TC-(CEx+}iLms~PVQ zCux?$lJlHHbK$fbbel&^%w)bR5PFr5+(PTCxWHiph%?=O4eIuum9r9oo*IjFrFoyn z|2HF*w5eMLwUtsM;<-6O`$eh^q9#Gx5CC-r7xgN1CSq#6v9*BisKR|r1* zPTak-QwlY_ZFY8CsIB!>M$DhXy;Cq?d4I2vD6GRh8cK$mRlmZJ2;8H+)JKd_)6r4^ zyzTt?`Uu!j^U+xWJRgZrf9?NwYRRf!P)HQ6Qbag1ei6zYNbk{}7L|+aH{#LWU>t`f z_c3x%7{_0ZBIM{Ju>jUh07wkfmFX5K^5cRqz+W8abN9Rh>r8)`~Yi6LVi40iRIBT4GJmgFtW%$>eVC5ExfCb29hp@!>EtwZ< zVHEbvv@DpFL@%17o~TJ8Zke{m;+o)8>EvVwx$$@8=l#TIzejoGzj|G{HJ9JV z$g1_(=-e{1wOmWnLiFL%*?GmprhZ1D3oN`WcWC@>`lT<;KWKA2NpfvRIxh?Q1gB?? zN&dKjZr@!gR(DyliAZ=WsfGdCiOA3{}bw&{zq;uY5WE_uXmrvA4U;5T(Hcd`E z#PHeyF?Kw`9^KB3z5FFw>gJ-{F)_*JJWDB z==m|2O(l%PNNEP&>1AMxdq5tvj7*Z2cs4$lFO%ednssC0qm?PZ9q{5=KdtBU?;OVk z>N9WP)7fOc24>C|SCv?Fm#Yt6mrn_}q%JBofETiWOz}0fO&Y6ZcaF;xsC@8pFyXU1 zE{A@YN2ZP?D%amrA2oQ^0U~K?sibYMs?S?8`8uz0wA&mt{r2|adkgPVvZ)75KPX9h zSXYpnPQ!D$D$}4v*z?CaQ7lRj)HA8+p}Bq!KDaqA^Wr^n=VKV_n^2io+YR7eJR&0u z`>Cm#2NGO!$iPAGtpwKl3FZSAQ3b1dimJTjO&rcD(c2tw<0ovN1uipdW4n~02HgAi zhd%D4RBuFhw7H#wT^Jfd7H9*TMZ>o(hN5mnh#{ zPX9CE>XX;!0ssYQZ-9j>P`PmrHIinuxi}N|7zxJK$dsdg{;W&c3>^XgSFb!t$#n;Z zh4pHwxu$|}NXcdLDeNi8eBC9`{4&0|)$WCFa~)!tLNhw8TZCMzDkMdy`{w5@{)pmH zig^pgi5JZC7;K>(f5f4EOzC6uXW+5x5D(Sr=*;|MpG|GK)|eu`@*1RvF@*&0`y@0F z;(CFW!!CGA`@zI1N{tieQgh#)p$&c(@G#Ii|7~s5XoU~2?w#VbqCR_{>5zm((Iykl z9yH-d(#JFyd^COh(9L_eajjU)%;izSi=DB@$hBikCESXxMy5HtRs|(yZj4oJLZhKw z4L#usL07Eg9(Q4c1C@6FOdBq+Da1|}{?FIg>f;9^8Mq=ri7YbcIEyfK@u3LDz=AaG zqQ^zjlEi}ka{AQ8NSpr|JNFTZk2t(?aNEk@SF_2@!Dp>D%-?jZry!O=% z*KKe#GHPz0grP65LDTxR$eK@7eO?+m3D}dj_ACwNQZ=T>satxwQ;iZ~W3u&W^|!it z^|Bg@d5k!5bire1k|s6$D3>xR_?QJL_;+14iDCxt$e@+5uy^bSJ0Tir?pT=`BgFi) z-xrPJMYZU>X(#6HUrF|oU(B8ov#owm?41NdIa6?btSkv&m_Q|7iBC3Z6SS|4&+B;h z({6iD>>ax>6zUAFJ+%%VY1&a-0Cl<~Z8fMW_@376_8EBwr_&nT@!4Q>1q*rsia>DU zL26X)s#<%{y{v#8PVn>0B1Z7)vc1}>yO{4 z5m`7KbXkU>kuDygtntV~X+vADG+ZrzGBV)Hhwc`v@K-0r3nzM{+gzBzfGF`wygO(_ z9GtD&S}JWt$$)b<0W9V=flYL5`syhar&(&~aJI)-Qq1m!p(pJX)s{a}T%?$^Ua@7d zgaS&Wu+$lRA$$>VApa@8Ua3@uc~b?Qb#!L1Kf;uylG~tLuBo)#V7gR87g{Ae`z?#) zdwT0IQTIj5a)Ky^n0Y)YGQ*yv`Uw<5&8Qx~@-I1Ch&1Sa8r+n-ygWk1P2@h36M`r^ z!dTkZueSnCnJLbH4UWZzCS7UkP@|mED7q|nW_cQ~5wVFIX^x}JB%azd(GOAe84|8Y z=qI~uG}OOSvWQ$Q1!2bVz->lq;f0HcG%VZbsw*G5Db$ryz@5Oh)evl=lc&`m91!UV z#_OF9ZTV46MxiGOBVicGm8h^N{V3CAuh1sdSAO4`P!^RX_)TZyY+Bg8oIN-_{s~sL z13^SWu&jL3CuEQ(+~Z5pt2lcTdqdT^kgsB@a;DY0YR(uOEa*1R^z_TNjHARC5gUeU zrWh94$fqeYr`ojiy`Q+Qp;%{>G+k0i1p?hbIU$2?UUOGmv|J;3S~pQ;B1^g}cc8sGn=@O3}p z8dXu}^(M?UFF4f<0+>T!wBP0V4^i%k@qw)VldR{dRPqbBR?BSO4GWm1L9imbs(A6x zRrR_u%jyaQ1}!Z%6?MyM8Wq`Gr~**}g=?l2;%@+OFJctEG}e#ag2LqK*|LrAY!r<; zv3VfB#L6i=JW*;z4V55@3nhvf*$0c&frKgs->4B!pO_jJG@ubT4PR-8bFHoGCD&fI zPoKPUMS4D*PfD?mWSUs$ckDwk4@R0w&!B;Mb+6;UNs)LRuaZp%6?AKUh?c&2sF4&| z+5O}tah8@8YfdaYh`Z}@Ik{II|6w?}l;>pg{2hrBdw})NND?crb<*nE;K>VSSXhDx zCYA0wnL*{|M{hA!tLMGxV3xInHqf{|t`CQ78htuIO*&^6MPR7jYUS+*u#OXCd<$csIV?uNLhy~mAIz3=a{5xUTk5%>~1J>IWZJ-)B2 z+pXV@0zYpn@PB@8a(v)E>VroGsoP>w%A`9474XXBTnWbubp=byWZUj3%5R!GS~_(ZO6%*hL4iP&B{o^GnYWELm0h+__Y|bi_jpi6MuhgF!wT*7c-;m5f(u3ek_L^)Jy4&%b8qk1jKu~7R{Jn>r4{9L8! zB(}2ph2|8WYG{&^OFRt83A983gmJi})zXFSbu zQ{^QPtPOROv$v|;hZzZk4zq}v$r{S_RCZR8*k^P#i&Ktc5NNQV5t)}L^fe1fZ4OvZ+ombd(Y$h}TzM(gWXBXx`A98 zRG_n2RrX8qWaQwh_E`Pk>EaGfkTeMlkK$z0$R}>WXViWaZ-FVg2r%fNsQeCsi9Q;D z)ay&De4BLXMA+hMuptdj0d`3aShAws$sDMfw2~@jd?vDLb#{XcLmBT)(1>rlSAnqc z2FZCgS8C^6l1qXss+WID&q0$04!U6B)Cz#SivO2p54Nn2kZJO!>Z*tN+F zZS>5&FIv_d*6Z(Myx%3+Ve8?n?-cEor8`jy3JwH~1dOU$3jdl39FF)OAoaL#0%;Wk z`koQO0Ryi<;_n~L1mmcO4cbW;;jx8LH<_)?db6G)Tl<8qoj`)UGF^VWDg}A-6+~`36icKP1>1d!byEYk`&B9#13A+=U?uJ%L z&V&>%of7CmG&0@13dXH@{L%vNav>)TIcPiPP8`Crs+u>(26@i)`t;QcRS9Cmio`~%bo-(W+*>(w(IUSA7hsciAx2($jc zw|ldp`nZtxx%e$0vMn6I?lCPx=3I%+G{XdGbj^o+q}#P)7(gegwD<=PUUzqqzj{P`u`|Y%f{+kY$g)%}y20q!67W`M9|v$CNq`lZbpc zJlE@gd_6+T?=qi%U%o8v3C3O43Q6~(w2Ld*T7Y@j9d%kdsY`6rSMmee|Iu+AriR$V z3cl4AswKX_YK3iPs(@8JGDxG(_}53^0=zL@73-IhR%Kcfv7~@F37O_F&R`$a&@mt1 z^3uBz727#x2pM7^ika^mAZkxn8t@D|nxu{u8$jTklTj;WV|_=Ks+I$)S9R&=gcg+b zwavV%n=S*!?&tU@N<2oMY9b~El6)a>qshUOcBH+6qOP=+*sV;@v_6J)HUJ!b^%6X! zSsSzAA_Yeos;rOay1X3lkKuIOf(BW>mm)Ig&k{w9zeP25=+LZ|66CX-Wbquj5o zX?SY#hzsCk{x1(k7-q9oiwYhxgN63drtNhM)+Y-JBvrx-tNU8o;$7@rDXcnkr3A0# z^t@Pq6M}`RJ=gFv5PeSay^>L`@X&vOIJRC{K2u+@BBYE)$EE^Vqw$jL?UFXdmNp#7 zPWB}-S}sZ6E-29%hr=WX`1YKatFuX3r)F~?`F~AE8dF+7C!=E!J6Q8|R@ymzYL=T6 z3RLd`(t!3IimI1MfbWzV4dnd7hLj-pkZggZ6@5xPN|Ku$V4bbc6rB1h-YywcfW>6b zPD_v=A*aZI5hp7pm@sy^hzB9T_SM%skx(4%4Q7j=0)vNG{2AChHgu{ zFhlBCW|-)17ly&*{zP32eD-eLR};aw!sHrc@q(iMZM^ow3OXE=?_!>WjB=L^tB5G2 zv>Q;}*F~fo4|AeHh323e1$l4$bWiZcrzJUq#DbyI zhKuNKaMxyT+TE6a(7JA;8N(BV`T*|G<0+%^Flu463NzIq6O3js)e#}bohOOFhhk#t z)o6eaot1XVHP;=N^VLGckTQ#Fbq(Lfl%QeaL#@i}kua|s20Q*{S>E;8oDTBX8lc)9 zP#{b$iC$Z4Md;bW!%H6GPmIx#5_*x(oF^X`>;i2_*m+=bJ+7lGY4sLMqw zx2@owDB$+FAlMkew@u$I)iik2!PPY?i5kN)yMi~)BP{-VOt*s4yJ#BfuRzz5>{PFn z!5h-_(kS!bvSn9wO!F!|9hC?+CA$JE>7SLA;t!2dPTuEBwFjp(qzp^A-M~xbLip<7 z$Kv2Wh57qe7>!CNNvW`^Wxe!Jk{*hsI4uqTu-ii|QoRIWSg6Ocr#i(c(20gW7xuzR zOSQ*#A*g2Frc?zu*BP#i(p41=_W(z$pRaME9L6~EEOb3rqAr!oGRo5^nuOEY)n}Dc zYh9>RWCCEESO-#AGv--=2MU$FD=v%h@TH`DyG(t1J!&Nq$(YajUOD*V?#Ia^7T7rQ zE$t1Xap9hl>358A89BEQYNR#jL~-T%s3@qlCCaM7fX)pYwGAKpmx%E5t%FW>`+}y- zy({K9QJ z;qFo7Z5hKTc9g`T>4I6h9OgxkO`?aZXWCPIytOuzQ=Tt!z2|;hyhrQG9c`D~n_^bb z#%sqF#invDWQ@nWFZmsxS)cur^UkCf2}67tBLSWyU7bdo&jbD)Ag&my)Kp%wJqGc0~VYJTTgl{0<2`Zxz!6ttSV(YVr2U73$#XCR7ZFa?9^p8&}S#uW77aq`U>~VOn zCCRF^JuQmC>*~U=vzxX#wfKTxuNLk#(m+^yDHAgj&H~eD67fNt!=ux?oW+#^Yh{R= z)Q<}p?1WYoGL^6BABA)9jrq!w$~fvZXqb@ddOH|4q6x`VJF4h9@q(-q@Csz^t2hO# zU(SB0fFc-=21u}GMU4?Ju>!Qg6M>AHuatp->p)Hsui^P{dBM)goXl!U^o7g7II8*pIh1@@U}J0a6&fVo1q~GqzfY zLPi2VPGR&Esem}}77#>w2jjlO1cL0&scUNGVoX$?@v4-Bu}Y|d3U82AhfPo$t6nJ# ziQ2``&co_gTP?@v0hbbZr2GO;mj|;V<-dvx^H&@G?t6ex^9Nu5`Q4Zy%|=7L<+jG9>2GE0l27)44jsz`fe=ZCL!DB~fxl-jYCLNt z+oaMdMq2=yRNJvjH`{y93jx&l#8a?x)_|}H&7Pv{J;rLJ4lWXVc3^v#PjPUkK~%O? zQHD+7BM#nzZJR*3XDTbNc6)=OJVf!RGA=nbW+_;1Z$v`&t$ zc$&At5gzG8=6lc%)muqI#1X8SoUTlO0$f&;bZHNVbNmqA&zvr9|a6HggSm&p&6-xA`|OBGb_ikG&HNw_T; z8jA7`kg?5Fh@L)bAj9&hA8Y4D!OhcfxC5e zxM#z@Pldr0K+OL5yVn0e-09^y*SBp6lt|Y}gZ^L;2tfPpyeRhZ}N%3zq*HIhYA|Z^6 zD8mE!M`IaFI!gB>7rqkDE<#&eX@xK<{OM|i>YIznvg1A8A!gJ>cct!ZJl549x=U`l zq5Gy`*6j*jo?dDaTW(@D4`8spNzS8+0S_v-d6r?qnyeRl{aTq^Prl;byuwRp*jKfF z3f)t64%LskFikRHm%J&mAQfjCPrEdw%rfUed*MI%zu0@HDBFUrO*4HmPujL^owRM+ zwr$(CZQHhO+g9gSJ^qWXQPo`+J-Tn|YOmmmvDeV7pu8@q%M&4*VuE&}Q)t{^EZr%S6g9b-**d42ynj zfpHYaVjfv{!opNy*PB3rB355lV4S4vk#(ge+QRELOu=1|ap++0iSvVukftj#DYc`G z`kMk4%dcp;kWaPH{JNZ*u8Q3$*v~xmH1WFs-T=oXNU)7E19 zzT{aUGw5Ym;#ln$7Ah7KM?ethAO)@3g_0;MTLY}?u^X2@fjh$3y}kCmvt_{p9MLQt z09q{5`XW$Q*8JVp!S*#oM0Bnj9#Kgl;6G+ zwW7z1guL~C1lo4$n*lniM_^Mfxh{OpcV{gX*g4mm@l=aGsugz9(3z!_KJ^>>ckGH7 zCPY%#Ten|(2v7JM zrrwqTe|{@H1Xb-0XyYHlII6$j!G~4VXFrT0Gwqd!LdcD<*mj#H#piwTXE&pr$`Izh zY)OrXZEvd`Iet0cti!T-NlHVUrN$+#_)fBNgP}M-Rh7-ef2X}19$hk<>9|3~8+2Z% zF1tQa0)7*Bk^gMm%aaVYJiyYGMPJO^Q89a4B6?j~xgyKnA%iPmPr=`Ne!HkLZL`s7 z>t#6ZQ~m`BfsFwGGFv?ZD>DPz3E!m~GfLgoybWX;tMhs%=Xz)h_gnYp;j$ag`qX;D zn!*|R+Fqae{$)U}y$xSr6IEyTNzVDj{-^h*8y#jfAd|+d--&BimGw#x5bY_Nn!7_q z$xi!;SRg|vQ~TBN^>*FR@`mrKOXF#)MznSL>O#BPTQ?y_bnZ1+@uP_8s;%5gKwL$h zov6k``}|$fMr@5GC zJk8dxc@t|S&YQINS37kJtiAYt8mJX|@^NxhTeMLyI(I7x+CScm8kcIF;YIJ~>sZZA zPlnuGgY|M7i%wy^W# z`S7^o^JDw)^pV5;{rUYcBEz%O`Bj6t9Fn9ZAf<{@C!Rak5k3*i$JR@S z*%NbujT5`}e!IONa_QOl`n(sKT#`Kqq#T0Zh;U`deAom`-j?pjsA&r7{`a%z%}Pob z@DK+-A=rk2&PRHV){{=pl@ksA%WCXc;-UXq$oe)@=CN!34t$bP{30@bLd>&^a3d+n z)iW~2TPi>&y??onWzjGr2W?bHQU*|GS_xeP3Uvw5bkXG)3}etX?s$WNeoUuzo51%2 zl7Ymca{s5#g?1k}nH#zw2MglECdMjkta&XnBJ|_!Q*Yp6F+2{76D2yN4|XF8^|imw zgQ31~X=&D^=qF8tLb3D{_QtMnXOfXE({DS9B=?T^p(>RrC?G+WdNdU1C3-AMy%JTB zmak50{5Zl-P7u13V9_ozFiF>+PU%4hjd-->lf)}PE1s|l3zk$!ht|zFU7ua>-ZU9B zU5@_l~?1VUv%| zvrJjK;%^jsxCw$5c~|O6qe()e6wni@<&$6`@%SiMWvV2nB7W%J(Xnrq9nZJ#lN{#{ zSRULSFAv{>pr}7Ak*;Qq);MO+LkOID5&BcAo;^H2-_K8e*E&3&Zfx;i9S;Yn0O?xz zC=lFons6FvOycS45(|;a7G-HH5yefibh4Yt8_hyeE1<=;m-T2*WVi}31fYk8vNOHy z$?j~WChOt3+GSQ|O;P13qfgyqGKQ3kGKRHC%Ol=66OI_9on{99^;zpsqy%5Wg;)<% zrd9xp!~YVpc&mV;jWVhYSr`G+@3XY$YqEFY5zeX}f5GqL4B8!oZ@OsH=h5 z#z&Qr(hn+G5+IG5Q8^bjOZj)Qm-3fKGEdckIHWd9vu?>p&E_(ra6-s2{IRPG4ezmE-4+}@@d;>`^~`C?2{*30QV;O$^)0VvYnzV^c1#Z z#M=;qlBQDPn}AGVt13~(1i=UQa&)h6Ow#O#`VkAe8dWGDa9c4mm6Nj@wONexXa#a4 zVg{9DLT6dU)me+XHvx$IU4)8)2WP{*dX zC|Je;xB)f?rKmfRUgUG?Q=cT^!yrqiJ4{(A1oA(6kkw?UTKYmg5$w9P6Y5drgWUke zhgQ&ab13Cg8}>y#4PDtGtK>q!O=TRXL*tPWm@V@eFP@4SE!O@A40jE3_uD9HO_?}w zNPOirD=|_~NVPrn@CgAnLwh&$K#vMKEG0CUxGx_pxOJXI+f6XPP+MwK8-c zfLjw26e4AyC{_T?I)D+{oF@P0jg`@TD2pd%EIBv%i{OaC(x5cgZJ>{{54J>*3b7%9%MlHUnB3j0Gwodl%Nba`=hrp*gC`2gn6WDNvX%S;p7-q(|HTvX8K1_NvLI>rAcp zPf-h;*d=1NOaG0dg7afP8kP^0ZK7E$ygjv3ECx-NHHI~ncdQeIWMqx6bL#VCxAGMoC5#%pATdKqk-K2B$ zzOf_thZo<^xFrg4Gyo2u@32wdB1Ih(;Mhi|Y>@ z<0u{~4-n8=rXOz*1DZtuuf#l{AM~#-A1e|z+^TK^SVgi7A_y1@HJoYLI-c#(B8Z>! zDQ74mT55^-E{8U$t=3-X4qpxA?Ni2^fnQMpt+Ex>`da2bt8|f#NISlp|^!o~?SPpUsDYj<@)fSP#n@EZQuy zXcQ|9K3v}!tq47YB)7>z+rY1re@_n>mD$9so332-OhF}Ys9Se&lv)p`-GU4&HRF1W zZD!x&EBTNNrM1oW=1B(fTcSaoSAch!s2jUUy4XftGiH+t$>mWT#I?&HPEEYpvX53z z=18mE%^E2yqf4#TXQ+&COdcLd0I*D8O#-tuB>b~70@URj`Rhj`wPmhy-^PAV4ZPS#E#v)&3cv@9fP0J=uao%wkM*anT7EHbh3k;qrGO9|dh zC*2!MC)GTAZq#Qj@{jS}?*z~^!nxWfy{%)VAWz0sT9jumPkt|QxS8{}LDPCmOgNh2 z^<(6sph z!)%=1R*jdrb(#|-7#E?xZw3^|)v0NS(*k;!ok+{(t6d<|pdSm1WvkF|MsT6ypJbzV-D)g1BajN(=*;CLD<5;!Jz_nvrQ;~xCU#U{yK$-h)$rqS?| zgAFMLO*KRLS%eKlSy*ZTGNB4}r$?h0miel%5z^6AwPr`7R7xBo&GzO;qnooz^a@XH z7tUX8S2B;C{%Jr$sEqV1b#W8Kt|!#%Bn3dm`9K$_lLc?@!}!EOncuHj-!FSoe{k*G z+c4g{dA;tyWD8r)!0xT2<{Z60u)Ar)fWDqRfS}jtvAskOVlJxOb+^< z@Vj==3Ro~YwHEF#8A+NEE>w9D754w9a3RvL5ZtovL?q}|8EgfNq zl6P_p=qDC0n(QVtGkMnV`uB`m0i%R!ESpEB>q0o$xdd*THq(P)?D{IDDGueW`N@^y5xdCtrT+Q=L94vdM3_ zEaLMTq1>68AqF8Gr?bSD1jPh~wgsK_9c0@*?1%TABTQg*X8PySAj3cki?sRJrw14^ zrA7IKB)VJD0B&jMR zi^!llUj(tx1`?~5_N{HYuSuM=mGU_Tp2*lrnD||URRL^hWJjHEhC=qt z0U#2iI?E9_`~&Y`n~Aw2mFeee0ykT%opN3bYKyseMm%aX%=Trv;meFZRuKFi;O;Cz zlMK@=UDfCNt4Osvm(8+~6O@JQ{ndO>KCjSOp< z6>cD)$)|2$p(W&coI%p|_FThZ;pIjnBUD7kO36A*>pk$n0>H(Zn6W${gj3dy6Kc+E zGv<(!b=i;sfT()Y4Xf_W;mv?&Bj`<6 z@jT`r`mJS8^3#x1OjDrfIBJb~g|>6bq0}mz<+K&93u`rRI{HFmq=~0{l=R(}w=+Zc z1T7zehHCkU@IiyR#Dt~!8;{T0@< zm**qLF)at0lTASZu%K{9ylaglf&rV}?;1*#sUuau#P_R6Kgpd@WWJi!;tnE-WUqNf zyh|-YN|92}ro3_`L&y^2$vC=P%?5?7>3m9axVIGh2$JA~iA-}v1F2aBK4=-Au>Ktk z<72Npk!0e`ploOTvCQW9hB262N@#xU%tE=U}uEzOAs z_4?hKVPYzK;GUvJr_3s^9Mb&Hj?C($S~9x}Pk8$!Gn z`%)XN`t9p5?Uo7e0()Wqi+BOZofZ;7O^SjMoXfPqMpGF?D3+nYnUzv-!$ePpL>&&7 za@pHR_1p3}8ZtCJJ9qC{uTjg+1vYXES0SO9$0$mUZDf!KPW=$czn4C2*x&V^>+kyS zG1gCEL14YFVcQD3eU(!QXy@*q--SFL-8FrlU3)drG6xA!nZqJ8uYK2tViZJG)#LVy z7&NK!o}zu!Xrw-q)zpOfk2ec0+xxxm-1pwr+ga3m(q+X83Y3JhlVV>X?6j+YHk}o)Rv_l!>cYxWhqf-ZE2VZUV0MY}g10^TL-vv*OwwAjS669M%dOoE$i+)7JP&UR* z5@Qf(=fXl~K#fc0{7G9zj@y#=>%?0%osbcZ^+qeR1_mFFHg@A9bo5}_SZ3niBX+(w zAL~m!f_yP3jqd~!wY`GF#OdeQsb??Tp(nwXJ15mq*BtNvfM?rAO&BSXs^)ISXqDXt zn(LCBQ4Dsvr!&BFv$fN&^Q~oJyC)qyXJJPdYOQVTBi)u#)VGvDh&zFSm+a|3JZGR z5z@QkDTw(6hHk5Jlpm}9(R+rxtE=VZ6LeyMf=6C1lu0Mn10gUjfS2rPlvO(d)voW8 z2r}vS#x0&O4qHXyQL|x}-{a{rKu|RCQuDv-8g2Ky*{DZoyp%3KT@)mZ?)(v6_8B>e z-7cF_Gb$j(Y3meUAX%A0t)UUM9uv2r5zPf`+1NsSrQxG7)y7VB zkunTPOGWaz-L$rgfGG};;h~k~T;cH8VijCCD4W`$)p9B%VMzpLiK9)KbiL83>W7*& z6xdQWC}FvHIkT2(-d)0KWn2^_9VX>BIJq8yIPtt+_+Bj?M>{PKVTBF$(P6W2l!Uc@ z!L!aRz0X`7AoPO=5siev74CP`fD~DXg*cD+l5cazV=IsU#rTRhU(ay%ZQ%kY;ESdM?6rSatp-$=cGo zh-=R1lktIjQr6KO63d*a^iPta48OTi6fbA|$&aY5egy0Gp0={?|6-NlLi#tePANKN z=n#&)me=AhuC4v#L_lPeV2t`VQXEIS=PW8Eac+bq10j6n#@ZpdK5gAnyc&s?#S)_h zCM(1ruyL2UbJXAO?Om7G+BOFv7$_G&SMzTzUjbqOQ4Ao%&(#;j@004O z!d*j=g5Nc(U}80L5V)~%l6>!7J}^+t#LL;=sa&R8w3{3A4gdoj{4m)Spae&k4Mi8a z_oQ0Gt6CMnT98nVS33m?*mp@S+EQ!gq-vq>_xMa$Yy@|e9x|DcAi_Y+;ni1cetHY3 zZKWSQBq_Iro0Y#*gA`ktwfRggg7phyXaiCD8EPPcu$5xJ_(q+){XUz~f-rGqBO;;KYcwmmNMs&D@O~+2r@A!?7~l6O zM|#>Z0HdV}!NX$^83@wfHg*T_pV8U9X15Y z)qZ;*23uL9hzwabrYityne4Z2;SiUj>yWUkU)6lb`a0ig$03u}DbpFD+PEj6D*RTw zg>wVu5<=lnp%=ACdIpq?Mk)x0HZN;6Gs-F_NFvU{7@}8^Le7x~%5#rb53fP>T2BGU~o~v%T9`|SApdUb= zuOGYri4*QWFxUTb!u_w|EB*^p@&7X-_P=uq{%=I=|3<|AZ$#|>M#TPqhloWp3t+4B z5pKEUFZlj}{m33Y`=3m){~=!g*A)AI!-!@2?-{XG|2-piD8tv;m%U5mvWXgSEr=By zX~ga`mh8^_zae6+wWqG*_63tmgis=e%4=YhFN|NF&L(7FadX-?HZryr76wLgc)nJ> zTHAa+uR1b5e!ia1j;{tzXnVLhz1%*Zj<0)oIMYOY-X3ocN@_N&T6l2UzrLQ9rqKWO zZhgtDsLbMj;X1}Y`I?d zY_0s>XXm@@OFZ^)spLMyZb_9vgT{CI2elC59&{)A9+iD$Ox0$Ha#!SvGjleVO4*YkHkqv0( zotF)0#+?`q|4Em<9EmTXE7ibJXF~)248C2Ql8UOse_1TiNkgmIQqalyXq#0I-s4-8 zhQlQtA|7PU{1a)MIc=7FN;IKm^ZJ|Yb_RsX-OTeQCsoMz)dZWoa0=9NqYyABPTSUs zf@5>Yl|r(i*(o408_>K`z?)|VexD{-X2GM`SDOybvpOBrE{3X1{H0(ff~DF>^^j1n zpwvwRttcknBa`BOt}KuDj(OAa;~rxR3EbV=Rb%lF#p>zxbhOj}4UfVg)}MEHq!95H zya$c3+|<;Fz>;y2!PxrEFZOJ&4)rEB%z-=aJ`|*%a$CcQ9BCtE_Q86CFm)dQRR*Rd z&1gjt4!4QGh#W53&uiA&kAl22iuD~!#@eTXwb@DhYc`mjmcD6RRJ!3nH-PfR>EMzj zdYQI{(Kdka$-QjkwnGaG?d4G}y~vl5bg8MVia1_|9445XP@peruwurgZft|#?v?RR z8y|aDwWOCJv2#;>NY4Qj!!&;Skq>4#;Z4C0xuYR+cc5&qZ~^mzu}$!*QR2sNqLj$a zv1d?(cu6cmnV-5Ra_#^{QFs(MxxxU@&R(`B#VI5F6%BaNa@_gegD4zpVMP3zJ&=0S z-&n)p_C90Lo!uZ?=ysgG{^(6HK?Gmt*(yEkszCC<0w2^&d~_g1xd^EAzC1pzG9V=LG@q!H%8ahFpCwU% zo-t?QfaA$%A(Q>mu9v?^Sf+VGHTx#g*VOD znO24u9n>ZKg>s%B7qD2PqNn4v4>LJ;z3tXx9iBQl7N1q-4sUeguRoRi8@1ss0QjVM z*a1#pNLGjeo@G)bXzaQY9H8J=waw~QGvujw@`E0ClOd>@6gnE#sbw>Ij=PiIBV$$V z8kIXOIz~J~V4myi$TF!w;iIh}HAZ$Net=>=UkMx~P?2hkSjEe{OHn)@Oc{x?hpbE& zc+GA7NHTe#D&yX`XV4C1C`gv#YZL&DRX0x{Vyg>-m+8Y>WD%u1F=snrh)3pG$2Xn! zr&_6@(dPzvY={n&AbW;;W|Id{ixuh`IoBY{kRO zRJrw34P&JgLtY3~S+`i3dO1ltyr-Xhyl~aJB9c+A|Av?+gR>g~t_-8Drz6Hc!#mU< zZ+n*e4PiIwf5g%bNn`e)I4L~B^kHd*4`NdnaJiO=UcJrx&Ys3(7iK8s4I%nO2}oPd zX70oXtqTnBky`G5Vu`Qhw~HnJRloQ}YxS!zWC93LftCMJ2qApO;@o#Ni_Jn!h@eO_ zUXF3V)F#LeShwv%TvYi-wizs0OVkc_E}IT8T6iqmCy| zRr`afz<$k?xP6n}XwFBaH&29$YO5HbAC{f1z}}^nuv8~jj?#%xCK>k%6l@OTPo^we zH}~zuI9=;a3C;M8ED$5AmtwROh5acdQfgV~q^RPDMJ?Hh=XcUjhEv5} z4nPl;CNYR_Xioa$XM+9BM;4_gd)Je!b@^78waWZu&hYcs8XKTgC>L zsgAc!G;Xm#=OH*nSQfk!pOMJH5f6w{@V8}S56CA=lAk#yie8XEe4$xDkq*V|&dd=` zO`Vx7y}v7optR3&R=i&-Gy#?E*cvU@c|aHPB5$46UTU=5JSYJ(QGC$JPUK{_)A%-5 z;BSO}69x(4YR9NtuKSHWER$T4c0P=x6Ok9Fdd zlNslk#3>?Vkc(0t_LHLPG-b+vk?Bl$BrA?wjmMDWBJ6RX(`n0|_)3e9U7EeJ%xe6l zxePa%YFsk;U9ExmEJ=h%iYRO*$_~86YGOu>>nnYXR$PD_j_!kmm!rJgft@F^!u86{ zN-aTKukGU?WQyX7a+8^grJj|ZYF&9oT9(D#{!%Nc;zV`*rCC)C>Ye65S(&mL7Usic z@O8QVzRXpbOHhj-Prq?uh~~*qs?5?tt-145sI}&q;i`N^ULQOP2GB{sL{cx3vO4yw z!Fceia132=S#OhFpr^nSs%qFb*BKoZC;~`leua+d=K~gcac8&_WmLUJ+7Yz1&m6^t z?U@DTYH(_@X(LA3P0-T+;bAKc?3U-&1Ejc3aY_P035r)#tum%$4VyC_7snUVTZ|%* zU{*lO8PNr~tBM+9$P8;k>gEHTI>FKpyM%e5xw-`>+$t16M!p``Ed$DLd#`wQxdi4i zo=sGU5LvIeO8?tMjCtH0-n@*D&O3A6RxA=sj?+qHj4^|E6Q&S~x6M=bYy=F7!@e8e zyBDg-GP5aHsy%>v6rnU+8#|nG7bU)=!ro{v7)97oHqKS>*K?tEssIh*+ae+|vuLX{ zirb$sVof!g7sT8zE=^<6_G>4pVxNO%gnJbXjc23Ie~p=p0I~Ma23izEuA^#FSOZVN zV&+zRk^LUHhTn6x2{Aq=sj#DwFD@!dRABT;SfWF<6*iw9H7`C-V9_<41UhJG zrC8}2TRmFox@+8sMU9?AaB#^WVgSSiTk1#*>$G=8OsOag$p`my$CGyx=JCYVR$WBxnd5vJ5kL%b7F|24i4N{GV6+~V09@m)~qOBS%$I$) zc$lXTH%Q)4AL#Mw8+L+VpFC`eIESQEBr>DbEiqMI_QD;|)udr-^~{VpArB6o?KLc2 z#oiCHBj%B{9_R=RkX^#(gt16=%MFj*$2FXIVEc!mjRCW7)7{)b&L(7P6BY^p?VbHJ zanhR2RB^`~3fm6MCbszv{)2qwL^d-8*?p@HO3-c+Qu_7I$+X9{(FTxyN3**44Nn!H!fO zHfGXbwe-}D&#YhTZnI*)*^8Wm?Zf-RLO^im_3LU^L(kqom4VwE4~E(Sa7VE-@hTUqGYY1r8Rhx}H07W)67pZ?eRt@I3RO!WU(0g$CEi5O}Q`>YdG zwx7J<7U&%-?s!9lTG-hZTp&(3U8flg9A?WkUN>F0+#Z|iCW6$u3h65^9P>4Q_0|x% zwlu?g_`avOw6|pWbK0NJvyz`%7oUGR-*-Qr@8nzaY%wWMISrRTp98-nsIwA#oEFc{ zMLBD;?n%dtvaUr>N~_M#1)q<{g&gj$$DX$youAJ8j|11Si~e+-@6R2cuSA{s_nuFA zg|4gtUfAFqeI2z|eD)zZe-a&+vuy9}KcHoxMRj6`&#?w`}` zbEMpICMd35?F+t{5+2k@n2Si$78SRR=XbR1H^&n;9#7ITXBfuLxD#HCv<&h&yCu45 z&r$17Wg6J%)wrq7&KqUU>%m4cB)7LrrrcMEb*@F7pi@fLI?1m;C{`XD`JIqo>{!bx z8fDtOs<<>Cj^>viu84209ScuVkR*L$!aXYYr%8vn-WN2dPudzEsZyFb*ALzsj{qhb zJ{~s`vS)v@A00h5)!r#C6Xu@})NsD6aBjxijX#d=aZ{WMOV%oPOS#V|FKn2h8sdgK z&fK|Lo9)$p#0c3MnT@hO((SgRhb^N2k}57&sZ34W8$^9iKv$)Obo`7R&3-zMPzZV3 zcQ{FL9b75*XafqjVuLNB+mz%4Zlsx59n%2A8=H8FFv*Zv&QhLzfNuSN6oEk@&&vjHOLO@_9I{A6b2MX|E0YIWTF`}3ve&B$ofhvMd)#^z zFZz&Ky##qzM+zj2_3O)N3!MJ)KIooWK!yNkKT+w;39h4%Zjo=GBe=M5%EVBY^1cQep`Rj;c)k&dZLTUE9t(UGdzQ;gs{Padi+GAbga6F)I zn^=#_eH-F^#asns$_n~Q=M(okq&~lU$=a5}ZMe@P33$z0i2GpqV!UL?bKRzgJqJ1Y z=^F?aJ96OB^mYt(cx+Oq>CVZCDN(- zPpz_R7QZ1oqo)!Z)ve_wnLi1pg5%-FYN|>@M zlgy9O0P;g}S~m?We_6YM)I+o8AS|>uNSNCv5AN3vr$Kda7xszPU5|*#$)H?Hjn>3k z&)%RPvt$fn2)g7POPa3R&=Nt6k-yUveSu`{HU3+l4m4(IMY|%2YLfQ%CmPGee09f7(QUi*bK5c1m`#A3=UE zj{j3n??0{7$w_1GPi-Dvf9t3!{}ve;{N8Im-G1NY-QONaBuex=C#9vvVAFUL(r&-T z`W0_!PU5@V3nAIh**_4<@D|S5hsibE|L@I6|m`qCgUc>L%gPC z(MR>VjWUWU?WSDaL#2rplKbSNsY9LJ(m@t8ZEvD%$?QGDTED}LAB@2>Rz0HjL5j6b z(*UMZe2eHtO41``=5OM}n*qX7`pk6ZPZDvt>q3stPoAKYu8BAVLK3ZN{lL|gIH`DiKm)bY?!||m|1KZ?$c9Bf2Bv`$VHOr?N7(X-@}<_ zo0g8CeILC?Z!H%MoIB3%;tJ2*&~1Jf#(@_0t6WgEPp?!I*TBpibZ*h3jmnqr6Sv+c}$kiuXgYKDb=K!f;DJMT}$zp{Ftmt5|GSgVHikJu%br2&oI^IQwSY0 zdbKxy8+>L-Z_yNhX&2urj1D_;$!?kBbYw5jXVmnc#iiivZ=)Fq%aXkKLk*4253><= z#obPz38|p6(47df`cnQ;sm7jT@g-#9`V(LShtbCaG@HPNgzn( zR4|)s1Ox@alcwsk0MH)Z7`%?bP5H>dpvMAbv8dxJPug7d(IqgEL^7Ty2gCs%&0X$*Ht601Vlj%N3>Lib@$SB;2{?l%bGM zpe~0AiUn=(2#@E%&!qsIQ+VF=R+5qxOTeH4wQN!wCL*oA}8HTz2p)yAe(H;}Zoj>%YNw3XZ1cMKkPVMfY=3y-FdIw$BZz>onS*xzZ8~Bu5$eByaUBZ*;%Z_Fx^(0oQHS9q$%{4cbmJ5gpb2gB#c4gk<{8?IRIy1o;(CRY59NoXT94Lu^^? z_5G`Y;fMuI=ZaiBeWoDhKgu8QYpbPsUZM(M#`7E%&pF+bL~W#lviGJtln#)Z3j0I{ zoACSYmZqsm!LOP8l@f!&v~$yPm&RCUAwp;RIDDe5#5%4`H?$(GkUgPNu%b=#G7-0d z3LxP_lP}Io&+Fgm#cN4OnJFD#WU3kS_H{}RR@LU#pTePY+<0e@13*hJSr}_f@??)H zPs+Y>&m#=NM?Wv=sIG8SPBP9Ktl%c!h~^IZa1) zJ3fJnMIqFbp?p2uKc~IXC%gM%Hfk-(pemvYlV6&t+;jv7v!(oCs7;esk@-BBA~XA@ zXL016gOLhakY|8WS>Yf#5j!W=x$l~wH>8MtqslBy1AL%_@#tuGcpSNO%H~B8aNUmO zZ)6^|UTjjn#u;Ei0ej&wfv;K|g8uIvDMR$ExKGn&YvC=@s#DV+=i1Cnb4)wmohn2Z zdjiLq62ma$<>d%J97?-%kojZDBPHVWeA*sh)zD*H*F_5q6JS{*1(DpPz?>Z(Q)#&g zCR!Fou?SX*9vVLkJszxwCG)62KRl!l=fs|4iUh8Rv878dSnlXo%*?<=EbvyH$6F<%L?@Naw7?TCg zGR(9lWI#;fWE8KlU~X)@%bhqnM)go}Vmg{liRDMCL)vvlq6xi;vL_@WQy)sF22BK#Efc|!QL1x@e;zFDm73wO-bMJsBV{m@ z(@CE`t|@qjMH zmm6zSs1fNYyv9w5*q*k3(q(zMe|nKavg< zZ)+j_M0cxG2`w0?Jpv5dj%4SO6d@+Hs%;Hd3*_HrUud^eL=<8b`N0!KTwlS%rdQd( z)2CP6RoyOd768dnj_|$v_P=Nj`|i7k$js0$qsW$dWx)?uU>OzP>M{67%Q+|0vZR1h z1SX(t_y@ZKL@7sXN4f;Gh7Ua?vlOh~YpYxGPaIL#Xa>rts_rRwo8v6?W|>GgJLOE2 z`Z9I|^MsW?ZNN}GJKU#;=v1YQUz+^?d=ID~J_C@p>;$PnLJ~;Hvye++GH)qSOD^e= z3^I%+bE(slU@{G?Si>DqVboGCD;B)1D!+~;(`kTdcvrN*;ppgV_?P_Zqo33-Iq$BxlV^Hb0E$L9&y&@lt7qU}a|g)sfgJPpSx`m<_JT zETr~EU&D2;o2o#WRkB`Ao*)ICz1pe+3n>RRsphm;qR7?*fllPF6=!ubc%uxpXjToj z*(d0+O423Rq?5x}FcMwx@uZs%)>}vZV-S?t2`~}1NTwn%k-NTEvXJL2i#ryYtz8r& zTR^U1M~)ysWycYq2;EgQrpsy?0!c^0fyawGU)_OO3`O$PhbbD5Zj2^h!D$>~tw?O* zQLNyM&VpI zu5zubx2R{SEx2Rx{g(EAIq9-)9Ee1v^*=%!N~0wDv>r;-#*Yqv+JV`J#%`dVID?}jYQhpWPFRaKH&>itY7CNFJg%8* zH8zJvUF}#F^C)V_vih zC^G@E=mJBFKWM?d#&wbq;mT1nQrr@@)S@{Eg;huvTI*-&jS?_qP0M(q0o^2fs#E)P zP-2TP8ici8TO8=&j%sWLD7`bFjOn5q6ue2`gPGeb>IqWq#m0Kzn1}>O`-EAIIqJe1+g8i2m@DKyDzzD+bEH|5~R6r?0M3e81ti0!Ai>ErQ2-TZL z`vuXUIUKMIzx|8`>eWUQkxZVbd)*$y)sWi6NJyq?G5w!KYrhzVfn8#w(oyTJO<&08 z!eCyPCa>tsEbL_s4AYoIO1=d$#-OGsoJJI~7sIve7CQlzM88*lXNm z72IQYjT|Idg9$)?kpTe_D^iV})}HDChz-|=yhXfrh!&-$^+|Ho=6EdfZJ3&a0KxoD1kRWg^>KM6QxjaeKuNs<=_jQRe z{HYu1C`hI#Iao*wwslM-QH(w^BmgLu6R7xm_oru;M&I|at9cyrq)H{! zEC&ZwXd(cEgE+RDg-8J5>pIm=PE6~g03>>hQUFrqBPS~f!1@UtsYHaG7#%|5G8mNL zc;!L{xO|F1q9;F?2ue78=R}ejU+@9igUNH|TP4x z9V0OTbO@z12_TkFBulwi_IHmyA&dcv3%;wE~@fTLTxhLNUs_)zvM%<;tv}S|Mu)t__)L8ez zX_{t64U&wBnhtmbssD$#SYjD_%xTM8E-8O^{S#gJ!=-WnDtKo|Xqqi-9;<{(G( zsQtap7)U~(2H8K!`=wL6PV^~A$4PzyJqm$7RvLh4s@xvbGrU6{+B0lw2>XEN3GJDF zXN7qnpRor7C=;^-0fsYfOPW9TTx4kRqi&*DQp?57dO%S_fsE8Zi>$NMo5*^Rv<8C- z=@eToe8mF-UC>&=^!Q5&mhhCZhYt00VUJu+93qtd2>~XZOjt|x4o}i>rAa6Z@f&UO zOSO4D(ATT=@X%lv3r$8^2F8>q7gSbfr#^wd=#3{8bTmMXR!kquom%a~r><6k<|uu= zdmDpDpAw&iSWv-z&J?zPCYaE1;VB!`yyHfadG#8CU&?rzgN#Hkw!Fj7U$iznE6%j!gJn?Y1fm}c3%d6i0h5sA8arLM2ln)Iendp-rT~&;#u|f?U?$-suP^>TdgMyv zf<{*jX{hH`;W6VVd}VO;*^=q-0njj(RLE#MDfi7#pmi7vKhanSue-&W8GBIc)~J)e zh_2I^Gt>9Q5KL6`eq7YzJTI0wQ>BkVX)&NwNT+vIS$4|%)z*@G=c!GQH6fbv@XC~xlS|T^)kQXP79#x@rYOXc-DAmu9!4Q9PNK}F zKof3$`;TK*7cm%_i1Zs5o7}*y-=t{DU9P{aK%~Ql8rfepk~{wfThy<0TY*-;gu^CM z`zP*HHqf-O;ILfKku*G-jF%LVkEeS<&-eW}L{lY0YBWes>Q5_B@?|oD`}Y0`=4W9b z=Z{x5s;C>n@Y=r31r_vQ+q*1d#9;Qu{ z!j=H5IAo3XYKK(L#pHKb;2~ZCY;gG!Y^B;vQw}#2O^im?*s%C2#c!oR)vK8^MuGP@ zT_P1+W^B%qr-SHyX0Wm&i}4!gO$3rQ;lxxn6_Zo}jtT zp`fx9Su*`d4A-5WL;y7gdVanK$b8VApH}E@D2QEp&BF9;Fk%w7FNCM*03(u&)0?>>k%$e$nQsI5b4)4rWY$iH zc=2%(-Esb{eO3iMDM0&)P3!_zuhlGca1cAkvJ*%)jxZf@f7KoQ;2tdr?I9_H zgh4$v+NZ;f+29os+9paFTykMjWvp6ITBXr@1_>^cE#Gb&NF17~+ z`~U>t+hpiDAReJ1e?yP`1Vd`Lt&xQUGg&_ zM)AMigMpQ)aJ?Q@B5>fX-ay-nzzYoCCKCFLJ_K@Xe7 zTs%tGuJB->Fa{j#DU0EHK__(vYEkuk4u`(N9zlO^9^cpSzO!Ayk(pQdw+>dvAX3f= z_OkFgvqoVzBX>RLe-Dvd_GIrN0LWlT!3LzLZat=}O0s0gMG!+1MPSbn+d>q#Voo({ zY%7`%z8^14IsnlcDpz)cm?p@Ow#afl%`F_d&9UNNblr)0uIn#D(!$TeaOe#)^k8#QX9;k~t` z)Qh=|XqX=7wkU9mI@oO1OCptQeobl8ladM=%meS1Pi6bY!4$W=8% zIUwRetA4Iauj)U|FW2Adsd_VA>|A^Lg#cYs4Ymx9%Su!}<0cfna*xx2Qb0s+PS{_B zYc%d8b=x{RgoWTc5b+y<9f1Ec5*fCb5TQ6`pTyKeA#1=b6MxGP{!s&6Y|@OrQ?LG; z^|c8jMegBBXdpP;#!g^qPb;P~lRHHf8rT3bxR1a!XeD3|$pvksm6T9dr4prA*?bHE z*NQVR0G7t*b-!BtHa>Pmj8;9hYn7vm`o-S$d5YqCNs5sU5M)$0GOM4>%K!)(9}n!s z#2&=Q0@*h;Nq>+4hsCjRk+k*Kg&+eQ-&4^I2bURI@Z}<`WT*GTlvrMT97qqwar{T9 zF|LFn5YmBW)vMjaAjuOzG6JxfX`*!$hYcwWc_z?q6+ZY?w-c6wECG&arX$Bfff`%M zsR9v&Y$;*)wbluQjoThtJczNKG(D_xs{<7iAm}Aa6=+=%o(p=vEXtjk7?ShxJ+90$ zf`|-=`80w&52R^FExk_}GY&-v8Qv`?2Azt}fXGHY!sJ`53;$LRt|Hk%))Tnz0}Ssr zOdX;COi{lA(A2;%Erk|uKlDo!v4&8-xU~d0zIPu&6Ey6eE@55E{IF>z7d3 z6P(6N_zVj;6C`SRm)FDXgh0O)v7-d}o^}~?vM}|DZj3X1AWLM@+4@@BnYw<4>ox&A z!^MM4LzkIF2iR+IXGcbEaOE{jwP71X4ereg5I9_dXF*fRj;$(+Kxz2mDOlE%6{va< z+#~Q2%jU2(u=ivc(MTnF`Ip+*QPzf6d9D*sHL#b46EO+bl;^%0F+?EhK76Y%?)*cT zAjSdWXrel|CB|rwCJ>Q0DZf|73uecqT?(LA2MhDS$K>~BA}7(ot)IMK1brM_EWHWGNR1#*#~%?TAsUxZwg8$mRhhgkyDgGd zr&8)x(2N^TD~LS7;L~^<#fu+Z}mV zuAH}#&5`puHqhdO>KX`-`XT0P-_3%il`)W7xc^%(;NuAa4U`wD!_S3tjBs(LWSTDI zBfy9wFaQjEE>bFqXq>b~0nBJD3f3Q1zp~N5LqQLCN*eWp@8F<-_jY_&jDxipcOL;W zs7wa9qbDg!;i%Bfl~UrQmEDY<{t)&z2mRDD{iAYMpQVf*UFiv-5eXe2gscU$pViSA z$cWc23yMk`(!_?{?%#TWXrbJR(g{z*JR*ccEA4wRG9luIy$UBnkm-tqR^Q|y{*2o5 zs^i?bN;j-<9qmbHD|tecsf9XN(U0yv97O|GC%g>QPdd7(NxMH07eF|dw~uI}(}g-+ z>x7va90GQtur;Z-)m)q1-`x%@1xZ)27P$@^dXoR6X(l`m2oy$ zP))WNCb3Yz9a;67wSE53JV?u?hz4p8&|-ZubB_C^dxw?!ce#C-X1f;@rSOt?W5qcK z+H1BGZ){&ZGAY*PHO)aLAS~{Ym**tGQ;(suDW!Xf2Oz0wnE?@3Y^XSWhHK%VihB5( zI0K@tY#^VbmhE2gKlB7K);OK_6$l3Su@KKUoP>FH_|^+o4e*vK6YQ`9gSBUGd?GsX z_IrD=v`Df;8}^~sPHp0xB)C>_VBU0aNINecp+!Z8ICDXTQ5YaJo0`+-^Rx_v{qyqB z1?^{I!kAr4)QNB8&&QTO3!?$hO{BM*w63jlJ`kr*v@|u8q$+t(wM1o0)6_;hn3q$L zvq@ZMMunt_HYIIPRMFaLT+P|-dH=f->b#%BGt5yuJSGDX2q5Ya%6xCAiuqnM7ZPFr zZ!z(Ya41J_p5C1=YW1Em=ocM}BHpqK4a;A@`Oi8JSIm%*BhM(DAasgTk~EzM>>@N& zjimL=RM0QGZKAT%V`4VN$#i&viG`lEGTNFA2E(_1_$Wa?Z;(T_7M?4)@<1h<$RX|B zy4s3BzvD1PVD?Bxgd(u&+_I_6wg=pJ+8z+Ru@ z7r(OKe+x#5i<<7!D(8D71`Oj_nS^~T>&3wjHLWEquboeQ@@UQ!fbhZKI$Re+1*Q%X zefc;Pc+P*ed7phYaeOl{zC?l^ur{DqrCek;!g-G@k zJ%*NN8S>OT9cf*cP&1Ka=ahl~UE(pCz}V+SN_h*d2sO4_?9`XW$-Z7_3=tuojLL<3 zE#_!&H62olvrbU>A)VNIY~D33f0*>0`ipIu$4%4qr%Arv@E!aF7=8N@2mTpvinMQg z0e=_U3H^3OZ*8aD(F;EYbL&&pgChvCqQWdXw>`8R|>pQx%;ckxMs+4 zJ;rqdb2beAYgmJLqH5NasT^Wd_^6t+!nw3BN`K6t$YMSQ(!5cgU9!BwykI;c83u3_ z8+X)DPdx=u*J^AY_`*t$85OPJ(mp_L^4-#~8t9MHppf3l4~{qrxc7SV@c`(gULSoY zP(k@PlM1Sn@DE}Y53Y=1Da9omXqz{}A1|$=?&A7``m5=m%ss7$8d35{)1|l-@T=$Y zUIZn4~!29_~;C-{p5emweU%`9}pIgY6>}gDg^jDJ?LRArHP*z z6w(qvdR)KS$o|~6_y7gzvnMEXoB0z`ACUv-EKy)66v!K*gzPu|`68O!O>s^IW21;c zS{AanWZYC!pydHNvVnsnHL#Y6xl~Zy?rI*M-z@Sb|GoZ?(5uNYX;<=4y zVU`){dhoBG-3sY;EvNS{5sV?cbVM@r7c+J`B?T!ulek1Od_=_F#=%wDU#N&>Hg0fS z%%FMK5opwwV&aOtQD+-Xl+MUSkw=N`9JIVq)63Z(>cDo6&efxGs5^@rVA!yWbD*#6 zgK!W4v2ck8Znh2*hant2nNL4JGFXAv`-p&oIn!qk+C|WslNmJiW0gA!x@q;z0xu4F z!O=5MZ!k2~UqP4yaDIM{M@Iso$+#Dv8fJX{J|-s^#rj$KL+c`>p!N$*Bzi#t;TbO3 z0AJ#yy$<}l(cyYk-g*?eyWReggH8}y&WOmJn!dnP@^%_HieVD| zJ8&hT3Kdr0-n%}hgO+rF!c|U5Fp3!lokyU%Z~;|1(t-Hr7E`vF$R)xUsLa!U-RqoA2}F!f^BxReb?7wI z{F5fj=3PF0;JK!N0$92CvTsumnJCo+2jSonpo^*~GPLkJZ*3Cyg#^K46UfZR#P@{6 zO)T`q{;GnHLJf)#;HM*SP`%@0FoYse*bivHv={|G9V@0(%A$#?ONM_Q2NFH z79V?@!sb6fwtkndSaogxS(Ul=bn1=Hgp=CFFl zbr);@l!WFL_WE|i>ZJjH{WiK)WB|O{d@alcxpnEGenbgkF(h8HO{|JWF)hCoMmEaR zd_I2K0&KKzk z22S?bJ*f#GH{S+B@&E#(bOey^yOxAQAwexPY*9hfe#R1BSG1}h0g}Bo+1cv7F9|j` z%c)u~MYAVfqoBXZ2M>`mMzgYP!gm>a!6B5LkFZV2w-_d{P$j#Bn!@DvI;5EZ??H}p zYBuZEx7c_Pi^J7a=8#;b2$a~f6^sudNbAUTlVhJAT+P=~op3o@^9i5iT7H72Uk7Zc zwisftTg63rKC8*`AC^h6tuN%(o&pEm9S;|M4;!~@gq1ET{a;4@XI;s;{$T1deiqaO=ctdeE#h<} zvz8oS?(}YZLEf^Tpyk!r_AG5gOY9k&txg%Khw1!iWTUUYu(lK;d8tV1VwuP1*Zwa` zz)r@KRjth4;mW(Ndf7ZIaFoWIAw#&6*;kt0lp8y#)PK>0vm&s(BAH;0y(a*!GEldP26D?xmP^9lhQL=aG;irp6@2XTj<;SOGHEegh!OD z3+tU@@BX1X<|{&x^S1BVCm(=Hn;tlkO|;v*-=?w}MyEZKT!vl#>nL<4(&b zlIPdaOIRfE^nuaU+Lv?hIkD>4j`MDYgky}mrR)2R)D7CZ9P}r%e_FXOAvaF#=YGl2 zj?}GR_u9MU#nMOa?plqGvIvOEY7m8bXZ+uA-OLv-^diyrV$H=$UUakr1|Cf@3a%C> z{ebg-7T`DTy;kh!X_+i$-U?)xvJIRYpR1S1H(t#*_Pb4o zd+m-JevjSVZ@aHY1V;Y1gEen{?(SZ14^Cchm$wzoD%&)>M>{!&-Pk3=uSS{LzW51( ztQn&0cOynd-Ra63i}7M_E+W3y823hE{x5&|_)7S?MSP#{7ivTo8Q!k{&D9un3;I6H zL67XItL|ZGFE?vOD`_IW_iH6o4NO^{BBOJbLEI9GPIwENdy|DG0V zj9v~@lwnVsBzs$Aj-^$`aw5&qSZSL5X=qltq&cS@|KA+6TO_+UUy|nV=Mjtc3T32V z1@K{wW)8Ym^|RvT^G18lucxEVC+m7K!p=9EHIj?vo_z^mB*X`Vg2j4%x%n^$;T1n+}uLI{PFzpF8b1mj4!r ztbY_!ZqoT1R!zS8>56a2+|}6^Gt?|wSSmT`b@M#q+wX__{PW^O%TM zR62;KlUDetspN!iU8rgmt$BOje#27wqjD(V@_mDyrTNJ(&Y2|=Qt&!?z)J^;5^ixk z%I1DvmlHYBs&*nz%_{%6aU^)>3sSr4;tj9w*F@GTm5Qv$VngpMTB$x-n)Oo6mYGd= zUdTRg7GLuphMhBE{PaHq*Bo+o1@olUk*{~~g@*r9!$}*AvR%`ZI=7pcx1U`%I(?Z6kXZ3HCQ7PpEBwymDuYdS@9C0buE6s?w{*l3h7A+ zGG*wt7%nD7=UB&rzj3i3?nZ_%>Rd&d6tq)G*0pu9ah_Z;=R^*sxvFs9UnczbO`6$z^#7Q0_R6l1g+q6?@v7`~TEFB#%K6H&3oct*Rz zO>?=P%}vN$n&9GGbu2tZq)-ekaJ=?3{CU{z4f#V%=7s$);820XVBJ{#Yd!_$s+dOZ zHi~K_BygIAEh?{Xd)ZV@PHsoSD_pp)xO=vVQ?A(IQ9lB&bl>^&*XpF&hDeC2xa_#b zfQ_3k-kDJo9a3Srv(xXnZ@&Yym8C#UE;Pzn+SwbgR~4{ClQo~0(^G$+N5tvgRA!>m zAyjEuMXw}Js03B^`IhW7YsE|F%+(k{gB{o?joj*U+mQ#e!l z0gfpOrVo;Zzm?kOC;AF$Gf6FotDDnKo&6J*$SA*#H6``2 z?bnIg7@Q_%#dS?dQbcyf6bj3ms0t&#OZ0KyV+SfrHk@#_qz_+p!W1i> zfM-}OK8G#)@;rX(bA5@5;@ye3a^}GWQOYJNE+bdT^3w1RA`znt+lcx}vCqayV)!vU zG_-vPp^msr!&FD<3wLV0qB%5q5CgZo1#u3YC!7_}m0n!O6V1*8f&ngjQ6FE(UH%xE z&pBJ8PV4UW%RU~d+4TfneNcz0ZlV5T4Ms>P24SCQaUPPQhPs%XFI< zv;E!XWs4}?x%wM;5JwHAI2)XFc*T6omMDBO%rW}bFBW&>!PQo^ef96l|KOgupjGOy zRkGywJe1Z?`R@J;Lr!}?D>FFl)r*VaBa|Sc5}Xa{|E2-Sez)Xzbhtop#uDd6Q`67$ zp#6mbkVBP4q{ii=*`AnJDr}I4r34*tYwJB!u!$-q6fK{_gE_KTVC2uxP&e+7x(EqP zsqqW7#y&OAHVNul_U++vEOG z%aOV<<@Z1Q9>MQvL2S$bO8vP|yA3YjTx`O^TQTemsCLza1^8xZ4N_%6|I*3OP0-H> zRi72bg(nSvN3Vb>4qG9 zT~dIMy0tB&E0{UF^rRP_HS@vK4m{1;@hkg*76pfMFFm9}5vj8m)n#O?FIF3D(;xVA z2#br@MVb=Hrx%r5wqYtrDOHFYMbqHYUIWNiUa)pU7BOVkJM`FGHcq^F*<8j#vv}k# zl%}|W^7o`YL%G=DgY%WWjqFFai_`W>b7IlzCVgntlZL_adz1LGclLzIy}ojRO#t>G zzvHtcpUK)f+mtOm`Nb(}p7&ELtHI=6P)UswGx1b70`4iCck)*W2$ZOHvvR8Mn9P3~ zVz&K8Op2~9NFK(!9KR4J&XR9P1nF8O+{m|DNL1UUaF5+$XWT@P2!F!~7qxbY7gycw zOT(~nQf<=ml2*=MI_zN{C!FG2jLcA9>rnDO6 zj-I7A`N6)h>4U;pR6`5imd2SOj}y@HUa4v^Glf*d#SpV| z-19MyPnf&k^Gh(Yi#W~!LN3k08YbP4OmrqeE)xoFm-ZymePN9+dhyjwohOuvQ< zOXQ5%S2d4ae~NJKOX6oAO5%-hL|!w6%H;6#6j3mka2N;4Wbjuqk51H4io&yfcL|SO zAm9MjiWht)`B6VcLTr*|K`k5m;NjZL{HZ{i zt|%$aqA2}ffAl=!XCa0ycK89p2DWRM)&mz#@i^PjNg(Tph z_k=8)f8cxQrDRi)Lw+wk_Ri}Nz?)L6zTh>v8uem59XbvWt=lKTT~5=77f#tNlm z)6hg_u#))`R0-6@$*+{72z71gq?0=oMr?L>0Za$BR>Ta(ZU;707-DzCb@;DK>h*^N z=i7ZSWXz2F=^Y*X*W$w$6@Io*pK~MA<;P+d#jbm|eYJc`m5)Wp{_;q61gBldTdGGT zzbeu&%a7HTsBaaS>b}Jz3A>I@$>;_gzMmZJTXxUy^SXrwN5yguD`cmXjqOVCFHC{w z?fngKo&U9ExbEzC;e2Hu^{lG=!)`*?O(iX4SHje9$(LXhmwl%)Yc!>7#j07n)m`rO!US^yx@eM}q3#O-tG>02T1uC1@@iyNoO4Xsh9Oh=!r$ zm>tHsmrrMaqT0WG@8E?bJSvOsU+GCAu zy1>*1a?gW4*VgYdnO+Z&+`L}g4Ec!)a1yy^r#L@~xaZl8Ie^)##J;ogBqB~o6-gIw!Xi&n_qu@3X;B@{A!ecHgIAvwS=WH54QZD}ie6~V`2RC6 zeIINP!nS>&{BJVae|hK)?+CQ4Wb1i*#a-Na-ELYM0uE2JqW{CM1fdmx5sPU-aTZ!` zgn3a4+9AmS{HToUk-<0y^>R7$eh9xGptZiU4YZ)p(FXS@3=~SRnx`Ek4~)n}yHrDq z8F4#C3Bd&L`qUoRhsu9cv~T5z9Fu9q%wSsw1o^GKUp-u)J@yAXoiBv+wE7t!Y7f>_ zL^s>JJh#Coq4=$(Sl4bY*#AngdvcYf2sBC=BPTqqqGt;)hcqS}FU%#=j!7d<)wFLn z?!rs8vwg^|(9sx>&TOu7r%Fva%tRhgf5GV?TV&(+iF*yFh?}11kt|&g-^42OrUD`w zjSglQI6Qh}V5vt7QkoQdf1DnySkrq5{Dz#5S?;kqCiEfA*YsN%m5^6q1cg@y)0L#7 zhgCcil~I#v0bMz=YQID;l~f!WG5I*W&d3P!&q?T|nt8#!oO+ZGnZvursXA^(bj+v% zvPP^*{>VP(>s~W!zM4PCq-HyaLhJ%{n3@k-{Gv7&*Hn#rA`saww84QG$U01Q&>>qa z?U_PV^Nih$Q-NOQ1r^=Lqfk2_@!DM6NNDcwxbLnw`J6ml_!{ri58zQA&I~?3IfsL9 z90rgn9cxIUv&q`I?nW;EME4C3iVZECJd~a_YZzA`934q_Aq~nlIuYr`S=+w966Y7K zoSxA3?lH8+l!Pbd@$g#WD*lk16jmEyiz8HX|DmyX$UA&!u|neVVKhZhN=nVDWZJ&= z#jcM);D1h5*Am^<2qjLb@);6KJtGofLZ_aF+zU(V(sV8?{vO?rXW`% z{vEBp9r%|D4uZi5`l(BpTUR;_^A0d4~tW)-r`AE(lFxs zf1CuURCW)WY6bungwF<2fPXuaCIQ{Zt^Rz)>>e41P7gF7V8-EpN^iG+gOh$ID%I%2 zru?HU!jAW7;1IE>-OY^)l4f{^*6xanpn&`Ey;{C(mn37LkNa=VDK^UppL>mw*{IBq zSDmtddoLXeyQSJYO}`0vZVZz)r~*RI2}wIET5<=O71-r2Av6li&&ZGOPK1}j5!F7c z)GR-@&wmbQvn)vGde1a<;xPD70dw7b#dxd6CPgMsVnE)|%%_IEb?~(VHUZLd*J2hcV8UAf_mU^IDObJUK=h{hW7uRv`Z-Q&2WHMx!J_ zwK!)_LcsMOqxr~Zdr+xot}0WJRCQ;kz&iCc3d)rNxy?uE zxbzL+X*Mob<{ELmE;(OA=Gurhc;3zp8bdaO7PU^t_Y5--r0?<)_j0t9#w~x+OkcJ` z9yEp`TEK&?HG@rR|C`l^w7AQzh^oY-3fJlHdO&rK!3OlPeH?XAGj@(Th21Cf6UF@S ztV|nZCgEeUPdxlgD}8MA9{b~=7<6v1UlpKdWUQFsHx}q<;>Zon4flP=m%cds&j`4h zu?Tjm4$lgh??OPLHdlz=4P(_ zg{*DyAUQHC8q@v+Goae+Hd2>lL*7X5_pq~ezGRGPnW(^7fO-1$gOg$q2@a!q{O*G` zvT{tUoPi6;zan$fNw#LY6WEF%1Jl%IIzL#Oy5rM&c8rSU=uJ-S27{`1EZjTP*P|{? zs>&VFzI$>AdF}SYK#<`2KM;%{P}rUEv77CSe9tr-NqgliBx<+Y|1P;6CW%ouAI+sh zk^flQ-QY{3V~RZML}?!9vp51Dq**)*8#7?66uQd;YzPv_OD#PE%E~Ms@RrFRN_z%k zW|Q}L48y0w(gJrV@6l=RK^MSfyTs= zM$u7oiK($=<>b0rihh@KcN_rz4-%3Y&}DYI2!E$`b{U`|U)?E?XSe&=Dw$7Zxnrj( zG)B{;{L_#q+@~xC<2VYuAK$6od+v0tmcRN8vV$ zTcq~nyV;1!A_qNMoO-cv$#XEN^E64EmvZ_d&(?QgSH*dWHvS8C`NH&OszM@Hi9SWw zOO{*)waBnF>4f!=EIsA|shCK2cS)~XRqV6(JdS4}Ce<;(F!H1iVH?`m)IEH{{GDbL z(~+?mvmbsJ&3(9fX~NnprDrPz<(nWnnHLZoX<<)sP`5;*7xPG`ep;%i8~@0y5?qS> zXi;#S0FiI$JMm9w8ur&M#*`%tsc*h4^hN)&IV__Xz1+ubFw2d-_6t}$PE$9PF`Ibjg-Z;tAc0Nn{F&d7(~kY)AG$1c z;WLL4;4Pw~3TbQ(E|RHACyfX7qxbS0o266{+9zf`#2u<#wgSvnt{)ZjBq`8=q|(I} zv?e4MU#H}eWSP~>m@PH3I&~}The}=8%Z7w|F^8#ZK9i}JYL_*jg>OqaOZ07c_h`V<4dA|lB6NZ zqVZbYk@~LmoF)MeUR8Sac1Lj&j^l__Og%A!x0ePzT1Wd?|2xx&6@62O;U?nsXAfjn z%7%OV9ePeRQ^*2GWlBJsbCwcJ+Op*t$}6;E3I zu3wU)YY)i0InZml_3xPQP3uK`wy$_I=Bko}iiye2eVsPOT#3^d_0T<_a*nsPiXr6n zBZrvu9o5{SHWv3nEJ6{W?he!v=!p=^Rj239dM>tW|4xe_+{2fWXP@8-vctP2Hj1{W z;iG$9wlk5THjJhYEDiK1&&{tRRkt&CZ{kc}HdAr(2vb@PXPe9Ug>H&k#;3k^oosH% zdJiF1>(8eu*Gx_uyOyjuH4Yo4JDFZF##FTU7MVD|7;Zbcq|B6`Y}ACM1-o;P%<1j# zUCp)Y&!5kb0N#EojcA%EoPWPCq!q>=o7eLbv&jE!SUP~S8H?ddRW*2>d;LQfyT9ytrTqIMdZ zd>+LbW9<^&mPI=!1g4l}9AmsKN{_BzKB)KCKku8hD*g4W_0)W`gKF0_s6CrnBQJET zd2hN+_Ii#nC=+N6p#Q|yDNN0>=kAp4ZO_|tn zRafaNijodp&QDcmk$NuS64LXA?w{V<({bAK)<#TRf0N5cSNgP7*6OuOcJ=;N26^h#2heczpJhJ|?I^daCM<*Ch%a5SHSPD@hOm>rwK1k7Nub&k zAarPZidLN`XUaY$CXVnva8zR*-}rdZu@O(dvgRmEA`5sTdE+PWNE|F3Ei&QdT5fM{ zSw(6gD&Y*B3O90RU4+80;k3A5L))L>&$O7WxNQrZoMy9FEL^?o1n=nq0iSnU%EU8e zlljVVbSMR&D`W)=kd&ttcYM+u6% z9z+&rCSp=+O{59zHvHphDkE%l`&V2N-Py`)Q>-h|eu_|2q%m;-nekES#PFslMak*J0}fWWp?m!PG3V!?rf?lEMLmKc<;*9@VT~DnzdJ<{LC88FDiVp5m#K5VDRc zGLBw*RL8dJb}5-t=M@C1GBnyAhx}VDN;TD`ALwm~g!IHGKQ?+3uph@=1w|j3M%O>+ zm{OkbwVT&Se@HG^YuPx}iT+?#-RPcwF;rGwykYf5z622!|6iQ^od3U^{M@`e0-~a5 zDBr%jn1k)nP&_hE^*=k(G~;!l{_#I7z->`jC6KbpZKqxOXky7pO@jnQrrW9GLh>e& z71-SfwY_v^j2CHg4B$wfRqCQ5-?-`wadm%w+=IG1ZgifUou9|Bvpa6QT)#B8*PLgI z!9w}huKoSJ{O|vs-jn~i$_%)wN*B$l0>+<(zE`yc;yiJyZ$k$}gI8JIyj9IOG1yv&7-Grd{W8E(-`AP(X zazuNa!5ZLCIw*BUa!-st426DIk@XERp(0HN%Lk7_BM}j+JUS%9l+)NWg^5-B(^VG-+u{E!20Y zHkN@-kfmfXc?qJIM9X@GhYE`fLw3hczMGno0rEBd0eubzt|crvaL$!;quleL5VKmC z(WmJo>a|=Faw%={%uqtU)FBxw8ndYydYQaH@HE{W^Bz`0Ip(xW7 zLEH@fe+7^f3@n+Uy%f0G_5d`hF$WAgih5OH(mPI3oW-Olqvw-E^Gb$9HimEsy4@|3 znDttsh|PC`G6^mWto;uU^sxsi#lN#utRd4&SB|2qP0jLQI>?iQXAYyXnj;cp9&D)S zl;2%4l0HSWSi(=P+?l>F8A9f-;`bbB^@ytfxoZ?&zg_BMysv8ie;HKst1-Ki&+@EoO{684` z%Am@c9!#8zySp>EyE}so?hNkk?(XgmgUjIV?t|;ab#QlB-uK)6wsxzwYJZ*XKDTbA z)5()`PIm&nRhy`kbsmWXwXZ1++>jqq=fG%y`KB&3Upi6>l86lNDL(A4-UE1sKfudM zxjpmXMEXf+caj_=VrkH>W6i{Gs|yeT+J|p4VLlDCmHL-3g-D&886;54ISy&g3Vypi z3)%KACGw=Az>AcPQPa8(5PRS!t?=7GKM663S|fQ}=N*yeS!=MZMyV9XVk7HAp@gkD z@V|cl+n~Xqp=JjYxWWbo2P=O*hO?0^c5`CuJ2=IRxM+dvdu)SS^dZgKhc$j9`WKr1 zYg1bmfp7EL$fm}ia$rPt2aTp8Pg{o~P3X73%W(?>GS&vZ5(|b(Uegcq#svyaUjN~p zguuS1Jl($*0?6&FS$ znBlPz?C(DIF>YWpjAAgBEbU>oa(jTNZSZdlN?9G;=$GsmaSM1kSY&pv;{6AQB``5w zFk@0SW?CWpGe|Iql6y9+;AbW@blsxhz~mVf#0&QhX%H#1rZW?keaJNOZz)XMSFqEQ zf@WD$BOJNe0|Od#06W$y0aA`IclgvF?7I=TJNJ->2u6e~LV2oC%839|`r8GRXkw3AgN(}e9PX#Yz}IW&-x@yY2XXzXHcn3X@3GV znae3>eNt)HjS?oT{=8G4E9#4LXhAZJ{GmA%TPlulBN!b~7@7?f^CWHY@YnyX02{!D zlDfL5WV&TyU<|wU?86dhh3=-8)N4~BP{^K!k@3m2q(G_j08e<;t9KnLV<1A$MRl{h zcb>cTRxb0sQOcs;-eoM%c*~!K9!vN;%3*?s$fj9uupkI9a0rXDumy234A=}?x=Mj( zCC;cwg3)Y&rEqY4f4a`!!M$}6VZhbLS=#}Fz0ePVuI-nSpxdsJ$qZ`3fs?3sLKQTc ze7o1b^62c^Sa$3HDeKSMqfZYhbzHNRr@u5S8(aP&Vaeayzc?&xzYO2b`jb+&tYV@m z&U!0YQgw|KUdnA;61OYS*@`=7Qd-d!He!PrdDl>}v1ihy$^hf&c?Fle@do@mJw8^J zR+r@DZIDyw`joeX6mbN5#dgLkf|0-Y&%LQdf_+68yN*avT`%TSe%W6O+?*Pb%{$J? zZ^@={9wmIOuvG&Pl+lsHUlLOd^qJ?I{$& zh5J?+zm495xj0-kxYYQ|$>ckgszSi12g5$8&YCH9>%_Mp>L1+n1iu)A3o?r5prF_8 z8S*-GE1kBO#M^Rqu#LQD*WoLHY&lNzVnX5Kal)NM{?jALGu+3%8xJM7 z^n25(y}^UP
n>En<&YgQ*_>Tjh}&&v|V{73rb_VNua(`;($MlD75mK){w6+6)unG9%s?6quymI3$Q zO1|k_j*<-ESpi2qpeeIrIsJhfrK-Eh<35%J^;$ZJc6&vphQ-4Cp;wA1^{0u(Mw^`EYP0Zhld9Nlkd1XEO2og^ndp zbvwkYqcC6T?JGk{s&pw}HSrqK%aWoo&`3YB8fAHu+1RKQA6#4NBRo|&FTB{h(SO<0 z3|Ziy3huJ z`&RIvbstt9$=>MU-8k!8u;qAY(4iD#y=N~x-+nq{_?=s0EX4|@e0|;eRXnRrEt>x< zudy95U(f5yVFOHw_>q28hJ&wlFLtuE1ei#GRmd2T8o7r7c%9vnKX6E3zB^7+oN(8n zWR4Vf=wgFgfs8Wiji^O+g0d(F z3)Mh*hGinRBDNH48kZv*#^&hE&g!KfK2ZqbV4*h@ZAfw4!_}drYg5KKTfvL0y?l5; zInLrtm8I*3h`5#vNNSz|6L9zw$0vL!lFB^4HT0H50JWRCc4 zP7{!7;^P}@NUFCeXPygEsR>_tAw@!W@v$O%vPQNt6IAA|+LmywL5r&Vz8KGn5?_gw zXZXD#GESD-CJmRwyk*gwM79U4JRi@qea_^g<@0b|FoPisHQVm+$LU-$nB*aAA9E9i zmnaZOR0_}KLQy(+U7JF5c~gN=qDXE7`g?nEVTyO(b{t(77TKVb1yQS#<>*gCWEMjq z6oiAL-B0Iy2g+Ow()Hc^b#Hy73>X`@z#SnxkI79ZEzCHwzq`X;R%^3!-j7Y3W0YsCX^NkW~)d|&7#egvM(q!W}UCYY>VYRo0bHXrn_+6_Sw83%s3BP`P_s9cJW8lo%`K)0-L>eBKufyLP zIruZ^TMG^$zG4JqUw|}8;JPKKllmh46tQ-Gs@6zdHql@ z!}?fb!vRVw@nC~6q_>8DW(*AI&O`hq9Ws~Z_HEG$e}R5LSG9FRfHKL+XSf*&L%$wI z#)5FLBZ4x36+J=?vlbi+1tJ`y7k4#KK-v+9O_@!qZ;MquLVmxaO4O z{(Zb@o!L^XIq4HrWdS+$*T^$!$gLkk*Qr47`;_Ocy>q>LyRouE3jOkPxu|GIbsCjh z$}$5*>7nY&vF~R`x}Nk1q*A;c@Fy;iq6m7ALQLOa)J!e#Ce<&+qBvHe9Vm#$XMJNu zC-HUK0}8P${!W>1uYH$R~ z{*po7c|K|IBv@BcEobn`?S(9(xPR4{gN*DTNpfsA)mrGlThwbASLbx>IDbJ5&!hbT zRHCr;*F(qru1F-l=)$XhOl};$z+F4m_ro+B{f(O;{+uWp407P>OA%@whS?f z4_1_kBK;l+0lmvC6(gArLH$8QDZUxg&ITsmzRd;|G7U(MoPR>_N0p#IMN3fncmvG} zWsHISVUa60)gmEY1u+Ky8`ZWO@>?KkybV_nKsP+ zw9O|_WtTKm9*lXbZ#gx+3P4Sxhe+&w`J?Gf9rBrxhl?s4TK@bEOLx|AiQAi2eM34c zcShNhWBLv412V1dxDKYOE?A|dTioSkjtahp@{mf~Z4kq)7Y*$yhk$a@4d=V@=DA+8 zX!aft_8_<{g9(7kPnGbjOPoF(My&&5s0u+qd>t{x&`);#tHSzb9UW|%?b%o9ez-Z7 zPd4?efz`fz8#kiI4n`oG{{iebC?aewnHFj ziK)Csqf9>!?_MsV8#i!RU1k49JptP=t$tRrr-}6z|0MjyK z!2w!|*8h+A6YKw1{E3T$>HjKiGNr2>2jocf<=prE z9iE;RWzuj*JqnaNTV3%;_v;~#LjQ(&S~$<)ib4*wz&sUE+EU+@Q@HSbeY!=m>wb0j ze7PF~j>LU6PtG4p?eaQ(KjV7%J>F;hI(=^LvxxkB9}o9tF1PqS?q9bAUj%)gAEqAd z{5rb$`MrGoJRe@Ji>Mf1lk`A^5mGQ-<2vlzQz%4eSY_P*nNME z#3q7z--IkkZe7$6IJ^Cexkd$^hwJN@dbaZgHzCIH7@e(%QF%tK^T6pcOF}C@K zSHkqz0*``}iDl`0QmqeMSLf&7=kj%zQ4Ke#OKbTW(Zg%&;WBr6bW!%G%IdN;7*)I< z>_*eK^_35eta}a98hao2f|qu7Rj=!JyROcHRW3c7z@O__ft&^rF zzZ+)67H|_jWZ>HGXzcxDllSt2V{5v56ghH=DSHIw8zHR2LN)(Z^)LcM!yH23T}F<; zJT7Gs_tc(aGl!cF;L7!8=e0XaB);JD@Zw>(C5+Zpu-&$`i+KQc$_pGpwNcZuc3o$v z1s9O{MH-ma<*azU_`C5F&4;P|==augFBzaID&xheW$An_+~K7^ z?owNj%^Dw*VdJWY;l=|Yunt|zicLW@CEq-PzEgLI#k`rU?`%P47D&9=X; z!HgH*Hhz|5bzvC+wS$cfj0+1&8VA_bPZ1U{e4+cIUMM(XAySX~XybPwxsW$Dv!2EN zg2!{+ebxl{NrH~-_%L>4=Fl{J_$LLJRUDqB^k(aIZKa%Tq!=D@yoo8WnRVak^l8xOS zf!!FmH19UaSyg#w9=fiZ7P*1GTBnxN+pOY5_pa@u`MSS_1NA~NJNT>toH@hy)>!KI)=}9t_*%;NT6MczB690B(riGMj#MXhb!D(2t`VwL zky{&tdP#gKJR*JkALAmXjRpMMh4jQ^+k5o^Qz3-=Up}+~aN0Tt;gj3#`(mB!#ir-Y>icLu!ho5KZ8SYXW3oM(!14ajch zA`R!qi>R!%DJmL_rkpm6mHS59DEos@B>Q|AG&YB6uh?UejKhcC!;Oc^n zINV@!KBQq)h<}_5BY3Q7!uGLVaiMxz(TvmChUK{NW8{W`@4af8>mq@<>mi@l^=y>g zyvmjyFrPbZAoJYAmOAwWt}ym)CDJ{$8#B}~l zA#rNQF)J0IdMI%W&_}8v8m98|yuBEiUtD+N-0Ex}mW8R|xIfb<%bS@9=5vYrew5p? zyyfF{|JSNKr(~iUsmt$#XHGtXGe3va(*ePR873b8$Lhdx$fPY=KsgRQJIHM@@fPZn| z=s*2l5zrxj#bDFks-Q#8z@74vR24-flF$^_kFDVm5beNl0NAE^Uhd!G1+Q(Db!Q? z4@+8&=S(IdK@7++Q`iB20*fpKD&OBG?qk|Kz4-Nf+`ag9e3I8JT35QgSlxCA%}XI9 z{>ZZwWT2pFU7eE(RKC%fqRgGyxQqKr%q8i2HgK*vZ5?Ala%Ys2QbD_mnnEE(vGYSl zOv?X~3YZ8^%sxe+5KSS4bVvJ+D)%+4^fi1n5L;?l@J*8@y&`#xkLj$n!ZPEJYe9#3 zGiju9rOg14NSN!JG^g~tTBxdv+{F=go0|&{Vq+7k`OIIq~e6Ni76QE z-XBQG`;8DCm;I)<;I*AHR~hp(Zg5AQ0Lg%x3bAXU~^YoUDML3!j2m31~v4A1(CmU})*D{bLYt~$=w?1)V9xt0@Vf2ov6ZbSa@rVGqL2RRb6#X&m_!GUEBz? z2a~=DW+m_o@9QCnCl+hYFkX#w7rKIkW?7+Y9A_=1y%bgN8istD9@nKTY|_!W+Z+JK2Z@sOE*79|IGP_9hW24)kY zYHokYxH4ZGUroaL+Ke12eS$VAc$R6Jaw?97pdw#GAwImSt52_~!TevsTj7)tg4y$1 zrYfz;fx-w_uc{-3 z_Srmf{Z%|M_XpF3;>UhslHZ&~ly#ipS7$kk_Gbu6d|q~$To186Ep>KhZG}GA5!gIr zC`B~ns9{(l+jgm|8lCaw?i;v%P?9>vIM=eU>P^AqN3 z7FF#=o_jqV@vmbA0cr_`8ESq0vXy8}Gqi{Ya&d`j36(W)V_k5b=c#`f=4sNAEnILR zv`p?A%`rS)rowLcpG@bf6w6|!hXt17`jGcjKI! zT3c*AyQkjMvaokw_r$sxzsDrtOx>4sSGxNAIPbirUV#gSBIPS!wsd@1j|%>h_-j?DQcB$&x$9PPDT;?4#+*MSu%D}#H^Zh+b>CEa#<%lwF*~Io6WUw9{as8FsbYIX+CP9y4T^Rxw2>rgh z2}5f_#e}&(1&?T-s(SBCw0PFLbi}_l(xESJ4(^c^Y*S3U4WzL8997N>yjv$gKUf;< zmc`BAC%l1GrbM(42%&FC4#~Mq&7K+QhVHTVLvdc?F~c_N@t;0~C+4krUpQ;%!6hR#F|hZyK3{bjhi)3DwW2z^ zK>LkpaUb4uio{GPa_Di(T*%=Qy2nlMbk^q2Kn+i`5$Ev>){z>I&*3MtS%Pk!w^`18ol-RZL{jz2gaq?_)VPP)!-Nb5IWcl-x`Q6Q=j`st} zA=8F;U%pUz21grL_XSQ}uct*HM%&kmBrm?$96wD5!^)oK}N^=Wj#q6HxG*;!jzi8me-lT%7G3QO931 zwXtByfAHWS8d^3y>4UYYRHⅆaXoIucxb7-S6}L#WW=1GwpKg{Vb_3?$VF!mZ*Bl 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ℜ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%0A;}KJtaDT~+aghp5qlIrK_}y@?C1iM091%Hh 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

Z;as0qIveI z63B~V*p_{ml%!t>Zl7U`=i+2x9u3JCpQ2Vts7SJzjt$9oBF%`JZQpw89PHTA3sCl* zM=qE3llkTga=pimOL7ePmk1=uHSSrun4+kI(ee-y7vTZzO?2xa zZx&~*+XAIX^TCbcW=wE`;#$}QO36xUo^b}U8{K#q$E&?yaOwC;5qow1xT3nTqVi?F z)}m~3&U4m5Ec}>M!FdNMHY(4(UU3XrTi^QgX{fgoICRQMfGZHR&E!If$djXL%*gVr z%iC0S)^{-4#LnO9GrVXUpIKk0m0ztwT1!)x2cjP|q3!`+#}ZZ6r)*f`+&`1b1j!NF zL|p``0t5BC*;b|#v^w+>QDqn(nOwIc69pJZbIhZ%pREYUCXEO7fe0SE2O~Qm*uZXbmLS9TegK)T^Um-}Ai6W?K(%7zA<<<^B&V6@ z)k1O2Oykc0jM;MNmj~=R5A1j*asilUm2j=u7FE0H#-4!m=T7+AKlKZ>mLA(Pae6C6c|19LQ7tb_5y&|z?scaF9T#1%4 zBH@dZ+Fu~)(7|i`GfA8}C0;9Ie&#P-v0%_|vNs)&zVOFjPoSy&2fbz!!)83;=ILWQ z`uCPgV`oDGh_S2T=PX#Py-<>7LUsgbIy6ReWxNash)poS9AaOrhqLMz1$`~$4!U6> z27u<77VIM$)LBv>wpug=ooXy_dP*P=1L0gGW!eade!GGsPzlN0j~hnFRESnIaLKlW z7)?%pnTcrPe4`eu@(L`o<55_-tX(IPPzR#%`0f$oEN5x(=^8W#04;p@3ADM^H zV@_)xm?h3xXy}gBsP8C3_)4s}ZY+d}67GmdgLwAV6QmDc? zokC4KN)sOtbI!+f=SP1qGKs4Mx1Jn)m!2FwN?PvOrX;NwyuKMs5z6gz+X~D&kHQJHA@e4; zE8<(q6-fIij=QlGs$K)UQswmsWeC=rMj#8hxv|CqPmc!)jF+`eRk~5(4^Vj%rFb{{ zl$dj@g+sZc5p4B2b9!M`ss|m_Q+xyfBBAa?qo{+=rpxT0GOm!(^iljA_!LYHqTC3f zei3u?;FUm83qiF@0iC6s);}xV3)v24i8jK6JQw|@SH{7ht01`Pk4ajWM4PQ(Z0%!Z z9HD+ved_sxAZ@i5H*&5x-)iYpxxLkb0;^?0J+Pi*utZS$lO3Y$!p&nYuV;=HK>O*&hSRx82eqy98teY05fFlyBOg=)6_8FMH>hR@*7eLvMCJ>n zTSU1yQAKEr(r)`(rE}61QuoBJ)eI-hfKw&y*v?(Y3lKZeKs|90>!)iHLX-J1MTlGg|Fc>epPSBqx;~uOxofC57`N_+RN)?Tvy+dLirFrhER5A z_=IuKM1(yVjd#u5+KTNv3)O+1|B;S8_>r!{r_*F1!IvOE^Z{qmO(cU~e<=BBvgz&r=<(M2cb{vO)mK5L$&AHKh

7I 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