From e77fc55aeb19f6f2228b89e7cf1c7ceaaa2bf9da Mon Sep 17 00:00:00 2001 From: Yohan Simard Date: Fri, 11 Sep 2020 08:39:02 +0200 Subject: [PATCH] initial files --- Inc/stm32_assert.h | 57 + Inc/stm32f103xb.h | 10238 ++++++++++++++++ Inc/stm32f1xx.h | 220 + Inc/system_stm32f1xx.h | 98 + LLDrivers/inc/stm32f1xx_ll_rcc.h | 2312 ++++ LLDrivers/inc/stm32f1xx_ll_system.h | 574 + LLDrivers/inc/stm32f1xx_ll_utils.h | 266 + LLDrivers/src/stm32f1xx_ll_rcc.c | 474 + LLDrivers/src/stm32f1xx_ll_utils.c | 606 + .../NUCLEO-F103RB_STM32F103RB_1.0.0.dbgconf | 97 + .../Simulateur_STM32F103RB_1.0.0.dbgconf | 97 + MDK-ARM/EventRecorderStub.scvd | 9 + MDK-ARM/NUCLEO-F103RB/ExtDll.iex | 2 + .../NUCLEO-F103RB/NUCLEO-F103RB.build_log.htm | 63 + MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.map | 383 + MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.sct | 15 + MDK-ARM/NUCLEO-F103RB/chrono.crf | Bin 0 -> 372251 bytes MDK-ARM/NUCLEO-F103RB/main.crf | Bin 0 -> 392687 bytes MDK-ARM/NUCLEO-F103RB/mytimer.crf | Bin 0 -> 370931 bytes MDK-ARM/NUCLEO-F103RB/stm32f1xx_it.d | 4 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_adc.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_crc.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dac.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dma.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_exti.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_gpio.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_i2c.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_pwr.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rcc.crf | Bin 0 -> 388694 bytes MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rtc.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_spi.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_tim.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_usart.d | 2 + MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_utils.crf | Bin 0 -> 395014 bytes MDK-ARM/NUCLEO-F103RB/system_stm32f1xx.crf | Bin 0 -> 372804 bytes MDK-ARM/Project.uvguix.trocache | 3385 +++++ MDK-ARM/Project.uvoptx | 540 + MDK-ARM/Project.uvprojx | 925 ++ MDK-ARM/RTE/_NUCLEO-F103RB/RTE_Components.h | 20 + MDK-ARM/RTE/_Simulateur/RTE_Components.h | 20 + MDK-ARM/startup_stm32f103xb.s | 307 + MyDrivers/MyTimer.c | 13 + MyDrivers/MyTimer.h | 70 + Release_Notes.html | 713 ++ Services/Chrono.c | 134 + Services/Chrono.h | 69 + Src/main.c | 146 + Src/system_stm32f1xx.c | 419 + readme.txt | 146 + 49 files changed, 22446 insertions(+) create mode 100644 Inc/stm32_assert.h create mode 100644 Inc/stm32f103xb.h create mode 100644 Inc/stm32f1xx.h create mode 100644 Inc/system_stm32f1xx.h create mode 100644 LLDrivers/inc/stm32f1xx_ll_rcc.h create mode 100644 LLDrivers/inc/stm32f1xx_ll_system.h create mode 100644 LLDrivers/inc/stm32f1xx_ll_utils.h create mode 100644 LLDrivers/src/stm32f1xx_ll_rcc.c create mode 100644 LLDrivers/src/stm32f1xx_ll_utils.c create mode 100644 MDK-ARM/DebugConfig/NUCLEO-F103RB_STM32F103RB_1.0.0.dbgconf create mode 100644 MDK-ARM/DebugConfig/Simulateur_STM32F103RB_1.0.0.dbgconf create mode 100644 MDK-ARM/EventRecorderStub.scvd create mode 100644 MDK-ARM/NUCLEO-F103RB/ExtDll.iex create mode 100644 MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.build_log.htm create mode 100644 MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.map create mode 100644 MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.sct create mode 100644 MDK-ARM/NUCLEO-F103RB/chrono.crf create mode 100644 MDK-ARM/NUCLEO-F103RB/main.crf create mode 100644 MDK-ARM/NUCLEO-F103RB/mytimer.crf create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_it.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_adc.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_crc.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dac.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dma.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_exti.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_gpio.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_i2c.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_pwr.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rcc.crf create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rtc.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_spi.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_tim.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_usart.d create mode 100644 MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_utils.crf create mode 100644 MDK-ARM/NUCLEO-F103RB/system_stm32f1xx.crf create mode 100644 MDK-ARM/Project.uvguix.trocache create mode 100644 MDK-ARM/Project.uvoptx create mode 100644 MDK-ARM/Project.uvprojx create mode 100644 MDK-ARM/RTE/_NUCLEO-F103RB/RTE_Components.h create mode 100644 MDK-ARM/RTE/_Simulateur/RTE_Components.h create mode 100644 MDK-ARM/startup_stm32f103xb.s create mode 100644 MyDrivers/MyTimer.c create mode 100644 MyDrivers/MyTimer.h create mode 100644 Release_Notes.html create mode 100644 Services/Chrono.c create mode 100644 Services/Chrono.h create mode 100644 Src/main.c create mode 100644 Src/system_stm32f1xx.c create mode 100644 readme.txt diff --git a/Inc/stm32_assert.h b/Inc/stm32_assert.h new file mode 100644 index 0000000..e003e69 --- /dev/null +++ b/Inc/stm32_assert.h @@ -0,0 +1,57 @@ +/** + ****************************************************************************** + * @file stm32_assert.h + * @author MCD Application Team + * @brief STM32 assert template file. + * This file should be copied to the application folder and renamed + * to stm32_assert.h. + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32_ASSERT_H +#define __STM32_ASSERT_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Includes ------------------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32_ASSERT_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Inc/stm32f103xb.h b/Inc/stm32f103xb.h new file mode 100644 index 0000000..cf34a2f --- /dev/null +++ b/Inc/stm32f103xb.h @@ -0,0 +1,10238 @@ +/** + ****************************************************************************** + * @file stm32f103xb.h + * @author MCD Application Team + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File. + * This file contains all the peripheral register's definitions, bits + * definitions and memory mapping for STM32F1xx devices. + * + * This file contains: + * - Data structures and the address mapping for all peripherals + * - Peripheral's registers declarations and bits definition + * - Macros to access peripheral’s registers hardware + * + ****************************************************************************** + * @attention + * + *

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

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

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f10x_system + * @{ + */ + +/** + * @brief Define to prevent recursive inclusion + */ +#ifndef __SYSTEM_STM32F10X_H +#define __SYSTEM_STM32F10X_H + +#ifdef __cplusplus + extern "C" { +#endif + +/** @addtogroup STM32F10x_System_Includes + * @{ + */ + +/** + * @} + */ + + +/** @addtogroup STM32F10x_System_Exported_types + * @{ + */ + +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ +extern const uint8_t AHBPrescTable[16U]; /*!< AHB prescalers table values */ +extern const uint8_t APBPrescTable[8U]; /*!< APB prescalers table values */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Exported_Constants + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Exported_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Exported_Functions + * @{ + */ + +extern void SystemInit(void); +extern void SystemCoreClockUpdate(void); +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /*__SYSTEM_STM32F10X_H */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/LLDrivers/inc/stm32f1xx_ll_rcc.h b/LLDrivers/inc/stm32f1xx_ll_rcc.h new file mode 100644 index 0000000..419e491 --- /dev/null +++ b/LLDrivers/inc/stm32f1xx_ll_rcc.h @@ -0,0 +1,2312 @@ +/** + ****************************************************************************** + * @file stm32f1xx_ll_rcc.h + * @author MCD Application Team + * @brief Header file of RCC LL module. + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_LL_RCC_H +#define __STM32F1xx_LL_RCC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx.h" + +/** @addtogroup STM32F1xx_LL_Driver + * @{ + */ + +#if defined(RCC) + +/** @defgroup RCC_LL RCC + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_Private_Macros RCC Private Macros + * @{ + */ +/** + * @} + */ +#endif /*USE_FULL_LL_DRIVER*/ +/* Exported types ------------------------------------------------------------*/ +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_Exported_Types RCC Exported Types + * @{ + */ + +/** @defgroup LL_ES_CLOCK_FREQ Clocks Frequency Structure + * @{ + */ + +/** + * @brief RCC Clocks Frequency Structure + */ +typedef struct +{ + uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency */ + uint32_t HCLK_Frequency; /*!< HCLK clock frequency */ + uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency */ + uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency */ +} LL_RCC_ClocksTypeDef; + +/** + * @} + */ + +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Constants RCC Exported Constants + * @{ + */ + +/** @defgroup RCC_LL_EC_OSC_VALUES Oscillator Values adaptation + * @brief Defines used to adapt values of different oscillators + * @note These values could be modified in the user environment according to + * HW set-up. + * @{ + */ +#if !defined (HSE_VALUE) +#define HSE_VALUE 8000000U /*!< Value of the HSE oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) +#define HSI_VALUE 8000000U /*!< Value of the HSI oscillator in Hz */ +#endif /* HSI_VALUE */ + +#if !defined (LSE_VALUE) +#define LSE_VALUE 32768U /*!< Value of the LSE oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSI_VALUE) +#define LSI_VALUE 40000U /*!< Value of the LSI oscillator in Hz */ +#endif /* LSI_VALUE */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_CLEAR_FLAG Clear Flags Defines + * @brief Flags defines which can be used with LL_RCC_WriteReg function + * @{ + */ +#define LL_RCC_CIR_LSIRDYC RCC_CIR_LSIRDYC /*!< LSI Ready Interrupt Clear */ +#define LL_RCC_CIR_LSERDYC RCC_CIR_LSERDYC /*!< LSE Ready Interrupt Clear */ +#define LL_RCC_CIR_HSIRDYC RCC_CIR_HSIRDYC /*!< HSI Ready Interrupt Clear */ +#define LL_RCC_CIR_HSERDYC RCC_CIR_HSERDYC /*!< HSE Ready Interrupt Clear */ +#define LL_RCC_CIR_PLLRDYC RCC_CIR_PLLRDYC /*!< PLL Ready Interrupt Clear */ +#define LL_RCC_CIR_PLL3RDYC RCC_CIR_PLL3RDYC /*!< PLL3(PLLI2S) Ready Interrupt Clear */ +#define LL_RCC_CIR_PLL2RDYC RCC_CIR_PLL2RDYC /*!< PLL2 Ready Interrupt Clear */ +#define LL_RCC_CIR_CSSC RCC_CIR_CSSC /*!< Clock Security System Interrupt Clear */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_GET_FLAG Get Flags Defines + * @brief Flags defines which can be used with LL_RCC_ReadReg function + * @{ + */ +#define LL_RCC_CIR_LSIRDYF RCC_CIR_LSIRDYF /*!< LSI Ready Interrupt flag */ +#define LL_RCC_CIR_LSERDYF RCC_CIR_LSERDYF /*!< LSE Ready Interrupt flag */ +#define LL_RCC_CIR_HSIRDYF RCC_CIR_HSIRDYF /*!< HSI Ready Interrupt flag */ +#define LL_RCC_CIR_HSERDYF RCC_CIR_HSERDYF /*!< HSE Ready Interrupt flag */ +#define LL_RCC_CIR_PLLRDYF RCC_CIR_PLLRDYF /*!< PLL Ready Interrupt flag */ +#define LL_RCC_CIR_PLL3RDYF RCC_CIR_PLL3RDYF /*!< PLL3(PLLI2S) Ready Interrupt flag */ +#define LL_RCC_CIR_PLL2RDYF RCC_CIR_PLL2RDYF /*!< PLL2 Ready Interrupt flag */ +#define LL_RCC_CIR_CSSF RCC_CIR_CSSF /*!< Clock Security System Interrupt flag */ +#define LL_RCC_CSR_PINRSTF RCC_CSR_PINRSTF /*!< PIN reset flag */ +#define LL_RCC_CSR_PORRSTF RCC_CSR_PORRSTF /*!< POR/PDR reset flag */ +#define LL_RCC_CSR_SFTRSTF RCC_CSR_SFTRSTF /*!< Software Reset flag */ +#define LL_RCC_CSR_IWDGRSTF RCC_CSR_IWDGRSTF /*!< Independent Watchdog reset flag */ +#define LL_RCC_CSR_WWDGRSTF RCC_CSR_WWDGRSTF /*!< Window watchdog reset flag */ +#define LL_RCC_CSR_LPWRRSTF RCC_CSR_LPWRRSTF /*!< Low-Power reset flag */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_IT IT Defines + * @brief IT defines which can be used with LL_RCC_ReadReg and LL_RCC_WriteReg functions + * @{ + */ +#define LL_RCC_CIR_LSIRDYIE RCC_CIR_LSIRDYIE /*!< LSI Ready Interrupt Enable */ +#define LL_RCC_CIR_LSERDYIE RCC_CIR_LSERDYIE /*!< LSE Ready Interrupt Enable */ +#define LL_RCC_CIR_HSIRDYIE RCC_CIR_HSIRDYIE /*!< HSI Ready Interrupt Enable */ +#define LL_RCC_CIR_HSERDYIE RCC_CIR_HSERDYIE /*!< HSE Ready Interrupt Enable */ +#define LL_RCC_CIR_PLLRDYIE RCC_CIR_PLLRDYIE /*!< PLL Ready Interrupt Enable */ +#define LL_RCC_CIR_PLL3RDYIE RCC_CIR_PLL3RDYIE /*!< PLL3(PLLI2S) Ready Interrupt Enable */ +#define LL_RCC_CIR_PLL2RDYIE RCC_CIR_PLL2RDYIE /*!< PLL2 Ready Interrupt Enable */ +/** + * @} + */ + +#if defined(RCC_CFGR2_PREDIV2) +/** @defgroup RCC_LL_EC_HSE_PREDIV2_DIV HSE PREDIV2 Division factor + * @{ + */ +#define LL_RCC_HSE_PREDIV2_DIV_1 RCC_CFGR2_PREDIV2_DIV1 /*!< PREDIV2 input clock not divided */ +#define LL_RCC_HSE_PREDIV2_DIV_2 RCC_CFGR2_PREDIV2_DIV2 /*!< PREDIV2 input clock divided by 2 */ +#define LL_RCC_HSE_PREDIV2_DIV_3 RCC_CFGR2_PREDIV2_DIV3 /*!< PREDIV2 input clock divided by 3 */ +#define LL_RCC_HSE_PREDIV2_DIV_4 RCC_CFGR2_PREDIV2_DIV4 /*!< PREDIV2 input clock divided by 4 */ +#define LL_RCC_HSE_PREDIV2_DIV_5 RCC_CFGR2_PREDIV2_DIV5 /*!< PREDIV2 input clock divided by 5 */ +#define LL_RCC_HSE_PREDIV2_DIV_6 RCC_CFGR2_PREDIV2_DIV6 /*!< PREDIV2 input clock divided by 6 */ +#define LL_RCC_HSE_PREDIV2_DIV_7 RCC_CFGR2_PREDIV2_DIV7 /*!< PREDIV2 input clock divided by 7 */ +#define LL_RCC_HSE_PREDIV2_DIV_8 RCC_CFGR2_PREDIV2_DIV8 /*!< PREDIV2 input clock divided by 8 */ +#define LL_RCC_HSE_PREDIV2_DIV_9 RCC_CFGR2_PREDIV2_DIV9 /*!< PREDIV2 input clock divided by 9 */ +#define LL_RCC_HSE_PREDIV2_DIV_10 RCC_CFGR2_PREDIV2_DIV10 /*!< PREDIV2 input clock divided by 10 */ +#define LL_RCC_HSE_PREDIV2_DIV_11 RCC_CFGR2_PREDIV2_DIV11 /*!< PREDIV2 input clock divided by 11 */ +#define LL_RCC_HSE_PREDIV2_DIV_12 RCC_CFGR2_PREDIV2_DIV12 /*!< PREDIV2 input clock divided by 12 */ +#define LL_RCC_HSE_PREDIV2_DIV_13 RCC_CFGR2_PREDIV2_DIV13 /*!< PREDIV2 input clock divided by 13 */ +#define LL_RCC_HSE_PREDIV2_DIV_14 RCC_CFGR2_PREDIV2_DIV14 /*!< PREDIV2 input clock divided by 14 */ +#define LL_RCC_HSE_PREDIV2_DIV_15 RCC_CFGR2_PREDIV2_DIV15 /*!< PREDIV2 input clock divided by 15 */ +#define LL_RCC_HSE_PREDIV2_DIV_16 RCC_CFGR2_PREDIV2_DIV16 /*!< PREDIV2 input clock divided by 16 */ +/** + * @} + */ + +#endif /* RCC_CFGR2_PREDIV2 */ + +/** @defgroup RCC_LL_EC_SYS_CLKSOURCE System clock switch + * @{ + */ +#define LL_RCC_SYS_CLKSOURCE_HSI RCC_CFGR_SW_HSI /*!< HSI selection as system clock */ +#define LL_RCC_SYS_CLKSOURCE_HSE RCC_CFGR_SW_HSE /*!< HSE selection as system clock */ +#define LL_RCC_SYS_CLKSOURCE_PLL RCC_CFGR_SW_PLL /*!< PLL selection as system clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYS_CLKSOURCE_STATUS System clock switch status + * @{ + */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_HSI RCC_CFGR_SWS_HSI /*!< HSI used as system clock */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_HSE RCC_CFGR_SWS_HSE /*!< HSE used as system clock */ +#define LL_RCC_SYS_CLKSOURCE_STATUS_PLL RCC_CFGR_SWS_PLL /*!< PLL used as system clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_SYSCLK_DIV AHB prescaler + * @{ + */ +#define LL_RCC_SYSCLK_DIV_1 RCC_CFGR_HPRE_DIV1 /*!< SYSCLK not divided */ +#define LL_RCC_SYSCLK_DIV_2 RCC_CFGR_HPRE_DIV2 /*!< SYSCLK divided by 2 */ +#define LL_RCC_SYSCLK_DIV_4 RCC_CFGR_HPRE_DIV4 /*!< SYSCLK divided by 4 */ +#define LL_RCC_SYSCLK_DIV_8 RCC_CFGR_HPRE_DIV8 /*!< SYSCLK divided by 8 */ +#define LL_RCC_SYSCLK_DIV_16 RCC_CFGR_HPRE_DIV16 /*!< SYSCLK divided by 16 */ +#define LL_RCC_SYSCLK_DIV_64 RCC_CFGR_HPRE_DIV64 /*!< SYSCLK divided by 64 */ +#define LL_RCC_SYSCLK_DIV_128 RCC_CFGR_HPRE_DIV128 /*!< SYSCLK divided by 128 */ +#define LL_RCC_SYSCLK_DIV_256 RCC_CFGR_HPRE_DIV256 /*!< SYSCLK divided by 256 */ +#define LL_RCC_SYSCLK_DIV_512 RCC_CFGR_HPRE_DIV512 /*!< SYSCLK divided by 512 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_APB1_DIV APB low-speed prescaler (APB1) + * @{ + */ +#define LL_RCC_APB1_DIV_1 RCC_CFGR_PPRE1_DIV1 /*!< HCLK not divided */ +#define LL_RCC_APB1_DIV_2 RCC_CFGR_PPRE1_DIV2 /*!< HCLK divided by 2 */ +#define LL_RCC_APB1_DIV_4 RCC_CFGR_PPRE1_DIV4 /*!< HCLK divided by 4 */ +#define LL_RCC_APB1_DIV_8 RCC_CFGR_PPRE1_DIV8 /*!< HCLK divided by 8 */ +#define LL_RCC_APB1_DIV_16 RCC_CFGR_PPRE1_DIV16 /*!< HCLK divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_APB2_DIV APB high-speed prescaler (APB2) + * @{ + */ +#define LL_RCC_APB2_DIV_1 RCC_CFGR_PPRE2_DIV1 /*!< HCLK not divided */ +#define LL_RCC_APB2_DIV_2 RCC_CFGR_PPRE2_DIV2 /*!< HCLK divided by 2 */ +#define LL_RCC_APB2_DIV_4 RCC_CFGR_PPRE2_DIV4 /*!< HCLK divided by 4 */ +#define LL_RCC_APB2_DIV_8 RCC_CFGR_PPRE2_DIV8 /*!< HCLK divided by 8 */ +#define LL_RCC_APB2_DIV_16 RCC_CFGR_PPRE2_DIV16 /*!< HCLK divided by 16 */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_MCO1SOURCE MCO1 SOURCE selection + * @{ + */ +#define LL_RCC_MCO1SOURCE_NOCLOCK RCC_CFGR_MCO_NOCLOCK /*!< MCO output disabled, no clock on MCO */ +#define LL_RCC_MCO1SOURCE_SYSCLK RCC_CFGR_MCO_SYSCLK /*!< SYSCLK selection as MCO source */ +#define LL_RCC_MCO1SOURCE_HSI RCC_CFGR_MCO_HSI /*!< HSI selection as MCO source */ +#define LL_RCC_MCO1SOURCE_HSE RCC_CFGR_MCO_HSE /*!< HSE selection as MCO source */ +#define LL_RCC_MCO1SOURCE_PLLCLK_DIV_2 RCC_CFGR_MCO_PLLCLK_DIV2 /*!< PLL clock divided by 2*/ +#if defined(RCC_CFGR_MCO_PLL2CLK) +#define LL_RCC_MCO1SOURCE_PLL2CLK RCC_CFGR_MCO_PLL2CLK /*!< PLL2 clock selected as MCO source*/ +#endif /* RCC_CFGR_MCO_PLL2CLK */ +#if defined(RCC_CFGR_MCO_PLL3CLK_DIV2) +#define LL_RCC_MCO1SOURCE_PLLI2SCLK_DIV2 RCC_CFGR_MCO_PLL3CLK_DIV2 /*!< PLLI2S clock divided by 2 selected as MCO source*/ +#endif /* RCC_CFGR_MCO_PLL3CLK_DIV2 */ +#if defined(RCC_CFGR_MCO_EXT_HSE) +#define LL_RCC_MCO1SOURCE_EXT_HSE RCC_CFGR_MCO_EXT_HSE /*!< XT1 external 3-25 MHz oscillator clock selected as MCO source */ +#endif /* RCC_CFGR_MCO_EXT_HSE */ +#if defined(RCC_CFGR_MCO_PLL3CLK) +#define LL_RCC_MCO1SOURCE_PLLI2SCLK RCC_CFGR_MCO_PLL3CLK /*!< PLLI2S clock selected as MCO source */ +#endif /* RCC_CFGR_MCO_PLL3CLK */ +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_EC_PERIPH_FREQUENCY Peripheral clock frequency + * @{ + */ +#define LL_RCC_PERIPH_FREQUENCY_NO 0x00000000U /*!< No clock enabled for the peripheral */ +#define LL_RCC_PERIPH_FREQUENCY_NA 0xFFFFFFFFU /*!< Frequency cannot be provided as external clock */ +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +#if defined(RCC_CFGR2_I2S2SRC) +/** @defgroup RCC_LL_EC_I2S2CLKSOURCE Peripheral I2S clock source selection + * @{ + */ +#define LL_RCC_I2S2_CLKSOURCE_SYSCLK RCC_CFGR2_I2S2SRC /*!< System clock (SYSCLK) selected as I2S2 clock entry */ +#define LL_RCC_I2S2_CLKSOURCE_PLLI2S_VCO (uint32_t)(RCC_CFGR2_I2S2SRC | (RCC_CFGR2_I2S2SRC >> 16U)) /*!< PLLI2S VCO clock selected as I2S2 clock entry */ +#define LL_RCC_I2S3_CLKSOURCE_SYSCLK RCC_CFGR2_I2S3SRC /*!< System clock (SYSCLK) selected as I2S3 clock entry */ +#define LL_RCC_I2S3_CLKSOURCE_PLLI2S_VCO (uint32_t)(RCC_CFGR2_I2S3SRC | (RCC_CFGR2_I2S3SRC >> 16U)) /*!< PLLI2S VCO clock selected as I2S3 clock entry */ +/** + * @} + */ +#endif /* RCC_CFGR2_I2S2SRC */ + +#if defined(USB_OTG_FS) || defined(USB) +/** @defgroup RCC_LL_EC_USB_CLKSOURCE Peripheral USB clock source selection + * @{ + */ +#if defined(RCC_CFGR_USBPRE) +#define LL_RCC_USB_CLKSOURCE_PLL RCC_CFGR_USBPRE /*!< PLL clock is not divided */ +#define LL_RCC_USB_CLKSOURCE_PLL_DIV_1_5 0x00000000U /*!< PLL clock is divided by 1.5 */ +#endif /*RCC_CFGR_USBPRE*/ +#if defined(RCC_CFGR_OTGFSPRE) +#define LL_RCC_USB_CLKSOURCE_PLL_DIV_2 RCC_CFGR_OTGFSPRE /*!< PLL clock is divided by 2 */ +#define LL_RCC_USB_CLKSOURCE_PLL_DIV_3 0x00000000U /*!< PLL clock is divided by 3 */ +#endif /*RCC_CFGR_OTGFSPRE*/ +/** + * @} + */ +#endif /* USB_OTG_FS || USB */ + +/** @defgroup RCC_LL_EC_ADC_CLKSOURCE_PCLK2 Peripheral ADC clock source selection + * @{ + */ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_2 RCC_CFGR_ADCPRE_DIV2 /*ADC prescaler PCLK2 divided by 2*/ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_4 RCC_CFGR_ADCPRE_DIV4 /*ADC prescaler PCLK2 divided by 4*/ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_6 RCC_CFGR_ADCPRE_DIV6 /*ADC prescaler PCLK2 divided by 6*/ +#define LL_RCC_ADC_CLKSRC_PCLK2_DIV_8 RCC_CFGR_ADCPRE_DIV8 /*ADC prescaler PCLK2 divided by 8*/ +/** + * @} + */ + +#if defined(RCC_CFGR2_I2S2SRC) +/** @defgroup RCC_LL_EC_I2S2 Peripheral I2S get clock source + * @{ + */ +#define LL_RCC_I2S2_CLKSOURCE RCC_CFGR2_I2S2SRC /*!< I2S2 Clock source selection */ +#define LL_RCC_I2S3_CLKSOURCE RCC_CFGR2_I2S3SRC /*!< I2S3 Clock source selection */ +/** + * @} + */ + +#endif /* RCC_CFGR2_I2S2SRC */ + +#if defined(USB_OTG_FS) || defined(USB) +/** @defgroup RCC_LL_EC_USB Peripheral USB get clock source + * @{ + */ +#define LL_RCC_USB_CLKSOURCE 0x00400000U /*!< USB Clock source selection */ +/** + * @} + */ + +#endif /* USB_OTG_FS || USB */ + +/** @defgroup RCC_LL_EC_ADC Peripheral ADC get clock source + * @{ + */ +#define LL_RCC_ADC_CLKSOURCE RCC_CFGR_ADCPRE /*!< ADC Clock source selection */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_RTC_CLKSOURCE RTC clock source selection + * @{ + */ +#define LL_RCC_RTC_CLKSOURCE_NONE 0x00000000U /*!< No clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_LSE RCC_BDCR_RTCSEL_0 /*!< LSE oscillator clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_LSI RCC_BDCR_RTCSEL_1 /*!< LSI oscillator clock used as RTC clock */ +#define LL_RCC_RTC_CLKSOURCE_HSE_DIV128 RCC_BDCR_RTCSEL /*!< HSE oscillator clock divided by 128 used as RTC clock */ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLL_MUL PLL Multiplicator factor + * @{ + */ +#if defined(RCC_CFGR_PLLMULL2) +#define LL_RCC_PLL_MUL_2 RCC_CFGR_PLLMULL2 /*!< PLL input clock*2 */ +#endif /*RCC_CFGR_PLLMULL2*/ +#if defined(RCC_CFGR_PLLMULL3) +#define LL_RCC_PLL_MUL_3 RCC_CFGR_PLLMULL3 /*!< PLL input clock*3 */ +#endif /*RCC_CFGR_PLLMULL3*/ +#define LL_RCC_PLL_MUL_4 RCC_CFGR_PLLMULL4 /*!< PLL input clock*4 */ +#define LL_RCC_PLL_MUL_5 RCC_CFGR_PLLMULL5 /*!< PLL input clock*5 */ +#define LL_RCC_PLL_MUL_6 RCC_CFGR_PLLMULL6 /*!< PLL input clock*6 */ +#define LL_RCC_PLL_MUL_7 RCC_CFGR_PLLMULL7 /*!< PLL input clock*7 */ +#define LL_RCC_PLL_MUL_8 RCC_CFGR_PLLMULL8 /*!< PLL input clock*8 */ +#define LL_RCC_PLL_MUL_9 RCC_CFGR_PLLMULL9 /*!< PLL input clock*9 */ +#if defined(RCC_CFGR_PLLMULL6_5) +#define LL_RCC_PLL_MUL_6_5 RCC_CFGR_PLLMULL6_5 /*!< PLL input clock*6 */ +#else +#define LL_RCC_PLL_MUL_10 RCC_CFGR_PLLMULL10 /*!< PLL input clock*10 */ +#define LL_RCC_PLL_MUL_11 RCC_CFGR_PLLMULL11 /*!< PLL input clock*11 */ +#define LL_RCC_PLL_MUL_12 RCC_CFGR_PLLMULL12 /*!< PLL input clock*12 */ +#define LL_RCC_PLL_MUL_13 RCC_CFGR_PLLMULL13 /*!< PLL input clock*13 */ +#define LL_RCC_PLL_MUL_14 RCC_CFGR_PLLMULL14 /*!< PLL input clock*14 */ +#define LL_RCC_PLL_MUL_15 RCC_CFGR_PLLMULL15 /*!< PLL input clock*15 */ +#define LL_RCC_PLL_MUL_16 RCC_CFGR_PLLMULL16 /*!< PLL input clock*16 */ +#endif /*RCC_CFGR_PLLMULL6_5*/ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PLLSOURCE PLL SOURCE + * @{ + */ +#define LL_RCC_PLLSOURCE_HSI_DIV_2 0x00000000U /*!< HSI clock divided by 2 selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE RCC_CFGR_PLLSRC /*!< HSE/PREDIV1 clock selected as PLL entry clock source */ +#if defined(RCC_CFGR2_PREDIV1SRC) +#define LL_RCC_PLLSOURCE_PLL2 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/PREDIV1 clock selected as PLL entry clock source */ +#endif /*RCC_CFGR2_PREDIV1SRC*/ + +#if defined(RCC_CFGR2_PREDIV1) +#define LL_RCC_PLLSOURCE_HSE_DIV_1 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV1) /*!< HSE/1 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_2 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV2) /*!< HSE/2 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_3 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV3) /*!< HSE/3 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_4 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV4) /*!< HSE/4 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_5 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV5) /*!< HSE/5 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_6 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV6) /*!< HSE/6 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_7 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV7) /*!< HSE/7 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_8 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV8) /*!< HSE/8 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_9 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV9) /*!< HSE/9 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_10 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV10) /*!< HSE/10 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_11 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV11) /*!< HSE/11 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_12 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV12) /*!< HSE/12 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_13 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV13) /*!< HSE/13 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_14 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV14) /*!< HSE/14 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_15 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV15) /*!< HSE/15 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_16 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV16) /*!< HSE/16 clock selected as PLL entry clock source */ +#if defined(RCC_CFGR2_PREDIV1SRC) +#define LL_RCC_PLLSOURCE_PLL2_DIV_1 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV1 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/1 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_2 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV2 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/2 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_3 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV3 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/3 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_4 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV4 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/4 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_5 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV5 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/5 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_6 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV6 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/6 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_7 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV7 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/7 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_8 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV8 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/8 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_9 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV9 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/9 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_10 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV10 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/10 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_11 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV11 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/11 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_12 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV12 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/12 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_13 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV13 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/13 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_14 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV14 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/14 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_15 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV15 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/15 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_PLL2_DIV_16 (RCC_CFGR_PLLSRC | RCC_CFGR2_PREDIV1_DIV16 | RCC_CFGR2_PREDIV1SRC << 4U) /*!< PLL2/16 clock selected as PLL entry clock source */ +#endif /*RCC_CFGR2_PREDIV1SRC*/ +#else +#define LL_RCC_PLLSOURCE_HSE_DIV_1 (RCC_CFGR_PLLSRC | 0x00000000U) /*!< HSE/1 clock selected as PLL entry clock source */ +#define LL_RCC_PLLSOURCE_HSE_DIV_2 (RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE) /*!< HSE/2 clock selected as PLL entry clock source */ +#endif /*RCC_CFGR2_PREDIV1*/ +/** + * @} + */ + +/** @defgroup RCC_LL_EC_PREDIV_DIV PREDIV Division factor + * @{ + */ +#if defined(RCC_CFGR2_PREDIV1) +#define LL_RCC_PREDIV_DIV_1 RCC_CFGR2_PREDIV1_DIV1 /*!< PREDIV1 input clock not divided */ +#define LL_RCC_PREDIV_DIV_2 RCC_CFGR2_PREDIV1_DIV2 /*!< PREDIV1 input clock divided by 2 */ +#define LL_RCC_PREDIV_DIV_3 RCC_CFGR2_PREDIV1_DIV3 /*!< PREDIV1 input clock divided by 3 */ +#define LL_RCC_PREDIV_DIV_4 RCC_CFGR2_PREDIV1_DIV4 /*!< PREDIV1 input clock divided by 4 */ +#define LL_RCC_PREDIV_DIV_5 RCC_CFGR2_PREDIV1_DIV5 /*!< PREDIV1 input clock divided by 5 */ +#define LL_RCC_PREDIV_DIV_6 RCC_CFGR2_PREDIV1_DIV6 /*!< PREDIV1 input clock divided by 6 */ +#define LL_RCC_PREDIV_DIV_7 RCC_CFGR2_PREDIV1_DIV7 /*!< PREDIV1 input clock divided by 7 */ +#define LL_RCC_PREDIV_DIV_8 RCC_CFGR2_PREDIV1_DIV8 /*!< PREDIV1 input clock divided by 8 */ +#define LL_RCC_PREDIV_DIV_9 RCC_CFGR2_PREDIV1_DIV9 /*!< PREDIV1 input clock divided by 9 */ +#define LL_RCC_PREDIV_DIV_10 RCC_CFGR2_PREDIV1_DIV10 /*!< PREDIV1 input clock divided by 10 */ +#define LL_RCC_PREDIV_DIV_11 RCC_CFGR2_PREDIV1_DIV11 /*!< PREDIV1 input clock divided by 11 */ +#define LL_RCC_PREDIV_DIV_12 RCC_CFGR2_PREDIV1_DIV12 /*!< PREDIV1 input clock divided by 12 */ +#define LL_RCC_PREDIV_DIV_13 RCC_CFGR2_PREDIV1_DIV13 /*!< PREDIV1 input clock divided by 13 */ +#define LL_RCC_PREDIV_DIV_14 RCC_CFGR2_PREDIV1_DIV14 /*!< PREDIV1 input clock divided by 14 */ +#define LL_RCC_PREDIV_DIV_15 RCC_CFGR2_PREDIV1_DIV15 /*!< PREDIV1 input clock divided by 15 */ +#define LL_RCC_PREDIV_DIV_16 RCC_CFGR2_PREDIV1_DIV16 /*!< PREDIV1 input clock divided by 16 */ +#else +#define LL_RCC_PREDIV_DIV_1 0x00000000U /*!< HSE divider clock clock not divided */ +#define LL_RCC_PREDIV_DIV_2 RCC_CFGR_PLLXTPRE /*!< HSE divider clock divided by 2 for PLL entry */ +#endif /*RCC_CFGR2_PREDIV1*/ +/** + * @} + */ + +#if defined(RCC_PLLI2S_SUPPORT) +/** @defgroup RCC_LL_EC_PLLI2S_MUL PLLI2S MUL + * @{ + */ +#define LL_RCC_PLLI2S_MUL_8 RCC_CFGR2_PLL3MUL8 /*!< PLLI2S input clock * 8 */ +#define LL_RCC_PLLI2S_MUL_9 RCC_CFGR2_PLL3MUL9 /*!< PLLI2S input clock * 9 */ +#define LL_RCC_PLLI2S_MUL_10 RCC_CFGR2_PLL3MUL10 /*!< PLLI2S input clock * 10 */ +#define LL_RCC_PLLI2S_MUL_11 RCC_CFGR2_PLL3MUL11 /*!< PLLI2S input clock * 11 */ +#define LL_RCC_PLLI2S_MUL_12 RCC_CFGR2_PLL3MUL12 /*!< PLLI2S input clock * 12 */ +#define LL_RCC_PLLI2S_MUL_13 RCC_CFGR2_PLL3MUL13 /*!< PLLI2S input clock * 13 */ +#define LL_RCC_PLLI2S_MUL_14 RCC_CFGR2_PLL3MUL14 /*!< PLLI2S input clock * 14 */ +#define LL_RCC_PLLI2S_MUL_16 RCC_CFGR2_PLL3MUL16 /*!< PLLI2S input clock * 16 */ +#define LL_RCC_PLLI2S_MUL_20 RCC_CFGR2_PLL3MUL20 /*!< PLLI2S input clock * 20 */ +/** + * @} + */ + +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** @defgroup RCC_LL_EC_PLL2_MUL PLL2 MUL + * @{ + */ +#define LL_RCC_PLL2_MUL_8 RCC_CFGR2_PLL2MUL8 /*!< PLL2 input clock * 8 */ +#define LL_RCC_PLL2_MUL_9 RCC_CFGR2_PLL2MUL9 /*!< PLL2 input clock * 9 */ +#define LL_RCC_PLL2_MUL_10 RCC_CFGR2_PLL2MUL10 /*!< PLL2 input clock * 10 */ +#define LL_RCC_PLL2_MUL_11 RCC_CFGR2_PLL2MUL11 /*!< PLL2 input clock * 11 */ +#define LL_RCC_PLL2_MUL_12 RCC_CFGR2_PLL2MUL12 /*!< PLL2 input clock * 12 */ +#define LL_RCC_PLL2_MUL_13 RCC_CFGR2_PLL2MUL13 /*!< PLL2 input clock * 13 */ +#define LL_RCC_PLL2_MUL_14 RCC_CFGR2_PLL2MUL14 /*!< PLL2 input clock * 14 */ +#define LL_RCC_PLL2_MUL_16 RCC_CFGR2_PLL2MUL16 /*!< PLL2 input clock * 16 */ +#define LL_RCC_PLL2_MUL_20 RCC_CFGR2_PLL2MUL20 /*!< PLL2 input clock * 20 */ +/** + * @} + */ + +#endif /* RCC_PLL2_SUPPORT */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Macros RCC Exported Macros + * @{ + */ + +/** @defgroup RCC_LL_EM_WRITE_READ Common Write and read registers Macros + * @{ + */ + +/** + * @brief Write a value in RCC register + * @param __REG__ Register to be written + * @param __VALUE__ Value to be written in the register + * @retval None + */ +#define LL_RCC_WriteReg(__REG__, __VALUE__) WRITE_REG(RCC->__REG__, (__VALUE__)) + +/** + * @brief Read a value in RCC register + * @param __REG__ Register to be read + * @retval Register value + */ +#define LL_RCC_ReadReg(__REG__) READ_REG(RCC->__REG__) +/** + * @} + */ + +/** @defgroup RCC_LL_EM_CALC_FREQ Calculate frequencies + * @{ + */ + +#if defined(RCC_CFGR_PLLMULL6_5) +/** + * @brief Helper macro to calculate the PLLCLK frequency + * @note ex: @ref __LL_RCC_CALC_PLLCLK_FREQ (HSE_VALUE / (@ref LL_RCC_PLL_GetPrediv () + 1), @ref LL_RCC_PLL_GetMultiplicator()); + * @param __INPUTFREQ__ PLL Input frequency (based on HSE div Prediv1 / HSI div 2 / PLL2 div Prediv1) + * @param __PLLMUL__: This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_6_5 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLMUL__) \ + (((__PLLMUL__) != RCC_CFGR_PLLMULL6_5) ? \ + ((__INPUTFREQ__) * ((((__PLLMUL__) & RCC_CFGR_PLLMULL) >> RCC_CFGR_PLLMULL_Pos) + 2U)) :\ + (((__INPUTFREQ__) * 13U) / 2U)) + +#else +/** + * @brief Helper macro to calculate the PLLCLK frequency + * @note ex: @ref __LL_RCC_CALC_PLLCLK_FREQ (HSE_VALUE / (@ref LL_RCC_PLL_GetPrediv () + 1), @ref LL_RCC_PLL_GetMultiplicator ()); + * @param __INPUTFREQ__ PLL Input frequency (based on HSE div Prediv1 or div 2 / HSI div 2) + * @param __PLLMUL__: This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 + * @arg @ref LL_RCC_PLL_MUL_3 + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_10 + * @arg @ref LL_RCC_PLL_MUL_11 + * @arg @ref LL_RCC_PLL_MUL_12 + * @arg @ref LL_RCC_PLL_MUL_13 + * @arg @ref LL_RCC_PLL_MUL_14 + * @arg @ref LL_RCC_PLL_MUL_15 + * @arg @ref LL_RCC_PLL_MUL_16 + * @retval PLL clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLMUL__) ((__INPUTFREQ__) * (((__PLLMUL__) >> RCC_CFGR_PLLMULL_Pos) + 2U)) +#endif /* RCC_CFGR_PLLMULL6_5 */ + +#if defined(RCC_PLLI2S_SUPPORT) +/** + * @brief Helper macro to calculate the PLLI2S frequency + * @note ex: @ref __LL_RCC_CALC_PLLI2SCLK_FREQ (HSE_VALUE, @ref LL_RCC_PLLI2S_GetMultiplicator (), @ref LL_RCC_HSE_GetPrediv2 ()); + * @param __INPUTFREQ__ PLLI2S Input frequency (based on HSE value) + * @param __PLLI2SMUL__: This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLI2S_MUL_8 + * @arg @ref LL_RCC_PLLI2S_MUL_9 + * @arg @ref LL_RCC_PLLI2S_MUL_10 + * @arg @ref LL_RCC_PLLI2S_MUL_11 + * @arg @ref LL_RCC_PLLI2S_MUL_12 + * @arg @ref LL_RCC_PLLI2S_MUL_13 + * @arg @ref LL_RCC_PLLI2S_MUL_14 + * @arg @ref LL_RCC_PLLI2S_MUL_16 + * @arg @ref LL_RCC_PLLI2S_MUL_20 + * @param __PLLI2SDIV__: This parameter can be one of the following values: + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_1 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_2 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_3 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_4 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_5 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_6 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_7 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_8 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_9 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_10 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_11 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_12 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_13 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_14 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_15 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_16 + * @retval PLLI2S clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLLI2SCLK_FREQ(__INPUTFREQ__, __PLLI2SMUL__, __PLLI2SDIV__) (((__INPUTFREQ__) * (((__PLLI2SMUL__) >> RCC_CFGR2_PLL3MUL_Pos) + 2U)) / (((__PLLI2SDIV__) >> RCC_CFGR2_PREDIV2_Pos) + 1U)) +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** + * @brief Helper macro to calculate the PLL2 frequency + * @note ex: @ref __LL_RCC_CALC_PLL2CLK_FREQ (HSE_VALUE, @ref LL_RCC_PLL2_GetMultiplicator (), @ref LL_RCC_HSE_GetPrediv2 ()); + * @param __INPUTFREQ__ PLL2 Input frequency (based on HSE value) + * @param __PLL2MUL__: This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL2_MUL_8 + * @arg @ref LL_RCC_PLL2_MUL_9 + * @arg @ref LL_RCC_PLL2_MUL_10 + * @arg @ref LL_RCC_PLL2_MUL_11 + * @arg @ref LL_RCC_PLL2_MUL_12 + * @arg @ref LL_RCC_PLL2_MUL_13 + * @arg @ref LL_RCC_PLL2_MUL_14 + * @arg @ref LL_RCC_PLL2_MUL_16 + * @arg @ref LL_RCC_PLL2_MUL_20 + * @param __PLL2DIV__: This parameter can be one of the following values: + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_1 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_2 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_3 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_4 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_5 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_6 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_7 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_8 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_9 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_10 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_11 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_12 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_13 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_14 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_15 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_16 + * @retval PLL2 clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PLL2CLK_FREQ(__INPUTFREQ__, __PLL2MUL__, __PLL2DIV__) (((__INPUTFREQ__) * (((__PLL2MUL__) >> RCC_CFGR2_PLL2MUL_Pos) + 2U)) / (((__PLL2DIV__) >> RCC_CFGR2_PREDIV2_Pos) + 1U)) +#endif /* RCC_PLL2_SUPPORT */ + +/** + * @brief Helper macro to calculate the HCLK frequency + * @note: __AHBPRESCALER__ be retrieved by @ref LL_RCC_GetAHBPrescaler + * ex: __LL_RCC_CALC_HCLK_FREQ(LL_RCC_GetAHBPrescaler()) + * @param __SYSCLKFREQ__ SYSCLK frequency (based on HSE/HSI/PLLCLK) + * @param __AHBPRESCALER__: This parameter can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + * @retval HCLK clock frequency (in Hz) + */ +#define __LL_RCC_CALC_HCLK_FREQ(__SYSCLKFREQ__, __AHBPRESCALER__) ((__SYSCLKFREQ__) >> AHBPrescTable[((__AHBPRESCALER__) & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]) + +/** + * @brief Helper macro to calculate the PCLK1 frequency (ABP1) + * @note: __APB1PRESCALER__ be retrieved by @ref LL_RCC_GetAPB1Prescaler + * ex: __LL_RCC_CALC_PCLK1_FREQ(LL_RCC_GetAPB1Prescaler()) + * @param __HCLKFREQ__ HCLK frequency + * @param __APB1PRESCALER__: This parameter can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + * @retval PCLK1 clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PCLK1_FREQ(__HCLKFREQ__, __APB1PRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APB1PRESCALER__) >> RCC_CFGR_PPRE1_Pos]) + +/** + * @brief Helper macro to calculate the PCLK2 frequency (ABP2) + * @note: __APB2PRESCALER__ be retrieved by @ref LL_RCC_GetAPB2Prescaler + * ex: __LL_RCC_CALC_PCLK2_FREQ(LL_RCC_GetAPB2Prescaler()) + * @param __HCLKFREQ__ HCLK frequency + * @param __APB2PRESCALER__: This parameter can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + * @retval PCLK2 clock frequency (in Hz) + */ +#define __LL_RCC_CALC_PCLK2_FREQ(__HCLKFREQ__, __APB2PRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APB2PRESCALER__) >> RCC_CFGR_PPRE2_Pos]) + +/** + * @} + */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup RCC_LL_Exported_Functions RCC Exported Functions + * @{ + */ + +/** @defgroup RCC_LL_EF_HSE HSE + * @{ + */ + +/** + * @brief Enable the Clock Security System. + * @rmtoll CR CSSON LL_RCC_HSE_EnableCSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_EnableCSS(void) +{ + SET_BIT(RCC->CR, RCC_CR_CSSON); +} + +/** + * @brief Enable HSE external oscillator (HSE Bypass) + * @rmtoll CR HSEBYP LL_RCC_HSE_EnableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_EnableBypass(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSEBYP); +} + +/** + * @brief Disable HSE external oscillator (HSE Bypass) + * @rmtoll CR HSEBYP LL_RCC_HSE_DisableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_DisableBypass(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP); +} + +/** + * @brief Enable HSE crystal oscillator (HSE ON) + * @rmtoll CR HSEON LL_RCC_HSE_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSEON); +} + +/** + * @brief Disable HSE crystal oscillator (HSE ON) + * @rmtoll CR HSEON LL_RCC_HSE_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSE_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSEON); +} + +/** + * @brief Check if HSE oscillator Ready + * @rmtoll CR HSERDY LL_RCC_HSE_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_HSE_IsReady(void) +{ + return (READ_BIT(RCC->CR, RCC_CR_HSERDY) == (RCC_CR_HSERDY)); +} + +#if defined(RCC_CFGR2_PREDIV2) +/** + * @brief Get PREDIV2 division factor + * @rmtoll CFGR2 PREDIV2 LL_RCC_HSE_GetPrediv2 + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_1 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_2 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_3 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_4 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_5 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_6 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_7 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_8 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_9 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_10 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_11 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_12 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_13 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_14 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_15 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_HSE_GetPrediv2(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV2)); +} +#endif /* RCC_CFGR2_PREDIV2 */ + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_HSI HSI + * @{ + */ + +/** + * @brief Enable HSI oscillator + * @rmtoll CR HSION LL_RCC_HSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_HSION); +} + +/** + * @brief Disable HSI oscillator + * @rmtoll CR HSION LL_RCC_HSI_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_HSION); +} + +/** + * @brief Check if HSI clock is ready + * @rmtoll CR HSIRDY LL_RCC_HSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void) +{ + return (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == (RCC_CR_HSIRDY)); +} + +/** + * @brief Get HSI Calibration value + * @note When HSITRIM is written, HSICAL is updated with the sum of + * HSITRIM and the factory trim value + * @rmtoll CR HSICAL LL_RCC_HSI_GetCalibration + * @retval Between Min_Data = 0x00 and Max_Data = 0xFF + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibration(void) +{ + return (uint32_t)(READ_BIT(RCC->CR, RCC_CR_HSICAL) >> RCC_CR_HSICAL_Pos); +} + +/** + * @brief Set HSI Calibration trimming + * @note user-programmable trimming value that is added to the HSICAL + * @note Default value is 16, which, when added to the HSICAL value, + * should trim the HSI to 16 MHz +/- 1 % + * @rmtoll CR HSITRIM LL_RCC_HSI_SetCalibTrimming + * @param Value between Min_Data = 0x00 and Max_Data = 0x1F + * @retval None + */ +__STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value) +{ + MODIFY_REG(RCC->CR, RCC_CR_HSITRIM, Value << RCC_CR_HSITRIM_Pos); +} + +/** + * @brief Get HSI Calibration trimming + * @rmtoll CR HSITRIM LL_RCC_HSI_GetCalibTrimming + * @retval Between Min_Data = 0x00 and Max_Data = 0x1F + */ +__STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibTrimming(void) +{ + return (uint32_t)(READ_BIT(RCC->CR, RCC_CR_HSITRIM) >> RCC_CR_HSITRIM_Pos); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_LSE LSE + * @{ + */ + +/** + * @brief Enable Low Speed External (LSE) crystal. + * @rmtoll BDCR LSEON LL_RCC_LSE_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_Enable(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEON); +} + +/** + * @brief Disable Low Speed External (LSE) crystal. + * @rmtoll BDCR LSEON LL_RCC_LSE_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_Disable(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON); +} + +/** + * @brief Enable external clock source (LSE bypass). + * @rmtoll BDCR LSEBYP LL_RCC_LSE_EnableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_EnableBypass(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); +} + +/** + * @brief Disable external clock source (LSE bypass). + * @rmtoll BDCR LSEBYP LL_RCC_LSE_DisableBypass + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSE_DisableBypass(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEBYP); +} + +/** + * @brief Check if LSE oscillator Ready + * @rmtoll BDCR LSERDY LL_RCC_LSE_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void) +{ + return (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == (RCC_BDCR_LSERDY)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_LSI LSI + * @{ + */ + +/** + * @brief Enable LSI Oscillator + * @rmtoll CSR LSION LL_RCC_LSI_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSI_Enable(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_LSION); +} + +/** + * @brief Disable LSI Oscillator + * @rmtoll CSR LSION LL_RCC_LSI_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_LSI_Disable(void) +{ + CLEAR_BIT(RCC->CSR, RCC_CSR_LSION); +} + +/** + * @brief Check if LSI is Ready + * @rmtoll CSR LSIRDY LL_RCC_LSI_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == (RCC_CSR_LSIRDY)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_System System + * @{ + */ + +/** + * @brief Configure the system clock source + * @rmtoll CFGR SW LL_RCC_SetSysClkSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_SYS_CLKSOURCE_HSI + * @arg @ref LL_RCC_SYS_CLKSOURCE_HSE + * @arg @ref LL_RCC_SYS_CLKSOURCE_PLL + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetSysClkSource(uint32_t Source) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, Source); +} + +/** + * @brief Get the system clock source + * @rmtoll CFGR SWS LL_RCC_GetSysClkSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSI + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSE + * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_PLL + */ +__STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS)); +} + +/** + * @brief Set AHB prescaler + * @rmtoll CFGR HPRE LL_RCC_SetAHBPrescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAHBPrescaler(uint32_t Prescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, Prescaler); +} + +/** + * @brief Set APB1 prescaler + * @rmtoll CFGR PPRE1 LL_RCC_SetAPB1Prescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAPB1Prescaler(uint32_t Prescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, Prescaler); +} + +/** + * @brief Set APB2 prescaler + * @rmtoll CFGR PPRE2 LL_RCC_SetAPB2Prescaler + * @param Prescaler This parameter can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetAPB2Prescaler(uint32_t Prescaler) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, Prescaler); +} + +/** + * @brief Get AHB prescaler + * @rmtoll CFGR HPRE LL_RCC_GetAHBPrescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_SYSCLK_DIV_1 + * @arg @ref LL_RCC_SYSCLK_DIV_2 + * @arg @ref LL_RCC_SYSCLK_DIV_4 + * @arg @ref LL_RCC_SYSCLK_DIV_8 + * @arg @ref LL_RCC_SYSCLK_DIV_16 + * @arg @ref LL_RCC_SYSCLK_DIV_64 + * @arg @ref LL_RCC_SYSCLK_DIV_128 + * @arg @ref LL_RCC_SYSCLK_DIV_256 + * @arg @ref LL_RCC_SYSCLK_DIV_512 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_HPRE)); +} + +/** + * @brief Get APB1 prescaler + * @rmtoll CFGR PPRE1 LL_RCC_GetAPB1Prescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_APB1_DIV_1 + * @arg @ref LL_RCC_APB1_DIV_2 + * @arg @ref LL_RCC_APB1_DIV_4 + * @arg @ref LL_RCC_APB1_DIV_8 + * @arg @ref LL_RCC_APB1_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1)); +} + +/** + * @brief Get APB2 prescaler + * @rmtoll CFGR PPRE2 LL_RCC_GetAPB2Prescaler + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_APB2_DIV_1 + * @arg @ref LL_RCC_APB2_DIV_2 + * @arg @ref LL_RCC_APB2_DIV_4 + * @arg @ref LL_RCC_APB2_DIV_8 + * @arg @ref LL_RCC_APB2_DIV_16 + */ +__STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_MCO MCO + * @{ + */ + +/** + * @brief Configure MCOx + * @rmtoll CFGR MCO LL_RCC_ConfigMCO + * @param MCOxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_MCO1SOURCE_NOCLOCK + * @arg @ref LL_RCC_MCO1SOURCE_SYSCLK + * @arg @ref LL_RCC_MCO1SOURCE_HSI + * @arg @ref LL_RCC_MCO1SOURCE_HSE + * @arg @ref LL_RCC_MCO1SOURCE_PLLCLK_DIV_2 + * @arg @ref LL_RCC_MCO1SOURCE_PLL2CLK (*) + * @arg @ref LL_RCC_MCO1SOURCE_PLLI2SCLK_DIV2 (*) + * @arg @ref LL_RCC_MCO1SOURCE_EXT_HSE (*) + * @arg @ref LL_RCC_MCO1SOURCE_PLLI2SCLK (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_RCC_ConfigMCO(uint32_t MCOxSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_MCOSEL, MCOxSource); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_Peripheral_Clock_Source Peripheral Clock Source + * @{ + */ + +#if defined(RCC_CFGR2_I2S2SRC) +/** + * @brief Configure I2Sx clock source + * @rmtoll CFGR2 I2S2SRC LL_RCC_SetI2SClockSource\n + * CFGR2 I2S3SRC LL_RCC_SetI2SClockSource + * @param I2SxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_I2S2_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2S2_CLKSOURCE_PLLI2S_VCO + * @arg @ref LL_RCC_I2S3_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2S3_CLKSOURCE_PLLI2S_VCO + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetI2SClockSource(uint32_t I2SxSource) +{ + MODIFY_REG(RCC->CFGR2, (I2SxSource & 0xFFFF0000U), (I2SxSource << 16U)); +} +#endif /* RCC_CFGR2_I2S2SRC */ + +#if defined(USB_OTG_FS) || defined(USB) +/** + * @brief Configure USB clock source + * @rmtoll CFGR OTGFSPRE LL_RCC_SetUSBClockSource\n + * CFGR USBPRE LL_RCC_SetUSBClockSource + * @param USBxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_1_5 (*) + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_2 (*) + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_3 (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetUSBClockSource(uint32_t USBxSource) +{ +#if defined(RCC_CFGR_USBPRE) + MODIFY_REG(RCC->CFGR, RCC_CFGR_USBPRE, USBxSource); +#else /*RCC_CFGR_OTGFSPRE*/ + MODIFY_REG(RCC->CFGR, RCC_CFGR_OTGFSPRE, USBxSource); +#endif /*RCC_CFGR_USBPRE*/ +} +#endif /* USB_OTG_FS || USB */ + +/** + * @brief Configure ADC clock source + * @rmtoll CFGR ADCPRE LL_RCC_SetADCClockSource + * @param ADCxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_2 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_4 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_6 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_8 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetADCClockSource(uint32_t ADCxSource) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_ADCPRE, ADCxSource); +} + +#if defined(RCC_CFGR2_I2S2SRC) +/** + * @brief Get I2Sx clock source + * @rmtoll CFGR2 I2S2SRC LL_RCC_GetI2SClockSource\n + * CFGR2 I2S3SRC LL_RCC_GetI2SClockSource + * @param I2Sx This parameter can be one of the following values: + * @arg @ref LL_RCC_I2S2_CLKSOURCE + * @arg @ref LL_RCC_I2S3_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_I2S2_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2S2_CLKSOURCE_PLLI2S_VCO + * @arg @ref LL_RCC_I2S3_CLKSOURCE_SYSCLK + * @arg @ref LL_RCC_I2S3_CLKSOURCE_PLLI2S_VCO + */ +__STATIC_INLINE uint32_t LL_RCC_GetI2SClockSource(uint32_t I2Sx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR2, I2Sx) >> 16U | I2Sx); +} +#endif /* RCC_CFGR2_I2S2SRC */ + +#if defined(USB_OTG_FS) || defined(USB) +/** + * @brief Get USBx clock source + * @rmtoll CFGR OTGFSPRE LL_RCC_GetUSBClockSource\n + * CFGR USBPRE LL_RCC_GetUSBClockSource + * @param USBx This parameter can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL (*) + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_1_5 (*) + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_2 (*) + * @arg @ref LL_RCC_USB_CLKSOURCE_PLL_DIV_3 (*) + * + * (*) value not defined in all devices + */ +__STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t USBx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, USBx)); +} +#endif /* USB_OTG_FS || USB */ + +/** + * @brief Get ADCx clock source + * @rmtoll CFGR ADCPRE LL_RCC_GetADCClockSource + * @param ADCx This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC_CLKSOURCE + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_2 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_4 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_6 + * @arg @ref LL_RCC_ADC_CLKSRC_PCLK2_DIV_8 + */ +__STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t ADCx) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, ADCx)); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_RTC RTC + * @{ + */ + +/** + * @brief Set RTC Clock Source + * @note Once the RTC clock source has been selected, it cannot be changed any more unless + * the Backup domain is reset. The BDRST bit can be used to reset them. + * @rmtoll BDCR RTCSEL LL_RCC_SetRTCClockSource + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI + * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE_DIV128 + * @retval None + */ +__STATIC_INLINE void LL_RCC_SetRTCClockSource(uint32_t Source) +{ + MODIFY_REG(RCC->BDCR, RCC_BDCR_RTCSEL, Source); +} + +/** + * @brief Get RTC Clock Source + * @rmtoll BDCR RTCSEL LL_RCC_GetRTCClockSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE + * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI + * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE_DIV128 + */ +__STATIC_INLINE uint32_t LL_RCC_GetRTCClockSource(void) +{ + return (uint32_t)(READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL)); +} + +/** + * @brief Enable RTC + * @rmtoll BDCR RTCEN LL_RCC_EnableRTC + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableRTC(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_RTCEN); +} + +/** + * @brief Disable RTC + * @rmtoll BDCR RTCEN LL_RCC_DisableRTC + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableRTC(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_RTCEN); +} + +/** + * @brief Check if RTC has been enabled or not + * @rmtoll BDCR RTCEN LL_RCC_IsEnabledRTC + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledRTC(void) +{ + return (READ_BIT(RCC->BDCR, RCC_BDCR_RTCEN) == (RCC_BDCR_RTCEN)); +} + +/** + * @brief Force the Backup domain reset + * @rmtoll BDCR BDRST LL_RCC_ForceBackupDomainReset + * @retval None + */ +__STATIC_INLINE void LL_RCC_ForceBackupDomainReset(void) +{ + SET_BIT(RCC->BDCR, RCC_BDCR_BDRST); +} + +/** + * @brief Release the Backup domain reset + * @rmtoll BDCR BDRST LL_RCC_ReleaseBackupDomainReset + * @retval None + */ +__STATIC_INLINE void LL_RCC_ReleaseBackupDomainReset(void) +{ + CLEAR_BIT(RCC->BDCR, RCC_BDCR_BDRST); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_PLL PLL + * @{ + */ + +/** + * @brief Enable PLL + * @rmtoll CR PLLON LL_RCC_PLL_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_PLLON); +} + +/** + * @brief Disable PLL + * @note Cannot be disabled if the PLL clock is used as the system clock + * @rmtoll CR PLLON LL_RCC_PLL_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_PLLON); +} + +/** + * @brief Check if PLL Ready + * @rmtoll CR PLLRDY LL_RCC_PLL_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_IsReady(void) +{ + return (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == (RCC_CR_PLLRDY)); +} + +/** + * @brief Configure PLL used for SYSCLK Domain + * @rmtoll CFGR PLLSRC LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR PLLXTPRE LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR PLLMULL LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR2 PREDIV1 LL_RCC_PLL_ConfigDomain_SYS\n + * CFGR2 PREDIV1SRC LL_RCC_PLL_ConfigDomain_SYS + * @param Source This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI_DIV_2 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_1 + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_2 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_3 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_4 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_5 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_6 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_7 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_8 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_9 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_10 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_11 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_12 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_13 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_14 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_15 (*) + * @arg @ref LL_RCC_PLLSOURCE_HSE_DIV_16 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_1 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_2 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_3 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_4 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_5 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_6 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_7 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_8 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_9 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_10 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_11 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_12 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_13 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_14 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_15 (*) + * @arg @ref LL_RCC_PLLSOURCE_PLL2_DIV_16 (*) + * + * (*) value not defined in all devices + * @param PLLMul This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 (*) + * @arg @ref LL_RCC_PLL_MUL_3 (*) + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_6_5 (*) + * @arg @ref LL_RCC_PLL_MUL_10 (*) + * @arg @ref LL_RCC_PLL_MUL_11 (*) + * @arg @ref LL_RCC_PLL_MUL_12 (*) + * @arg @ref LL_RCC_PLL_MUL_13 (*) + * @arg @ref LL_RCC_PLL_MUL_14 (*) + * @arg @ref LL_RCC_PLL_MUL_15 (*) + * @arg @ref LL_RCC_PLL_MUL_16 (*) + * + * (*) value not defined in all devices + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SYS(uint32_t Source, uint32_t PLLMul) +{ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL, + (Source & (RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE)) | PLLMul); +#if defined(RCC_CFGR2_PREDIV1) +#if defined(RCC_CFGR2_PREDIV1SRC) + MODIFY_REG(RCC->CFGR2, (RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC), + (Source & RCC_CFGR2_PREDIV1) | ((Source & (RCC_CFGR2_PREDIV1SRC << 4U)) >> 4U)); +#else + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV1, (Source & RCC_CFGR2_PREDIV1)); +#endif /*RCC_CFGR2_PREDIV1SRC*/ +#endif /*RCC_CFGR2_PREDIV1*/ +} + +/** + * @brief Configure PLL clock source + * @rmtoll CFGR PLLSRC LL_RCC_PLL_SetMainSource\n + * CFGR2 PREDIV1SRC LL_RCC_PLL_SetMainSource + * @param PLLSource This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI_DIV_2 + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @arg @ref LL_RCC_PLLSOURCE_PLL2 (*) + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_SetMainSource(uint32_t PLLSource) +{ +#if defined(RCC_CFGR2_PREDIV1SRC) + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC, ((PLLSource & (RCC_CFGR2_PREDIV1SRC << 4U)) >> 4U)); +#endif /* RCC_CFGR2_PREDIV1SRC */ + MODIFY_REG(RCC->CFGR, RCC_CFGR_PLLSRC, PLLSource); +} + +/** + * @brief Get the oscillator used as PLL clock source. + * @rmtoll CFGR PLLSRC LL_RCC_PLL_GetMainSource\n + * CFGR2 PREDIV1SRC LL_RCC_PLL_GetMainSource + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLSOURCE_HSI_DIV_2 + * @arg @ref LL_RCC_PLLSOURCE_HSE + * @arg @ref LL_RCC_PLLSOURCE_PLL2 (*) + * + * (*) value not defined in all devices + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void) +{ +#if defined(RCC_CFGR2_PREDIV1SRC) + register uint32_t pllsrc = READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC); + register uint32_t predivsrc = (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1SRC) << 4U); + return (uint32_t)(pllsrc | predivsrc); +#else + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC)); +#endif /*RCC_CFGR2_PREDIV1SRC*/ +} + +/** + * @brief Get PLL multiplication Factor + * @rmtoll CFGR PLLMULL LL_RCC_PLL_GetMultiplicator + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLL_MUL_2 (*) + * @arg @ref LL_RCC_PLL_MUL_3 (*) + * @arg @ref LL_RCC_PLL_MUL_4 + * @arg @ref LL_RCC_PLL_MUL_5 + * @arg @ref LL_RCC_PLL_MUL_6 + * @arg @ref LL_RCC_PLL_MUL_7 + * @arg @ref LL_RCC_PLL_MUL_8 + * @arg @ref LL_RCC_PLL_MUL_9 + * @arg @ref LL_RCC_PLL_MUL_6_5 (*) + * @arg @ref LL_RCC_PLL_MUL_10 (*) + * @arg @ref LL_RCC_PLL_MUL_11 (*) + * @arg @ref LL_RCC_PLL_MUL_12 (*) + * @arg @ref LL_RCC_PLL_MUL_13 (*) + * @arg @ref LL_RCC_PLL_MUL_14 (*) + * @arg @ref LL_RCC_PLL_MUL_15 (*) + * @arg @ref LL_RCC_PLL_MUL_16 (*) + * + * (*) value not defined in all devices + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetMultiplicator(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLMULL)); +} + +/** + * @brief Get PREDIV1 division factor for the main PLL + * @note They can be written only when the PLL is disabled + * @rmtoll CFGR2 PREDIV1 LL_RCC_PLL_GetPrediv\n + * CFGR2 PLLXTPRE LL_RCC_PLL_GetPrediv + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PREDIV_DIV_1 + * @arg @ref LL_RCC_PREDIV_DIV_2 + * @arg @ref LL_RCC_PREDIV_DIV_3 (*) + * @arg @ref LL_RCC_PREDIV_DIV_4 (*) + * @arg @ref LL_RCC_PREDIV_DIV_5 (*) + * @arg @ref LL_RCC_PREDIV_DIV_6 (*) + * @arg @ref LL_RCC_PREDIV_DIV_7 (*) + * @arg @ref LL_RCC_PREDIV_DIV_8 (*) + * @arg @ref LL_RCC_PREDIV_DIV_9 (*) + * @arg @ref LL_RCC_PREDIV_DIV_10 (*) + * @arg @ref LL_RCC_PREDIV_DIV_11 (*) + * @arg @ref LL_RCC_PREDIV_DIV_12 (*) + * @arg @ref LL_RCC_PREDIV_DIV_13 (*) + * @arg @ref LL_RCC_PREDIV_DIV_14 (*) + * @arg @ref LL_RCC_PREDIV_DIV_15 (*) + * @arg @ref LL_RCC_PREDIV_DIV_16 (*) + * + * (*) value not defined in all devices + */ +__STATIC_INLINE uint32_t LL_RCC_PLL_GetPrediv(void) +{ +#if defined(RCC_CFGR2_PREDIV1) + return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PREDIV1)); +#else + return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLXTPRE) >> RCC_CFGR_PLLXTPRE_Pos); +#endif /*RCC_CFGR2_PREDIV1*/ +} + +/** + * @} + */ + +#if defined(RCC_PLLI2S_SUPPORT) +/** @defgroup RCC_LL_EF_PLLI2S PLLI2S + * @{ + */ + +/** + * @brief Enable PLLI2S + * @rmtoll CR PLL3ON LL_RCC_PLLI2S_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLLI2S_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_PLL3ON); +} + +/** + * @brief Disable PLLI2S + * @rmtoll CR PLL3ON LL_RCC_PLLI2S_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLLI2S_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_PLL3ON); +} + +/** + * @brief Check if PLLI2S Ready + * @rmtoll CR PLL3RDY LL_RCC_PLLI2S_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLLI2S_IsReady(void) +{ + return (READ_BIT(RCC->CR, RCC_CR_PLL3RDY) == (RCC_CR_PLL3RDY)); +} + +/** + * @brief Configure PLLI2S used for I2S Domain + * @rmtoll CFGR2 PREDIV2 LL_RCC_PLL_ConfigDomain_PLLI2S\n + * CFGR2 PLL3MUL LL_RCC_PLL_ConfigDomain_PLLI2S + * @param Divider This parameter can be one of the following values: + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_1 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_2 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_3 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_4 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_5 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_6 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_7 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_8 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_9 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_10 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_11 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_12 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_13 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_14 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_15 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_16 + * @param Multiplicator This parameter can be one of the following values: + * @arg @ref LL_RCC_PLLI2S_MUL_8 + * @arg @ref LL_RCC_PLLI2S_MUL_9 + * @arg @ref LL_RCC_PLLI2S_MUL_10 + * @arg @ref LL_RCC_PLLI2S_MUL_11 + * @arg @ref LL_RCC_PLLI2S_MUL_12 + * @arg @ref LL_RCC_PLLI2S_MUL_13 + * @arg @ref LL_RCC_PLLI2S_MUL_14 + * @arg @ref LL_RCC_PLLI2S_MUL_16 + * @arg @ref LL_RCC_PLLI2S_MUL_20 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_PLLI2S(uint32_t Divider, uint32_t Multiplicator) +{ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL3MUL, Divider | Multiplicator); +} + +/** + * @brief Get PLLI2S Multiplication Factor + * @rmtoll CFGR2 PLL3MUL LL_RCC_PLLI2S_GetMultiplicator + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLLI2S_MUL_8 + * @arg @ref LL_RCC_PLLI2S_MUL_9 + * @arg @ref LL_RCC_PLLI2S_MUL_10 + * @arg @ref LL_RCC_PLLI2S_MUL_11 + * @arg @ref LL_RCC_PLLI2S_MUL_12 + * @arg @ref LL_RCC_PLLI2S_MUL_13 + * @arg @ref LL_RCC_PLLI2S_MUL_14 + * @arg @ref LL_RCC_PLLI2S_MUL_16 + * @arg @ref LL_RCC_PLLI2S_MUL_20 + */ +__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetMultiplicator(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PLL3MUL)); +} + +/** + * @} + */ +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** @defgroup RCC_LL_EF_PLL2 PLL2 + * @{ + */ + +/** + * @brief Enable PLL2 + * @rmtoll CR PLL2ON LL_RCC_PLL2_Enable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL2_Enable(void) +{ + SET_BIT(RCC->CR, RCC_CR_PLL2ON); +} + +/** + * @brief Disable PLL2 + * @rmtoll CR PLL2ON LL_RCC_PLL2_Disable + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL2_Disable(void) +{ + CLEAR_BIT(RCC->CR, RCC_CR_PLL2ON); +} + +/** + * @brief Check if PLL2 Ready + * @rmtoll CR PLL2RDY LL_RCC_PLL2_IsReady + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_PLL2_IsReady(void) +{ + return (READ_BIT(RCC->CR, RCC_CR_PLL2RDY) == (RCC_CR_PLL2RDY)); +} + +/** + * @brief Configure PLL2 used for PLL2 Domain + * @rmtoll CFGR2 PREDIV2 LL_RCC_PLL_ConfigDomain_PLL2\n + * CFGR2 PLL2MUL LL_RCC_PLL_ConfigDomain_PLL2 + * @param Divider This parameter can be one of the following values: + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_1 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_2 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_3 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_4 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_5 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_6 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_7 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_8 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_9 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_10 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_11 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_12 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_13 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_14 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_15 + * @arg @ref LL_RCC_HSE_PREDIV2_DIV_16 + * @param Multiplicator This parameter can be one of the following values: + * @arg @ref LL_RCC_PLL2_MUL_8 + * @arg @ref LL_RCC_PLL2_MUL_9 + * @arg @ref LL_RCC_PLL2_MUL_10 + * @arg @ref LL_RCC_PLL2_MUL_11 + * @arg @ref LL_RCC_PLL2_MUL_12 + * @arg @ref LL_RCC_PLL2_MUL_13 + * @arg @ref LL_RCC_PLL2_MUL_14 + * @arg @ref LL_RCC_PLL2_MUL_16 + * @arg @ref LL_RCC_PLL2_MUL_20 + * @retval None + */ +__STATIC_INLINE void LL_RCC_PLL_ConfigDomain_PLL2(uint32_t Divider, uint32_t Multiplicator) +{ + MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL, Divider | Multiplicator); +} + +/** + * @brief Get PLL2 Multiplication Factor + * @rmtoll CFGR2 PLL2MUL LL_RCC_PLL2_GetMultiplicator + * @retval Returned value can be one of the following values: + * @arg @ref LL_RCC_PLL2_MUL_8 + * @arg @ref LL_RCC_PLL2_MUL_9 + * @arg @ref LL_RCC_PLL2_MUL_10 + * @arg @ref LL_RCC_PLL2_MUL_11 + * @arg @ref LL_RCC_PLL2_MUL_12 + * @arg @ref LL_RCC_PLL2_MUL_13 + * @arg @ref LL_RCC_PLL2_MUL_14 + * @arg @ref LL_RCC_PLL2_MUL_16 + * @arg @ref LL_RCC_PLL2_MUL_20 + */ +__STATIC_INLINE uint32_t LL_RCC_PLL2_GetMultiplicator(void) +{ + return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PLL2MUL)); +} + +/** + * @} + */ +#endif /* RCC_PLL2_SUPPORT */ + +/** @defgroup RCC_LL_EF_FLAG_Management FLAG Management + * @{ + */ + +/** + * @brief Clear LSI ready interrupt flag + * @rmtoll CIR LSIRDYC LL_RCC_ClearFlag_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSIRDYC); +} + +/** + * @brief Clear LSE ready interrupt flag + * @rmtoll CIR LSERDYC LL_RCC_ClearFlag_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_LSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSERDYC); +} + +/** + * @brief Clear HSI ready interrupt flag + * @rmtoll CIR HSIRDYC LL_RCC_ClearFlag_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSIRDYC); +} + +/** + * @brief Clear HSE ready interrupt flag + * @rmtoll CIR HSERDYC LL_RCC_ClearFlag_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSERDYC); +} + +/** + * @brief Clear PLL ready interrupt flag + * @rmtoll CIR PLLRDYC LL_RCC_ClearFlag_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_PLLRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLLRDYC); +} + +#if defined(RCC_PLLI2S_SUPPORT) +/** + * @brief Clear PLLI2S ready interrupt flag + * @rmtoll CIR PLL3RDYC LL_RCC_ClearFlag_PLLI2SRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_PLLI2SRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLL3RDYC); +} +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** + * @brief Clear PLL2 ready interrupt flag + * @rmtoll CIR PLL2RDYC LL_RCC_ClearFlag_PLL2RDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_PLL2RDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLL2RDYC); +} +#endif /* RCC_PLL2_SUPPORT */ + +/** + * @brief Clear Clock security system interrupt flag + * @rmtoll CIR CSSC LL_RCC_ClearFlag_HSECSS + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearFlag_HSECSS(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_CSSC); +} + +/** + * @brief Check if LSI ready interrupt occurred or not + * @rmtoll CIR LSIRDYF LL_RCC_IsActiveFlag_LSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSIRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_LSIRDYF) == (RCC_CIR_LSIRDYF)); +} + +/** + * @brief Check if LSE ready interrupt occurred or not + * @rmtoll CIR LSERDYF LL_RCC_IsActiveFlag_LSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSERDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_LSERDYF) == (RCC_CIR_LSERDYF)); +} + +/** + * @brief Check if HSI ready interrupt occurred or not + * @rmtoll CIR HSIRDYF LL_RCC_IsActiveFlag_HSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSIRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_HSIRDYF) == (RCC_CIR_HSIRDYF)); +} + +/** + * @brief Check if HSE ready interrupt occurred or not + * @rmtoll CIR HSERDYF LL_RCC_IsActiveFlag_HSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSERDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_HSERDYF) == (RCC_CIR_HSERDYF)); +} + +/** + * @brief Check if PLL ready interrupt occurred or not + * @rmtoll CIR PLLRDYF LL_RCC_IsActiveFlag_PLLRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_PLLRDYF) == (RCC_CIR_PLLRDYF)); +} + +#if defined(RCC_PLLI2S_SUPPORT) +/** + * @brief Check if PLLI2S ready interrupt occurred or not + * @rmtoll CIR PLL3RDYF LL_RCC_IsActiveFlag_PLLI2SRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLI2SRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_PLL3RDYF) == (RCC_CIR_PLL3RDYF)); +} +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** + * @brief Check if PLL2 ready interrupt occurred or not + * @rmtoll CIR PLL2RDYF LL_RCC_IsActiveFlag_PLL2RDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLL2RDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_PLL2RDYF) == (RCC_CIR_PLL2RDYF)); +} +#endif /* RCC_PLL2_SUPPORT */ + +/** + * @brief Check if Clock security system interrupt occurred or not + * @rmtoll CIR CSSF LL_RCC_IsActiveFlag_HSECSS + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSECSS(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_CSSF) == (RCC_CIR_CSSF)); +} + +/** + * @brief Check if RCC flag Independent Watchdog reset is set or not. + * @rmtoll CSR IWDGRSTF LL_RCC_IsActiveFlag_IWDGRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_IWDGRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_IWDGRSTF) == (RCC_CSR_IWDGRSTF)); +} + +/** + * @brief Check if RCC flag Low Power reset is set or not. + * @rmtoll CSR LPWRRSTF LL_RCC_IsActiveFlag_LPWRRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LPWRRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_LPWRRSTF) == (RCC_CSR_LPWRRSTF)); +} + +/** + * @brief Check if RCC flag Pin reset is set or not. + * @rmtoll CSR PINRSTF LL_RCC_IsActiveFlag_PINRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PINRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_PINRSTF) == (RCC_CSR_PINRSTF)); +} + +/** + * @brief Check if RCC flag POR/PDR reset is set or not. + * @rmtoll CSR PORRSTF LL_RCC_IsActiveFlag_PORRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PORRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_PORRSTF) == (RCC_CSR_PORRSTF)); +} + +/** + * @brief Check if RCC flag Software reset is set or not. + * @rmtoll CSR SFTRSTF LL_RCC_IsActiveFlag_SFTRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_SFTRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_SFTRSTF) == (RCC_CSR_SFTRSTF)); +} + +/** + * @brief Check if RCC flag Window Watchdog reset is set or not. + * @rmtoll CSR WWDGRSTF LL_RCC_IsActiveFlag_WWDGRST + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_WWDGRST(void) +{ + return (READ_BIT(RCC->CSR, RCC_CSR_WWDGRSTF) == (RCC_CSR_WWDGRSTF)); +} + +/** + * @brief Set RMVF bit to clear the reset flags. + * @rmtoll CSR RMVF LL_RCC_ClearResetFlags + * @retval None + */ +__STATIC_INLINE void LL_RCC_ClearResetFlags(void) +{ + SET_BIT(RCC->CSR, RCC_CSR_RMVF); +} + +/** + * @} + */ + +/** @defgroup RCC_LL_EF_IT_Management IT Management + * @{ + */ + +/** + * @brief Enable LSI ready interrupt + * @rmtoll CIR LSIRDYIE LL_RCC_EnableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSIRDYIE); +} + +/** + * @brief Enable LSE ready interrupt + * @rmtoll CIR LSERDYIE LL_RCC_EnableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_LSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_LSERDYIE); +} + +/** + * @brief Enable HSI ready interrupt + * @rmtoll CIR HSIRDYIE LL_RCC_EnableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSIRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSIRDYIE); +} + +/** + * @brief Enable HSE ready interrupt + * @rmtoll CIR HSERDYIE LL_RCC_EnableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_HSERDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_HSERDYIE); +} + +/** + * @brief Enable PLL ready interrupt + * @rmtoll CIR PLLRDYIE LL_RCC_EnableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_PLLRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLLRDYIE); +} + +#if defined(RCC_PLLI2S_SUPPORT) +/** + * @brief Enable PLLI2S ready interrupt + * @rmtoll CIR PLL3RDYIE LL_RCC_EnableIT_PLLI2SRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_PLLI2SRDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLL3RDYIE); +} +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** + * @brief Enable PLL2 ready interrupt + * @rmtoll CIR PLL2RDYIE LL_RCC_EnableIT_PLL2RDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_EnableIT_PLL2RDY(void) +{ + SET_BIT(RCC->CIR, RCC_CIR_PLL2RDYIE); +} +#endif /* RCC_PLL2_SUPPORT */ + +/** + * @brief Disable LSI ready interrupt + * @rmtoll CIR LSIRDYIE LL_RCC_DisableIT_LSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSIRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_LSIRDYIE); +} + +/** + * @brief Disable LSE ready interrupt + * @rmtoll CIR LSERDYIE LL_RCC_DisableIT_LSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_LSERDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_LSERDYIE); +} + +/** + * @brief Disable HSI ready interrupt + * @rmtoll CIR HSIRDYIE LL_RCC_DisableIT_HSIRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSIRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_HSIRDYIE); +} + +/** + * @brief Disable HSE ready interrupt + * @rmtoll CIR HSERDYIE LL_RCC_DisableIT_HSERDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_HSERDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_HSERDYIE); +} + +/** + * @brief Disable PLL ready interrupt + * @rmtoll CIR PLLRDYIE LL_RCC_DisableIT_PLLRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_PLLRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_PLLRDYIE); +} + +#if defined(RCC_PLLI2S_SUPPORT) +/** + * @brief Disable PLLI2S ready interrupt + * @rmtoll CIR PLL3RDYIE LL_RCC_DisableIT_PLLI2SRDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_PLLI2SRDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_PLL3RDYIE); +} +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** + * @brief Disable PLL2 ready interrupt + * @rmtoll CIR PLL2RDYIE LL_RCC_DisableIT_PLL2RDY + * @retval None + */ +__STATIC_INLINE void LL_RCC_DisableIT_PLL2RDY(void) +{ + CLEAR_BIT(RCC->CIR, RCC_CIR_PLL2RDYIE); +} +#endif /* RCC_PLL2_SUPPORT */ + +/** + * @brief Checks if LSI ready interrupt source is enabled or disabled. + * @rmtoll CIR LSIRDYIE LL_RCC_IsEnabledIT_LSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSIRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_LSIRDYIE) == (RCC_CIR_LSIRDYIE)); +} + +/** + * @brief Checks if LSE ready interrupt source is enabled or disabled. + * @rmtoll CIR LSERDYIE LL_RCC_IsEnabledIT_LSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSERDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_LSERDYIE) == (RCC_CIR_LSERDYIE)); +} + +/** + * @brief Checks if HSI ready interrupt source is enabled or disabled. + * @rmtoll CIR HSIRDYIE LL_RCC_IsEnabledIT_HSIRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSIRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_HSIRDYIE) == (RCC_CIR_HSIRDYIE)); +} + +/** + * @brief Checks if HSE ready interrupt source is enabled or disabled. + * @rmtoll CIR HSERDYIE LL_RCC_IsEnabledIT_HSERDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSERDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_HSERDYIE) == (RCC_CIR_HSERDYIE)); +} + +/** + * @brief Checks if PLL ready interrupt source is enabled or disabled. + * @rmtoll CIR PLLRDYIE LL_RCC_IsEnabledIT_PLLRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_PLLRDYIE) == (RCC_CIR_PLLRDYIE)); +} + +#if defined(RCC_PLLI2S_SUPPORT) +/** + * @brief Checks if PLLI2S ready interrupt source is enabled or disabled. + * @rmtoll CIR PLL3RDYIE LL_RCC_IsEnabledIT_PLLI2SRDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLI2SRDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_PLL3RDYIE) == (RCC_CIR_PLL3RDYIE)); +} +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(RCC_PLL2_SUPPORT) +/** + * @brief Checks if PLL2 ready interrupt source is enabled or disabled. + * @rmtoll CIR PLL2RDYIE LL_RCC_IsEnabledIT_PLL2RDY + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLL2RDY(void) +{ + return (READ_BIT(RCC->CIR, RCC_CIR_PLL2RDYIE) == (RCC_CIR_PLL2RDYIE)); +} +#endif /* RCC_PLL2_SUPPORT */ + +/** + * @} + */ + +#if defined(USE_FULL_LL_DRIVER) +/** @defgroup RCC_LL_EF_Init De-initialization function + * @{ + */ +ErrorStatus LL_RCC_DeInit(void); +/** + * @} + */ + +/** @defgroup RCC_LL_EF_Get_Freq Get system and peripherals clocks frequency functions + * @{ + */ +void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks); +#if defined(RCC_CFGR2_I2S2SRC) +uint32_t LL_RCC_GetI2SClockFreq(uint32_t I2SxSource); +#endif /* RCC_CFGR2_I2S2SRC */ +#if defined(USB_OTG_FS) || defined(USB) +uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource); +#endif /* USB_OTG_FS || USB */ +uint32_t LL_RCC_GetADCClockFreq(uint32_t ADCxSource); +/** + * @} + */ +#endif /* USE_FULL_LL_DRIVER */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* RCC */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_LL_RCC_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/LLDrivers/inc/stm32f1xx_ll_system.h b/LLDrivers/inc/stm32f1xx_ll_system.h new file mode 100644 index 0000000..f62c1d2 --- /dev/null +++ b/LLDrivers/inc/stm32f1xx_ll_system.h @@ -0,0 +1,574 @@ +/** + ****************************************************************************** + * @file stm32f1xx_ll_system.h + * @author MCD Application Team + * @brief Header file of SYSTEM LL module. + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL SYSTEM driver contains a set of generic APIs that can be + used by user: + (+) Some of the FLASH features need to be handled in the SYSTEM file. + (+) Access to DBGCMU registers + (+) Access to SYSCFG registers + + @endverbatim + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_LL_SYSTEM_H +#define __STM32F1xx_LL_SYSTEM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx.h" + +/** @addtogroup STM32F1xx_LL_Driver + * @{ + */ + +#if defined (FLASH) || defined (DBGMCU) + +/** @defgroup SYSTEM_LL SYSTEM + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants + * @{ + */ + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants + * @{ + */ + + + +/** @defgroup SYSTEM_LL_EC_TRACE DBGMCU TRACE Pin Assignment + * @{ + */ +#define LL_DBGMCU_TRACE_NONE 0x00000000U /*!< TRACE pins not assigned (default state) */ +#define LL_DBGMCU_TRACE_ASYNCH DBGMCU_CR_TRACE_IOEN /*!< TRACE pin assignment for Asynchronous Mode */ +#define LL_DBGMCU_TRACE_SYNCH_SIZE1 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_0) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 1 */ +#define LL_DBGMCU_TRACE_SYNCH_SIZE2 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_1) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 2 */ +#define LL_DBGMCU_TRACE_SYNCH_SIZE4 (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 4 */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP + * @{ + */ +#define LL_DBGMCU_APB1_GRP1_TIM2_STOP DBGMCU_CR_DBG_TIM2_STOP /*!< TIM2 counter stopped when core is halted */ +#define LL_DBGMCU_APB1_GRP1_TIM3_STOP DBGMCU_CR_DBG_TIM3_STOP /*!< TIM3 counter stopped when core is halted */ +#define LL_DBGMCU_APB1_GRP1_TIM4_STOP DBGMCU_CR_DBG_TIM4_STOP /*!< TIM4 counter stopped when core is halted */ +#if defined(DBGMCU_CR_DBG_TIM5_STOP) +#define LL_DBGMCU_APB1_GRP1_TIM5_STOP DBGMCU_CR_DBG_TIM5_STOP /*!< TIM5 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM5_STOP */ +#if defined(DBGMCU_CR_DBG_TIM6_STOP) +#define LL_DBGMCU_APB1_GRP1_TIM6_STOP DBGMCU_CR_DBG_TIM6_STOP /*!< TIM6 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM6_STOP */ +#if defined(DBGMCU_CR_DBG_TIM7_STOP) +#define LL_DBGMCU_APB1_GRP1_TIM7_STOP DBGMCU_CR_DBG_TIM7_STOP /*!< TIM7 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM7_STOP */ +#if defined(DBGMCU_CR_DBG_TIM12_STOP) +#define LL_DBGMCU_APB1_GRP1_TIM12_STOP DBGMCU_CR_DBG_TIM12_STOP /*!< TIM12 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM12_STOP */ +#if defined(DBGMCU_CR_DBG_TIM13_STOP) +#define LL_DBGMCU_APB1_GRP1_TIM13_STOP DBGMCU_CR_DBG_TIM13_STOP /*!< TIM13 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM13_STOP */ +#if defined(DBGMCU_CR_DBG_TIM14_STOP) +#define LL_DBGMCU_APB1_GRP1_TIM14_STOP DBGMCU_CR_DBG_TIM14_STOP /*!< TIM14 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM14_STOP */ +#define LL_DBGMCU_APB1_GRP1_WWDG_STOP DBGMCU_CR_DBG_WWDG_STOP /*!< Debug Window Watchdog stopped when Core is halted */ +#define LL_DBGMCU_APB1_GRP1_IWDG_STOP DBGMCU_CR_DBG_IWDG_STOP /*!< Debug Independent Watchdog stopped when Core is halted */ +#define LL_DBGMCU_APB1_GRP1_I2C1_STOP DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT /*!< I2C1 SMBUS timeout mode stopped when Core is halted */ +#if defined(DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT) +#define LL_DBGMCU_APB1_GRP1_I2C2_STOP DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT /*!< I2C2 SMBUS timeout mode stopped when Core is halted */ +#endif /* DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT */ +#if defined(DBGMCU_CR_DBG_CAN1_STOP) +#define LL_DBGMCU_APB1_GRP1_CAN1_STOP DBGMCU_CR_DBG_CAN1_STOP /*!< CAN1 debug stopped when Core is halted */ +#endif /* DBGMCU_CR_DBG_CAN1_STOP */ +#if defined(DBGMCU_CR_DBG_CAN2_STOP) +#define LL_DBGMCU_APB1_GRP1_CAN2_STOP DBGMCU_CR_DBG_CAN2_STOP /*!< CAN2 debug stopped when Core is halted */ +#endif /* DBGMCU_CR_DBG_CAN2_STOP */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP + * @{ + */ +#define LL_DBGMCU_APB2_GRP1_TIM1_STOP DBGMCU_CR_DBG_TIM1_STOP /*!< TIM1 counter stopped when core is halted */ +#if defined(DBGMCU_CR_DBG_TIM8_STOP) +#define LL_DBGMCU_APB2_GRP1_TIM8_STOP DBGMCU_CR_DBG_TIM8_STOP /*!< TIM8 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_CAN1_STOP */ +#if defined(DBGMCU_CR_DBG_TIM9_STOP) +#define LL_DBGMCU_APB2_GRP1_TIM9_STOP DBGMCU_CR_DBG_TIM9_STOP /*!< TIM9 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM9_STOP */ +#if defined(DBGMCU_CR_DBG_TIM10_STOP) +#define LL_DBGMCU_APB2_GRP1_TIM10_STOP DBGMCU_CR_DBG_TIM10_STOP /*!< TIM10 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM10_STOP */ +#if defined(DBGMCU_CR_DBG_TIM11_STOP) +#define LL_DBGMCU_APB2_GRP1_TIM11_STOP DBGMCU_CR_DBG_TIM11_STOP /*!< TIM11 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM11_STOP */ +#if defined(DBGMCU_CR_DBG_TIM15_STOP) +#define LL_DBGMCU_APB2_GRP1_TIM15_STOP DBGMCU_CR_DBG_TIM15_STOP /*!< TIM15 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM15_STOP */ +#if defined(DBGMCU_CR_DBG_TIM16_STOP) +#define LL_DBGMCU_APB2_GRP1_TIM16_STOP DBGMCU_CR_DBG_TIM16_STOP /*!< TIM16 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM16_STOP */ +#if defined(DBGMCU_CR_DBG_TIM17_STOP) +#define LL_DBGMCU_APB2_GRP1_TIM17_STOP DBGMCU_CR_DBG_TIM17_STOP /*!< TIM17 counter stopped when core is halted */ +#endif /* DBGMCU_CR_DBG_TIM17_STOP */ +/** + * @} + */ + +/** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY + * @{ + */ +#if defined(FLASH_ACR_LATENCY) +#define LL_FLASH_LATENCY_0 0x00000000U /*!< FLASH Zero Latency cycle */ +#define LL_FLASH_LATENCY_1 FLASH_ACR_LATENCY_0 /*!< FLASH One Latency cycle */ +#define LL_FLASH_LATENCY_2 FLASH_ACR_LATENCY_1 /*!< FLASH Two wait states */ +#else +#endif /* FLASH_ACR_LATENCY */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions + * @{ + */ + + + +/** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU + * @{ + */ + +/** + * @brief Return the device identifier + * @note For Low Density devices, the device ID is 0x412 + * @note For Medium Density devices, the device ID is 0x410 + * @note For High Density devices, the device ID is 0x414 + * @note For XL Density devices, the device ID is 0x430 + * @note For Connectivity Line devices, the device ID is 0x418 + * @rmtoll DBGMCU_IDCODE DEV_ID LL_DBGMCU_GetDeviceID + * @retval Values between Min_Data=0x00 and Max_Data=0xFFF + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID)); +} + +/** + * @brief Return the device revision identifier + * @note This field indicates the revision of the device. + For example, it is read as revA -> 0x1000,for Low Density devices + For example, it is read as revA -> 0x0000, revB -> 0x2000, revZ -> 0x2001, rev1,2,3,X or Y -> 0x2003,for Medium Density devices + For example, it is read as revA or 1 -> 0x1000, revZ -> 0x1001,rev1,2,3,X or Y -> 0x1003,for Medium Density devices + For example, it is read as revA or 1 -> 0x1003,for XL Density devices + For example, it is read as revA -> 0x1000, revZ -> 0x1001 for Connectivity line devices + * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID + * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos); +} + +/** + * @brief Enable the Debug Module during SLEEP mode + * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_EnableDBGSleepMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Disable the Debug Module during SLEEP mode + * @rmtoll DBGMCU_CR DBG_SLEEP LL_DBGMCU_DisableDBGSleepMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP); +} + +/** + * @brief Enable the Debug Module during STOP mode + * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_EnableDBGStopMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Disable the Debug Module during STOP mode + * @rmtoll DBGMCU_CR DBG_STOP LL_DBGMCU_DisableDBGStopMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP); +} + +/** + * @brief Enable the Debug Module during STANDBY mode + * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_EnableDBGStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void) +{ + SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Disable the Debug Module during STANDBY mode + * @rmtoll DBGMCU_CR DBG_STANDBY LL_DBGMCU_DisableDBGStandbyMode + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void) +{ + CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY); +} + +/** + * @brief Set Trace pin assignment control + * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_SetTracePinAssignment\n + * DBGMCU_CR TRACE_MODE LL_DBGMCU_SetTracePinAssignment + * @param PinAssignment This parameter can be one of the following values: + * @arg @ref LL_DBGMCU_TRACE_NONE + * @arg @ref LL_DBGMCU_TRACE_ASYNCH + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment) +{ + MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment); +} + +/** + * @brief Get Trace pin assignment control + * @rmtoll DBGMCU_CR TRACE_IOEN LL_DBGMCU_GetTracePinAssignment\n + * DBGMCU_CR TRACE_MODE LL_DBGMCU_GetTracePinAssignment + * @retval Returned value can be one of the following values: + * @arg @ref LL_DBGMCU_TRACE_NONE + * @arg @ref LL_DBGMCU_TRACE_ASYNCH + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2 + * @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4 + */ +__STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void) +{ + return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE)); +} + +/** + * @brief Freeze APB1 peripherals (group1 peripherals) + * @rmtoll DBGMCU_CR_APB1 DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_CAN1_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph\n + * DBGMCU_CR_APB1 DBG_CAN2_STOP LL_DBGMCU_APB1_GRP1_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_CAN1_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_CAN2_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->CR, Periphs); +} + +/** + * @brief Unfreeze APB1 peripherals (group1 peripherals) + * @rmtoll DBGMCU_CR_APB1 DBG_TIM2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM3_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM4_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM5_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM6_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM7_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM12_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM13_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_TIM14_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_RTC_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_WWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_IWDG_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_I2C1_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_I2C2_SMBUS_TIMEOUT LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_CAN1_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n + * DBGMCU_CR_APB1 DBG_CAN2_STOP LL_DBGMCU_APB1_GRP1_UnFreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP + * @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_CAN1_STOP (*) + * @arg @ref LL_DBGMCU_APB1_GRP1_CAN2_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->CR, Periphs); +} + +/** + * @brief Freeze APB2 peripherals + * @rmtoll DBGMCU_CR_APB2 DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs) +{ + SET_BIT(DBGMCU->CR, Periphs); +} + +/** + * @brief Unfreeze APB2 peripherals + * @rmtoll DBGMCU_CR_APB2 DBG_TIM1_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM8_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM9_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM10_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM11_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM15_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM16_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph\n + * DBGMCU_CR_APB2 DBG_TIM17_STOP LL_DBGMCU_APB2_GRP1_FreezePeriph + * @param Periphs This parameter can be a combination of the following values: + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP (*) + * @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP (*) + * + * (*) value not defined in all devices. + * @retval None + */ +__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs) +{ + CLEAR_BIT(DBGMCU->CR, Periphs); +} +/** + * @} + */ + +#if defined(FLASH_ACR_LATENCY) +/** @defgroup SYSTEM_LL_EF_FLASH FLASH + * @{ + */ + +/** + * @brief Set FLASH Latency + * @rmtoll FLASH_ACR LATENCY LL_FLASH_SetLatency + * @param Latency This parameter can be one of the following values: + * @arg @ref LL_FLASH_LATENCY_0 + * @arg @ref LL_FLASH_LATENCY_1 + * @arg @ref LL_FLASH_LATENCY_2 + * @retval None + */ +__STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency) +{ + MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency); +} + +/** + * @brief Get FLASH Latency + * @rmtoll FLASH_ACR LATENCY LL_FLASH_GetLatency + * @retval Returned value can be one of the following values: + * @arg @ref LL_FLASH_LATENCY_0 + * @arg @ref LL_FLASH_LATENCY_1 + * @arg @ref LL_FLASH_LATENCY_2 + */ +__STATIC_INLINE uint32_t LL_FLASH_GetLatency(void) +{ + return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY)); +} + +/** + * @brief Enable Prefetch + * @rmtoll FLASH_ACR PRFTBE LL_FLASH_EnablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnablePrefetch(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_PRFTBE); +} + +/** + * @brief Disable Prefetch + * @rmtoll FLASH_ACR PRFTBE LL_FLASH_DisablePrefetch + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisablePrefetch(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTBE); +} + +/** + * @brief Check if Prefetch buffer is enabled + * @rmtoll FLASH_ACR PRFTBS LL_FLASH_IsPrefetchEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void) +{ + return (READ_BIT(FLASH->ACR, FLASH_ACR_PRFTBS) == (FLASH_ACR_PRFTBS)); +} + +#endif /* FLASH_ACR_LATENCY */ +/** + * @brief Enable Flash Half Cycle Access + * @rmtoll FLASH_ACR HLFCYA LL_FLASH_EnableHalfCycleAccess + * @retval None + */ +__STATIC_INLINE void LL_FLASH_EnableHalfCycleAccess(void) +{ + SET_BIT(FLASH->ACR, FLASH_ACR_HLFCYA); +} + +/** + * @brief Disable Flash Half Cycle Access + * @rmtoll FLASH_ACR HLFCYA LL_FLASH_DisableHalfCycleAccess + * @retval None + */ +__STATIC_INLINE void LL_FLASH_DisableHalfCycleAccess(void) +{ + CLEAR_BIT(FLASH->ACR, FLASH_ACR_HLFCYA); +} + +/** + * @brief Check if Flash Half Cycle Access is enabled or not + * @rmtoll FLASH_ACR HLFCYA LL_FLASH_IsHalfCycleAccessEnabled + * @retval State of bit (1 or 0). + */ +__STATIC_INLINE uint32_t LL_FLASH_IsHalfCycleAccessEnabled(void) +{ + return (READ_BIT(FLASH->ACR, FLASH_ACR_HLFCYA) == (FLASH_ACR_HLFCYA)); +} + + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined (FLASH) || defined (DBGMCU) */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_LL_SYSTEM_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/LLDrivers/inc/stm32f1xx_ll_utils.h b/LLDrivers/inc/stm32f1xx_ll_utils.h new file mode 100644 index 0000000..e7616fd --- /dev/null +++ b/LLDrivers/inc/stm32f1xx_ll_utils.h @@ -0,0 +1,266 @@ +/** + ****************************************************************************** + * @file stm32f1xx_ll_utils.h + * @author MCD Application Team + * @brief Header file of UTILS LL module. + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The LL UTILS driver contains a set of generic APIs that can be + used by user: + (+) Device electronic signature + (+) Timing functions + (+) PLL configuration functions + + @endverbatim + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F1xx_LL_UTILS_H +#define __STM32F1xx_LL_UTILS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx.h" + +/** @addtogroup STM32F1xx_LL_Driver + * @{ + */ + +/** @defgroup UTILS_LL UTILS + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup UTILS_LL_Private_Constants UTILS Private Constants + * @{ + */ + +/* Max delay can be used in LL_mDelay */ +#define LL_MAX_DELAY 0xFFFFFFFFU + +/** + * @brief Unique device ID register base address + */ +#define UID_BASE_ADDRESS UID_BASE + +/** + * @brief Flash size data register base address + */ +#define FLASHSIZE_BASE_ADDRESS FLASHSIZE_BASE + +/** + * @} + */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup UTILS_LL_Private_Macros UTILS Private Macros + * @{ + */ +/** + * @} + */ +/* Exported types ------------------------------------------------------------*/ +/** @defgroup UTILS_LL_ES_INIT UTILS Exported structures + * @{ + */ +/** + * @brief UTILS PLL structure definition + */ +typedef struct +{ + uint32_t PLLMul; /*!< Multiplication factor for PLL VCO input clock. + This parameter can be a value of @ref RCC_LL_EC_PLL_MUL + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ + + uint32_t Prediv; /*!< Division factor for HSE used as PLL clock source. + This parameter can be a value of @ref RCC_LL_EC_PREDIV_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_PLL_ConfigDomain_SYS(). */ +} LL_UTILS_PLLInitTypeDef; + +/** + * @brief UTILS System, AHB and APB buses clock configuration structure definition + */ +typedef struct +{ + uint32_t AHBCLKDivider; /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK). + This parameter can be a value of @ref RCC_LL_EC_SYSCLK_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAHBPrescaler(). */ + + uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_LL_EC_APB1_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAPB1Prescaler(). */ + + uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK). + This parameter can be a value of @ref RCC_LL_EC_APB2_DIV + + This feature can be modified afterwards using unitary function + @ref LL_RCC_SetAPB2Prescaler(). */ + +} LL_UTILS_ClkInitTypeDef; + +/** + * @} + */ + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup UTILS_LL_Exported_Constants UTILS Exported Constants + * @{ + */ + +/** @defgroup UTILS_EC_HSE_BYPASS HSE Bypass activation + * @{ + */ +#define LL_UTILS_HSEBYPASS_OFF 0x00000000U /*!< HSE Bypass is not enabled */ +#define LL_UTILS_HSEBYPASS_ON 0x00000001U /*!< HSE Bypass is enabled */ +/** + * @} + */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup UTILS_LL_Exported_Functions UTILS Exported Functions + * @{ + */ + +/** @defgroup UTILS_EF_DEVICE_ELECTRONIC_SIGNATURE DEVICE ELECTRONIC SIGNATURE + * @{ + */ + +/** + * @brief Get Word0 of the unique device identifier (UID based on 96 bits) + * @retval UID[31:0] + */ +__STATIC_INLINE uint32_t LL_GetUID_Word0(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)UID_BASE_ADDRESS))); +} + +/** + * @brief Get Word1 of the unique device identifier (UID based on 96 bits) + * @retval UID[63:32] + */ +__STATIC_INLINE uint32_t LL_GetUID_Word1(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 4U)))); +} + +/** + * @brief Get Word2 of the unique device identifier (UID based on 96 bits) + * @retval UID[95:64] + */ +__STATIC_INLINE uint32_t LL_GetUID_Word2(void) +{ + return (uint32_t)(READ_REG(*((uint32_t *)(UID_BASE_ADDRESS + 8U)))); +} + +/** + * @brief Get Flash memory size + * @note This bitfield indicates the size of the device Flash memory expressed in + * Kbytes. As an example, 0x040 corresponds to 64 Kbytes. + * @retval FLASH_SIZE[15:0]: Flash memory size + */ +__STATIC_INLINE uint32_t LL_GetFlashSize(void) +{ + return (uint16_t)(READ_REG(*((uint32_t *)FLASHSIZE_BASE_ADDRESS))); +} + + +/** + * @} + */ + +/** @defgroup UTILS_LL_EF_DELAY DELAY + * @{ + */ + +/** + * @brief This function configures the Cortex-M SysTick source of the time base. + * @param HCLKFrequency HCLK frequency in Hz (can be calculated thanks to RCC helper macro) + * @note When a RTOS is used, it is recommended to avoid changing the SysTick + * configuration by calling this function, for a delay use rather osDelay RTOS service. + * @param Ticks Number of ticks + * @retval None + */ +__STATIC_INLINE void LL_InitTick(uint32_t HCLKFrequency, uint32_t Ticks) +{ + /* Configure the SysTick to have interrupt in 1ms time base */ + SysTick->LOAD = (uint32_t)((HCLKFrequency / Ticks) - 1UL); /* set reload register */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable the Systick Timer */ +} + +void LL_Init1msTick(uint32_t HCLKFrequency); +void LL_mDelay(uint32_t Delay); + +/** + * @} + */ + +/** @defgroup UTILS_EF_SYSTEM SYSTEM + * @{ + */ + +void LL_SetSystemCoreClock(uint32_t HCLKFrequency); +ErrorStatus LL_PLL_ConfigSystemClock_HSI(LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, + LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); +ErrorStatus LL_PLL_ConfigSystemClock_HSE(uint32_t HSEFrequency, uint32_t HSEBypass, + LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F1xx_LL_UTILS_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/LLDrivers/src/stm32f1xx_ll_rcc.c b/LLDrivers/src/stm32f1xx_ll_rcc.c new file mode 100644 index 0000000..2f63c33 --- /dev/null +++ b/LLDrivers/src/stm32f1xx_ll_rcc.c @@ -0,0 +1,474 @@ +/** + ****************************************************************************** + * @file stm32f1xx_ll_rcc.c + * @author MCD Application Team + * @brief RCC LL module driver. + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +#if defined(USE_FULL_LL_DRIVER) + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_ll_rcc.h" +#ifdef USE_FULL_ASSERT +#include "stm32_assert.h" +#else +#define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ +/** @addtogroup STM32F1xx_LL_Driver + * @{ + */ + +#if defined(RCC) + +/** @defgroup RCC_LL RCC + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/** @addtogroup RCC_LL_Private_Macros + * @{ + */ +#if defined(RCC_PLLI2S_SUPPORT) +#define IS_LL_RCC_I2S_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_I2S2_CLKSOURCE) \ + || ((__VALUE__) == LL_RCC_I2S3_CLKSOURCE)) +#endif /* RCC_PLLI2S_SUPPORT */ + +#if defined(USB) || defined(USB_OTG_FS) +#define IS_LL_RCC_USB_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_USB_CLKSOURCE)) +#endif /* USB */ + +#define IS_LL_RCC_ADC_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_ADC_CLKSOURCE)) +/** + * @} + */ + +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup RCC_LL_Private_Functions RCC Private functions + * @{ + */ +uint32_t RCC_GetSystemClockFreq(void); +uint32_t RCC_GetHCLKClockFreq(uint32_t SYSCLK_Frequency); +uint32_t RCC_GetPCLK1ClockFreq(uint32_t HCLK_Frequency); +uint32_t RCC_GetPCLK2ClockFreq(uint32_t HCLK_Frequency); +uint32_t RCC_PLL_GetFreqDomain_SYS(void); +#if defined(RCC_PLLI2S_SUPPORT) +uint32_t RCC_PLLI2S_GetFreqDomain_I2S(void); +#endif /* RCC_PLLI2S_SUPPORT */ +#if defined(RCC_PLL2_SUPPORT) +uint32_t RCC_PLL2_GetFreqClockFreq(void); +#endif /* RCC_PLL2_SUPPORT */ +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup RCC_LL_Exported_Functions + * @{ + */ + +/** @addtogroup RCC_LL_EF_Init + * @{ + */ + +/** + * @brief Reset the RCC clock configuration to the default reset state. + * @note The default reset state of the clock configuration is given below: + * - HSI ON and used as system clock source + * - HSE PLL, PLL2 & PLL3 are OFF + * - AHB, APB1 and APB2 prescaler set to 1. + * - CSS, MCO OFF + * - All interrupts disabled + * @note This function doesn't modify the configuration of the + * - Peripheral clocks + * - LSI, LSE and RTC clocks + * @retval An ErrorStatus enumeration value: + * - SUCCESS: RCC registers are de-initialized + * - ERROR: not applicable + */ +ErrorStatus LL_RCC_DeInit(void) +{ + /* Set HSION bit */ + LL_RCC_HSI_Enable(); + + /* Wait for HSI READY bit */ + while (LL_RCC_HSI_IsReady() != 1U) + {} + + /* Configure HSI as system clock source */ + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSI); + + /* Wait till clock switch is ready */ + while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSI) + {} + + /* Reset PLLON bit */ + CLEAR_BIT(RCC->CR, RCC_CR_PLLON); + + /* Wait for PLL READY bit to be reset */ + while (LL_RCC_PLL_IsReady() != 0U) + {} + + /* Reset CFGR register */ + LL_RCC_WriteReg(CFGR, 0x00000000U); + + /* Reset HSEON, HSEBYP & CSSON bits */ + CLEAR_BIT(RCC->CR, (RCC_CR_CSSON | RCC_CR_HSEON | RCC_CR_HSEBYP)); + +#if defined(RCC_CR_PLL2ON) + /* Reset PLL2ON bit */ + CLEAR_BIT(RCC->CR, RCC_CR_PLL2ON); +#endif /* RCC_CR_PLL2ON */ + +#if defined(RCC_CR_PLL3ON) + /* Reset PLL3ON bit */ + CLEAR_BIT(RCC->CR, RCC_CR_PLL3ON); +#endif /* RCC_CR_PLL3ON */ + + /* Set HSITRIM bits to the reset value */ + LL_RCC_HSI_SetCalibTrimming(0x10U); + +#if defined(RCC_CFGR2_PREDIV1) + /* Reset CFGR2 register */ + LL_RCC_WriteReg(CFGR2, 0x00000000U); +#endif /* RCC_CFGR2_PREDIV1 */ + + /* Disable all interrupts */ + LL_RCC_WriteReg(CIR, 0x00000000U); + + /* Clear reset flags */ + LL_RCC_ClearResetFlags(); + + return SUCCESS; +} + +/** + * @} + */ + +/** @addtogroup RCC_LL_EF_Get_Freq + * @brief Return the frequencies of different on chip clocks; System, AHB, APB1 and APB2 buses clocks + * and different peripheral clocks available on the device. + * @note If SYSCLK source is HSI, function returns values based on HSI_VALUE(**) + * @note If SYSCLK source is HSE, function returns values based on HSE_VALUE(***) + * @note If SYSCLK source is PLL, function returns values based on + * HSI_VALUE(**) or HSE_VALUE(***) multiplied/divided by the PLL factors. + * @note (**) HSI_VALUE is a defined constant but the real value may vary + * depending on the variations in voltage and temperature. + * @note (***) HSE_VALUE is a defined constant, user has to ensure that + * HSE_VALUE is same as the real frequency of the crystal used. + * Otherwise, this function may have wrong result. + * @note The result of this function could be incorrect when using fractional + * value for HSE crystal. + * @note This function can be used by the user application to compute the + * baud-rate for the communication peripherals or configure other parameters. + * @{ + */ + +/** + * @brief Return the frequencies of different on chip clocks; System, AHB, APB1 and APB2 buses clocks + * @note Each time SYSCLK, HCLK, PCLK1 and/or PCLK2 clock changes, this function + * must be called to update structure fields. Otherwise, any + * configuration based on this function will be incorrect. + * @param RCC_Clocks pointer to a @ref LL_RCC_ClocksTypeDef structure which will hold the clocks frequencies + * @retval None + */ +void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks) +{ + /* Get SYSCLK frequency */ + RCC_Clocks->SYSCLK_Frequency = RCC_GetSystemClockFreq(); + + /* HCLK clock frequency */ + RCC_Clocks->HCLK_Frequency = RCC_GetHCLKClockFreq(RCC_Clocks->SYSCLK_Frequency); + + /* PCLK1 clock frequency */ + RCC_Clocks->PCLK1_Frequency = RCC_GetPCLK1ClockFreq(RCC_Clocks->HCLK_Frequency); + + /* PCLK2 clock frequency */ + RCC_Clocks->PCLK2_Frequency = RCC_GetPCLK2ClockFreq(RCC_Clocks->HCLK_Frequency); +} + +#if defined(RCC_CFGR2_I2S2SRC) +/** + * @brief Return I2Sx clock frequency + * @param I2SxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_I2S2_CLKSOURCE + * @arg @ref LL_RCC_I2S3_CLKSOURCE + * @retval I2S clock frequency (in Hz) + */ +uint32_t LL_RCC_GetI2SClockFreq(uint32_t I2SxSource) +{ + uint32_t i2s_frequency = LL_RCC_PERIPH_FREQUENCY_NO; + + /* Check parameter */ + assert_param(IS_LL_RCC_I2S_CLKSOURCE(I2SxSource)); + + /* I2S1CLK clock frequency */ + switch (LL_RCC_GetI2SClockSource(I2SxSource)) + { + case LL_RCC_I2S2_CLKSOURCE_SYSCLK: /*!< System clock selected as I2S clock source */ + case LL_RCC_I2S3_CLKSOURCE_SYSCLK: + i2s_frequency = RCC_GetSystemClockFreq(); + break; + + case LL_RCC_I2S2_CLKSOURCE_PLLI2S_VCO: /*!< PLLI2S oscillator clock selected as I2S clock source */ + case LL_RCC_I2S3_CLKSOURCE_PLLI2S_VCO: + default: + i2s_frequency = RCC_PLLI2S_GetFreqDomain_I2S() * 2U; + break; + } + + return i2s_frequency; +} +#endif /* RCC_CFGR2_I2S2SRC */ + +#if defined(USB) || defined(USB_OTG_FS) +/** + * @brief Return USBx clock frequency + * @param USBxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_USB_CLKSOURCE + * @retval USB clock frequency (in Hz) + * @arg @ref LL_RCC_PERIPH_FREQUENCY_NO indicates that oscillator (HSI), HSE or PLL is not ready + */ +uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource) +{ + uint32_t usb_frequency = LL_RCC_PERIPH_FREQUENCY_NO; + + /* Check parameter */ + assert_param(IS_LL_RCC_USB_CLKSOURCE(USBxSource)); + + /* USBCLK clock frequency */ + switch (LL_RCC_GetUSBClockSource(USBxSource)) + { +#if defined(RCC_CFGR_USBPRE) + case LL_RCC_USB_CLKSOURCE_PLL: /* PLL clock used as USB clock source */ + if (LL_RCC_PLL_IsReady()) + { + usb_frequency = RCC_PLL_GetFreqDomain_SYS(); + } + break; + + case LL_RCC_USB_CLKSOURCE_PLL_DIV_1_5: /* PLL clock divided by 1.5 used as USB clock source */ + default: + if (LL_RCC_PLL_IsReady()) + { + usb_frequency = (RCC_PLL_GetFreqDomain_SYS() * 3U) / 2U; + } + break; +#endif /* RCC_CFGR_USBPRE */ +#if defined(RCC_CFGR_OTGFSPRE) + /* USBCLK = PLLVCO/2 + = (2 x PLLCLK) / 2 + = PLLCLK */ + case LL_RCC_USB_CLKSOURCE_PLL_DIV_2: /* PLL clock used as USB clock source */ + if (LL_RCC_PLL_IsReady()) + { + usb_frequency = RCC_PLL_GetFreqDomain_SYS(); + } + break; + + /* USBCLK = PLLVCO/3 + = (2 x PLLCLK) / 3 */ + case LL_RCC_USB_CLKSOURCE_PLL_DIV_3: /* PLL clock divided by 3 used as USB clock source */ + default: + if (LL_RCC_PLL_IsReady()) + { + usb_frequency = (RCC_PLL_GetFreqDomain_SYS() * 2U) / 3U; + } + break; +#endif /* RCC_CFGR_OTGFSPRE */ + } + + return usb_frequency; +} +#endif /* USB */ + +/** + * @brief Return ADCx clock frequency + * @param ADCxSource This parameter can be one of the following values: + * @arg @ref LL_RCC_ADC_CLKSOURCE + * @retval ADC clock frequency (in Hz) + */ +uint32_t LL_RCC_GetADCClockFreq(uint32_t ADCxSource) +{ + uint32_t adc_prescaler = 0U; + uint32_t adc_frequency = 0U; + + /* Check parameter */ + assert_param(IS_LL_RCC_ADC_CLKSOURCE(ADCxSource)); + + /* Get ADC prescaler */ + adc_prescaler = LL_RCC_GetADCClockSource(ADCxSource); + + /* ADC frequency = PCLK2 frequency / ADC prescaler (2, 4, 6 or 8) */ + adc_frequency = RCC_GetPCLK2ClockFreq(RCC_GetHCLKClockFreq(RCC_GetSystemClockFreq())) + / (((adc_prescaler >> POSITION_VAL(ADCxSource)) + 1U) * 2U); + + return adc_frequency; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup RCC_LL_Private_Functions + * @{ + */ + +/** + * @brief Return SYSTEM clock frequency + * @retval SYSTEM clock frequency (in Hz) + */ +uint32_t RCC_GetSystemClockFreq(void) +{ + uint32_t frequency = 0U; + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (LL_RCC_GetSysClkSource()) + { + case LL_RCC_SYS_CLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + frequency = HSI_VALUE; + break; + + case LL_RCC_SYS_CLKSOURCE_STATUS_HSE: /* HSE used as system clock source */ + frequency = HSE_VALUE; + break; + + case LL_RCC_SYS_CLKSOURCE_STATUS_PLL: /* PLL used as system clock source */ + frequency = RCC_PLL_GetFreqDomain_SYS(); + break; + + default: + frequency = HSI_VALUE; + break; + } + + return frequency; +} + +/** + * @brief Return HCLK clock frequency + * @param SYSCLK_Frequency SYSCLK clock frequency + * @retval HCLK clock frequency (in Hz) + */ +uint32_t RCC_GetHCLKClockFreq(uint32_t SYSCLK_Frequency) +{ + /* HCLK clock frequency */ + return __LL_RCC_CALC_HCLK_FREQ(SYSCLK_Frequency, LL_RCC_GetAHBPrescaler()); +} + +/** + * @brief Return PCLK1 clock frequency + * @param HCLK_Frequency HCLK clock frequency + * @retval PCLK1 clock frequency (in Hz) + */ +uint32_t RCC_GetPCLK1ClockFreq(uint32_t HCLK_Frequency) +{ + /* PCLK1 clock frequency */ + return __LL_RCC_CALC_PCLK1_FREQ(HCLK_Frequency, LL_RCC_GetAPB1Prescaler()); +} + +/** + * @brief Return PCLK2 clock frequency + * @param HCLK_Frequency HCLK clock frequency + * @retval PCLK2 clock frequency (in Hz) + */ +uint32_t RCC_GetPCLK2ClockFreq(uint32_t HCLK_Frequency) +{ + /* PCLK2 clock frequency */ + return __LL_RCC_CALC_PCLK2_FREQ(HCLK_Frequency, LL_RCC_GetAPB2Prescaler()); +} + +/** + * @brief Return PLL clock frequency used for system domain + * @retval PLL clock frequency (in Hz) + */ +uint32_t RCC_PLL_GetFreqDomain_SYS(void) +{ + uint32_t pllinputfreq = 0U, pllsource = 0U; + + /* PLL_VCO = (HSE_VALUE, HSI_VALUE or PLL2 / PLL Predivider) * PLL Multiplicator */ + + /* Get PLL source */ + pllsource = LL_RCC_PLL_GetMainSource(); + + switch (pllsource) + { + case LL_RCC_PLLSOURCE_HSI_DIV_2: /* HSI used as PLL clock source */ + pllinputfreq = HSI_VALUE / 2U; + break; + + case LL_RCC_PLLSOURCE_HSE: /* HSE used as PLL clock source */ + pllinputfreq = HSE_VALUE / (LL_RCC_PLL_GetPrediv() + 1U); + break; + +#if defined(RCC_PLL2_SUPPORT) + case LL_RCC_PLLSOURCE_PLL2: /* PLL2 used as PLL clock source */ + pllinputfreq = RCC_PLL2_GetFreqClockFreq() / (LL_RCC_PLL_GetPrediv() + 1U); + break; +#endif /* RCC_PLL2_SUPPORT */ + + default: + pllinputfreq = HSI_VALUE / 2U; + break; + } + return __LL_RCC_CALC_PLLCLK_FREQ(pllinputfreq, LL_RCC_PLL_GetMultiplicator()); +} + +#if defined(RCC_PLL2_SUPPORT) +/** + * @brief Return PLL clock frequency used for system domain + * @retval PLL clock frequency (in Hz) + */ +uint32_t RCC_PLL2_GetFreqClockFreq(void) +{ + return __LL_RCC_CALC_PLL2CLK_FREQ(HSE_VALUE, LL_RCC_PLL2_GetMultiplicator(), LL_RCC_HSE_GetPrediv2()); +} +#endif /* RCC_PLL2_SUPPORT */ + +#if defined(RCC_PLLI2S_SUPPORT) +/** + * @brief Return PLL clock frequency used for system domain + * @retval PLL clock frequency (in Hz) + */ +uint32_t RCC_PLLI2S_GetFreqDomain_I2S(void) +{ + return __LL_RCC_CALC_PLLI2SCLK_FREQ(HSE_VALUE, LL_RCC_PLLI2S_GetMultiplicator(), LL_RCC_HSE_GetPrediv2()); +} +#endif /* RCC_PLLI2S_SUPPORT */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* defined(RCC) */ + +/** + * @} + */ + +#endif /* USE_FULL_LL_DRIVER */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/LLDrivers/src/stm32f1xx_ll_utils.c b/LLDrivers/src/stm32f1xx_ll_utils.c new file mode 100644 index 0000000..1978dc3 --- /dev/null +++ b/LLDrivers/src/stm32f1xx_ll_utils.c @@ -0,0 +1,606 @@ +/** + ****************************************************************************** + * @file stm32f1xx_ll_utils.c + * @author MCD Application Team + * @brief UTILS LL module driver. + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f1xx_ll_rcc.h" +#include "stm32f1xx_ll_utils.h" +#include "stm32f1xx_ll_system.h" +#ifdef USE_FULL_ASSERT +#include "stm32_assert.h" +#else +#define assert_param(expr) ((void)0U) +#endif + +/** @addtogroup STM32F1xx_LL_Driver + * @{ + */ + +/** @addtogroup UTILS_LL + * @{ + */ + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/** @addtogroup UTILS_LL_Private_Constants + * @{ + */ + +/* Defines used for PLL range */ +#define UTILS_PLL_OUTPUT_MAX RCC_MAX_FREQUENCY /*!< Frequency max for PLL output, in Hz */ + +/* Defines used for HSE range */ +#define UTILS_HSE_FREQUENCY_MIN RCC_HSE_MIN /*!< Frequency min for HSE frequency, in Hz */ +#define UTILS_HSE_FREQUENCY_MAX RCC_HSE_MAX /*!< Frequency max for HSE frequency, in Hz */ + +/* Defines used for FLASH latency according to HCLK Frequency */ +#if defined(FLASH_ACR_LATENCY) +#define UTILS_LATENCY1_FREQ 24000000U /*!< SYSCLK frequency to set FLASH latency 1 */ +#define UTILS_LATENCY2_FREQ 48000000U /*!< SYSCLK frequency to set FLASH latency 2 */ +#else +/*!< No Latency Configuration in this device */ +#endif +/** + * @} + */ +/* Private macros ------------------------------------------------------------*/ +/** @addtogroup UTILS_LL_Private_Macros + * @{ + */ +#define IS_LL_UTILS_SYSCLK_DIV(__VALUE__) (((__VALUE__) == LL_RCC_SYSCLK_DIV_1) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_2) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_4) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_8) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_16) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_64) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_128) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_256) \ + || ((__VALUE__) == LL_RCC_SYSCLK_DIV_512)) + +#define IS_LL_UTILS_APB1_DIV(__VALUE__) (((__VALUE__) == LL_RCC_APB1_DIV_1) \ + || ((__VALUE__) == LL_RCC_APB1_DIV_2) \ + || ((__VALUE__) == LL_RCC_APB1_DIV_4) \ + || ((__VALUE__) == LL_RCC_APB1_DIV_8) \ + || ((__VALUE__) == LL_RCC_APB1_DIV_16)) + +#define IS_LL_UTILS_APB2_DIV(__VALUE__) (((__VALUE__) == LL_RCC_APB2_DIV_1) \ + || ((__VALUE__) == LL_RCC_APB2_DIV_2) \ + || ((__VALUE__) == LL_RCC_APB2_DIV_4) \ + || ((__VALUE__) == LL_RCC_APB2_DIV_8) \ + || ((__VALUE__) == LL_RCC_APB2_DIV_16)) + +#if defined(RCC_CFGR_PLLMULL6_5) +#define IS_LL_UTILS_PLLMUL_VALUE(__VALUE__) (((__VALUE__) == LL_RCC_PLL_MUL_4) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_5) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_6) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_7) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_8) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_9) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_6_5)) +#else +#define IS_LL_UTILS_PLLMUL_VALUE(__VALUE__) (((__VALUE__) == LL_RCC_PLL_MUL_2) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_3) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_4) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_5) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_6) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_7) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_8) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_9) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_10) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_11) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_12) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_13) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_14) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_15) \ + || ((__VALUE__) == LL_RCC_PLL_MUL_16)) +#endif /* RCC_CFGR_PLLMULL6_5 */ + +#if defined(RCC_CFGR2_PREDIV1) +#define IS_LL_UTILS_PREDIV_VALUE(__VALUE__) (((__VALUE__) == LL_RCC_PREDIV_DIV_1) || ((__VALUE__) == LL_RCC_PREDIV_DIV_2) || \ + ((__VALUE__) == LL_RCC_PREDIV_DIV_3) || ((__VALUE__) == LL_RCC_PREDIV_DIV_4) || \ + ((__VALUE__) == LL_RCC_PREDIV_DIV_5) || ((__VALUE__) == LL_RCC_PREDIV_DIV_6) || \ + ((__VALUE__) == LL_RCC_PREDIV_DIV_7) || ((__VALUE__) == LL_RCC_PREDIV_DIV_8) || \ + ((__VALUE__) == LL_RCC_PREDIV_DIV_9) || ((__VALUE__) == LL_RCC_PREDIV_DIV_10) || \ + ((__VALUE__) == LL_RCC_PREDIV_DIV_11) || ((__VALUE__) == LL_RCC_PREDIV_DIV_12) || \ + ((__VALUE__) == LL_RCC_PREDIV_DIV_13) || ((__VALUE__) == LL_RCC_PREDIV_DIV_14) || \ + ((__VALUE__) == LL_RCC_PREDIV_DIV_15) || ((__VALUE__) == LL_RCC_PREDIV_DIV_16)) +#else +#define IS_LL_UTILS_PREDIV_VALUE(__VALUE__) (((__VALUE__) == LL_RCC_PREDIV_DIV_1) || ((__VALUE__) == LL_RCC_PREDIV_DIV_2)) +#endif /*RCC_PREDIV1_DIV_2_16_SUPPORT*/ + +#define IS_LL_UTILS_PLL_FREQUENCY(__VALUE__) ((__VALUE__) <= UTILS_PLL_OUTPUT_MAX) + + +#define IS_LL_UTILS_HSE_BYPASS(__STATE__) (((__STATE__) == LL_UTILS_HSEBYPASS_ON) \ + || ((__STATE__) == LL_UTILS_HSEBYPASS_OFF)) + +#define IS_LL_UTILS_HSE_FREQUENCY(__FREQUENCY__) (((__FREQUENCY__) >= UTILS_HSE_FREQUENCY_MIN) && ((__FREQUENCY__) <= UTILS_HSE_FREQUENCY_MAX)) +/** + * @} + */ +/* Private function prototypes -----------------------------------------------*/ +/** @defgroup UTILS_LL_Private_Functions UTILS Private functions + * @{ + */ +static uint32_t UTILS_GetPLLOutputFrequency(uint32_t PLL_InputFrequency, + LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct); +#if defined(FLASH_ACR_LATENCY) +static ErrorStatus UTILS_SetFlashLatency(uint32_t Frequency); +#endif /* FLASH_ACR_LATENCY */ +static ErrorStatus UTILS_EnablePLLAndSwitchSystem(uint32_t SYSCLK_Frequency, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct); +static ErrorStatus UTILS_PLL_IsBusy(void); +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup UTILS_LL_Exported_Functions + * @{ + */ + +/** @addtogroup UTILS_LL_EF_DELAY + * @{ + */ + +/** + * @brief This function configures the Cortex-M SysTick source to have 1ms time base. + * @note When a RTOS is used, it is recommended to avoid changing the Systick + * configuration by calling this function, for a delay use rather osDelay RTOS service. + * @param HCLKFrequency HCLK frequency in Hz + * @note HCLK frequency can be calculated thanks to RCC helper macro or function @ref LL_RCC_GetSystemClocksFreq + * @retval None + */ +void LL_Init1msTick(uint32_t HCLKFrequency) +{ + /* Use frequency provided in argument */ + LL_InitTick(HCLKFrequency, 1000U); +} + +/** + * @brief This function provides accurate delay (in milliseconds) based + * on SysTick counter flag + * @note When a RTOS is used, it is recommended to avoid using blocking delay + * and use rather osDelay service. + * @note To respect 1ms timebase, user should call @ref LL_Init1msTick function which + * will configure Systick to 1ms + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +void LL_mDelay(uint32_t Delay) +{ + __IO uint32_t tmp = SysTick->CTRL; /* Clear the COUNTFLAG first */ + /* Add this code to indicate that local variable is not used */ + ((void)tmp); + + /* Add a period to guaranty minimum wait */ + if (Delay < LL_MAX_DELAY) + { + Delay++; + } + + while (Delay) + { + if ((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) != 0U) + { + Delay--; + } + } +} + +/** + * @} + */ + +/** @addtogroup UTILS_EF_SYSTEM + * @brief System Configuration functions + * + @verbatim + =============================================================================== + ##### System Configuration functions ##### + =============================================================================== + [..] + System, AHB and APB buses clocks configuration + + (+) The maximum frequency of the SYSCLK, HCLK, PCLK1 and PCLK2 is RCC_MAX_FREQUENCY Hz. + @endverbatim + @internal + Depending on the SYSCLK frequency, the flash latency should be adapted accordingly: + (++) +-----------------------------------------------+ + (++) | Latency | SYSCLK clock frequency (MHz) | + (++) |---------------|-------------------------------| + (++) |0WS(1CPU cycle)| 0 < SYSCLK <= 24 | + (++) |---------------|-------------------------------| + (++) |1WS(2CPU cycle)| 24 < SYSCLK <= 48 | + (++) |---------------|-------------------------------| + (++) |2WS(3CPU cycle)| 48 < SYSCLK <= 72 | + (++) +-----------------------------------------------+ + @endinternal + * @{ + */ + +/** + * @brief This function sets directly SystemCoreClock CMSIS variable. + * @note Variable can be calculated also through SystemCoreClockUpdate function. + * @param HCLKFrequency HCLK frequency in Hz (can be calculated thanks to RCC helper macro) + * @retval None + */ +void LL_SetSystemCoreClock(uint32_t HCLKFrequency) +{ + /* HCLK clock frequency */ + SystemCoreClock = HCLKFrequency; +} + +/** + * @brief This function configures system clock with HSI as clock source of the PLL + * @note The application need to ensure that PLL is disabled. + * @note Function is based on the following formula: + * - PLL output frequency = ((HSI frequency / PREDIV) * PLLMUL) + * - PREDIV: Set to 2 for few devices + * - PLLMUL: The application software must set correctly the PLL multiplication factor to + * not exceed 72MHz + * @note FLASH latency can be modified through this function. + * @param UTILS_PLLInitStruct pointer to a @ref LL_UTILS_PLLInitTypeDef structure that contains + * the configuration information for the PLL. + * @param UTILS_ClkInitStruct pointer to a @ref LL_UTILS_ClkInitTypeDef structure that contains + * the configuration information for the BUS prescalers. + * @retval An ErrorStatus enumeration value: + * - SUCCESS: Max frequency configuration done + * - ERROR: Max frequency configuration not done + */ +ErrorStatus LL_PLL_ConfigSystemClock_HSI(LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, + LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct) +{ + ErrorStatus status = SUCCESS; + uint32_t pllfreq = 0U; + + /* Check if one of the PLL is enabled */ + if (UTILS_PLL_IsBusy() == SUCCESS) + { +#if defined(RCC_PLLSRC_PREDIV1_SUPPORT) + /* Check PREDIV value */ + assert_param(IS_LL_UTILS_PREDIV_VALUE(UTILS_PLLInitStruct->PLLDiv)); +#else + /* Force PREDIV value to 2 */ + UTILS_PLLInitStruct->Prediv = LL_RCC_PREDIV_DIV_2; +#endif /*RCC_PLLSRC_PREDIV1_SUPPORT*/ + /* Calculate the new PLL output frequency */ + pllfreq = UTILS_GetPLLOutputFrequency(HSI_VALUE, UTILS_PLLInitStruct); + + /* Enable HSI if not enabled */ + if (LL_RCC_HSI_IsReady() != 1U) + { + LL_RCC_HSI_Enable(); + while (LL_RCC_HSI_IsReady() != 1U) + { + /* Wait for HSI ready */ + } + } + + /* Configure PLL */ + LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI_DIV_2, UTILS_PLLInitStruct->PLLMul); + + /* Enable PLL and switch system clock to PLL */ + status = UTILS_EnablePLLAndSwitchSystem(pllfreq, UTILS_ClkInitStruct); + } + else + { + /* Current PLL configuration cannot be modified */ + status = ERROR; + } + + return status; +} + +/** + * @brief This function configures system clock with HSE as clock source of the PLL + * @note The application need to ensure that PLL is disabled. + * @note Function is based on the following formula: + * - PLL output frequency = ((HSI frequency / PREDIV) * PLLMUL) + * - PREDIV: Set to 2 for few devices + * - PLLMUL: The application software must set correctly the PLL multiplication factor to + * not exceed @ref UTILS_PLL_OUTPUT_MAX + * @note FLASH latency can be modified through this function. + * @param HSEFrequency Value between Min_Data = RCC_HSE_MIN and Max_Data = RCC_HSE_MAX + * @param HSEBypass This parameter can be one of the following values: + * @arg @ref LL_UTILS_HSEBYPASS_ON + * @arg @ref LL_UTILS_HSEBYPASS_OFF + * @param UTILS_PLLInitStruct pointer to a @ref LL_UTILS_PLLInitTypeDef structure that contains + * the configuration information for the PLL. + * @param UTILS_ClkInitStruct pointer to a @ref LL_UTILS_ClkInitTypeDef structure that contains + * the configuration information for the BUS prescalers. + * @retval An ErrorStatus enumeration value: + * - SUCCESS: Max frequency configuration done + * - ERROR: Max frequency configuration not done + */ +ErrorStatus LL_PLL_ConfigSystemClock_HSE(uint32_t HSEFrequency, uint32_t HSEBypass, + LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct) +{ + ErrorStatus status = SUCCESS; + uint32_t pllfreq = 0U; + + /* Check the parameters */ + assert_param(IS_LL_UTILS_HSE_FREQUENCY(HSEFrequency)); + assert_param(IS_LL_UTILS_HSE_BYPASS(HSEBypass)); + + /* Check if one of the PLL is enabled */ + if (UTILS_PLL_IsBusy() == SUCCESS) + { + assert_param(IS_LL_UTILS_PREDIV_VALUE(UTILS_PLLInitStruct->Prediv)); + + /* Calculate the new PLL output frequency */ + pllfreq = UTILS_GetPLLOutputFrequency(HSEFrequency, UTILS_PLLInitStruct); + + /* Enable HSE if not enabled */ + if (LL_RCC_HSE_IsReady() != 1U) + { + /* Check if need to enable HSE bypass feature or not */ + if (HSEBypass == LL_UTILS_HSEBYPASS_ON) + { + LL_RCC_HSE_EnableBypass(); + } + else + { + LL_RCC_HSE_DisableBypass(); + } + + /* Enable HSE */ + LL_RCC_HSE_Enable(); + while (LL_RCC_HSE_IsReady() != 1U) + { + /* Wait for HSE ready */ + } + } + + /* Configure PLL */ + LL_RCC_PLL_ConfigDomain_SYS((RCC_CFGR_PLLSRC | UTILS_PLLInitStruct->Prediv), UTILS_PLLInitStruct->PLLMul); + + /* Enable PLL and switch system clock to PLL */ + status = UTILS_EnablePLLAndSwitchSystem(pllfreq, UTILS_ClkInitStruct); + } + else + { + /* Current PLL configuration cannot be modified */ + status = ERROR; + } + + return status; +} + +/** + * @} + */ + +/** + * @} + */ + +/** @addtogroup UTILS_LL_Private_Functions + * @{ + */ +/** + * @brief Update number of Flash wait states in line with new frequency and current + voltage range. + * @param Frequency SYSCLK frequency + * @retval An ErrorStatus enumeration value: + * - SUCCESS: Latency has been modified + * - ERROR: Latency cannot be modified + */ +#if defined(FLASH_ACR_LATENCY) +static ErrorStatus UTILS_SetFlashLatency(uint32_t Frequency) +{ + ErrorStatus status = SUCCESS; + + uint32_t latency = LL_FLASH_LATENCY_0; /* default value 0WS */ + + /* Frequency cannot be equal to 0 */ + if (Frequency == 0U) + { + status = ERROR; + } + else + { + if (Frequency > UTILS_LATENCY2_FREQ) + { + /* 48 < SYSCLK <= 72 => 2WS (3 CPU cycles) */ + latency = LL_FLASH_LATENCY_2; + } + else + { + if (Frequency > UTILS_LATENCY1_FREQ) + { + /* 24 < SYSCLK <= 48 => 1WS (2 CPU cycles) */ + latency = LL_FLASH_LATENCY_1; + } + /* else SYSCLK < 24MHz default LL_FLASH_LATENCY_0 0WS */ + } + + LL_FLASH_SetLatency(latency); + + /* Check that the new number of wait states is taken into account to access the Flash + memory by reading the FLASH_ACR register */ + if (LL_FLASH_GetLatency() != latency) + { + status = ERROR; + } + } + return status; +} +#endif /* FLASH_ACR_LATENCY */ + +/** + * @brief Function to check that PLL can be modified + * @param PLL_InputFrequency PLL input frequency (in Hz) + * @param UTILS_PLLInitStruct pointer to a @ref LL_UTILS_PLLInitTypeDef structure that contains + * the configuration information for the PLL. + * @retval PLL output frequency (in Hz) + */ +static uint32_t UTILS_GetPLLOutputFrequency(uint32_t PLL_InputFrequency, LL_UTILS_PLLInitTypeDef *UTILS_PLLInitStruct) +{ + uint32_t pllfreq = 0U; + + /* Check the parameters */ + assert_param(IS_LL_UTILS_PLLMUL_VALUE(UTILS_PLLInitStruct->PLLMul)); + + /* Check different PLL parameters according to RM */ +#if defined (RCC_CFGR2_PREDIV1) + pllfreq = __LL_RCC_CALC_PLLCLK_FREQ(PLL_InputFrequency / (UTILS_PLLInitStruct->Prediv + 1U), UTILS_PLLInitStruct->PLLMul); +#else + pllfreq = __LL_RCC_CALC_PLLCLK_FREQ(PLL_InputFrequency / ((UTILS_PLLInitStruct->Prediv >> RCC_CFGR_PLLXTPRE_Pos) + 1U), UTILS_PLLInitStruct->PLLMul); +#endif /*RCC_CFGR2_PREDIV1SRC*/ + assert_param(IS_LL_UTILS_PLL_FREQUENCY(pllfreq)); + + return pllfreq; +} + +/** + * @brief Function to check that PLL can be modified + * @retval An ErrorStatus enumeration value: + * - SUCCESS: PLL modification can be done + * - ERROR: PLL is busy + */ +static ErrorStatus UTILS_PLL_IsBusy(void) +{ + ErrorStatus status = SUCCESS; + + /* Check if PLL is busy*/ + if (LL_RCC_PLL_IsReady() != 0U) + { + /* PLL configuration cannot be modified */ + status = ERROR; + } +#if defined(RCC_PLL2_SUPPORT) + /* Check if PLL2 is busy*/ + if (LL_RCC_PLL2_IsReady() != 0U) + { + /* PLL2 configuration cannot be modified */ + status = ERROR; + } +#endif /* RCC_PLL2_SUPPORT */ + +#if defined(RCC_PLLI2S_SUPPORT) + /* Check if PLLI2S is busy*/ + if (LL_RCC_PLLI2S_IsReady() != 0U) + { + /* PLLI2S configuration cannot be modified */ + status = ERROR; + } +#endif /* RCC_PLLI2S_SUPPORT */ + + return status; +} + +/** + * @brief Function to enable PLL and switch system clock to PLL + * @param SYSCLK_Frequency SYSCLK frequency + * @param UTILS_ClkInitStruct pointer to a @ref LL_UTILS_ClkInitTypeDef structure that contains + * the configuration information for the BUS prescalers. + * @retval An ErrorStatus enumeration value: + * - SUCCESS: No problem to switch system to PLL + * - ERROR: Problem to switch system to PLL + */ +static ErrorStatus UTILS_EnablePLLAndSwitchSystem(uint32_t SYSCLK_Frequency, LL_UTILS_ClkInitTypeDef *UTILS_ClkInitStruct) +{ + ErrorStatus status = SUCCESS; +#if defined(FLASH_ACR_LATENCY) + uint32_t sysclk_frequency_current = 0U; +#endif /* FLASH_ACR_LATENCY */ + + assert_param(IS_LL_UTILS_SYSCLK_DIV(UTILS_ClkInitStruct->AHBCLKDivider)); + assert_param(IS_LL_UTILS_APB1_DIV(UTILS_ClkInitStruct->APB1CLKDivider)); + assert_param(IS_LL_UTILS_APB2_DIV(UTILS_ClkInitStruct->APB2CLKDivider)); + +#if defined(FLASH_ACR_LATENCY) + /* Calculate current SYSCLK frequency */ + sysclk_frequency_current = (SystemCoreClock << AHBPrescTable[LL_RCC_GetAHBPrescaler() >> RCC_CFGR_HPRE_Pos]); +#endif /* FLASH_ACR_LATENCY */ + + /* Increasing the number of wait states because of higher CPU frequency */ +#if defined (FLASH_ACR_LATENCY) + if (sysclk_frequency_current < SYSCLK_Frequency) + { + /* Set FLASH latency to highest latency */ + status = UTILS_SetFlashLatency(SYSCLK_Frequency); + } +#endif /* FLASH_ACR_LATENCY */ + + /* Update system clock configuration */ + if (status == SUCCESS) + { +#if defined(RCC_PLL2_SUPPORT) + if (LL_RCC_PLL_GetMainSource() != LL_RCC_PLLSOURCE_HSI_DIV_2) + { + /* Enable PLL2 */ + LL_RCC_PLL2_Enable(); + while (LL_RCC_PLL2_IsReady() != 1U) + { + /* Wait for PLL2 ready */ + } + } +#endif /* RCC_PLL2_SUPPORT */ + /* Enable PLL */ + LL_RCC_PLL_Enable(); + while (LL_RCC_PLL_IsReady() != 1U) + { + /* Wait for PLL ready */ + } + + /* Sysclk activation on the main PLL */ + LL_RCC_SetAHBPrescaler(UTILS_ClkInitStruct->AHBCLKDivider); + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL); + while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL) + { + /* Wait for system clock switch to PLL */ + } + + /* Set APB1 & APB2 prescaler*/ + LL_RCC_SetAPB1Prescaler(UTILS_ClkInitStruct->APB1CLKDivider); + LL_RCC_SetAPB2Prescaler(UTILS_ClkInitStruct->APB2CLKDivider); + } + + /* Decreasing the number of wait states because of lower CPU frequency */ +#if defined (FLASH_ACR_LATENCY) + if (sysclk_frequency_current > SYSCLK_Frequency) + { + /* Set FLASH latency to lowest latency */ + status = UTILS_SetFlashLatency(SYSCLK_Frequency); + } +#endif /* FLASH_ACR_LATENCY */ + + /* Update SystemCoreClock variable */ + if (status == SUCCESS) + { + LL_SetSystemCoreClock(__LL_RCC_CALC_HCLK_FREQ(SYSCLK_Frequency, UTILS_ClkInitStruct->AHBCLKDivider)); + } + + return status; +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/MDK-ARM/DebugConfig/NUCLEO-F103RB_STM32F103RB_1.0.0.dbgconf b/MDK-ARM/DebugConfig/NUCLEO-F103RB_STM32F103RB_1.0.0.dbgconf new file mode 100644 index 0000000..90dabd8 --- /dev/null +++ b/MDK-ARM/DebugConfig/NUCLEO-F103RB_STM32F103RB_1.0.0.dbgconf @@ -0,0 +1,97 @@ +// <<< Use Configuration Wizard in Context Menu >>> +// Debug MCU Configuration +// DBG_SLEEP +// Debug Sleep Mode +// 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled +// 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK +// DBG_STOP +// Debug Stop Mode +// 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks +// 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_STANDBY +// Debug Standby Mode +// 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered. +// 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_IWDG_STOP +// Debug independent watchdog stopped when core is halted +// 0: The watchdog counter clock continues even if the core is halted +// 1: The watchdog counter clock is stopped when the core is halted +// DBG_WWDG_STOP +// Debug window watchdog stopped when core is halted +// 0: The window watchdog counter clock continues even if the core is halted +// 1: The window watchdog counter clock is stopped when the core is halted +// DBG_TIM1_STOP +// Timer 1 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM2_STOP +// Timer 2 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM3_STOP +// Timer 3 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM4_STOP +// Timer 4 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_CAN1_STOP +// Debug CAN1 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN1 receive registers are frozen +// DBG_I2C1_SMBUS_TIMEOUT +// I2C1 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_I2C2_SMBUS_TIMEOUT +// I2C2 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_TIM8_STOP +// Timer 8 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM5_STOP +// Timer 5 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM6_STOP +// Timer 6 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM7_STOP +// Timer 7 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_CAN2_STOP +// Debug CAN2 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN2 receive registers are frozen +// DBG_TIM12_STOP +// Timer 12 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM13_STOP +// Timer 13 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM14_STOP +// Timer 14 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM9_STOP +// Timer 9 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM10_STOP +// Timer 10 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM11_STOP +// Timer 11 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// +DbgMCU_CR = 0x00000007; +// <<< end of configuration section >>> \ No newline at end of file diff --git a/MDK-ARM/DebugConfig/Simulateur_STM32F103RB_1.0.0.dbgconf b/MDK-ARM/DebugConfig/Simulateur_STM32F103RB_1.0.0.dbgconf new file mode 100644 index 0000000..90dabd8 --- /dev/null +++ b/MDK-ARM/DebugConfig/Simulateur_STM32F103RB_1.0.0.dbgconf @@ -0,0 +1,97 @@ +// <<< Use Configuration Wizard in Context Menu >>> +// Debug MCU Configuration +// DBG_SLEEP +// Debug Sleep Mode +// 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled +// 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK +// DBG_STOP +// Debug Stop Mode +// 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks +// 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_STANDBY +// Debug Standby Mode +// 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered. +// 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active +// DBG_IWDG_STOP +// Debug independent watchdog stopped when core is halted +// 0: The watchdog counter clock continues even if the core is halted +// 1: The watchdog counter clock is stopped when the core is halted +// DBG_WWDG_STOP +// Debug window watchdog stopped when core is halted +// 0: The window watchdog counter clock continues even if the core is halted +// 1: The window watchdog counter clock is stopped when the core is halted +// DBG_TIM1_STOP +// Timer 1 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM2_STOP +// Timer 2 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM3_STOP +// Timer 3 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_TIM4_STOP +// Timer 4 counter stopped when core is halted +// 0: The clock of the involved Timer Counter is fed even if the core is halted +// 1: The clock of the involved Timer counter is stopped when the core is halted +// DBG_CAN1_STOP +// Debug CAN1 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN1 receive registers are frozen +// DBG_I2C1_SMBUS_TIMEOUT +// I2C1 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_I2C2_SMBUS_TIMEOUT +// I2C2 SMBUS timeout mode stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: The SMBUS timeout is frozen +// DBG_TIM8_STOP +// Timer 8 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM5_STOP +// Timer 5 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM6_STOP +// Timer 6 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM7_STOP +// Timer 7 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_CAN2_STOP +// Debug CAN2 stopped when Core is halted +// 0: Same behavior as in normal mode +// 1: CAN2 receive registers are frozen +// DBG_TIM12_STOP +// Timer 12 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM13_STOP +// Timer 13 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM14_STOP +// Timer 14 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM9_STOP +// Timer 9 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM10_STOP +// Timer 10 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// DBG_TIM11_STOP +// Timer 11 counter stopped when core is halted +// 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally. +// 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event). +// +DbgMCU_CR = 0x00000007; +// <<< end of configuration section >>> \ No newline at end of file diff --git a/MDK-ARM/EventRecorderStub.scvd b/MDK-ARM/EventRecorderStub.scvd new file mode 100644 index 0000000..2956b29 --- /dev/null +++ b/MDK-ARM/EventRecorderStub.scvd @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/MDK-ARM/NUCLEO-F103RB/ExtDll.iex b/MDK-ARM/NUCLEO-F103RB/ExtDll.iex new file mode 100644 index 0000000..6c0896e --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/ExtDll.iex @@ -0,0 +1,2 @@ +[EXTDLL] +Count=0 diff --git a/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.build_log.htm b/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.build_log.htm new file mode 100644 index 0000000..2c8bbe3 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.build_log.htm @@ -0,0 +1,63 @@ + + +
+

µVision Build Log

+

Tool Versions:

+IDE-Version: µVision V5.23.0.0 +Copyright (C) 2017 ARM Ltd and ARM Germany GmbH. All rights reserved. +License Information: Thierry Thierry, INSA, LIC=---- + +Tool Versions: +Toolchain: MDK-Lite Version: 5.23 +Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin +C Compiler: Armcc.exe V5.06 update 4 (build 422) +Assembler: Armasm.exe V5.06 update 4 (build 422) +Linker/Locator: ArmLink.exe V5.06 update 4 (build 422) +Library Manager: ArmAr.exe V5.06 update 4 (build 422) +Hex Converter: FromElf.exe V5.06 update 4 (build 422) +CPU DLL: SARMCM3.DLL V5.23 +Dialog DLL: DARMSTM.DLL V1.68.0.0 +Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V2.0.18.0 +Dialog DLL: TARMSTM.DLL V1.66.0.0 + +

Project:

+D:\Thierry\2019_2020\Periph\PrepaPeriph\ProjetsKEIL\PjetsOK\ProjKEIL_Base_Chrono\MDK-ARM\Project.uvprojx +Project File Date: 09/04/2019 + +

Output:

+*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' +Rebuild target 'NUCLEO-F103RB' +compiling MyTimer.c... +compiling Chrono.c... +..\Services\Chrono.c(18): warning: #550-D: variable "Chrono_Timer" was set but never used + static TIM_TypeDef * Chrono_Timer=TIM1; // init par défaut au cas où l'utilisateur ne lance pas Chrono_Conf avant toute autre fct. +..\Services\Chrono.c: 1 warning, 0 errors +compiling main.c... +compiling system_stm32f1xx.c... +compiling stm32f1xx_ll_rcc.c... +assembling startup_stm32f103xb.s... +compiling stm32f1xx_ll_utils.c... +linking... +Program Size: Code=388 RO-data=268 RW-data=12 ZI-data=1028 +"NUCLEO-F103RB\NUCLEO-F103RB.axf" - 0 Error(s), 1 Warning(s). + +

Software Packages used:

+ +Package Vendor: ARM + http://www.keil.com/pack/ARM.CMSIS.5.0.1.pack + ARM::CMSIS:CORE:5.0.1 + CMSIS (Cortex Microcontroller Software Interface Standard) + * Component: CORE Version: 5.0.1 + +

Collection of Component include folders:

+ .\RTE\_NUCLEO-F103RB + C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\Include + C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Device\Include + +

Collection of Component Files used:

+ + * Component: ARM::CMSIS:CORE:5.0.1 +Build Time Elapsed: 00:00:03 +
+ + diff --git a/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.map b/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.map new file mode 100644 index 0000000..36daef4 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.map @@ -0,0 +1,383 @@ +Component: ARM Compiler 5.06 update 4 (build 422) Tool: armlink [4d35d2] + +============================================================================== + +Section Cross References + + main.o(i.SystemClock_Config) refers to stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock) for LL_SetSystemCoreClock + main.o(i.main) refers to main.o(i.SystemClock_Config) for SystemClock_Config + main.o(i.main) refers to chrono.o(i.Chrono_Conf) for Chrono_Conf + main.o(i.main) refers to chrono.o(i.Chrono_Start) for Chrono_Start + chrono.o(i.Chrono_Conf) refers to chrono.o(.data) for .data + chrono.o(i.Chrono_Read) refers to chrono.o(.data) for .data + chrono.o(i.Chrono_Reset) refers to chrono.o(.data) for .data + chrono.o(i.Chrono_Task_10ms) refers to chrono.o(.data) for .data + stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetSystemClockFreq) for RCC_GetSystemClockFreq + stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetHCLKClockFreq) for RCC_GetHCLKClockFreq + stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetPCLK2ClockFreq) for RCC_GetPCLK2ClockFreq + stm32f1xx_ll_rcc.o(i.LL_RCC_GetSystemClocksFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetSystemClockFreq) for RCC_GetSystemClockFreq + stm32f1xx_ll_rcc.o(i.LL_RCC_GetSystemClocksFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetHCLKClockFreq) for RCC_GetHCLKClockFreq + stm32f1xx_ll_rcc.o(i.LL_RCC_GetSystemClocksFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetPCLK1ClockFreq) for RCC_GetPCLK1ClockFreq + stm32f1xx_ll_rcc.o(i.LL_RCC_GetSystemClocksFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_GetPCLK2ClockFreq) for RCC_GetPCLK2ClockFreq + stm32f1xx_ll_rcc.o(i.LL_RCC_GetUSBClockFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_PLL_GetFreqDomain_SYS) for RCC_PLL_GetFreqDomain_SYS + stm32f1xx_ll_rcc.o(i.RCC_GetHCLKClockFreq) refers to system_stm32f1xx.o(.constdata) for AHBPrescTable + stm32f1xx_ll_rcc.o(i.RCC_GetPCLK1ClockFreq) refers to system_stm32f1xx.o(.constdata) for APBPrescTable + stm32f1xx_ll_rcc.o(i.RCC_GetPCLK2ClockFreq) refers to system_stm32f1xx.o(.constdata) for APBPrescTable + stm32f1xx_ll_rcc.o(i.RCC_GetSystemClockFreq) refers to stm32f1xx_ll_rcc.o(i.RCC_PLL_GetFreqDomain_SYS) for RCC_PLL_GetFreqDomain_SYS + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSE) refers to stm32f1xx_ll_utils.o(i.UTILS_PLL_IsBusy) for UTILS_PLL_IsBusy + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSE) refers to stm32f1xx_ll_utils.o(i.UTILS_GetPLLOutputFrequency) for UTILS_GetPLLOutputFrequency + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSE) refers to stm32f1xx_ll_utils.o(i.LL_RCC_PLL_ConfigDomain_SYS) for LL_RCC_PLL_ConfigDomain_SYS + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSE) refers to stm32f1xx_ll_utils.o(i.UTILS_EnablePLLAndSwitchSystem) for UTILS_EnablePLLAndSwitchSystem + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSI) refers to stm32f1xx_ll_utils.o(i.UTILS_PLL_IsBusy) for UTILS_PLL_IsBusy + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSI) refers to stm32f1xx_ll_utils.o(i.UTILS_GetPLLOutputFrequency) for UTILS_GetPLLOutputFrequency + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSI) refers to stm32f1xx_ll_utils.o(i.LL_RCC_PLL_ConfigDomain_SYS) for LL_RCC_PLL_ConfigDomain_SYS + stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSI) refers to stm32f1xx_ll_utils.o(i.UTILS_EnablePLLAndSwitchSystem) for UTILS_EnablePLLAndSwitchSystem + stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock) refers to system_stm32f1xx.o(.data) for SystemCoreClock + stm32f1xx_ll_utils.o(i.UTILS_EnablePLLAndSwitchSystem) refers to stm32f1xx_ll_utils.o(i.UTILS_SetFlashLatency) for UTILS_SetFlashLatency + stm32f1xx_ll_utils.o(i.UTILS_EnablePLLAndSwitchSystem) refers to system_stm32f1xx.o(.constdata) for AHBPrescTable + stm32f1xx_ll_utils.o(i.UTILS_EnablePLLAndSwitchSystem) refers to system_stm32f1xx.o(.data) for SystemCoreClock + system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.data) for .data + system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.constdata) for .constdata + startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(STACK) for __initial_sp + startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(.text) for Reset_Handler + startup_stm32f103xb.o(.text) refers to system_stm32f1xx.o(i.SystemInit) for SystemInit + startup_stm32f103xb.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000D) for __rt_final_cpp + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$0000000F) for __rt_final_exit + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry9a.o(.ARM.Collect$$$$0000000B) for _main_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk + entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000 + entry2.o(.ARM.Collect$$$$00002712) refers to startup_stm32f103xb.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to startup_stm32f103xb.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main + entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload + entry9a.o(.ARM.Collect$$$$0000000B) refers to main.o(i.main) for main + entry9b.o(.ARM.Collect$$$$0000000C) refers to main.o(i.main) for main + init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload + + +============================================================================== + +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 chrono.o(.rev16_text), (4 bytes). + Removing chrono.o(.revsh_text), (4 bytes). + Removing chrono.o(.rrx_text), (6 bytes). + Removing chrono.o(i.Chrono_Read), (8 bytes). + Removing chrono.o(i.Chrono_Reset), (16 bytes). + Removing chrono.o(i.Chrono_Stop), (2 bytes). + Removing chrono.o(i.Chrono_Task_10ms), (52 bytes). + Removing mytimer.o(.rev16_text), (4 bytes). + Removing mytimer.o(.revsh_text), (4 bytes). + Removing mytimer.o(.rrx_text), (6 bytes). + Removing stm32f1xx_ll_rcc.o(.rev16_text), (4 bytes). + Removing stm32f1xx_ll_rcc.o(.revsh_text), (4 bytes). + Removing stm32f1xx_ll_rcc.o(.rrx_text), (6 bytes). + Removing stm32f1xx_ll_rcc.o(i.LL_RCC_DeInit), (96 bytes). + Removing stm32f1xx_ll_rcc.o(i.LL_RCC_GetADCClockFreq), (48 bytes). + Removing stm32f1xx_ll_rcc.o(i.LL_RCC_GetSystemClocksFreq), (32 bytes). + Removing stm32f1xx_ll_rcc.o(i.LL_RCC_GetUSBClockFreq), (56 bytes). + Removing stm32f1xx_ll_rcc.o(i.RCC_GetHCLKClockFreq), (28 bytes). + Removing stm32f1xx_ll_rcc.o(i.RCC_GetPCLK1ClockFreq), (28 bytes). + Removing stm32f1xx_ll_rcc.o(i.RCC_GetPCLK2ClockFreq), (28 bytes). + Removing stm32f1xx_ll_rcc.o(i.RCC_GetSystemClockFreq), (36 bytes). + Removing stm32f1xx_ll_rcc.o(i.RCC_PLL_GetFreqDomain_SYS), (60 bytes). + Removing stm32f1xx_ll_utils.o(.rev16_text), (4 bytes). + Removing stm32f1xx_ll_utils.o(.revsh_text), (4 bytes). + Removing stm32f1xx_ll_utils.o(.rrx_text), (6 bytes). + Removing stm32f1xx_ll_utils.o(i.LL_Init1msTick), (26 bytes). + Removing stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSE), (108 bytes). + Removing stm32f1xx_ll_utils.o(i.LL_PLL_ConfigSystemClock_HSI), (88 bytes). + Removing stm32f1xx_ll_utils.o(i.LL_RCC_PLL_ConfigDomain_SYS), (24 bytes). + Removing stm32f1xx_ll_utils.o(i.LL_mDelay), (30 bytes). + Removing stm32f1xx_ll_utils.o(i.UTILS_EnablePLLAndSwitchSystem), (172 bytes). + Removing stm32f1xx_ll_utils.o(i.UTILS_GetPLLOutputFrequency), (24 bytes). + Removing stm32f1xx_ll_utils.o(i.UTILS_PLL_IsBusy), (24 bytes). + Removing stm32f1xx_ll_utils.o(i.UTILS_SetFlashLatency), (68 bytes). + Removing system_stm32f1xx.o(.rev16_text), (4 bytes). + Removing system_stm32f1xx.o(.revsh_text), (4 bytes). + Removing system_stm32f1xx.o(.rrx_text), (6 bytes). + Removing system_stm32f1xx.o(i.SystemCoreClockUpdate), (104 bytes). + Removing system_stm32f1xx.o(.constdata), (16 bytes). + Removing system_stm32f1xx.o(.constdata), (8 bytes). + Removing startup_stm32f103xb.o(HEAP), (512 bytes). + +44 unused section(s) (total 1778 bytes) removed from the image. + +============================================================================== + +Image Symbol Table + + Local Symbols + + Symbol Name Value Ov Type Size Object(Section) + + ../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE + ../Src/system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ..\LLDrivers\src\stm32f1xx_ll_rcc.c 0x00000000 Number 0 stm32f1xx_ll_rcc.o ABSOLUTE + ..\LLDrivers\src\stm32f1xx_ll_utils.c 0x00000000 Number 0 stm32f1xx_ll_utils.o ABSOLUTE + ..\MyDrivers\MyTimer.c 0x00000000 Number 0 mytimer.o ABSOLUTE + ..\Services\Chrono.c 0x00000000 Number 0 chrono.o ABSOLUTE + ..\Src\main.c 0x00000000 Number 0 main.o ABSOLUTE + ..\Src\system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE + ..\\LLDrivers\\src\\stm32f1xx_ll_rcc.c 0x00000000 Number 0 stm32f1xx_ll_rcc.o ABSOLUTE + ..\\LLDrivers\\src\\stm32f1xx_ll_utils.c 0x00000000 Number 0 stm32f1xx_ll_utils.o ABSOLUTE + ..\\MyDrivers\\MyTimer.c 0x00000000 Number 0 mytimer.o ABSOLUTE + ..\\Services\\Chrono.c 0x00000000 Number 0 chrono.o ABSOLUTE + dc.s 0x00000000 Number 0 dc.o ABSOLUTE + handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE + init.s 0x00000000 Number 0 init.o ABSOLUTE + startup_stm32f103xb.s 0x00000000 Number 0 startup_stm32f103xb.o ABSOLUTE + RESET 0x08000000 Section 236 startup_stm32f103xb.o(RESET) + .ARM.Collect$$$$00000000 0x080000ec Section 0 entry.o(.ARM.Collect$$$$00000000) + .ARM.Collect$$$$00000001 0x080000ec Section 4 entry2.o(.ARM.Collect$$$$00000001) + .ARM.Collect$$$$00000004 0x080000f0 Section 4 entry5.o(.ARM.Collect$$$$00000004) + .ARM.Collect$$$$00000008 0x080000f4 Section 0 entry7b.o(.ARM.Collect$$$$00000008) + .ARM.Collect$$$$0000000A 0x080000f4 Section 0 entry8b.o(.ARM.Collect$$$$0000000A) + .ARM.Collect$$$$0000000B 0x080000f4 Section 8 entry9a.o(.ARM.Collect$$$$0000000B) + .ARM.Collect$$$$0000000D 0x080000fc Section 0 entry10a.o(.ARM.Collect$$$$0000000D) + .ARM.Collect$$$$0000000F 0x080000fc Section 0 entry11a.o(.ARM.Collect$$$$0000000F) + .ARM.Collect$$$$00002712 0x080000fc Section 4 entry2.o(.ARM.Collect$$$$00002712) + __lit__00000000 0x080000fc Data 4 entry2.o(.ARM.Collect$$$$00002712) + .text 0x08000100 Section 36 startup_stm32f103xb.o(.text) + .text 0x08000124 Section 36 init.o(.text) + i.Chrono_Conf 0x08000148 Section 0 chrono.o(i.Chrono_Conf) + i.Chrono_Start 0x0800015c Section 0 chrono.o(i.Chrono_Start) + i.LL_SetSystemCoreClock 0x08000160 Section 0 stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock) + i.SystemClock_Config 0x0800016c Section 0 main.o(i.SystemClock_Config) + i.SystemInit 0x080001f8 Section 0 system_stm32f1xx.o(i.SystemInit) + i.__scatterload_copy 0x08000240 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x0800024e Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08000250 Section 14 handlers.o(i.__scatterload_zeroinit) + i.main 0x0800025e Section 0 main.o(i.main) + .data 0x20000000 Section 8 chrono.o(.data) + Chrono_Time 0x20000000 Data 3 chrono.o(.data) + Chrono_Timer 0x20000004 Data 4 chrono.o(.data) + .data 0x20000008 Section 4 system_stm32f1xx.o(.data) + STACK 0x20000010 Section 1024 startup_stm32f103xb.o(STACK) + + Global Symbols + + Symbol Name Value Ov Type Size Object(Section) + + BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE + __ARM_use_no_argv 0x00000000 Number 0 main.o ABSOLUTE + __cpp_initialize__aeabi_ - Undefined Weak Reference + __cxa_finalize - Undefined Weak Reference + __decompress - Undefined Weak Reference + _clock_init - Undefined Weak Reference + _microlib_exit - Undefined Weak Reference + __Vectors_Size 0x000000ec Number 0 startup_stm32f103xb.o ABSOLUTE + __Vectors 0x08000000 Data 4 startup_stm32f103xb.o(RESET) + __Vectors_End 0x080000ec Data 0 startup_stm32f103xb.o(RESET) + __main 0x080000ed Thumb Code 0 entry.o(.ARM.Collect$$$$00000000) + _main_stk 0x080000ed Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001) + _main_scatterload 0x080000f1 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + __main_after_scatterload 0x080000f5 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + _main_clock 0x080000f5 Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008) + _main_cpp_init 0x080000f5 Thumb Code 0 entry8b.o(.ARM.Collect$$$$0000000A) + _main_init 0x080000f5 Thumb Code 0 entry9a.o(.ARM.Collect$$$$0000000B) + __rt_final_cpp 0x080000fd Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000D) + __rt_final_exit 0x080000fd Thumb Code 0 entry11a.o(.ARM.Collect$$$$0000000F) + Reset_Handler 0x08000101 Thumb Code 8 startup_stm32f103xb.o(.text) + NMI_Handler 0x08000109 Thumb Code 2 startup_stm32f103xb.o(.text) + HardFault_Handler 0x0800010b Thumb Code 2 startup_stm32f103xb.o(.text) + MemManage_Handler 0x0800010d Thumb Code 2 startup_stm32f103xb.o(.text) + BusFault_Handler 0x0800010f Thumb Code 2 startup_stm32f103xb.o(.text) + UsageFault_Handler 0x08000111 Thumb Code 2 startup_stm32f103xb.o(.text) + SVC_Handler 0x08000113 Thumb Code 2 startup_stm32f103xb.o(.text) + DebugMon_Handler 0x08000115 Thumb Code 2 startup_stm32f103xb.o(.text) + PendSV_Handler 0x08000117 Thumb Code 2 startup_stm32f103xb.o(.text) + SysTick_Handler 0x08000119 Thumb Code 2 startup_stm32f103xb.o(.text) + ADC1_2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + CAN1_RX1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + CAN1_SCE_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel4_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel5_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel6_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel7_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI0_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI15_10_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI4_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI9_5_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + FLASH_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + I2C1_ER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + I2C1_EV_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + I2C2_ER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + I2C2_EV_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + PVD_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + RCC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + RTC_Alarm_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + RTC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + SPI1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + SPI2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TAMPER_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_BRK_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_CC_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_TRG_COM_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_UP_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TIM2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TIM3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + TIM4_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + USART1_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + USART2_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + USART3_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + USBWakeUp_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + USB_HP_CAN1_TX_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + USB_LP_CAN1_RX0_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + WWDG_IRQHandler 0x0800011b Thumb Code 0 startup_stm32f103xb.o(.text) + __scatterload 0x08000125 Thumb Code 28 init.o(.text) + __scatterload_rt2 0x08000125 Thumb Code 0 init.o(.text) + Chrono_Conf 0x08000149 Thumb Code 16 chrono.o(i.Chrono_Conf) + Chrono_Start 0x0800015d Thumb Code 2 chrono.o(i.Chrono_Start) + LL_SetSystemCoreClock 0x08000161 Thumb Code 6 stm32f1xx_ll_utils.o(i.LL_SetSystemCoreClock) + SystemClock_Config 0x0800016d Thumb Code 128 main.o(i.SystemClock_Config) + SystemInit 0x080001f9 Thumb Code 56 system_stm32f1xx.o(i.SystemInit) + __scatterload_copy 0x08000241 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x0800024f Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08000251 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + main 0x0800025f Thumb Code 18 main.o(i.main) + Region$$Table$$Base 0x08000270 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08000290 Number 0 anon$$obj.o(Region$$Table) + SystemCoreClock 0x20000008 Data 4 system_stm32f1xx.o(.data) + __initial_sp 0x20000410 Data 0 startup_stm32f103xb.o(STACK) + + + +============================================================================== + +Memory Map of the image + + Image Entry point : 0x080000ed + + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000029c, Max: 0x00020000, ABSOLUTE) + + Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x00000290, Max: 0x00020000, ABSOLUTE) + + Base Addr Size Type Attr Idx E Section Name Object + + 0x08000000 0x000000ec Data RO 340 RESET startup_stm32f103xb.o + 0x080000ec 0x00000000 Code RO 345 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x080000ec 0x00000004 Code RO 348 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x080000f0 0x00000004 Code RO 351 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x080000f4 0x00000000 Code RO 353 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x080000f4 0x00000000 Code RO 355 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x080000f4 0x00000008 Code RO 356 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x080000fc 0x00000000 Code RO 358 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) + 0x080000fc 0x00000000 Code RO 360 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) + 0x080000fc 0x00000004 Code RO 349 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x08000100 0x00000024 Code RO 341 .text startup_stm32f103xb.o + 0x08000124 0x00000024 Code RO 362 .text mc_w.l(init.o) + 0x08000148 0x00000014 Code RO 72 i.Chrono_Conf chrono.o + 0x0800015c 0x00000002 Code RO 75 i.Chrono_Start chrono.o + 0x0800015e 0x00000002 PAD + 0x08000160 0x0000000c Code RO 225 i.LL_SetSystemCoreClock stm32f1xx_ll_utils.o + 0x0800016c 0x0000008c Code RO 4 i.SystemClock_Config main.o + 0x080001f8 0x00000048 Code RO 304 i.SystemInit system_stm32f1xx.o + 0x08000240 0x0000000e Code RO 366 i.__scatterload_copy mc_w.l(handlers.o) + 0x0800024e 0x00000002 Code RO 367 i.__scatterload_null mc_w.l(handlers.o) + 0x08000250 0x0000000e Code RO 368 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x0800025e 0x00000012 Code RO 5 i.main main.o + 0x08000270 0x00000020 Data RO 364 Region$$Table anon$$obj.o + + + Execution Region RW_IRAM1 (Base: 0x20000000, Size: 0x00000410, Max: 0x00005000, ABSOLUTE) + + Base Addr Size Type Attr Idx E Section Name Object + + 0x20000000 0x00000008 Data RW 78 .data chrono.o + 0x20000008 0x00000004 Data RW 307 .data system_stm32f1xx.o + 0x2000000c 0x00000004 PAD + 0x20000010 0x00000400 Zero RW 338 STACK startup_stm32f103xb.o + + +============================================================================== + +Image component sizes + + + Code (inc. data) RO Data RW Data ZI Data Debug Object Name + + 22 4 0 8 0 1521 chrono.o + 158 12 0 0 0 355564 main.o + 36 8 236 0 1024 800 startup_stm32f103xb.o + 12 6 0 0 0 4224 stm32f1xx_ll_utils.o + 72 16 0 4 0 1231 system_stm32f1xx.o + + ---------------------------------------------------------------------- + 302 46 268 12 1028 363340 Object Totals + 0 0 32 0 0 0 (incl. Generated) + 2 0 0 0 4 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name + + 0 0 0 0 0 0 entry.o + 0 0 0 0 0 0 entry10a.o + 0 0 0 0 0 0 entry11a.o + 8 4 0 0 0 0 entry2.o + 4 0 0 0 0 0 entry5.o + 0 0 0 0 0 0 entry7b.o + 0 0 0 0 0 0 entry8b.o + 8 4 0 0 0 0 entry9a.o + 30 0 0 0 0 0 handlers.o + 36 8 0 0 0 68 init.o + + ---------------------------------------------------------------------- + 86 16 0 0 0 68 Library Totals + 0 0 0 0 0 0 (incl. Padding) + + ---------------------------------------------------------------------- + + Code (inc. data) RO Data RW Data ZI Data Debug Library Name + + 86 16 0 0 0 68 mc_w.l + + ---------------------------------------------------------------------- + 86 16 0 0 0 68 Library Totals + + ---------------------------------------------------------------------- + +============================================================================== + + + Code (inc. data) RO Data RW Data ZI Data Debug + + 388 62 268 12 1028 363456 Grand Totals + 388 62 268 12 1028 363456 ELF Image Totals + 388 62 268 12 0 0 ROM Totals + +============================================================================== + + Total RO Size (Code + RO Data) 656 ( 0.64kB) + Total RW Size (RW Data + ZI Data) 1040 ( 1.02kB) + Total ROM Size (Code + RO Data + RW Data) 668 ( 0.65kB) + +============================================================================== + diff --git a/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.sct b/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.sct new file mode 100644 index 0000000..c26b647 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/NUCLEO-F103RB.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00020000 { ; load region size_region + ER_IROM1 0x08000000 0x00020000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00005000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/MDK-ARM/NUCLEO-F103RB/chrono.crf b/MDK-ARM/NUCLEO-F103RB/chrono.crf new file mode 100644 index 0000000000000000000000000000000000000000..6ba32d6c1f77fc330fe00bfeb195b15156067af0 GIT binary patch literal 372251 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

&m?`xx$&rZY)2AfIbIs{n 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Ðx)Pi9ji=8y!-8Pti!ltLUSuS2Q5y; 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 literal 0 HcmV?d00001 diff --git a/MDK-ARM/NUCLEO-F103RB/mytimer.crf b/MDK-ARM/NUCLEO-F103RB/mytimer.crf new file mode 100644 index 0000000000000000000000000000000000000000..19189e1b489cb54eb35bd4d1693bbd7e7f9537b1 GIT binary patch literal 370931 zcmbS!2fSoOmHwS!!W-g{5fDMew1(H+FO6d8*RS7u&Adc+Pr&7GI}8sP8D?;T!mep` z|L&Rtiiqy2h^`UC8o>Za#vD*aM9h(06$3%=|9y3;?yY<8sp|31?>EeJeW$*2s_N9K zx^=7Ses5KhEM1bUxUZFb>$Ve;rH4Q9iKn%;Z9Z-1u5)YEGb@9&^G|=`*~!f}eD9ab z6Z|)QTPs=m)W(xfTf4YrYwvl(r`6lDr!CYQYt26zvz=DwwBaWXKCyC|{2NqTcb~C% z+UD&$7JHk|t%2*l@Ba8&!}VXctx1+Xp}+;cM&q>cE!$3mAzN(jox9H1vTYagUi_)s zzG(7ZaNB&cv{A^rH+G!6bIZ=&=I!U6w`J?%4&R!u+%}Ueea8PUmHl4M2?xM?j84MQY1IKso^l~mkg$S^E-A-ijpkY*qK>K&rH#TkEDpsu8bF@u9 zWMc93-Dk~i-?n8JiegOcWO)`)!p?e0esIs>HqQaJ#FBnGDpyqOyJ5q`lqBA}=U|(- zYGM6^q@A4ccI&eX&9)>jW}@wGL(URJjsTYJS~%KZtS)OMe_Q5 zYDH47%coW)_1b)DO;W#qk?`lYn1v#qtdg+UY2?Bx(<5QLa$MutMs}XoyLdSdN`c$ zjD_19ZT-JJb5)bCz0p?DT?L@iXbR(9nRl@r*Ys@JPRufNTeFqkczdm6_(qn&0P7Yc z{eaB1O?tOI)oaYp3i!f8Cg(+u&wLn}Y#khtOSJ8DcrMX4&tVyDtBOi&+Ah;5rnkk6 zsa$$Bl^-vrTlvXMX=kBjtJ1RsiPq-BvgTaZskggUc3UCYN}pRuwq@L!#VEE#Ww=+d z?RsN|u&>s)B8p3q?#>W+#D-1hEUr6Gkl(}jqf9{Dm*J(?z2LmXSVLx?der}3?lD8U@Imp4}PIm&* zy@_UHrjwlFThKr;=Q_#wo`Y;1uS9i>^>!uifK5{C14yZiAZc4Jsa8eOdATH1%dX^{ zENQppdJHrQ*D59%vcKfh3>$;KCuivX2$z<$1CX`1b#c>9W8X38*OGoH5r^qejKw7C7u-g&!rB$sFHhLRx# zZt%ja*U}tGT#*wzchmV0d`(_Z5|4nO?Im#BvEFQJE?Jj#38bNpnE1$CBFtyvqjHHb zorxzDDeD`PPEL@NNPKuMk(5Zx>mel)AC^h7H^NLL{x$24Othr8HdnAP?x4YTTg3MZCIJdoNZ(>nY@zQ_b@6~3m7*cyCY8L<`kN>vTY z^to~tTcTH$5nCR`09%@W&+?cWvc-X(#X_~Z@&FoAAggIafvl=Z=98$ng>KvQo(s#V z(C`L?G^ynMX_gU2@{@DI=oE(H-Q`rszAH~*gptg-zGVjML~C-=aBNnRA-yT9o=$73 zSMScx;;DPD6uq|Rcq?<1Cev9rj;X@2R^%{6 zB)K~C4l`@(HsLkN`F`pop0U?;niI*3jOm>GVGe~UIOcz-d~enz7Gl=E(3-(x;&ieq z^LHx8nu(n>PGeHVi66-@@$1&xQ_U{0#&mBK`ZxRepvEGzn8^Kp&w;i)D==Z~%wpU~ z$1G0SW?FO2#0!<2h1I)oOAD>aTp6nb^H@^ou4~UF$7BxElhS_OPub9{uT5_A%ero^ zKGT|-YfkjoWHrtvy{V(cl9j%3T(v~Q%o0ojb}XKSWs6-qwr@?I%!r}aB!8~dVu}W&;x+Mqg+J4^rnapbPC9Rb9x(MyCPfLqtLHlNOJgJu(mmFa%n%%TzTh5#} z`uS)M^SvT9=Voh8nh&!g$9Z#z^YwmXo7!o&X6v1`$(d=pe#N%y!j3Im#7ZXoET&d$ zmS@5~shO`W892{M52QR_EAWi_&cC>gi({Bea}{jMj_1NZy(n|WmYoHd%Lh5X9ZAR}v~~Al^1*^sXF7Q&r3M)5ew#^o*0<-|$!b41kFQi?_!$arC<%Hn_LU~r2;Y1wc8s}|E~J(cNKGqPYqMYyUD*5lBT&b?r}q^ z>(6sIKr$cK6zl}aBq85({Ctq=CZ8~47e{TlzYOSZediE=iQQZOnP@IF=O*e{pnqV` z{#L^>jMT{&{Gap5XZ9Rm(d9trF@^Mh&*I6*`#nFKZ1J17g#>oyv7>3*z9;S8wr$h7 zi)TE|JZg>|TSzzMKL`N@}Hs;o)u%OO(M);^O>x=i9+Z(;k+q)|$p zMN~hzkors`J6cMm?9&RVcrOCpxl$@+*A-IN8`-CnQYkxLNIk{KKBJUM*{Q#yZ4R_; z@UErHT9^@3)5dyNuCX4G*6=%7!yij)7(btnwUM-jIb)F;{-{|<;o{r@CK2?;=C>&6 zwE92)KdkJQ|sJ{r{{F7|Az&{ zZ4$+6_b;WgJ`XLViq|HkRLZU_q>9%bSxTksafMXzT5s9bShl`L+5HN#;XZ$cn*{vq>QvCsPR*-AR) zxBngfyxO|ymzS>ChMC%WbayYQv(RbIV0>_K^vj-;SCYS^ZgdOX=;f&!;pg))F-Vt| z?cfzuJ$Z{Q3293=o=dVH_bN-GsQXU=-N{&AXvHSS%E?wU0G~3Bp zn4_7LXMcC;zI@%>Uf-M;#KVd&*nr^k(ZWt}Ra@jL$%>p@XQ7SxvO-wJkeDNc;8snr zmV7=ZSRZdEFJN2H=sTBqHV$D?2=SEZzeD;ytp%(ZSi#pH<_Qib&m*N76jAC+R%pUuc{upYv1d%=STN&;Sftm~1Ck`X)~x;Q>FP zKGDXTHtQv;Q8~~=|FkKGvAXaA5f6mc!I0v4?ESux4J) zTq$aGn+>epG!4!9eWl3t;_Mw|# z5?yDvCGEHf zSx(JXZqw#l4_{^bIGX+Y$dKnyrPNri?9Ov3#2E9RQ3-OqM=_VS)EnK_dLh{m7a_~D z^8JG0x7Qt?N$nVl;LQJ&Y*b*4xcu{Yy+D6|UKnQX7v@8R3H4Y9Z*~svzIdKuP?8vv9uwa%o)t<+G7*@&aq7vk| zNHe!{YKPMktWU_i_AUK{$n>9k9%&=&v22~JcF?&zKY3z*F|rM7#b;|7!%X28;v!_( zkZ)3q1lBh zvNZF31CtOexU4lV2n@wk1ZV!ayqU~DJ~=&!A!AC0oI_&*WH`DkFwt7y8|-!4QWM{g z36SB(`C`%r`~D;4cuHJ^EaUl@XIL;rhPz@{p>5U&`pA%HSz)Y)HFNWG3`X7Q_C#~8 zZtC^beWl2CVZMWy2_WA8OqumrNA=NuLS*{1CN#dTlVkd1KOr)GP7|7KVoHgnW@pn? z{e;MLL%t5Abl6Z@pP6BeW2Kf(T$np4QsjE^o)c}9cqpTUNV)QPY~R`oIr8n%1sbC0Ge}&qsGks-{#z4rUgelR z)=!8`pV5SzKRKpo*P;-azLc*3J^`j7!LG23#YM>SbVbA!%(6T+E<%>L)jAYHWJS#jZf;0aUG!5(KJcbuXCCKse z!azkEChCpG`quo6>5wa90%SN)5oq}gOJf3LSfyCWXZx%!zZjJu$MyLMuW1jjB6f#i z=6-=}95fz0_2 z*{k(5XKQZ#f-HISgn_Jo99lq`_co=ek(UoO@^p7cOn?kOQ^LnO%nc@6=$qmSlW`HU z%;wc_jSTyq$Jb3Y*UM1(`Ko^B!=KhboeJ1zBhHkfA7YBND z1ZVyy<{ixB=X-IZ`{5ywIUlPSHeJU=QwE0r2*b>MnZBTF7ay0sd6~EPcv`yn`Q~L< z)a|x0H*$-wZ(gV;eo*EIS|QKYW^G5^&*}8@@Vo>t;QWwbpbg{eWPRh{{$gZ1Dl9hJIJJSYnle7n zUyN+a^p-uHR%R5m^%2EEStkvTwjDNpYn!BS7!2ZVfpgIerD+j4iox**?3+@XiVEiVno@rB^Onwj0}(9+h?k zCSZ%_tRUUJM8eyn>(n)ixj%P@>!5yr;ElRUXf@?cI5 zFZ>SDkM8hWfcOh8N9sWu{Bd6M|l~C@jl*DvCx_r!kg-R$}rx{}xi84(Q;r+2 zyX?B-{vnV#4=q~-2AB1QAj-U7&3h6$H%?rbr%svscn{#TDu*-w6AJn9oL9%9e0}0n zJ-?4j{`5eC;YaA;{Hrwb6>u45l4FC7wlTBZ{BR2=FTw8+`q`z z5pyFa_JW(t-lG)tdnof(%hdE&p46wiUJ{0x`(66T;)2Bec0%r z^YOl1+CqzI5BO=#jYjTXZXYp0=>BD^I(*ka$u#`?FzzG1wy@ zX9Yv2mqgAAj&LZP73@P+I2pw~0&-T9o}Wa{D)v(-oYmxbjg#X*fwPA9m|hY&Yp4!| zvu5`3+E94vye-prf)!$SnVSx7}D+E7P^l#stW4RTfY^ z20W*B@$S&raCTIJ9NSeT;;4q=D=`5wd|MS*Xivfi4a2oD0W#d8SP2WTR^US6E29$R zctbW9OzVOj!6O-ui;$(I=s_3rNOngh$nkDeq2+OS`!P~$GYN8d`!P}p*a1g%t>e9&RwT%Aky7=DNVq>_#*uidN-2paLY7&j zM{%6)+EtMQBRKOPo<;Oj1^moq-xh|Md$;1o3-fpZgtson&p#0pAj6efEr7vXStA?= z$3@6;l-8zZU~yHcwV3p1N|57i1yju!gpFMsicDF46cZqWw*bbvlo8AQ#o^OiiYyC| z;m+(04F%lzmi>b)@8~B)ruXKJl`#>cJ%>h9nvcZ<$ncqbwc8Q2=l-T8-dj1E>mc_x zS=!lLk0KmVaR1MI+@%8+LuTMWv{Ow_ye_4SE~ zwrnFF?k`5RllqAbn%W)dFGjYfW=k_=+sxr#R?~D}DRRvR>T70hZN>G11Nz92=dhUR zrt(b*_d<+p$K;(gZAJ9GjO+dVgvj*KKrJ+9TUZ00o07Gq4Sl7^^{jxx)I3)E>-q_i z=^}l~>n2gRE??2X7VS1hQ7@@sl1_D#vVmKdr)vs>I5Otu%eO9HUTv>@B=+8OI1&HHTo$l8A5PkU8!uQ*2Lq5N_>N9C<5f z829{e>++SYE@zoIh+y|@zum8+;pCsw=Y?CBuWHQHTeH{$gN@PdDZ-^fL6E;7L5|B6j&8$$FuWov zL5`~xiOF3w;=IK(j2&-{N|587*_f4Cy0x_p2bRw=6t$QD8J?W4tjS3{p?7y|IjgnJ zw~HyIc*}i3lzEjlHF?Eb?hoXxn8%N$0aU!@uR)Z0_sLh2^OnJ!w_M*(h)iF} z2S6EId$Zfmkmc$_!Z33`Bp<=eSlOFvKQr6-<2_ol5egFIcvC(Aio|Svu919lj9;}IYlea?3QigyU*vwe7s!GX4zql_J+@-VyBdr8m3jIoo&e6}2hYyZQ-{$$OD&tumJnc6Ohh z^6V;=Ehj>je~wR~Ke1xPggJEfhIAgrq(&RFSf1pUIin=u=+{NLq$c0qU4pAGWTo<; z2JRj<_rl8bY*$uc8Dg~cCdQ}S;fc%pO0gK9-1BJrI^|(St`6Q?W7>&b?WS%|*egkL zK4#BjEa&kWCk_@i9qD)XPL!NkQ2QJL37yC+)Yim>r2f7W{#eJp7^$t~v0SOcS zbe-5+)$r=Wmm=4v)vjZtuzMZll(S4v?k`5Ry6WvITk0J@-3vML{U$EQo&2WW?%fMH z@+IM#V`-b>AaCd^MXrn09%IV7zJYLp(=c{7@8Vubl5?x-nvRn%d@beM_C}D5mqrD> zt-f#H8$mL@J6amE`PCXZy;qXtoR2DROs5;&Ke{)9Wc+kgH}?j+s_gESBsu>v>}6>2 z*;&WOeD|s((t>A zbU&@r=$K2sl8u=hAHaC93lTr%<65#wYiDVkpqaETW<#Ran++M{I;^1ylHP-F(s?O{ zr0;7kG%$$=Wz^h)YSOk~2~h-B%Fa}CBao!vvVrmBE=Uou9oZ?(JYP@M;7OW<-l!{RPn zrnY^@mR%Q2?byEiye-?#!Xfu`ABT~dQe>W4>$^$-d5srXW$Ll)rJO~ zkelF`??u@&p3BFt6u=;&Qw6jGn=?NpvxnJ$Vl?S?V8WaUO zEEzCcJT6?hFRrHR$@OdhjCyy;2j_Bh&pi(hAVsZS9i>{|i@Flq+;=xJhv=fuJpSR> zF}dX8mCI3{ZP*ibtd+)nq^=gS3{OlmTw*i42M#CnxWLb3@Vx40srcKi_`6Y})#eIK zTm!#z^Vy4M?8a`i(>Lwdu?2TT?!=ZxL2;+r89PtM?A}Y*f`lKVB}5&rv3K@)zIJ)4 z@m*Hqf0lCOz4y{I$GdF~u8NBee2v8DD0=iy(me06dFYY(TF$(Dzf}6atn|gG1(8NA z7!97km_3uyD(|=Q7vYtGc+UG*t~$^45PCz9YFJHMDOYe*4o|kph58^6F2kwu@@09S&)O#;qS@zzoSS}aezI^3j z1Bpf*e6%6N)5_N_{m}k&xfs#KMFlz*(X;X zd|tsE+;e_piXL#DXAAC?b3GLKoFdcr*h3f7GJaAoBhQ6MC46#asf@hHJMUBQ5*v|z znflb{ZR@@iW1=*}=U1+Loy(a{1uTsTi%LI5(_Z zu?rsp+KJ=RhbOBC5ZRXUbmI~vkE0{P+QIW30VtY8^WHJ<80~?1r_VgJ7d$XMeL|k@6^I(do%vr zx^f?^Z8g%p<+rX})@WC-iO+2|Hwjhjz;ml#x2{~#!QsRTwyqVDs^;Suj(5e$^OKNz zi7&;ZD$cHZ8JSeWe58;xgnLFj6Q*%I=^j5}1_{~L@>^Ff@0nIT+p>eVWi2iq9s?cphW709dt zPAr~@ohZ>3`K@V@C!~e_t+dF#`GhJ?zS_&pp7Gn2tN2*JThLHR&Ia(nhLg})#D+s@ zLu327=Wds;$Iz6g>ZZ6?>36U6_6lSc-Mw-dD`{zJkxAedeb-_pfjjhb2}8IrK9?}; z9k?)AM!b_1CSeqZx^h{@yaQ22Vhy(Qx`w!W<#HG{h=y?9boa^?_{0v@Wv9}5xqIb4 z_&ws&a&PXBvc|$my|l3&)N9Du^s<3vyqm3+n((rL<=qM6tj;Ktf;aw2US_(DGhxTs zwmAadcj|S|$L-Tw$G4xKDmQnimhZ!J%3m?CtPSPOl=u|`%iC0*bqtdN<$uk~KzV}2 za&e5KsGRTWit4Y4m;H4E%h`o8lNQo-g|L@r} zIm;OAnLRlRvsW{xJSAi~tJp>E3w9v5uO?W-i6PewE*w}fIa!C~w>8P3co zjL}k?kQy+E7dS{Z$HG3C*;T>9g+~X!d7)=YI}5%0=%%9N)(W z7%rZN=9QuygqJn5jdiIXKSHN;jr*yAWeh)0NSoqQ11lPH?4&PG>-O!==u4`iR@Q<*p}QYM*lMOyx=23B-7un+P^X(zM~_LKc1dX`l20oXz> zdzxs~JK`059%@<3KjZW=HX$eID0+@&a@z3$$;*J$Kj>n|^0YzP;!wc}uW3#;d=Dm_C8o zEeUPHaxOpM%q%*yO<6IqY1bxRkX=Zs;C-u?4~7iNbjL9vrGmD|%T$xk7E)^1j(4bS zjQ!^2%r~22CTP2fQa^yNV|!e7L#9cX_T~jhVBgNB0Z5of!o4)Wax5S3;9TUp)9?t9 zaU|U1i_A3E@@#tQFjEWow5Y4$59n4p4L=`P-dvBSes@ZUl-WAkj31IQn*~?@d|)Mg z5K`AL-Wbb%p2eF%#6cHYe?EX?I}7b9ro*W@^-0g1D|B;QueytsR>3BmTtXE)dYr*` z4J@CpL&UU_F-20UXeH;(cbOn+ZkM$Z%R0!CO_`yl10(;EQ-ktl$A|73Sb+rsW4Lk^ zu+#RSiOT#Yf;7&9s70`SCo_Ek2l5=*kK<%7UBwXpp0vVWx@vi2a*F3^9sNsJEo)$= z^~^LHymZwnJe^hBxRV2~xZMU%Nv)XFAJUmjTfB7DN<88<=i26bhAwS@`I*SiQu>M5 zK+Wl@Yke3qjtvOd-0T};LRT8Z+xYyCD{EkgbD3X@lC-DsdL@@IgYETB;cHhdUue%v zdy_~>nemPUBL$bbOrs-vxsWo0*}0d3{r}Sl2lI1Hh6p1LmxB_(rBH z-5>OpbcMNurK_NwatT%30qPv*l2r`*FZ6#S{$!UIU$SaN14qExcy@Q~cgd=i?Ttue zQ+a7!Nt;NU?~+vmt!l@3&SNs`@m0~(`u~kvf0CA!R%kV~uLRUpCU0~sugKVF6+HfB*xpG$+7O{#hi$57Sa9okvMpfxzwSn-(` zIt}w7l2lb4p*knQddueMh83#0M(XlF4I#+L^CNeiHBv0=1bKk@r10ZOsJ>|>pvBetyLFf6y^)thJs(F zv-Ts=63l0bc$CKn!&ztE*O|CPX41~UkSMuVamHoRybmavnXpMbK4UbGcP4Rp<}aMW z*CoIAL0G2R#{6<#*4Cf*NmiMII7ED_CTi|>8? z)_gzQWap`T$-cj704vLVrk2%w;@-$|Emjf>-@P~Jk95>pbf=EmhUIH1h1vSu9XdKJ zwekZU9TD_)9UT?)`&sLA4rDk$)%-TS0aG*l%un*X41_uM8opxj0Iny5EkA+ zAf+5|PVw=q`t7=m$^8m1H-eu@+mMMeATG?-O{Cq4&?cnI*{AVF-2Yv}gS`KH2#*Qr zo)L87QfYQhy!=RivtOEPhD3aY>5|x(o_@H^^hS(- zxrBxp=e#TvxFkC#(Zn&lR0(??zKZ1ku3}$h>L0}M?brEPY`-(hF~ZEosbCX$nvY%3 ze1=4Dsm+QRsca5*JTsS)-v^qGi1&8ewk>Y0;9YI{X=ER$VsnQI)UeR40z+6NQh{N- zdsBfCluHFham_~BcIZ&p-jn`BU&7C{UQKtwENDOLy!*_LV{JV3BudonTN^PqMGe#+Zw<~ z=MDdUzGQi30Y@P4%`8mF7UuuZA+lYT8Rz9f6{aP%$qN&f>^(X}vJaKWmh-B|8kuev} zIi~X^S7$R)|36U?QvEs`ptC%936O??EVVa?b5dG*1))t#uVNcfsd%txrn!C)FTw&) z1xptJsESvN0jP$>i~ux*)wcjN?Dr_Iq_A)VD{_Hcqu42=)pT`z6^rLOQo~w^jtpT@ zL`R0PBt&9?G=%U@ddMe`>!fO&)KKsImm-A0Oux~76mR#8WQzCO+jXOGII9YAl4LMv_dw-dXUF|7ZNOL*RYvd~A@c>5KS_R*R zCg#IvpN3Dz*W6$a(L6bTk*{9nV?InK(jkJAdR|c>JLvyO1IY9**$|QDz+0gLP1Vv| zpaGyHvOL(pkusU5YdABm z0~^N@=IMB8Ep2-U<;{kW9&SZ2k>*JukeWvFWl3{l+M`i6q+35O1d_6%Qa0xCorCll zF0-=UnU|Xvz7s@AdV5y(d|vFx(phDI_O3Y0gZXP(*UZObMhjx+auuPC z-bYBYJowsC8c@?z+cH<`5V`nPPFi$-FBis>JQ-qU!(P1pc^x9zwFNTCg#k?=YZ;&U ztPYXvDvhj#Rme1I8-t+(X9}ds76TaRwq{Y=&xeP`l5t&oKkyYgM7FET#vvD;BFbbf znOc5Ihe-B$g{(D+&Y6~!O9F6>>GX4a+X5Krc4sB^^Wi;c+S9Uhcb4+#5J<)ovYwX9 ziLVEweIf(!?o%$_yd{W|^qZM~=kwyZQ8Cm-8Sb00At=j6keu9KD&T=R5X#DR*|c|i z?g(Hcyg;c-|QK& zqtmga-V(q_cwVX0CLi`G7Wo!tW-Q-x0vP$8TjDeMFas?X8R@PTj|hQed}yi2k`q^u zr#;YA6y84fI&xFD*PVTcbY6G%Aav)vJ6SS*AXfz{xJ^h^kB*C1ZULx?fUZI)5_UG` zt6WTwF~Z!st+Pas(a2YpY{zfIBR2E%lE0_d=H7ks&-2@Prq?`+ax`u2jeHGCYh|hexoj zE{qRXsyJg*E*b8&qYBF#Y&xDcOLwHDwz+>3upx2`49>LDca(1kUyAbo?FwA=V zgwpjTH@aYc&|=rO#DfTjL9l{rtji|boT#rV9))7~5H8q?;Uk!S$M7-C^~+U)Slq$d zF&Cg;9fnyY7b;aExiP0nKZc$8*38UC-Un-_e-INO`A?O41G!=_0M4$nmv)Rr zaFRb=b79Gk-R4TjvfP7McMhW!?2rkgRdZfMg6*Mxr5LMgSj>u4*)(1eKPkH?!Ot#r z3ITSpDn8p=_BUHKReXC%)jw}*2N8G7%NbAA!1f5=Q+SB2?^ z{F{A?xrYt?lCb_^Lq8CvAI8DqVC9S$`Xna6$|*iiF%a0gA4%RC&OK`A{}vM<{fe;l zqj(t_w0_LcKNu4r{qivV81B>z(yuY}55xpWzbs6@2Dd#u%+5oOEH*6`tr&~G6_ua@ zb(EBji*rj`Bl%@E^3A9OHQW~N-jxcb%i%J}Nd1kd1T}mwqM?ducUXh;->*j{sNuU2 z4Yg!TB)@dwuSF%O;ns+Tp~Snkztqywi@zGtAl=wouq$(5`%$=-q$7VND#0>*J5q*` znq=KIxz)1O`LO8Jb@O+i;z(^Nou&d>3A~<=UQP%15V?9;jX7yR_r$%sc zPiWkdACaTPEsYxHPVoS@!*y=Y?z*Pi;^dw#+bwR>YGOuGvRj%qT;C}ksBed(zDrIg zZ6S|tFAu|HevQ`u*vT5WjX)u0fra>$VVJ~k(1=ZLoL4FlODhD49ULIGuuhy={8~+~ zz$EszH<&1zcI*Z&$S+we^&hNb2M6ld!l+}dV+-p)1u#9?OF#y`Y|Pr^owd2-_{S6&yx} zdIrLJD1%47pdMU2DfO20k)a;%(}zV{$b)CUpq>e*=Wl&vsK@&RV^I%z@DQl$!I~0J z&KWwXGw36h)#+K?M}~Ti4ETZN z!KYMpJ=_TE^c>hnhI$SU=&?N50R0F%X*?#^ezLvYX*#Q~6m@wYrPR4_&{;1PdPvjh zda#cSH7yU6%JN`sps2?j)9i82x6@N@rM!&ZN;w&&l~TOs^c)nn#mG?45vB6vc(4~! zFAq1NJ3Zd#A8qXmhm)b6`vQ8b43<}m-XI*ZdEIF$dqYu*y2{>AkW#!sB)ARU>3V9Q z3(u)ArL~<){7Mz@Ebtf&q_gPPm-$_t`w{5O0fqm7vCn~D}XBI5~rU*{< zv-6W{KR?2C-g>!1z|5g7`|VK)^8X~iZpaA@t{ku&*oUQR;H=kbD6B!d{8oY*3Tx1L ziQ*cxhvJe1Gc7BuK^G*bp|A#>mng15d#G!J!Wwizf*J~I(0PgC8nlN_*fJE>pbHYz zP*{V`OBC0j9m?6Q)v#1=DJww@s{$=;IPd_Ywlwm?A51$eiAqqzKu`lX@aUpy;EdL4 zxHBq24ZqMe2nTk$sTw$!wHoe-N>IbkbPd9R>jH|Q+w>Nh4O<Id!6IK zopowSIDfTT3hx}8M_38!D7Z#n`c^PUcw|7oPX>Wsb zhH6W4fL;rxTHnI{_P>vm*1Y(D(fpgHf z1}hQKAQDP+GWuoaX?2W5JevKIS_&)QE;cwGoaIzY!g;6FvVT;9It~qbD>$%hr#3d` zoL0eMF#+-)qc^r;NIslb&MTGhUcqgq{%H^;@o(~P8?(GP?vq=5bqE%s&G`BHFihUJ zy%w;e#o?Uo*V6oEH zSEMhr=I~G}l;`C=fRqj<>+|zH&4V#V&iRgk=DBbp#KmnCB(^Y#&sB&8#xsA3xHH*J ziJudON&MV0vCWP12f61#O{fIKR%a4!N zmAGeQbxF93Z+=m(6estQWp0OK*){DKyrcrhj&QWbeYN<+5J=X?XZ<3VGxZuYw%N^AZSu!grM>(8*&bZcbG+g(AF*6`aAGKwFRvt|T0DeKmZz?!>*SS1Pd8rkal+kiErX2N`T zz?xCq_pMtq3Tyrl#45?}6|6BQp>cNrW4(BnW~B9kd^m|v4v9#Y@YM)`WIS03iOh*( z#_3ioU)3N=)(Sxt>^@Nqk;pY30%=G~H>83~5L81Lwx&Z+1^4W!hDgw=hd>%Kts7Fs z?itk(My#n2RPhgE`1L69>KVErHREXW)ewfLi4au58y3|N2~bZBfiz@7H)I6s zys9CLPK^*$Ndg^1V$(^wArhJzx*?-j9#josU>XlW6Nm?EvEvgKWE}u3;I!qfP1(P!aC3#z$6LlSBGKNl6Q|< zo|-o}1x#Xazab1(aP%%q0su)PFGy)1>P| z4aYmH0wyuwUl#@|IDlB3uub>e#Os0pMq^%*EmfrT!->}+iZY~2a4Qe0M%kG0%krQq zpfaf1T-u;&A#G4Kki@m}plU%Dtvsj-s0^w$mo}(ch=Xc5-lIlrNb}xe`1J^srW{k6 zXd7Cbmin;XHYT1O9mFchLju-FH1k%ebJkRhHQt4#c@%d5s$NuKD0@f{t0YGStdT%= zNDyV+JS0#z)#QT#jf`SP1+fa&SoD^X79UKy>29O9TY@q%@F}>hOv=Pw}xTs@E}&fyT5$A zvzKzp<6Uv0nu4^YI8k*VCaNl>^o!z@)8>+HQJiu*5K~T-Qk>h{24tGv=8`dbyfArm zAdbDMl;WXJ4uLFqU8k(!+@?w?ZsuLx<69|bfxWAHav+XAsFdO>V^)R- z$v8F?0%_$_bjmf@WR~yC&S9nd>>ET$dT^mHr+M)KA)QrvkhdGhFFZyFvaSxWR&XJ# z&MKYA+kul~m0omEfVG;uE5IuKXk`$ktp^5JYsotU`J^kY2%=;?Aiz3=6OeihNN-vm zM9I2;fOXhEI%#SSAEN5vkGOz$nNJ=hr+1l84lF%JSxRaD!GfozASp)+p6bBTV~_=; z@x7O>z9G`~-sOcku=E&XDW&E4iDJKtrXZ~x)~&3S9z$#{Y4#`RloCOQbV}YEq8cJ? z{`e3`D{DICaOp9?S}76qA9TtQ(>tp=C2ucLt&|ArT?Fa3fGpE^7eVGgyn|CIC4v?g zTx<~}f)*EC9Eb%Ml~N+8w+F{JWQ{5Klk|eG!R2H5K52E?IsJn{lnvxv66tHioc=9= zeA0s+2%=E0kp)+E3>jQwAEx8j%kdgC35pv7LFg5)grdIy$zy#=KGi@iPt zNm=am4lMP03rOP^dwmL$ve@e#SnBl_kd`m@`V=H(vDZ7W)axxE&0g&FDM-pM%u-6T>p{6Kt*!^<_D~=wx24VXpbU_8sR!lua3CnRC4%Zf86YY3pxhn_1m(6w zP(3IEB&8md+oOS?+?EKc2W5by)Pr(+ED)625<&H#43Lz1P;Rd&ZP9YBE)$UA3@k%Q zTAYEUXlVxK5a~gBTyEQ^cs(uy4aDU(zIDW#!}PdJl(y<|8E7Cbw=2?*^teovta@Aq z8i>p7igYDCE)ylI9+!az;&Qtpy-APDM9HehWuX2&s}fr|1+@XxyN)V{kZ9q`#~UfuwBfRu1DdM1H0^(^!k0)Qz>$ zr3E@w2#LHbt>vR%ewM`kNq1fBi$@+0wC&CI1@8 zCz15mL6oe&53sIDynFIYKX&@;Lwj*YjR%vrxT7Y6v7;uxRVRg{e--z|crb~J`(iTK zzdR&wv2?L7g!D=uyRNX|CMB+7cnDZ5z3lU0m=<3fBCcVO2oOt0`&<|%@s~oxLl`Oo z#M0NU48tV8CPX}p0YmrTwPtSry&y{39|nAFEsg-CqmB8Da&tY-EaFs?A@!D=@*p|A zC8r#SC8u-;Xb!+$gU5xS3JxO%a#eADHvrXeF~jf1%TF+J^>H)LU>IQ&mz0xaWi z!t@oK%M8+s+y5jcK>A;Y>8r^L!nwuye;gAay*Gs_mcNG2wgs)1F7Tt60O`HyRFQrN zpK}Y+OGmgfCO~>`YE`5k#w7qjdKrCw7!x49H_a;2kKhJ?AiWGjcfP8XR~ls zmcZRW=|S)kDn0jOQ3-1JOhiKkr%%Efr1O3>DnSjOj%cXjSV>re^xuy}C8*(35e+q* z7YS>SE_``Zf*L*<(J+M5C1DNHi$5HdpoULGGz{Z}M>?o^Ej{1vn(^n_AWG(2vOz7M z7rW5Y$J;!DA?W5H#y#kveEb55HqsbN>$vqq>v0CeN8qva=G`|{uxMf2tUY-f&PoEf zW<5wRSEYVACcwJ#HlG#g8~7Y|kY2vhdP_`z^xj6aBK-uuSr??2PoUf!6Ck~}DXmD~ z#23>Q7izAzpS1M8g^*=6D2ct#dFD}k2t2)^#UQiw1$-?HH~!#5;`p~|RPQ2LRfZb8 zi)1w!|03B8=iMrvo+oRzcrw)E-OjA>zyZ=L7BgJ#1@bg4_LZV8?+X$-7uIJ(+Nz$m zGx|zVoA)(|f;P*Ab=#1(nx}1ZUny$yzARDDX1VYkDaAA74il?w5I1-Ald0emf=Amu zP!H2J;re{zYnZAHTFJ)*Bys6*w^g6XT=VR|FAGb)eb3{qmPhV|7Q7sOf)zh8AU=tY z*<=gMHLUh{kRMrM4T40U?S^1IMJ5tp_-1g(I2(viB|4Ws$8kb5B+;Gu(U_-d7Rbo@V**w^57q=@FP^=d}H6e z*U~iPKCLHs)tYi+eNb;`KdKziM}`^?%WjFtmBvLB?^Y`f$28*5KtnrADmbB|H?)&* zz5B#HPqH=pXjPZr&@%b`;op^m<^6e}J)A8$9eDcLdy8bUe8=CFgBJbl@35$f2PWP7 zoc*bXm~r_Jdo4{%?hSZfi5u(4y7&2`j5;TPFFP4(RObYl4CVxS5OExX@U6H6KQO3! zpW|@e_sBrhaB{w9n94o)@5#W@9u){Png$%=(Hq(c=NtO>do4{v?g=z>i5pA%dP5I+ z$~WT?^msA#ThTONETD7};_!*T7Mr{>hS2(>&rTT)b5uzH=Jew#rnQ!<$J;sTZA zS=!7gV=!ZU1#67Te5N2J(W1Fmk}TTHUTCf+ckBh9JaSL$l_WK<-3!e%+)}JK%EH8; zKk*pqBSURZ(Z-{Ur}X$JPa_*n?lmT-Os_1irsV{vp}3mn3t%-ZU9-+SsAK5|F?vMc z3PO1VuHsFh;^dCJ-Rv~G2&{_hIFY&eljnG&l_}?4dnL&N|50neA}3xpDRUqvb#k{p zHPPzS$7kd@b$)M!sek>RN7-ThxN@C(%veT^2>R+@xHp1S{jYl-ZdD&$R&5!vMIk?g zG&goz4Qw;v-|`aohNuJ;eYN=L?Qq}qnCqzTO8&@@s$JVGS zS!?=QKOw5RHLj|Gr{Ab5S$FzsKOw66PF&Rl7U!a>q;G$vpAc1jJFcpUg}SIJxo7Fi z{e-CMTX9vBShS0(l40SNenM3B&A6(m@&caM&C!wTQNMwJxM<98j1X;!`3;4leggq< z(U{*DA*zb`4TYk90|9Z-nBN#7s*3pyg`$1~0ddio-xwjPiunzNqJ9GbanYFH7$K^P z`3;5OH(?irfVk+*{e-CM8xa>J6BdEPQ4}LVJ?b|Q5EqU4jS-?PF~6Zu)NddlE*kS2 zBScj(zoAgnZy+Ep8uJ??L{%}rp-|LsARsOp^BW^XRWZMzP}FZAATAp78zV$jF~6Y@ z{3h(85D*u=sh<#4eLe1hQ_1NO0Zb+M5-Ds81l)_HK0>r5<~L-D`V9o!OQoo)hIwxl z^BXcn{RRT=1yfYjgi#gq8!|=x1_I)uF~2cF{rrYPQNMwJxM<98j8H$np%DBgS~udN zH}(^vs;|X8a4OlP&Sk6SnLyqsUlWy}lAF}ouI0eZSK549P|l_x}1dN9s}0-Y)qkWis_Do=>2 z^iGutp;Kx7Hx-ajaYH{Ls`_f&Ehh2A9aSZv;`)9GLwPC{0d(Yg z)NddlE*kS2BSc$benX+C-#|cIH0C!(h^k_KL!qeOKtNnH<~K%&s$zaap{UtATD}cKOw3r?RoKBluTH=2}eL)~1rM-8ai;^ihO`Xfu%rk*(R{nfc zf=WvJIE@m^fj1@Ed|FW1ul%{F1T}m~oljd1oXN<)f|ALKpmxjh8{;C>@z%n7t~?9Q zLqwEdkqWy&-w+p}l8a+XDmXx)jcK+f88GxIU@9O1L+@Ii5G~QWRwfkaTB(2p483c4 zLR6)9txPD;wNe2I7<$+8gs4jITA5IwYo!7bF!ZkF2~m~awK5@eEv*-)0unH;=_f>0 zH^tpz63^XHRT40+?k7Z5H^x;>;Q>7CqUg@`sNX<9Tr}o4Mu@h={DwkNzkz_bXv}Yn z5LLzehC)%lfq=MZ%x{bkRmJ>&1PgsO=qnv^8<_SzMbq>|6Ru zQJeSaPHz=3^O8y2zZ2IcK6_DLDQfdR8Ln!Z!qq(Cc@l1hf!9X;2oe%nqkd$hXiwCS zC>8f3NQl=){m4jBThxyz755`Zh}TB_$VgFJ)Q>0?_ajJ%*GB!wNKsqVk0=%QBS?tX zM*YZ0QCrlHC8 z$AS~W5hZww0wu4Fi%`j%)w#D-!n4K^CGvXYHE|It@xH2BF3C{xs2Bs5wNR2*$3>{* z!dOX$lM~febG6AxqDSpaLL!OY+k7b+qxUvXD$v_935g_nZ}X+7P48`WN4Q<-^XUm38UXS|`B*bf@eq^L*Pt=bn755`Zh}TB_$VgFJ)Q>0?_ajJ% z*GB!wNKsqVk0=%QBS?tXM*YZ0QCrlHC>8f3NQl=){m4jBThxyz1wV>-EhNNi-`H1* z+TPm7C#SG16!BV&8uhpzK|;JX>PJS3_C)=NQgJ_mgm`V#kBk(xMg53UaX*5Dcx}{= zj1;v+{fJU=KZ1mKZPbs96tzYDh*EJsf`oW&)Q^l5wMG4iQt+dQ*Fr+P_6>cdsO{oD zJ~@ST#)#Kq8d8t@5hTQGqkd$hXiwCSC>8f3NQl=){m4jBThxyz755`Zh}TB_$VgFJ z)Q>0?_ajJ%*GB!wNKsqVk0=%QBS?tXM*YZ0QCrlHCO)?U+jP5>kGj_jI5KOZjp*ZA;=gjx7=0vP$8tMXNF&A-Mc4?$Z3 z82Qdq`Kq{HR^!7E2K&wqVC37b^3`yrTjN7;0pD2xjC|Wvz9C#GtMQ@P!FOf=Bj33y z-!Lwd)%frx6?}^UjC@;Fz7bqgpz-0g7x>NyVB|YT(rdgg8u^CE z?Tp?RjdCE~c&L=pal9`Y`MKmCEbog(IS_9)4!39E4oHF4>>$4Xq@`Ez1t%@Nn(U{h z*OGnJ^r2*xnm(KisOclgN;Q2nS)rzn;j1>9oog^u9bwCRpjTde>}HP+RPZrxHAfZS z0abw-&X1|U5Kir=z%b5AsK5wzsH?yz&LOD47&fXNW(&B#S3m@&e28p%L;m&vM)!VR zp&o5Mw3Egs;cQy~Bj0Y7uY&f~_#~E{8^Fl7OXaJ=FEl<0WLpCm`F5&&HTaXpCsC|8 zWs*9QAXc0*S*$c=l5`1S#VM1+XkT&4WUd$zqr?oO7 zr64Jb(D@|FXTx&38$q$v1jv@cY zI#9tqS!#}Ia;FZ|aH)ryV+eO{sK79;#882eB#H_16$c%6)Vz zYk0S*QcCP9J{MX;Bz7&;DTnYTQ>B#Hbzcail}mKWVZ66gDJ6E@8v;q0=#(S==L1bN zw`G&qb&pOdk1K!EDMzu5Q?*iJ*Iz;)t$a|Y9K&a8R7x55{~Q8I`G8Kj#{ZU>UvNA0 zd)HnRP?CNtyIM7mVwokqZ8L{R5Av?MD4=BhW`MPV#TK1aI?>HRl&s$fuvT%tLuZwK z$YJhbZyMc99 z=}_Jw#2l*}g8WK=bp#tYbyn$9*9B3w)|UgUqu8sdvr4z}wvgv+m1O|$D&RbdZJGJu z$aMd9cMv0i3NW6l0Hd-BFt(}yBcuv2&Zz*Sl?pKCr~o5}3b6klX&;ym%Ic)u#r$9~ zfUqCxdDxe9g#AHB=+invztj=>mX6RrbYu)|oDZIp{ybs75J+!4q)>S-CvIj_DJ9D7 z8v;pruufUQciUA;3301JASqYtlvV63RVgLD4TL~a9;8#&ub;>ckDOD+Dp0G3ol5&+!xdyL8^KsYKh@B^R-xV=YBtuE+eODxpVm(J^l^*on zAWGId3O(KFtYB3~XO&KLYY-*t4+5-JtnKKm(vQ9qM9F%4fVGAd9-URX(zk;sS-&4( z9l|<~&MLj>TS1hpdjhP(ctNJKN{9Mp5GCtv0oD<`CevA^PkkeZlJ$E5)=|7H(^;ik zeLaYh^}7MqF}yO%52MECCNWR=s18(;kLW-(xm*Wo$%l1d2$w6X%7>E=>c9x@NmX-< zChymQvE+R^um+b}=f_oBa?BH67(gocHjSRAio42nq=qlT=*SSRpVX0I+(fJ+Be)S* zM@F%-uOnkvqfbvJnP}D7&}!mRfBs)?JoN6(DGShlzF&y2J_EXDkY1vmcUMl4Ue-s8 z3mzVQ1${I~FX7L-%A-gxYo)h^t*@f92I(aZde<-%>E)5>dtv$-dTo$i0-|?>zDO_6 zPTvjF525=8=_N9H$DfPz@(^`vn0^?WDT4G8BE2KeMS6LfDlVFPO*?|U6+wE5mEKv* zBE76t6c^Av`cZ7P2+~W?^v=;0>E-#VxR~zIkKu75NH6me@9bQWUOp>YTv+$$*Wj5X z-HKMsZRaT7Q58jk{q}u@QNdGyIQQg;2I;xp@syGV>AL?F(NMw5^l%xZ^Lm@)OB$s2 zzBi(wnv6v>NdNUVG?z3;2YydPLoFGNXpk=KZ9Xk&kUo4_M8i-r644;N*xM*r(jeXV z-4PALIMx?#2kFS(=D?B$>B*NyG>qT~R#=1dWp6`ZNrQCecSSUe;@DMKgLG$a6JSY$ z^yha*G>qZ!NBX_JeEvba9uGi#(;a~L(mDX~{c`{s!t!_k8pbkr02;vy-T*X;W#<4i zhUMb`w5GJ_ER7wA9N#ItJ#HHGhE>uKHiWg#5H^hWej#iGFYrRx zDBi?{ura(+%U27&fwW-fN*~oBM%zypwrWT&d=X6{llb}(9U|GMG_ndlex{H~D7{>V zNcKsMtcvfPDP$5gKdeI}`-DbT!zaxYG6|3$(jk)lw?;OUG_@QO3qPnsB>T8VHk?do zIV9|TK!-^7F^y~l+XIwhN`!mA4w3Am8rf(vuH}$m_C6gV*+(?8F?U#;k|U}3*MLEa~S!&FT?v7UZ&@xi`0>HhYJE2`Cd|Z8E*4o#a82! z9&vsEBj1ZvzF{oaYJAcuo*%%-_ac>V1Z%Y#pY)681u*ixP~{uNLaoLpU1N6uBi{>D zzOm9K1J-M6ao_m&u@m1^ihob zTKX7oJESRGA!nlm32DUtL|0gQxiQ!BEH zLqug0QISG89sJUP$tqn* z!0Hgnrz=G;ASoyHimYJ`T&qYKJKq?E8<31zTN6ZEmnd0RLh0>*byXrDDZL%AIndt$>i|}VP%6Gc7Ogl|zRas&tVN~LB+3Zd541|*}_)&#YYfpsO6-o9T~B?6Mt+xMFT{e8az-L z3CL1=yPaL(4CwE6b^xnGD3xd-ASsn-VL(KS^lhM_oNTmvjdTKZR1hWU!?HI;`Mh}M zO+RUtA=xzO`Y=phZ`Gub8{1nHVpfh!*sc!4B)&0we9eeWZrq-x5VMMe_}VZ`;#)Lg zlN+0B^a_?4!jVCgw8sT1xQcZE&0P4M&|VjY$@^v1T;|3uA%&P#B*a&RVG`e<5u4n& zGfp996$$Z|!Z3+%)`(4R+~%iOu*@8e2%@BYXrO{?SR2vIMHLCH?hghgukH_o;SUNi zt4N5y7=}rFy;ctJ=i! zLaY0Ofyt};17Y}sLd+@>;xB|@5?`m)gUOw2&~mbhgjkI|0+U#cJqAYX(JNSH8ixf@ z(jF72;9=~RQ0gI@X6gQb8kF}yx<3$xKPbekBC+@LVVDMA8>--8Tx6^evx^jlRMHLCH?hghgukH_o^|6Q*EX1GF^a@PkFNG?2 z1ot>=7NdfNSdBfbL3wef#vTJB_UIKXGm}GtDD8bnpn^xSdq*=DRV1{!KNy(2x<3%s z$0F9C5MQb36_~`=gerJ6>1sJyMMA8`9)U@$#vTJB_N1F~ICE)Wme!mz_ZU1vMM(F! zJ%`#2%==||lF#L5$7DiKkULUd6Try!ru@v=<->)0xknnNqpF1O-vb!=URUO0zT|{* z9#nzwy()l_?~P?X=1U%#Z!Ow4(Q2Ej`;HEg?e^?#hO0Z|!k)xZVH>TsT%J>S5T+u7 zk*@F{>@YM@iEp7bCwxlf87xqF#I(wrb$m+Y87xqF#87#;$0FLj&}ltWTI0kJNXEzK z7iH3%$rs9%E|h~@TwT^CxdyR@TQWqT z3RWdc9dTjCcvE4ZFeRQbA6`45+z}UM@WwJ-aZgJ-(;G~VSJNwa+R8;kQ_ALSb+$Qc z)E7ntA7(WaMgaH^TS zCG$-t^XuDatH!jc=a!_?Pu0Q%)QA*h1QnSoqY*cgCn*c2InhOnVA z?UK$6G`JlFH-tcz>{;cKnViY*%DGTkmh$uvNJ?*Ow=>4%#C1sNtj_`TOUt=m5GCm$ z`7Xe=le{=Ol=Dv_okm?IJMRx*Wc+B}KV3d7eU+?)`JE|=+5&C2If)!G0-6=d$c!Zqe>Ab z@7KycYIEasS~?!NoaCKbC*#p4!!U_IS0=W(leu#3IpV?O$}m_-t_XwG*_NI z{-({m=i#(C7N))4^Kb#i^KhxNPS~7-c+3le6-4MDSjAFL5Uk-*q2wzk!!xa~92`Vh zl%vW{EqQS&qNFk-{XZd)oM)7s+T=|BTm}%jF)vRPD+KvOv6EMO^@({203QrswBh5$ z03iABHl`3zs=dbioD6tx4PfMZXPJ-r{Oz6M3gD|tH2GW6s|6z4iu{1rXd4Jm28D*K z_S&7U<4b}lDOVP&(B;J&%)-!8?QxFDDboWwM80KZ6OqfmO~IA7KGT|#26=YTD^TeM zB;i@b#_NrmR7<$!!T|2_6~X$nJQSLR9|O9r(3tv(nbU)^~q(UPqz8-P*E7B zsyMNfQNJz>llh`@Z*jzrDd+5V*0-CJ@^q~Du!Bjg_^^fH!#RsPvkRO8%`VtolQ)N9 z5`QCav6mZX&~q;CL73ipw??vge6ZqQU{nOF*Z>`{S6-dn6ozT<*F*MJa56q%Zw2;x zS5oFps`M)U?MOwiir0$)d*w}3VMdfygd8I&%!oV~GopaKRoLs@cbPY-3VXeqD~n(i zZ|ef~%8Q*F!Z7RitD*X>;TC~_y*1byG^qxAy=yV^_SSk;y!;B-EAL6Xm%sVEvQ@@= z`CEYT1RAh+2=)d|8iKvvotp(x*cGH;Nq;(MR@qTJowKxx)_*Wyiv-(ygD5R6Jkz8# zUc=i7-BL!{kTndn-VNJ1OBrV$2-qTF_MRY0OaB(A(;-}xqg%=t8?uHW*1NkqXXy|u z4fPobuzv|yD)IHffThE@xktB@(KTcZgR6Hdc+S#cSQ_dx5?cQpuv8-J0|84%@UBa@ zbOe@$tYKKaKbWtINxa^pB&hx=h_dzn8nAQ}U-{B4Wkd~G!+=_Nq)0uV@if$DU0ghH>TI=8dw^# zW(_R8Cz!9A{3ScYN*_LXev%8Q^OKXEW>=#BPoomF_&53TtcB)3UO3VBQ}rLdL`M?>GeUuMr{B447twX+@sNB4j!s&m@R{xf7W>r||Ldl!{bo z@fk1$$@iT6dQF-W0VB7blmhVJ!V8WJsuW*vWKb0=Ljl4XZd(XIL%1m+KjE{+OH&q~ z7E_QVE4;&SrVJsdsoFT&72eOJdC)Zj=5wqIm_O93!Tf-(A*`ROC6fViQwU_q&eq#( z7y(Ju#?digJ_pBu`5YSq<`1J}XM}VOl@=Xrv&ev2d;(2DmaMRP=<0t2K~pUmN7I1$ z983e|^9dzj{s>C8IizdIzql{$XR>~IV!p>3%VjITk!y zYIqXSk)hJeUo4OrMR8u}FqX(WNa2-e3^k`|8iPmac5^17+dT$<((N9DJ6#yiGgNv) z5UXY8QJg-a#_)Du;4oyj*j0PAOUo zSbQy$Q4SV&7i3UH8GNm-sxo?6sHTK}3k@NDs%<6{zVh6`$h) zX>$h)X>$h)X>$h)aqduzfi-%gc_(&J0HZJdM=7S7eAri3>|eq+n7loJRB+T)&r`+O zO&zJ>Ri2IvAv$X%lBO!IHl5O@b<$Ga$z>Zc3|89t2RdDYtuV?uXwpD80z}c#9H&4I}${j9SNe%js)TCC>O;~#*op&|0LMeLLj4^_aQX4Qkv60GL{3-PHXa0 z(N1!tS6LMZC>nlFS25tE@gd45GCvJC03gkTfT~{Ser{(j|!q>^-eFF z`krXpyg0p_i$4=MG2$xq=Q>2byYjoIY%W}!lzUr?WN53Vgg*_#B>hcEpUaH}+SE#H zVK=*<-Coh}=@1Ejm|5xN!gb^6%*!RO!=_6!JNB+|%3-AQu5t1)T;o(SZe3gGKA}To zyRvK?awW6n9PuQzp~H)^|t-q^}m)|)L=B=RoOF*pAW~OOLfy& zE8Aml*CDd~q+B=1h1;Uju;rAHEcbaWAK>S;3QmYEk`4Q5a&KxWnJh*Fys4#+VQQ)H zt&`^Q?w-r?03)Aw_neRUch6<%6T;`cILl$=dvme6Y5PPcd33Q(F;lVL;|(8G?1vT;)rgk-ny-dl=GDVjF!EjTu$ao9#PIS-|EP0)LYte z))|a^-qMzj`ImM0>9Qf!yFMlllF_?9CI|Xg1$lr>E0v~&i88BHnwA)vHl3&Xd}5+^ zF-sn#iQdI5Incj^#{+66M0>kEa~KJ|gPT5vgPWR(H8Ih<^2ENo2s?7gY@+Am}BoP5~uJ^6#?%N<}cXidh<*n{&s;ck3#3Bd|5+#VJGh-MBb0COd zKv7Xq)Su&wVRTH0O3vXTVa#dFj$w58t!J-r_IcLYRd@clx9fAhXFX@X`|P#Xb8=0V zi@gC^$#V*`*|KfrP_yK_YJ|4Ed_G%R)M7bLMi*O?@2bqQ)WK3tOqF0I=bvWj+afL= zXuZ5VU})J5MXyPmT*b|LTZh|i;5~Z4p!bAAPvYd-b?$5Etw{x}$+G`^QtUaztoo}k zGqT>_j@gmRx`#eIAN{S9whjfN<+m=n7En$}DhxSl*<(CfZojGydr@_WOT z$MVh1r77NONTJz18aa=ZM5t6(rdn?k6sotM53JVG%}t?_MV0Ehsor8pp?X!RDzTD+ zmFkA6e&mos^>(GI#P(krn)+t%qN%>WQf(Bfe^9A{%J)9<-uDOiyDwtL7Qvv{eG$87 zk_cJvytVN^3>fsjZazBOK9ab_J&Kqs^1v=0W})oS5hx6Lls(R*f2)17G{vii6qdI8>ZGuAe&ZVkQ`9N8vx^Al7vx~6@Ha9_`+C95Cr}FG#rMh9Nw;58X zcDJ>3suC-YOBJen7frQ$xN(YW6smt(^#G{cB$P+fp=r`VYum$MQ2erDGzsIJmB+iU z>}V%3(iCucckzqBo1nO?OmFz9_t zp(jkvZ)Cl7)BCysgWfk6dJ-oOxo5o%)1!mU)^;%H(ZQxOIoM2kG9PLG9Ss=to|xN* zIJsSJZXV>lCZ_h6C4tsIq&+J!i|42H&zn+rgRhMQ5GdUyDG8Ay)ASoRmwWmfzk0x+ z_VxKUB2HdLl=W7o_f-Q1z2_Ht5-0E8$$IOi_a6rgdjGl5lQ?;_H0y1c9?kta4unCE z=6+`~_s{m})-{r@`ovv#3oG`75oq0Fz9*FQm#ut#NmteCF4D~y)Vj;RJ(J77vtNp> zh@nuu?h@G)BMf@o#n+z6#n(b_UG=&PR8x#F=yjJqdnT7Y3%w21>n=P_F~XqNU3l!7 zTzJfSdlyyjX#)nm=gdb+>nDlppI!Cs9I9G(8+AvZb<4bG53lJj`T6?iRf#Gfwk-ro zch5@auj#*X1f|W*i*iC;Mu{FV+-Y9lIts;)nUBa^yi519%dgw`R zrK6CgeKk>WD@Fgw1}{qg-D${{a&zn`ZY4(G@SS@#6ntP2FAt#2E2fgGBBVbujP zG3XGwRtgjixdpu*VO&Dk|A_`)kD%G9YSPHeUJ!+ELqcuiZv~Vg2b(jhKaDH43kmZ zN)9ROF0digJybaB0vkfzQ@VuZR7X5(KA{~+umgQB*q0o`(G6c#HCp4v{T3N&+G}#e zG^R^APOPcAneH{9vsP<;?_L8sr}9jG(Z$jtoDTZfAzQK&(w*JnR_tmzwk{5(?A?|3 z?lX?z=v}@T*5=inO~mt&rEj-suZ{Yz(WTVMvUgY7yWPuQ`u-D&Hgzw5nNxYGLD{IiQVarhu3R|(qi(k1d*UG!s8GB1`tz%uMzwV7dMDZ)SHv-LR|3;uWkza9_{0nW1 zOF6DiDY`n^+g!KluY0g}l2wfMbPx6t?q8BTLpJ?&?~h~*VZLT5L#Q=NroY2H3L4Vs zkItN-=Z!*^&YVqD&YY!DU~y|Qjg8n+W{VM9$yl%Z)~3J0owQBb^jEkO!{Sa-B4CGZ z=nyIsy4HVkXxd$kEyb3UKXb!|Q1`6$6uP$wjP~#~VB2AW z``19vB5er$;$XX0LA!SsQuN}W>OX0c4k0>C>Vrfm+DoTNCn|?QMgKKbeEMj_@cE+= z!zYmHzO^A#xD$+#4I4s*J25QoB+c=wqn*ulpW~l)3`aLSr)spu%W+FFJWYE|-Yz(% zOF3g&Q=Q|xx8zRyRFrj&zgISg?Kf@9oAinabSYOO>R9dF?v+@5?`~-C-m~uAjcs`) zR@u7}w>IiQVarhu3S0HxoTIj^%R#{Ws_dp*i;+W6J>A{C`A-8KqF=i=|IJ|k=D!~3 z^`hN+dzagMa4^3PwrP#I+&>iAOJ34urX0~`3Pn4UO?S#?kbQHPw58ocJM!pt zDi@n;Rc&eauzS~ME9q~jb}xvSQ@Nv{>d|%W(e7=sU6?>syPztR=ObUoe7@ zd}u9sSuXZhzkS_$G>S0H?KROq41hMXurCn72$xToYwskKEYF&eOmdcx%^--}W@SZg&_fN1SEU+93K(c!$ zj!7Cs8y}w}70PuGmRyJAdXs$k2tx9)Nm3&hf0v>*AgMP4-8h1fJW7%pDQ_B{)#CGb zPxS>mYy3q62EnJz&p~@!|GF0Rl`ogd{?z%58e}PtCeE%%1X;-gh&5T42l#5TAFFZ{59REx9ij4)Sn1f1S>`WK!EN z07DzUq8LuX_)Mb3=*01)a$7pzKBLsT+`knne)73JZ696wZrcJw`{>fQGd@mh%P*Q< z_jF`z3k-TsDcUEje;5}r7i6Bia9*E1c*lHfID*>y=JTW>$++3wY#y;DpPDSeQa+tn zf|cCMS%P)BgR%r0a^K=?l(?F~Z21>Mx=&)x zAtYB*D`!wH0L1*@;N0%M-6Pc9Iy;Au?7lcKgYw0JNM;9nH<;q%1`L8vng(|t*T3vY zm+#_N>#<~)d@}~UF8O-aC!a5upR9UM<@W8$J9LFX@7dfwWpbn(L)P{7Zcw?-KJ^G{ zoqg(1Z=Zbe{(*}9Sl$j0#JX?McTxSf=za0#B^CSSECvLz*G$ROMalIb8Y#O+`-k!p zqBfpCY6Ky8cOHBeDOY)CBjxh`u6!_HU$cF0z#w@2d{21X;!jeHXqn!10|veQq}Sr) zNHET?peHWuTz{?n=JrSX)!q4*#G!ki`8NA_x!S_o=#@$PF2`_aclUQ#Sj5XAz)V|? z47A;Th(OviUTF8c(AMp`_8rr4eVZr6%>a5+8dD?FIqxJX49mAphiSz#M z;}`!e#p-rl`(DRzXm|I7q1_S|@$&3j%m6z#T)5`wy8WZ;wjS1+{OTG(@n@$z>!Rer zh%l9HF+QlSKmTt^0;zwRZlaiC7T-7x>uIS}zke*3FXaXC@y?oV{goV&%zxg#><-JS zAFdJF^b_>+G-~k>ihyst{z~hs7uE=3FC#IHl3QWsEtAFjCiWdQg4lOuF^Q6g#iNqn zfW0UtN{^_!ujx(zLf71MS9=%vRRP2d-OU!>Ar?xfZ&!<#@{CEb_DWuqUo2jiYlC^|hFtE+OHaw&w0Y_2 z{{9kgnd}JlvEAM8Glu=p-TmG(xl1WhNtbW$AKlP~+CP*8TK~!|Lrj0CXs3i1F-FRC z%kdJ%YB^rOSS??d1g@5E^r_nEpXyV!TYg$nm3BE=zb2<5ip5JgV^u6($wv>1#q07| zTd{aUJ~&t`J|%Y`6^l>zca=;Hzi`c=+Tu4%CklyT*Sx*jX^8FLC_`~;a*I%y3}Vav z4efKb)<0`LM@uo&S#j$IJ*0m8fT8_gT+V$zP}u^nP_p`7TP_b+x+>b$9>q2tx2Lxfk0& zIlOW4RrT&R&F=9BYeyRlLLvGi=~o+-x2I4;B_eircM?@a9YXV8xSvcf`iknN+WT8_OYOOX>*S0jZT0BzVYppESj(~79>cNKkK(OP z@lvB>UboIYe`WVN`R)fbrhV9Fe{WZ=3h@}+IoR90c7N~E-j##?wo#MYxpcU-zklWO zp=>G)nXyCteJ|!Q*hXjj>G#bsH_CzA!QvY@=1BL^?ylre+Rlwfm(E=$FN@|hkeKV` zqdFI)(9-V}f^mcwlGX(8BhBLrF|FZGOpTB!0}cPC)CiqRq~U*D#h~Gx`L&*t7;Sj> z$fqJ~rZv1f13n{ofgLs6Vr;NcC#^~OQqT5oZn`22u@CStYDk_Uqme6%TMA0|;+o1G zj^U8~Xdby!ytq~xh!Yck-re(|zrLeOxt%Gu%chOiu6rND(XRU!?Xq}zA4}YP6I(_> zw4dC4+>J4myZ2rYmRTt`TCSeORNj5-CqkV=`tyrM8y8nqYPWd?JE}WW@3nOv67B9# zow*#U=N%>6ZLw?e3WG6S%H@+xrwaSpA;s@~BWEs#0IIWG2g|><4NFM`{MtJm!=d~! zMNeA1)T5%sFd3qa#}dXA4<_VxwP9uLy3a8j?do0!5qrVn?H?{J2) zy1f1^l!}%yVRUEzdj!Gv^Mui&7EkA2D2w|EWb&`|SUiL>rg#h`@8N#J_}F7O+Vy~95Br4i zvx8x26UO7l7|Pwt>*E*OgweeiUePKhjCZobPz1s56V_dn+<`znAQ7In7~@wR!y((< zZIOeTyw^PcIpjN6-YyL>`GySk?(Lfbjo)jea(T<-g!2}8ErO&CXG4CU@c z?xC#Fa@s04x}Px49K#{~5FSq0ed?KPPaXeyr~WgI5YDbyzfjF@{A?Q)KGbuST!Z5x;C$uwbz zb~j->dW@mmecmCIZNm7+qEY>Xarzhz=?52`=@Z7A>)4nu(omHj`9G1lg_?%9J1-`+r;IR7)=QilReWt7au>vw~VK-bGv*(K)ddK3`e`Vw}gbc zPZ&SNGlI0Mn=l?V#!&7)`Vz`EVf^o+QT>E*>KG2`&*ce28s-zmo9ft@Fw#)f*l-wW zs7}0p9d7)jX~IZT!W1bJ#(k@u923T`4=H|cI;StnI$=Db__aPEVD~5Ei^y)mNXB>K z+4xSZGQJ%xjIYps!brxqzb>E42nD4w~`?dm6t?)ImMc8+#+ zw?8qL+n>l`$Zzf@j7N?!l)Fzsg|bZ;|4=l#pD;F#;gEh1PZ-#Jc1ZHZIyNSZG*mS< zCX6&xCoV&kX7-86j!IKPN0%})=h&9?%}4**kmC3LHaiSa)(PX`#jo`V0mCvGUqp5j zMl!w=&&GFR@@tdv?Py_qh4vFhGQJ(hFHXjH;@S8L>n4n3d?yU$WPAh5jT|&#oQ?^j zdjW+GW>L-l#V>qNA$PkI&m4Ql=Ksm9hIhpjxJ?p&au;k@vB3M-}_rUVTiI$7!NCctxpKp z{mJ+uvYRlH@tt@!z7vyQn~ZNq3*#%apD>c~?KpmMGQJa++qmmtX(v6C@s&`UPoSKP zZ(zB@izbXSF=4!=Mi6{APZ%vqPOj2~A&dJ7<5tIT$aZhv(ZrnM`^PYu$)4$6G?FM@ zYmwXK69Ps|y1pgbb&hs*FX0PypD=!c_l(4L6UM{G7|M?=`q(CnzbhKuPZ+CXIHb?= zgdq*{3FGy3Y)lwwsA_CX7-^_ZT!tzo{lsKPr75AKOPQH->@;Eg%8=sszLqBpQPv6L z#^Trdgn-?jj4vX)2_qTbiD%E zgrS^_Z{YsHQRIT$ST8pk?QiMJT5dPLgJXgaz4QDwl7QmUX7_zGaQVUw`d<3Q2tx8U zg(M>7HJr1IZ<4$6@ZFxhNR~2w#vx1@-*dU+d^SiM+djB*;13LsD0E*vAEZ;PT-2P+ z@Qp~fUb(1`|9#;YL-)z^d8CV$?@Z+4~Dc}OAqnxeTawtq|~hCztlve;)0 zLi6^;J_D3D&Xhf{b*L?U!WcvLDRmD>v^=($djR`Ob;*ggu2TxxR~9|cs9dGasyAGB z#ZjDD&2I{I>0%E zyGMZHrx=$XlA9~j%(%G?j+zVDzeydN+c}U4M(Wm%-WU4g^Iq>LM1N-9uM?Fg9pdKa zQ1!0>J#@gJc;ozr*rtf@0R7qghwGMP7`H>=j~GEH-gds9B2pec$xU>{YX=O1dqoo^ zPCl+P8=!4NGNWwieZ@aEq|p57q9a?ZJOnb^<4rXtzuzB0X#QF8!x6do$|4Hc(E5_@ z+-=)y5R!D~Za}$nH}|C^LsPtFz#w?3=u3%Pd}u!Tv<+zvG|4Mt4An=@=cX=NenD<1 z>NJXU)ljfeLxo90XSaoJUy|yqg|vHrGBUsjw7T~vPo#f;vM=5B;dtY`)zE4TYDe=f zbSCd|m>p@f<@Tn6?wtd%DM3){J`mO+`9RpL+aR`o;{}~|D4l~rj?&qgjLk|q@$Je4_U|3f1l%pK~hib2jxv+^V&eZZ_;FRJ(Uu&Qw=oo@!NnX$jqt6sr2c;Cl~x zV4dw;#OZrW=ziUfqOILK+GcItkax7zZPm}_(oKD#svpkn-c2@BJtgI~R@G0}(w#q{ zsvocI-mE@TJuOeB%m%;4ZD}d{`T@hQ|F-$y_c*!2eP4Sp=Ol)^M zZUr3!v-FuM$S`<-$=@6DNUb&8#TO4!VQpSL3f{12IC(x#TasrCmp^)n}} zgiZZI-qcKKaa~qf`KH<**wjy-v=TP;b9qxUrNvHGS@%t~Kd`BvJZU9t>c8eq&6K2s zr4HQiO|?I;sh>D$C2Z=yDapgNX;Wu>Q|%9I>Xj$0giXCVZ)&C_N1&f*d37J;)#l!nONTA7 zroXVUcbvQ$Hut`p?q_QE9H_}HPkDnaDcS}jzutE8YS`d=iw(}z4bIi%)KuPJOPRL8$iCk`c{ObC&BX@iYI2G;Z?Gj! z+hFA2YfoMc8+>E2!MU0k=)A#}hihFjvZEHi( z)b#K1YNpm!Tgv7Btk%Yvsp;S2)l99ewvMtyHi zz@`e9I9~~yDqP}hrOG9q_D!`vu&Kf&&R4>w3YR!rsd9;Dd{gZYY^rdH^Odlv!X?gD zDks5~4mLeoX1%9KW?BuK`(RNx=Bvpk-Sf22R=IRV-gO!8h5XRTt6_tGJlbHWEuJ^e zvFUfkDsm0%k4|1`DbGgFvb9oL$$PR+Txnfi0(|018}eS;`!6Q5K&RHV?uL#$XPoy)o2J?ij2Z7;C$EOBy}#Hab2WKRaj?N@k6?g*@Z{C7 z!9N;pFx2Gjce%S;n_?9i0@dE7m6qk+rIl9Y-ldh+W$&KYrVTlrmWM!7>W09(PFP2G z%KYjIhCruN?vYkL+7O6JR2@~(YS>zJR5f3%JgRD|OnU@F-~+`Fpw+O!KP-m8d^Pz% zPVVmcDl!DB+@+P4<=&;0R^{HMmDXkNp4g@hIai*CKvU|5z&lS^2YvLr#VpY2$g_Ys zDO*`@Lm(VNb(~A9VQbZK?tHcKIJd1b9|G?mwQE`p8~lS}2+Y;wOGml8=c~vNsAgtb zX<6=FT4`18U0P{f_U?&o+K`Db4}qrC4S{!@unzj@eZ>&ybjqY`cB>76aBkI^2U-nV ztIj;kS1Zpvv{j~ki&@}ziy=U(VS~S441xJ-@(GpP-Sbss2vjpOt+XunF0HgG_b#op zE_?UHHf_j6n1?`9>W0AEPgnR5X*F!{_lhAfSCco_=I)-aB152>nQ5hExp!%$Rk?R*rFGf6C$?!rj8z^2 zO{p6KZ#!Wf^wE2ZA<*fR^Kv^pX+t26bgHv+v>LWnot>MnR-T<}t4#YAv%pQo5TMnt z!T(tdf%$6k!JgdR^HpRBR5LTJv@G{7t+XolF0HgKd-udPZOBBJhd@*6hQM1-SOU`;ZweoyvTV*~3-aBg7v>G<}p<)Qk)#NRi zxx449$PlPzW?E@k?p<1GRqkC{XNz< zcJ@yHmQy`>q}XcHK3S7D_ITD3!E8-4nB*?qR!)O~AZ^5)eB z$y=;gCvUN0oxH`0b@CP~*2!xt#^|e(x2*Tc+WAs(Y+t#tsr+=5%J#4k9`<8O6ZQiqaHR-;p{1q!M z%RyDFxGD!#vEsT6s+-lu4Y`_@=RQ-6(N|rGZzl+B^y%Ma_t|Pw_pO!5n^zkoZ?R&X zyv2%j@)j%B$y=;gC$Fs-qpwQdwvLTH{kyzbz*d{OZzEGqeYqr|deM>oillN?1O}eitf5nQ+a!?g3uF64Gthg?N>SncZ zL+&@qqt6s$^qrd?q1Zfk>FA<-@M-7L{zKcNFi#sWoJV}l^ms)dCl5Wx!x6sxV0TL% zk;JL|&l*7}ZcNV>%_8O5`FH}v!QqYDs`$hKgWywh6A`!gaE{sE-qpvmo;zUB`wv+U zasA6Jy?vL??dyY#&&qm@LGR169$5dP3D-M!gWM#A9xQfAW6&#h37G7X)PLvB@2TE5 z3>fsjJ+}{W{riu-eTRpes`ren*BJDkoAtot9ZG4)OizM-!U#gK`&yZ|M4towrRi}# z2N%xkGeaM!5#;`GdT~e>CGDQ~-vLtOoPI^*IRgf{ucY5=as8{x+Gb?=!LI3b-`<=t z=yl)T?3sLfGqq2i3e`_Baem0Q8iO9^hq06&vRs~NRlV-nN^e7B(CeP9?3p}UIp4qb zdsXlOBM8M$qbb27<)}Lz*Yr&t-l!w+2WkYlAEo^(auOvkFG^zjCia6hg4nCFm_*4V z@@Z!roV%!#RrgVFZ*^mk>plwJv;L#tzT9rj{M+fF!Hz)dpQq2aO+>z-GTRM@^6U2> zx_Mcj(EPL!gx=bGH$>#(*K^e2jeFOr_6}80AJTpNg98UR0v5Le*tCu=;KYautxy+I+a`78E z3VT2$?>~Z&{M0PjBIUG5Zl&x2mFzw{-S2^Ad!oDh?DP!wpPhDqPS$6JKP7KZAzIme zBYGAo*E~}z(a9=#j}e4q_kkyuY>{$veUd~ct7MVm3L#nKc!On*%kELh`{nIn53E{W zeoDQ2aFQgqQg)9@o*6;3@*!CgskM?9<2_cgh3i0eO$(QQUY_m`J?I=H{O)Wa8a zs`lybc;0}aeP31Tt>gn6sq=RC^qZqpozbsAP^0Q>sDHJf|5%C8&U<=pTw{>?(%d*O zdBaKiv9eq{kKDC2K|7D!wKI0twp=@p+*~lUkKCLyadWfe*x!~9Fl}G7GX01VgyQ4o z$q|u@zn>n=M;9u%vb(FDc)KBm=$+>-V~XuxUplGEdwW#%!i+iLMOD4+kV5sN3e^@XZ%(96m52avuF)EMpbV;q)@$M(bg8bc=^2FcDBSiUEJEy z2UIpj5SkB~cWOk+1E{mT44MpcH<)uEUp<6dxV*`qO0s2NEG|3kP6km`fFU!W-;l$^R zAS6%c-@b)Nd0BLlJijM{qDgL!ASAyaOSVY4129SMZf%<6_6S1qVwP-?at~vY6k}$R z%Mpa+)mgGd%6B-DB#!;{htqi)>;Z+4r1LZZ7r&Gx4|cCJ$+Z!L(P^uBTKXFN{c zb2KwsSS}-=4aPUs2x{+~pS`dsxhp@u0*eyjVr%kVjS?*7KJOB&(JWu+8Uu< zZ_MqIC^@y1#P&_>w`&BkH)k=4>R)S%A9-G0T6TW_a_g~Qor^hw*l*3n49T~`XD!3x z!vmcL-%ulny*-Ob6qg$p!}r@~z3c!VZ!ZB3h)S?7ol-Pd?dt1mga*H@YVe8+gtluX zmq*HWt>n8NWxG~KtEycGU!VsKKb_kJgm(R0ZkHgrK{Wk(M6Aixm=Y}I>dS1}z%SW7 zf1RFE{K^4C1HN{imLAuC?bHX^!H!*Ipu+;hGzL97EO5q$1&2FwSa5iwU8uSDe5RZr z6z@O($pPi^(CjBSurF=FnKrs^5e$NK-NG4Pw`j|E?3K1JEw%*)z3-oQp~uMyy;;3! z%eQW{S8aaY2tskY_{oTr2OzTK!J$c>8bL^YZXt=t#hWPV!lCS$3%fc4Uo(P`yhM^7 zDbF#?TiL+jHF`yf&w&PnB%cFyDCaOc6jxmPr`{rrgMa!j$fw0c3Zy#d_-!u|l%5!c5VVwcrHpUQs??`whPfrbm z_5FWu9b*W;XC%BX&*YHswbsY_3c%FI6E6EWaPDJA`WC>{#}h95IB@P`NBSbb)W;Jp z`#5m!V@GG&oR#``!et)^mOh>*+>RV|$K=Y_F#lie-ilk4j&m1raK946u zjguEsXFZ=>ziYst_wqtd;^cIE{>d@9K4b);xJAHqkw#1q`)UvzJk#t0U^m(FdWJi44z!2A%{M>{>hL+ z^smz7YO#y2=EUE{&x^@5<>!Q8`6JD36-FR{}q?2pv<7)$#eH=LVu_K*aQy)*b?Bl?> zj~(gcn)-OcWgiF5ee6gl*VM-ohH&cRz|zO_9Nv*{)W+n>S0MvJl&?ZMl&g?58H%J& zu3s`>5d1Qp3^h*PPM`IBa(&5wLGSwtJxs22=Hd_ykID7HMSnC1#S1*STIAwgMN~|# z>mvxs2NsgexxRs-E*#3nd~)3yK}hbBq({m_vGaZ1fKRS`{V^aU`TCE!yZG`U)f*X85X)W_Ev(#bXT@r27h4xIbgkxs6uk0)IA zap2s?j&yQOeLUf^j|1mEcBGSQ>f;GRIQ4O0>EqeVwU5&RJ`>WtX~7^#_og}Hd(+x- zp9#Oa*cKS{UNN5uJx*@woJ|OAdCY|8Mi7eE&gYnj6laqqV&#|CZDq`ae?FuTrJKd3 z*u{UEXX!p2!@p~cq5J-M`ghUtZn0VVPe^CNcaAZHe|IFjlw0Kn!a5Vu5%IKLy(@*z zI&_$ih$o~oA-TaGqs8R7JIroy|AHTS>P(pWc*12L2hM%$NN2*-#}h95IB@P`M>-Rx zKAtdyQy&M;ee6hQ!qmqTF8esJ^fAqZV%2>neD;7r@+)}e(zyQnpg6a+j{{bp3A>Ns z%oy~3pwNRSB#+kgVkYDX!H=oi+{zPzLzxifb4(ml;|%WU5kw;&OmmD!%31iiWE@jN zvimeh``G~@*?k&h2Ia*(g{04fbQ)LYCFy2BNYZKCfMSz)CX}d{3IA+JA^JCSPpG1Z zl~egVuZZg82~#rpLFig*Y@V<@IwzAy>P(oDX~Jl5N~XX$nH=d%n38G25Y7{pwRn{$ zERWQgkgS_bbrz|fknC}X*}BP0XpuS-raqo9TAcbgaPDJAIuoWoo^aX6fpZ@_(wQ*z z@r27h4xIbgkK}bHimOR^kiW3Fg zcj{8p=YjL0+EIv}n-|rI%AF3gQXNDy=%%V?Fetv1W;u)FhhVmCx$dUN(5?>%MY_8u zBISXh`Dn5z-A6|w2+1eXX!6L#Kh;sXgXo@1Z;0+6y5};W+;dsBQuhws$LLWy%h7#| z0p&i%Qc`ERM~)zV_~YvzzR`bzxD7t*5uN4e{%voFep!v~-wr7EZVs)lxhn1etW|Z^J2j+G z{oH}-hTI2LtLntJF{Ds^&_MMRKM)YZO6R`yfvSE}@__@@(~CC@;&l334Jq1scA$D@ z@%llW&Vb7yh3eG<)vM*M>$+cc5?mWnsGb?9o|U_#XXiSiU(M~^dW@la$N9>e20#bFFO8lfDh3aPxRL{!0ediO5_p42b|7VP$`;jycOwo%MjUqL_{$-3I{1GGJ z<>G~-NKLVS9%BeEM#8Jb3r3NeW&bqB5dQE;czy95biBJJ4>oR}*V*g60|vn$XdhaXsPRS{-N>68|w+|TfZYuRo^F=**78>J4=cKol zdU}xh-cs+3ocyZVr?b&p2Mq0dPpNmc+%Qt<={&^eeYEX*c>3;A?=0UdXTR5GpjVQg zu)(gEpI%J|ybk4B@=?B2Ap{t0k{)Ct`lMmb_YyP0Chk?tJeEqLn{XOP=LR z-nIu;T3+g*E)bISP+zSLhWbjgrylA8Az2Ug6~5hD{qU7$Pd(HHLb4v}tJPqruQYq= zp)L@T^-y1}4~F_mv!@>F0wGxs_0`5;sIN48>Y*+WlJ!tuof-`Fm1a*p)CEGa9_p*p zgQ33C?5T&kKuFd@eRXCq)K{84^-vcG$$F@-t{x3_%^p7R)NEa8>G{Djdsb)V_^=w6 z>zY0FP#1_+)2 z&|}AEEIB@1uF1`g&l&XC@fk~wPnT!p= zc-B0A^MFC`UF0BD@2uPqJkMfXZVr-bU_dBx4Rn}lpn}F`l53#DR09pv zH83C~xdu8+HPAp^0|P>mYoNna0}a$QFd!tk20BbNP=Pr}u7Lp|Sr2t_kZkuXs;+?n zAz2S~agcmuV^NwtZ1(~}vL5Q|whX5R&y!7YE7rj9HXs58J(fkgSKgI7mLSu_(5=@fhqcliB-=fWG6z`?b#ajOP&Wrz4|Q{p z^-vcF`5>yQtIk2P<8y|dWXESLIX+#k`OS{c8T8ok8B2~&muqsf<8uZ*c6`Q?KYgjl3W8FrW$CVu7Lp| z$u-bns(}XT8W<3gTmv1Z8fc)dfdL`OHPB(Ifd=Xt7!Z$oWV>fknmugy0z$GL>f#{T?pc&(58J(fkgSKgI7oW7*9woAL_8Dnva*Vp zgZu$KYgjk~}duOf}FzT>}F`l53#DR09pvH83C~xdu8+HPAp^0|P>mYoNna0}a$Q zFd!tk20BbN&_G=S145E(pu6 zP!|WuHPE6od$|whX5R&y!7YE69&!RMY*zN^{WIfcyL9*SmD9s+WdjTO?4|Q>nZ1*fmvxn_oKuFd@ zT^uCaJ&V%pVY?R)lJ!s*2TAWl*tRImo|l$Y#2n=JlY{g~erc>pnuDx|x;e;tsEdQF zhq^h)dZ?R&tcSWd$g@;cH#!H&j?Wo-k{zG1oI#HrpD}TKa|fx*HILsgV9 z7opD`q%JoH$u%$_6uAaEOf}FzT>}F`k|zd-X<{%?*T8^~KYgjl3W8FrW&Zg93$oWV>fknmugy0z$GL>f#{T?pc&(58J(fkgSKgI7qg87Nyz4b}t|#>!B_V zlI@;FY4)()3kb=2sEdPSyJu0FJ#6;^Lb4v};vm`XS(IiE+r5C0tcSWdNcu*=wnb_7 zd{~VpDx#&X2<6YdhGa&CC8`BHKEz@IfEWMK4Z!8>2l3xc6`pD$Bxffa(ud6 zQ<)u~Gw8A7GbWC2?jUu!=JD$X40>-P2WfHgWtzEz)aB+NxdsM=BG*8NsRkOTYhXY~ z^2FdUO$-L=8W<3gJTW*-HPAp^0|P>mYoNna0}a$QFd!tk20BbN&_G=S145E(pu}F`l53#DR09>5gX9_* z5R&y!7YE5T(4sVZxCRDnZ1*fmvxn_oKuFd@T^uCa zJ&V%pVY?R)lJ!s*2g!ENqBMKh?gfNoJ=DcPvfZ;N%^tRU0U=orb#ahv_bf`YhwWZK zNY+DL93my}h+9OU~VpDx$TX2<6YdhGa&CC8`BHLcn4IfEWMK4Z!8>2l3!c6`pD$Bxffa(ud6 z6Pg{LGw8A7GnO2mF4t^k$L9=s?D&i&$EV9RmD%w*gC09RW8(Pc4pNtE9=~qDp!ZgC zkQOIzc$+&&U2YDNYhXYqat(BtYM_C-1_p#APYe#z#9*MVfdL`O6NAH40}a$QFd!tk z20BbN&_G=S145E(pu}F`l53#DR09pvH83C~xdu8+HBf;$NUnhaAz2S~agbaCElRV8YhXY~)|whX5R&y!7YE69&!RMY*zN^{WIfcyL9*SmD9s+WdjTO?4|Q>n^tGpL zi_+}*&a#S_gZy4{kRG|9FO!?3Immjbn}e)}x;V&ssGEbVhq^h)dZ>$oJWW;gOy?lk z@i{|Jvg0$B9G@=N{AS1J40`PNj3vjX%Qd;#@i~JYJ3eE{@#%8SY<7IkpvR8SSaN*2 zT+^BzpEKyO<1>~VpDx#&X2<6YdhGa&CC8`BHKEz@IfEWMK4Z!8>2l3xc6`pD$Bxff za(ud6Q<)u~Gw8A7GbWC2?jUu!<}rO%e%l%J-a-!2*y3@N`?}m5B-g-zP~;luFx5Z< zbqx#%NuC%SrisBoT>}F`k|zd-sRkOTYhXY~at(BtYM_C-1_p#A*FcA<1{$bqU_eN6 z4Rn}lpnRY8mMbvKuB^8beL+Ofw~3;ge2EMhp7e{sB2(ANOBEym};N` zbC6sE146PM>f#`|23nM657)qekgSKgI7qg87Nyz4b}t|#>!B_VlI@;FY4)()3kb=2 zsEdPSyJu0FJ#6;^Lb4v};vm`XS(IiE+r5C0tcSWdNVaoEIB@1uKCT5&l&XC@fk~w zPnTB-cQPsRkOTYhXY~at(BtYM_C-1_p#A*FcA<1{$bqU_eN64Rn}lpnRY8mMbvKuB^8beL+Ofw~3;ge2EMhp7fCFbBysFd!uBp)L-RYoJAG_HYdh2+4Y= zi-TmlXHl9xZ1(~}vL5QgFKpp>7Vc9_r#CH>j$f z?HnXKK4<7jc6`Q?8j?WqN z*zp-lj!&0sDzoEr20eCs#>DZ>9i%STJpQc#gWj9SL0a76F_gu++#Dp=z<^NX8t5?9 zKm&CR3B-cQPsRkOTYhXY~at(BtYM_C-1_p#A*FcA<1{$bqU_eN64Rn}l zpaOG{Tmu6_vL5Q$oWV>fknmugy0z$GL>f#{T?pc&(&kM^cVh-|URkcul$&fX!~wHx{=Y#A!A?ZAhW|oPp}8#cc+0nov(2Qm8(Apn7_7>p`66)Ki8Os?Qpzo>|;# z5T|MN2y;(@BZhxJPas%ICssN>9j4zfTf+B(PrF`$DiSZQtz zvOp+Q2U#EsVAWn3U1@>{9K^EB8Z3bB& zW^|AR_I;Z{7T5=F23a6}bdUx1iJL(d*f(wlSs<2lkOlUYn?V-XXKn^rAg+`@*lbx~ zAG#T2fqm&_kOg8)M_Hh`^`t?LXl^~D&Mo=c%}3U8W=;oLVD5B~1!7MJSz!KjkOgK? z2U#Ev^>%EW^xf(8cdeEVk*~>48q9W5fzAQRPCA5SvXch0om8O3HQ7mrkW6;cV78MA zw6Z2U=@631P8!U1Qh}D$WG5X$GTBLk*-k3ZnwspSLr5k&X)xPK1zJ#(opcDvWG4+~ zJE=gcX|j_JA(`x?!E7fLXemv0(jg?1oiv!vE!t?-T;~%m0U^mJTpY>?7jk{NEpw=; ziUx&fs-jMF6*V%bqCugW<`1WN{xG6Rl;)41P)+lP(_BT3Xdb018WgIjiaO0z)QF~1 zs-i)mnyRSNTt$s&Hl->W6soC;I?Ywoh$d93qCugWs;JXkMU7}qr79W}s;P=P%~jNh zrd6tNHnTCFW356%7j2K^BNZO;yz5G`9v>U=DSV1>#VX zmo!z)tw9!;Lmgy+IMn1NO;vMikOk&Y2U#EvHF-%>)!Z6nfjQJc7KlSlUeZ)Gw+2~Y z4t0LJLwRT$xa%~c2a>(0Le}|gk-Xl2D6=1pxK}7q(ew1J83Z6 zNd=nv$xb?iWU`Y6vz=6+d7td0Lr5k&X)xPK1)B89PCA5SvXch0om8M1pX{VVNG3aJ zFxyE5n(oO?I)r4hlLpiEI~&cK>wHloASC&shC{iiL7A@GGKZR~Xi$izD(W;>Q6qyY z8WgH&{&1S-47wMg~k#c6IOFBuf7 zgDen-n!KdNX>KJi85F96ED(p9yrjixZY3`n6sm(P5Qmz)q{V4&B`+Bis)H;Lhnl>k z#c6IOFBuf7gDen-n!KdNX>KJi85F96ED(p9yrjixZhcW*f6SpijUB4TE*5p1In+TG zm_r?8fjHDb7MMdFWPv%4k1Xi$izD(W;>Q6qyY8WgH&{&1S-47wMg~k#c6IOFBuf7gDen-n!KdNX>KJi85F96ED(p9yrjix zZY3`n6sm(P5Qmz)q{V4&B`+Bis)H;Lhnl>k#c6IOFBuf7gDen-n!KdNX>KJi85F96 zED(p9yrjixZauNCKju)M$_~|I7ay+U%%Kjlz#Qrz3&f!gvcMebAPdZ)4zfTT>aFSN zj%ItnmzSUw=4AZP#1Ig zpjuM1rylBddA=U%;w&FnOKSGiL*1^;*F#-w<=I+Nv!@>Fc459A>f$M{t|c{l>Y;8| z~VpDx#gX2<6YdhGa&CC8`BHJjP-IfEWMK4Z!8>2ghFc6`pD$Bxff zdUt{@*F5HTCpd#1zdOO0ygOm;Aa%JpNUnhap~yARVXA=!G)H)12nb1@7#yaF!9ZOD z145D~28XEz8mMbvKuB^8beL+Ofw~3;ge2EMhp7e{sB2(ANOBEym};Pbx&{V>B-cQP zsRkOTYhXY~at(BtYM_C-1_p#A*FcA<1{$bqU_eN64Rn}lpaOG{^-wnlSr2t_kX!>z zQnQC^U_i989_r#C+3s1CW)IuFfRL<*x;RL-dlseH!*(wqB$oWV>fknmugy0z$GL>f#{T?pc&(58J(fkgSKgI7qg87Nyz4b}t|#>!B_VlI@;F zY4)()3kb=2sEdQ-r_3!%vnO3aYc9)9MW!og2J=(q4VZ(hhq^h)dZ>$otcSWe$a<)o zgRFih z*UV3jTr^_|1+3`7p9y>l`$?@rO&1rUg&Y;JR&scJNx?B^Q9iKDkvEwtA z9G@=NY-Y#j40`PNj3vjX%QcnR@i~JYJ3eFSZCScp^O)b3)aB+N zxdsM=BG*8NsRkOTYhXY~^2FdUO$-L=8W<3gJTW*-HPAp^0|P>mYoNna0}a$QFd!tk z20BbN&_G=S145E(pu}F`l53#DR09>5gX9_*5R&y!7YE5T(4sVZxCRDn zZ1*fmvxn_oKuFd@T^uCaJ&V%pVY?R)lJ!s*2g!ENqBMKh?gfNoJ=DcPvfZ;N%^tRU z0U=orb#ahv_bf`YhwWZKNY+DL93RY8mMbvKuB^8beL+Ofw~3;ge2EMhp7e{sB2(ANOBEym};Pb zx&{V>B-cQPsRkOTYhXY~at(BtYM_C-1_p#A*FcA<1}ZQI$u%$_B$oWV>fknmugy0z$GL>f#{T?pc&(58J(fkgSKgI7qg87Nyz4b}t|#>!B_V zlI@;FY4)()3kb=2sEdPSyJu0FJ#6;^Lb4v};vm`XS(IiE+r5C0tcSWdNVa7Vc9_r#C>!EHAvL5Q@AnTzn z4)SVpkQ<$YWXI~VpDx$rX2<6YdhGa&CC8`BHM80A zIfEWMK4Z!8>2ghLc6`pD$Bxffa(ud6bDABWGw8A7GnO2mF4u%+$L9=s?D&i&$EV9R zo7wR>gC09RW6AO9a!qA+e9oZ9j?Y+nBfc)zJmxpzJA)p-5#N}+5r6I=b-6i6u7Lre z$TiSms(}XT8W<3gJTW*-6N7=e1_p#APYe!I4Kz^Kz<`kC8t5?9Km&CR3|whX5R&y!7YE69&!RMY*zN^{WIfcyL9*SmD9s+WdjTO?4|Q>nZ1*fmvxn_oKuFd@ zT^uCaJ&V%pVY?R)lJ!s*2g!ENqBMKh?gfNoJ=DcP^4sw(O0(xBWfd_8$#2K^$n7Vc9_r#C>!EHAvL5Q@AnTzn4)P2+$WxtzWXI~VpDx$rX2<6YdhGa&CC8`BHM80AIfEWMK4Z!8>2ghLc6`pD$Bxffa(ud6bDABW zGw8A7GnO2mF4u%+$L9=s?D&i&$EV9Ro7wR>gC09RW6AO9a!qA+e9oZ9j?Y;729hq< zJmzm8IfEX51Id_t18MFcb-6i6u7Lre$TiSms(}XT8W<3gJTW*-6N7=e1_p#APYe!I z4Kz^Kz<`kC8t5?9Km&CR3|whX5R&y!7YE69&!RMY*zN^{WIfcyL9*Sm zD9s+WdjTO?4|Q>nZ1*fmvxn_oKuFd@T^uCaJ&V%pVY?R)lJ!s*2g!ENqBMKh?gfNo zJ=DcP^2d-YO0(xX%PL|Hl0Syzk?CVd3d}*)L){!?J=DcP)ZLLH>gC))>T+|CTmu6_k!zsC zR09pvH83C~d17#wCI$m_4GaiLo){da8fc)dfdL`OHPB(Ifd=Xt7!ZKYgjl3W8FrW$CVu7Lp|$u-bn zs(}j3L2?ZY2+4Y=i-Y7EXi=IyTmu6_vL5Q$oT+|CTmu6_k!zsCR09pvH83C~d17#wCI$m_4GaiLo){da8fc)d zfdL`OHPB(Ifd=Xt7!ZKYgjl3W8FrW$CVu7Lp|$u-bns(}j3L2?ZY2+4Y=i-Y7EXi=IyTmu6_vL5Q< zAldF&lx7dxy?~Ichq^dOwtE((*~4}(ASCOdE)J6Io<(W)u-yv?$$F@ZgJipBQJOt$ z_X0w)9_r#C+3s1CW)IuFfRL<*x;RL-dlseH!*(wqB$o zT=EF-x@IJy@}p$YH^FlQ10t;bC6sE145B&puKYgjl3W8FrW$CVu7Lp| z$u-bns(}XT8W<3gTmv1Z8fc)dfdL`OHPB(Ifd=Xt7!Z$of#{T?pc&(58J(fkgSKgI7qg87Nyz4b}t|# z>!B_VlI@;FY4)()3kb=2sEdPSyJu0FJ#6;^Lb4v};vm`XS(IiE+r5C0tcSWdNVa8T8ok8B2~&muqIT<8uZ*c6`Q?f#`Is4w-!=lW3^{^mwN^d*0D!(sa7h5^m-^b%&>-m?4!IAn}*-Y=Po7gHYd~|H zALIxKNq&&SVS13mfaW;g*%uI!d}p7-bZ4Id&2hfe8xWFwsn=n;)N4Rg6 zg=+e?ozwhnJ0qG|>DzWep_;yJ=QMxYPKnviK^6#w>L3fmfL>MSmVMJ^kOlTpn?V+c z2TflKx3+3-4YFXR6>5+LVnfpx9!*tqYmf!@X`4Y7h!aiUwlh`Dtw9#p*KGz_AZ9du z;n7qzw+2~YAGjH0f%wt%g-27>+!|zoedA`31!76l7amPjb8C^Y|0&}N>ED(D-$O7}HgDfzE zI>-WXsJCS=rtfOk5}WL#L;U{qO%H?FPAbs)n(U-QNG3aJFxyE5Isqg*=@631P8!U1 zQh{cFvXc%Wne3#&Y$p|H>L)wt5R%DG8q9W5f#!X(lMW%7?4-eLClzSYCp+m7lF3dQ z%yv?NW_+@f4k4NBq`_<_6==FAJLwRT$xa$f=N6X=G}rlrOF&5S2^WWQ!i5~FO4=#V zR7HbAG*wZjxr!Rm3`+AyP^hN)!)cyBj0~!1P^hN)!)dOfMg~KD|yMFP#t7}IMn1N zElzVQdC8zq9b|zx)Z`^CPID`H$)HdjWPv!;7}~>NHnTBZDd$6sl?daGK{2 zBZDd$6sl?daGI;AkwFy=3e{9ao#rZPWKczeLN!%Ur@4w68C21rP)$|TX|AG1230gD zR8tjonyaXhK@|-O)l@~D<|=ArP(_16HC0ikxr!PYRMDVNO;yxsuA)lJp{6Pt6sm(P z5QmzosKse+r79W}s)H;Lhnl>k#c6IOFBuf7gDen-n!KdNX>KJi85F96ED(p9yrjix zZY3`n6sm(P5Qmz)q{V4&B`+Bis)H;Lhnl>k#c6IOFBuf7gDen-n!KdNX>KJi85F96 zED(p9yrjixZY3`n6sm(P5Qn;`D~#PA`otlH>QnhDoo(~%;=^^EIn+TGm_r?8fjHDb z7MMdFWPv%jeKEW`)MO_e;`b*zX)xPK1v&>LJLwRT$xa%~c2a>(0Le}| zgk-Xl2D6=1pxK}7q(ew1J83Z6Nd=nv$xb?iWU`Y6vz=6+d7td0Lr5k&X)xPK1)B89 zPCA5SvXch0om8M1pX{VVNG3aJFxyE5n(oO?I)r4hlLpg0GD`(oNBJI^fRN;SWE{#p zGUQNI(j024qCp{=s;JXkMU4!qXi%u8`NL_RKa32jXi%u8`NL_hqDBT)G$>S46?K}c zsF6Vx4GPs%MV;m7wMg~KJi85F96ED(p9yrjixZY3`n6sm(P5Qmz)q{V4&B`+Bis)H;Lhnl>k#c6IOFBuf7 zgDen-n!KdNX>KJi85F96ED(p9yrjixZY3`n6sm(P5Qmz)q{V4&4YI(l@(;2=9BT5C zrmDI1gu4FN4X96Hhw8D5|69kILmgy+In+TGh(jG@fjQJc7MMdFWPv!;TTM@Q99-Tx z+T33rZC<|iT)V;ZTL%n#>c!KOAAQ{7Q>vJ~-KO`I0|vdXt@QSG7ax;jE*>22H@z<$ zFz7uw>mhFOZ_{4$cAr=$YTv0tskE-v<`g!5m$f8*Yz-G?>3UmQ|M z{#xGc8oM~i?YOYL-6VgvM$r5H+(e0znt31FF?aJOZtibh+PYEq%eRa%L|>G*XVHsK zo(?fP;jK%poev&Ch+dfPpr1v`Q;Olc9h~2}u(PLw@?VA&q92jFQ)A_M&@?nbF791W z-6tHwq5PCQG(BEsTzC_o?eFhs*LF{=%pnxd@Gw{%waCTq@Qy~e zT-q|tn}!sk|C5J-$BH3K4L!WkML%@}q4_zvp)FEUcs4N|?6-Ed1o-wELGC5jNc$)E~|ZgvQ84lG!hnrJL6t?AU0(*9b!Ie)C@%k&B;6O}KJFtJfct z1Y&=l8YeM}f1kI%zbX5@{ZblC*uFyOeN=8-gK}zscZ1}%&X+$@Bgp+^+6{=3LUa$C zFFy)HR+_MPy*BPWC4tlj(=U~n-c_5@`2#HsG)QF|AW-^~q$FhVnK zLvOmP{feuw?G_;w;=Z=w+yNSI<4ADVW6FFm+;{>njX=I#hW z?_e4#vq+gkqSAEW@L|@%pB!Vz{?{qND0*>CZqC-FbNiQDTOTum5dEUu))u+==PK&* zmX5C{k02zUSxHKy95+Wj^dGQw=^9o1?*j(GU!Uq>AGbK1a>$oo+LHr-t;5Z0+b_S{ zaVtRiWApC_g~h8gJUBeJuV(Jr5rphs?tvC5B{TKF!Qr0nrWXtt1Yeqa0CD0lVmkI7 zIJbFS`|Y={5!CKFO~+l7obOIzm-lqI|4EG?_E%XP>obCj8 zG8yT8jz(_TAKbWW+kJ!ChPLBX-zhy6x8ID++0O7+3INL zP^^WS@t+@K{Ni8X5fIT*O)KH+4^8-I#u&ogVWsZ^X%?av*Hw|{uWXy}YsMJDudiC% zqUCTrETC_5Ix2a_2txF^Jd##NEmG2erispzf7=K`@;htE<)S;B zK=-@ks-@kx){^>g*o$k)m7L!yTd60Fzhwl`$`{p=>-`aY-%34W{LQuGMzg6etR*)V zpHxTb>Edr1LA3G(wdASAC)QDVuJ{{A5R%_fOP*eQLLH?iioan5A^GjKL@)+ z{PiOU$#1JAua>ia?3RGV~F zJ)c3b{QRLF68~k5p!N@Qr(;nI8f&%@yBglzT7Zt3AOyQx3udstwZH+qqqgvY^BoRJ zg^)Zq-$McAm0zg~an`8qj&B+;2)-b9A>w4-nbjw3$WO?;w?y_WZTHGJf8n2$g#zHsGGN9R`!804NmADtd2Cl+Uu8*hP~aDV4u>q!5PpZbks49)MD_e2*hjx>tRl>?m4k#oX!0`A2% zg5dW|{ntf_6U$=TS_ofWBZ$4S5Zm68j>uwGRbNsgh<#rnCN*_!+I!L9y?t%k`2mC6 z&a`LyILXGahOvC-!mbK-7Zc_XirvM88I%f{CBsMj=?Fsducu54$>t=!rs$_bJ;V6I z8bR)5MHe1!%8Scl>W;0rFF7+{kb6kcg>WXF^9;S+^LpO<`a%y3dXFmfgvqJ5+`i32 zO}B>(81%LZJ&BV`4mAEIv;KoMg4(ON^YjYH=ic-QcB=nl^~au<3r`nzu0Ps-=3^iK z>?b|_X>G=O#EENR6OWr}MXj~?`;pGY$3E@ZPkPp~9^1C|&=c3f)@~ea&9xSP#$yw= z)Eu1G6R+KIxi;1zv_F#vuEE9ss3iAqxYF8vn-PTMohnI*lzVPzcwk#L13Y8EAoyG! z9vau5m70Fop-uo#tMr6H?>Uv;;g;M;7#42Q!<1rIpAU}V(0zEdO^sjtMHPz~!n8a4 zIBnZFv>#MyEAKBrO|gfYru>1)wGf5wA5K+pPNmnw&vYcNnt#n0L-!jvKe5kb&e_?L zYaDT>$0U5&JK{q_3fVudnu}O@!&))8F6-RW-Lutg@t_Tc?w+ll$vso2}Bz=s_`$8i`P~^?S^yLsb=RcC(TA7`g_$62bEh`X_7=k^`@p@suA>lgD1%r zwYXCC;uURRcZ4!EP#EN%U8U5Ot^QdQk7=i2+AQ**+{Fr^cs}=HgYvrYG<@W2^!W>V zgzyJL3ei8$y{NHrYeE|BjaU+W{}@BJyVYR&nbIa1muKq+ZEAD>a7ZEh7j<(tcNhPm zii>+F|7b{|`oAhw#L9`TqH8zh7J;_A%8qXos_&~+V@5g(Vp)3fN+1t+R^%vPnX?YR&xl^?k=kt?C-Lgz>Z%mdwcG=^`k~1dQrTrP3 zUUgS5C%>*%6$;h2)~dUg<+b>!U)PVWy>PIlqw?Fv7`oq?hmS?eg_<;c){idv z!6FymeAE5yu`&Xd z*9q%jJKbfv`F2!C?#7H0nH86T@bM?Cv6Q?2kJnhqN!{buSYO=dgf%wA=O3?eYH{xq z);KMv?~d0vv$*F8Yh1m!#|dkkUEKYq``H+|XW6IAHL+qRtg@7vaKb7pIZi)em328W ze!?mna---8tDKVKBwht4QqNy=bg;X%rS?Oyp zflYkhG!xP$a68%BO%Jdgb8n{SE?qdUr-gt0q?NFp-Utp^r}U#7sw~IG!hh$EEnYp0EzKbFcAs+9mlPuex4;PutE~kva30EG2V3 z(YpUW^G@5j;ere$-^;f+c{Q~7s?mT8H94t0*x(Jb4gSN)t6_uxI@(~UNd+HlP%i7~ zmFHF(f5G%gL)@gZDh< z7pj{0iSY(ErVZZt0uAkA|^&>htrC z;n3b5Y9B1#!?D+GJxng2w*O<2`t)Nsw3nmG%dK;9VOKjvB=ok;?*6NeK&HF@Y9ewKEGw;AYfhI0N)Mhc5r@)BzML0!MVIbf zK5W0)|3$BT)k!Ns|M{FLu3-O4`H#EU`b{n6npp`}@_=O=cWHz@dW1GTV!+Up$4#ep z`#8D66-T(S{PHz^f6i|XDKy`}9g9oeh+RCIf4Gnv_Al?_UhcL}e(tyxpxs@#igvle z;&Smrx9oX`Ckz-wpHg&!#K|+Daq?X^CNtjUYg$9Q=cs!GweC6U4#{Oz+CvcA(x2Vk zL^g#8gWU7DaT+I|mdSb-P477a2EDH=^dwF$?9m>V?Z|kv-~0OipSACfmnEyJ?tQAN zD_3>*MHEpfkYqxlBA_xn1{j#c1ZD&YDu{xPf`F3b<(zZQIp>^n&iTHabI$Qwd)0mS z-uLFseE9qE$K7?RPW9>PK6|en&N_YHuvf?2{OF87crBPYj~%tJNICJ&PJ3ICsa^lhd; zZh~sw2ICaI@Tj8chk5zM8pK%nhP^uWhDX)#!E5pFZ67nWpMBz`C-VIzbKbaH$6frm zspYE?zP-V~dAKtBjk|T=di%`lzEmCfL)g~&h&ig8Q*TLysaIppUs&6#!`7=YKirEN z^CK{)5tsgHppd;$r;ho)M`5n!mDmOK$b)LfYY)bp_=deY=!{1v?7?e64145zr3%#Q z!S~*{TgUyuqZ3y9YNQH}00_HYs~!2)oAm3@@+g4Ry&gYE@ra%08dj%g&%fCXI{GV* zPC>m9P(7@zm*&%&cfM9P{((2WL*L-|qw`UJ3^<*~e1H#qQ}4<3`PnzSLC1gjaUY;& z1iblUKEQ{*$q$f^zwb@&&^M^Js9yIaJQ$-succP=Kd4rd+j;j#)rLJ3I(END)uy%^ zKNaza+OX?2O0}K$zDd6h{b!G=P2KCULGck?N8g9^q4V#g-fxZ6ex{mk9l73bjXctg zH+}s>qCE-SW@qIOln_R)2$=d`yG=0Ta=jxvA zU>!_7=w>iq`|zK9=OIW(U+4aMPd9G&`)d?1d(8MR zJ@sncqu3AWH9u#)M|tX{7wX+Rarb*_hW-7TVV`U8>I+YP4s4?*ky_M#`egSX*WCB6 zn)^`T#3#~QU?`vClF@^&s{Xc*e6C)7uHINvAF@n+zDKRC`XN2jJ6?SHiLYQ$>cKmF zpe}B&d7Kyj?%4)kc;UIaTYmLAg@HAF=4B24YlnH_b?@_;7oL3LOLaGV_A!%Q@7vq( zkhr=fAXcL zUU~|!)u85;wGSUZ1WC2itn}`uUes6A-ud0veF_DZ+V1Mt%?GiqLERk}UN`%Sr7yqq z1fT55uRQr|y-)G2*S#CGzizC>yFXC#A>Ui`A-|v)@ZyutzDOl`oi_b#-5N&C3qJDU z&%FNYsP`jKxGm?9)PBV8*Ev7!)D0)KeG4BNpM7|u&wcjg=bwJE-dum z^OJ{EG9TuZ&prLzD|NU0;vsc=5p1NF8a(krJplXiLy!5?3!kkwOM4yy0FF<0_52IZ zHFy%gXjbnlzVZ4;eQ3h#F?{fC;2|DH;cXASoa=@Up>&gnCiwXVpMCh{$Lp1|8#MUl z7r<6}=BZ~MriBd*b>p`OwGm*Bq%UY-@MT`%JEzP`>D;7d{WIdq&^u z!7W|ibIQGlWbJ&{R_dLG$FY?#EqfSYld+GDKv+I>F;r0A( zzPGzvV_bd%{Ll-p{bgOrh|75|L8j!i6g@1VM+yC~RA7UA{wl=~~S%0P;+%uytx4=D|#0OoC>J|;^zdWC{2RF5> z`!@6@&fSB)uk3zr&A0If9N={`_~6EmzsZf9#|Jll_~CcsSMZ?kl}A2p{W*Pb&#K4Y z!&yqSgeq??h+>z9k2Wn>dK~FvUV!gS3&|B~4Lh5GxLFaZ$%9iT46)gF1X69Mwrs(9LrQ#m?Z23rLE_=8_aXvsx#lq^(6&(3!X7)t5azMpp z71vd?iyw&g+M*b#Es9avqUejK`Ge}TP?V2lrUgzYT30&-SH6%<#L<(dvhg_j^2KZ{ zj)8nB8;xTqPiG@>jO3YYIF7MAn+?S=k>|3()j=VZ=QE?jzlMt?c`@sYV_9CxdgEA; zm$RNYR>@bg?l`_hUdg)R_*?R7))~jQ%HL%jar|xhYStdd-;u9nZE<{?{C%bm_q+1- ztR;?bmv3avar`~`X4VwP-3_j_;6v%>Eb0O#UhR1&;5OZ)ZQl@m=zr z?0<0lL;2_ICpf-azMK6B$M?v;WIx35z4EWwf8zK)`Cg{a|9<&?_HQ`;k^EcsJskg7 z{yqB_9REaK%l;Y1Kb8N;zK!Fb$$w`5h~o$32ido9{B!wX_6;0ADF2oHJ&qreA7x*~ z@x$`t>{T2;B0tH#g5yW!zq6Nc{FwYt_5zN7AwSKY$MG-aXW6qjeq4T@J&ogE$uF`m z;`j;qW%h;YPZd5X|C^beA*Su5iaRPg==={>F-gT@6+2a&Q!z`YekDYM>Sqd{GH=Hj z{;c0^D9-QK{PncapctktipkodSfnkAjoPBvkJf~0x9}-PTR(+a{Iz)pM$WR^X#b4` zZMDMeU3l=nwW4ftb+Pbi3!3pv^*aksSXG(zN%TK~zc1qNdHlVKzi;4gvibC6yy!F5 zTe1;2Hn84G75l99+fXs5@TB!S*+3jWXT2@!UtKPI-uk`F`W{~Qef&)^pPq#`|AGZu zv;HtUQSB9;vflG)>rb=a$4kCweLVX)j$g9=D*I{m^M$9aPh`$|7$Ak&tzYDxT5(!i zXKTehZ8g+ylcJNhy3~rHXmzfBq42aBuGc80Xlq)nSgNh%wPLrn>a6&pp4OT2T%EBs z5J#%tgFz>&k#143O~nosyHy-laSGxfKG!qWC$k?{f2{DV^*5Q>r$BT^#Tf;bx_4TE zyNe&i-^YMO?Qw&2fOtE;kLRqv&CFTcEgkjpP8GXU>{d~&VvmZwDs+6=uc9rcU)rf? zucCvBju4;3_wk%`($mf=x~S-?qMM5DDtf3;wUb^ddaLN8qOXd6D*CG!pkg3I-|Dwx z&_Q}SSj7+(Lsh8Co~wSk@Vxcu%y|uy`k(mw8UB8Ozve(;r=^O{D!QuZuVSEz(JIEO zn66@`ip3B=#wU2*S*oY&RcutTTg4s~$5fn9(G1^%(?W&fztcrUe-#5&j8-vL#dL_# z9CW6h&Qh^J6_BD8zIsQ6(Kj-iRBTqUMa5PX+f?jOaY@Bx6;~k|>!7A7#xwdXrnw4z zAk$JsD;2F(sFN~nRkTx~^KW#v%?uU#R7Ri5%z@a;LAUDZHWk}d>`QGu+eK{zdVI5wxRfpGX(M#5WHd}Rg z%~ma5FX5m(r8liZZno%L395C-dO$Ip4wpb)hvtmVS^&*I$U(Jb>O?C&rD(0KHY(~u zIkxKJxkp-^aPuk-+F4&V_%ULrUZWVMt>G%_qQXZ)!`dM66C9MMWAqhcRWOd2qb&-J zD9q|wu|r!|RdiLaMA1iE^B;&4)n6_=U;GHbT2WZKs8A@DZYsK~=%J#gie4&utLUSm zuZn&u6t`u73I*@?>VwK4J=IWKhNu{-Vwehrb{V5W@mFB(EKspf#Ud5z8)S(J^$oI4g*ph?phCf0cBxQTA=N6>UyR|PNA*-ahn!b& zLB&NC3h1JME>~12s>?MM*Hzq7aa+Y56?awKgD7**`+C|C_$iH4G*;0>g@U}OPm(?= z`l=YFVz`PCDn_apr((PcMgLE6(Aj#ben94`n5SaCiWMqWs#v9BwTd+=)~Z;iV!etD zDo&_42{D9&p3>9PD$b}ltKysr^%A09Lexu$ItWn*A?gA|U4WR6@yfaRxw7!SQX<`j8`#1#YBh(e9}pJI$6aO74uc7o0f$t z7O7aQVu^~SDwe5Ou409XjVd;&*bI?R)D}J6s$!dp?J9Pt*stP%ii0W+sW`0Sh>D{s zj;T1V;)IHm5Py?@r+Ru?#TgZ6Rh(0CUd06!7gbzRaaqM(757x!SJ6=8r$#CoL;Pbk z7>3eBPba9DsA3YtTdJMHm#rtV@8kG_^?4>gFIrz<^7E4Q6qBEqtuHe9`HJ-nlb%o`>`seH; zIDW_aUiJYT|JnL}_NO?0*ZQyQ4{`h#>qpr;ar{^7$Jsk@{GRm_W((i9eww`v=l^E? zEcUu9`^vGAYx2D1>2A6Shf^U?UB)mSnYjsLP*NG53f z$Z9FseKdY-wUX>E8b7gG3lgPb;lHhRl3hpRf2{VBT}9)kRtL#0qwzDVqhuG+__@_Z zva@LX!s;s7X*7Omb(8EQ8vko`m+Uwizq0yBb`bd(zJk7z?M17RSp6icMys({{UzIl zRui!XNwy8GreY12Yztb=#2O;mCbXK1HB_<bYAM!8$yTA&N~}?mtw5`_ zSfeFdhE^LSY?94ItF2hGB%6v>JFylD>IQD1y;#d78-`W~u~tbo2(6A{t(B}FTAjq& zCRrD>I*YYkvQB7q5o@;~?RN`Z5i1E2f49(0tb>v@sSXR>#X2sZw$4fRIh^$n>jciu zOV$8)^%U!}AaQpKy~MgANZs8+Z?SF*^wcf%5$ldXQ{6&evF-|V)h+ZB>z+Vc-9mq{ z8k%f3S_8ytWU`%T4HT=f$+n|4NUSC%+ltm;v6`D~BU(emYGJbV_~M6(`E>R>Xbcnc zMD|uRhKu=3_7*fohOS*?N*!dLMlpk8@}zmwpz0TOKqgL_Gd=R= zd7Q{_@c&W=`7mtckRM=WU^o3`fj$IK}I&=tQy}K?iyswI^4BK6%&=hu&`I{1K*etg}r^6 z-veU8!hW`p-Xk>$3kUFx;jUT6^hCYtpg30y$}_5P%b;8@;+2QQxow~eZsD*vO)Na8 zTR0+4Yb$F}9Tkq^8LiATMt1RCxaMPcG@LflWMi9-vKyiaUU6KUQC6nk-wAQ1S#Z0R z!bx#7aB z3m3$>WWoQrg^S{}wX^?5>ykKq?CiT}T^47go&6nJSMUgSrXyd4V%Qw{nmAkR>`!p* zx;TgI?CogX5a*PgRnWSLFUE%3bPKn{xo2m0(7LVlknBIuy2F;D`(1H*I8ZIOa1Ybs zWG|z2A0OS}yEQb_5x3?ByRSRR__I`tjN;NR8h55BJ6(%Wfl%Gg#YVrs9sK1c}MQU@Ccjlx1x*5uC zz<8dQXiAbNBFsUUerSz}Imq68)INItYi1(y|4%|r=A-@^sfbpsew~7*rYw{4Q8jUq zUpHsDtvA1Ey7IGp)ZcKv;^(9Oh7*<@`KZ6)jK$7JJq0}a4W=yb&qrm>@QW@3clY467y>Rf}{<^`9478H2DOujii9N+;J7beSNprfR7)FN$@!NvZ~7p?!(2_zsW~^T*>v3YHMww)v(6;NO|?)%IbmYPw2BA!MB&!S6NzRRh4B_ zmPhL<}!iBBL^9XP#wsHwIZ&OI+(=3_`Hx zX!SH^pXOW0q>R}wStGQ18*@;wtcpy^m_r&EB9p?$6s)8nlQQP0Fc#=<%yGf8Dl#c! z5Ul+Wt%1fMNBbUHh@dVCBZa{RD;Nw`h8QekWcta68iTy;AJ7_Ru&O~HKirsWl6@W5 zMi_Hb7+Z`q=9Xly;Myo-kgcspYc$NjFkc;Gunxj}b*#Z+2=mo(1}h@WSH~MHi)2gi ziU|g5BiSOfCK@b|WDC%mWUxw-%|mOl!BR;!2dyav>m}JNw5A#?nq)K3nr5(al1)Qv zx-lJ0rlIf*gN2lA5?V8jL9jUiEyR3XO*RIt*~WA;*(kK;7}LWbKz9ps5fK_JZX%dB zrng~sJl~i;CL4fj3ykS!IOhwEL0GDDzQ`B^qCL=BY|J2&bwg{3F+&VzdZ{r(4QG0p zF~d#P4!z3}(3q?ZS}TkhWjNC-jX?mbGrbD7Z8+1bVY7xay~dcShO@fX7zDIG!F}rt z)`vK&>kSr(II9~BR*Db?yM>L$%r?xtHyJD(G4tMR%v{4c-(t)Hg9UR0=f*5F%*MAF zv)FK^w;Qv>aHe-aiw$Z*X<;X{7$NeW&|v*lG(X=3Z8oS6AuxwFqpx9PG~}*^MjO-u z(!w5SG_H4vP~ncu5%ldfSfOGPvCjZ}GAzZK|Hk$G(0GFy5(0B*JgzT~M78gr!Rl4^ z35<0J`j6{-B4}nLpF!VY*n!FZ0<9wkNSJ-J`lE%Tun4_N*CXl{8|u~+xOBj^021p~zKk*-IQqVIwM$f9nA zK;B^e4TUQN@&=1=48boe+JaqyKprM$fnR|@-e64*3=6k#4aQ~>46ei2EP}xe7@Gy2 z1p;{(n+2u?0(lslMFqMIW3#A0cVKK573eOE&4L1bv~Ul`hLmQ$ew9m9aFK`0DO@_? zY6BM0_}r*2*%-wl?6ktt~Ua$}|CNW0^r#wi>Or zmKkhiE759anV}XDroCl`Swxr)mKk9&7wKr3kybVz_jR(&Xp6Yg*)n4+;z}3GjI)@j zbhXTQi#4=vmYHY~O}blVl0`J>VVNlw^O&BNnQDQN1BABBbPGfYAhcy>Sgf`6vCJ$B zWCnX?w^UVwPZoVNg5fOyMX$kXaMmO+xNHHx{Gxol;hM{AyC zu39K*yM_6dxn=>F0P&W&VP$`d) zEVWESn`*JlGL3DJv;gszX<}0?R#>K)O((O`GRBC$k>LWHYeX0AsT0WH!Q>Y?f*_!I*41nawaJo8iP37?VvWvlYf< zXRR>aHW-slC$k;KWD`qvSf-y%C$ke~WuwvpXt&Hjn+UQSW@QsWsx31lFD>kWS=k`9 z0M21dHfMStjLBwEU_Xq>=1d=eG1-KIgD|GN7;y;3WHZD#3=^_B(?={b*`~WW3KOz9 z)5k1>QpH#C9>-xqHUoTfXJA%&nd2;s z$>vO-gE86JljuEf8I(SBrY~4#nT-Vupsi(A*qrH0mRXq>MlQp)>`cw-ie=W=bTn6C zRyGzcfVP%dZ)YDu>pINJrti36nN2o*$4$#@wX^r5_ZDo%&fbgGZOiPivABV<2`t6N z@&?K#mf3A*e}L9KSc;wf9$NP;v)5+bsiAH5*@S{dwmFc`bYt5bv{{sIVw=PHOgFX7 z5u4@tX0|zQGn{B{n-lp=x3CS0IZZHfOWT~zXS$Vb&f4@9t!;BIpXoNXxoFcvw6)D8 zn;xQ_ZBYJEn{IELtNBcKu+4RwHr>%SH}aY8WSd)d_OH0Fvu$qYGu_2DcWnk1U2SvE zMhy-ju5H>oEY)|nO$UcTVh^|4KFhj883 zHvJufbU)h+a2Wjcx6L4jAU(h~gB?)Y5aQZqs6&t*WSe15HV)SY+h&@B04^*Hu|Y=3 zO#j3j!`V<9tdz|3Nz8Ga4YNT{$xOe*9L8&g+u*4Xh)39FHt&Kv?57Lp{UL7QmXWrZ z=g{m%*=D|j$pAjuW+C4|m%gIH7~3qWIeihQV{Nkprvos+b2uGm8cP@gGp>I(l`Yel~Xbz!v zi4DdN4R9$`&Ov1|EG&b{;ogObd>i*Jw?P6T@UDOYIw9MJzQVu7%AN>6x#==8DAY>$aI&q`KUI zxfQ7{H*K?^hy(#h3v(+HuW#FCW06yP#|D>+Q+pStP$c@^gDDh=zV~fVyI4SP=z!nF zscqzdVWgbscq(f_{FJh?tuM8-`m0g1&koj(g6>Qh}_Bn z8H^L!+Cia$6WYcBBaB|Stpi#Zr?#B~ZWyPwy#s<6Bl->wSYkx!jt;0|^v9hX@WnXE zogI+IILTccbD~JR?&_G+MaJ>n9CIe0fS(on(Znj=5E2%0Iv{w~O@5108cWpWi`_xmToT9_*Ng zE)jl+V;Z?c_@Rzz;u7J9Ii{)0GQe=hGa=@{e~+XBUKd6cZfN#bq=$(J|dzru>r})7@n> zHrX*fU8ej~9Mj8XG&a>SeO#ve(;U;+Wi&S3G5uZY#tg>{aH$(J9W&UaM$B@|5SJP; z+cCpk>cJexjBu$3a~(6<EOlwbYaO%P<@~O5%nFzDyWTOYT+Z(X$E{oi_tpc zfJMoC{Vc4)Wxjq6R^c*VKkt}3Zsy>=3y!((f^-7>gH?E(=}WK$kCuEHw%~E5ufPI4 zX5?2L)6(NiUxNjBjI6Iarj5s$z5xsH7+K$ROnZ+reG3-gF|xkxm`)yN`i^6|dIaga zumF!GyL*o5;W4tl4-4>^O*JfPYgsfSJ;rLSie{8YDoX338RIc(Yg061Jw|P9i)Or+ z(^HCOg2$+>ebG$v7`1gMn#mrcwvI(J&7;+JDw^pYbEwWmGt0|{;0d}E&1{cW+qG!s zdUV#^ie{citLiQPV zN{{y2uV_|zwBPhZW6Ek3rh-qS@`y36Ch6YLA)I$fDWn(Fu<#ntdLNv!jdVfJY}hrf3d&jHkyI z&Eb50#}&?+d$ixlMRV4p{Z1*Ga~|z?D&E&8 z3QWWM`qYx?MG%6iB{T2@KK=PjJb};gW);mLpX1Fgnxj7b`5Zif&!z0SMRUSu&ONVa zPWsHm=Hm%`diDiHbH=ADd<*&3T`meR0uT^y%4`6wM`{o_%T2T=9t@%Zlcz zPXt+BG}nDH4ptP+4WF6V%A&dD6E{{B&268!vASsP`pm@E6wN(9dp9&^ZP7Fg80M`j znnnRNXMNE$30RcbP&7>gYR<-@X&w;oHx*5bfSR+pXj%uv`z=M&CLrE#Et+-#bM9?L z(>`F%y}f8U1=N=vMbkN;zU(ZTt^s}guA=D{5D#`2O^*OuVGslsP0xUuv!`f!2Son8 zu+V_Wu&-$P1=O7VMbkeZG8}+~2GpE`MKdTMG8}@12GpFxMKd%YG8}=02GpFRMKdBG z;p!MHG$1k@FPhOo_BA}g30P>rIX_u6;{wk4DOhO0I?L&znHaFnat0O}aL&&b&6I$1 zeh#)8aL&)eRs+uY1=vx*TFFJ&M}V1mp>PSh7QC*$`0G|~S%<76b89hjB{nf((1%Ns z$mkGW*XC+pMFf5ss*N{(Oa!hW#TBS~K*w+u>K@QBT!Xp?a13uPT!*^jwGR*ab5u)j zz!K5%>ps3dc@dXIw?k2A38qyCn zbxpUBeyEvix`!rkRGXpYkGz`5z;liLPnIWT+=(uiIA@86Xrxn*YpkHo1#Kn z*YpeXZIB)CM(teFKV*Q}-ZcY41eji-gKGxkIbK0`N7sxD>5V$MW>ko1vRvrwnz0z6 zb`#ib+}Fhg>kX(87P_*99TMPay}i)Q#fAyhZ7j2dmRX3kfQ4u;2}QYE-Cf+5nZ==K zg`5D`IDp%+`&{HD7q_%{i6_I9zk5Eflk=);ydjXo^K=%1$3eO>H3 z1Qu5n`mts1p|2qpU-0+#>OU#;cXNUgSxU-WB7G_6E7g*g$Xxm{SV{wG?yl`=kMC%p z%h!Ad?>5NA21oews={ElOeegPF7@DVCHjZp>x>XpR~3e`WrlJYNSA_8yGCK!#kNRP zFRKc}*)mhmKP~_J6#7TF*f9x=tSXFT%Pd77mWA~18fJ79zN09g(Z9e=qw~|}EVSkA35yAeg{O^5u|0%9%%^s{i#;9Xd6{fn_Op@Uq zUNIP94&HSdzM>dqy|gf$Ei(pVjEzB14+}H$D??-1fwP&l{TpyLD?h`X>+l@2T{9G8 zkHl;BZ&d!L-@_c&3}X-24*ChI3UgiTI>~SkujqSeX?z~kI7Zlsnhsk~ckn*L!h+hf zfjCTF1E2E$P5dM*}@h{QM%p|7g(I>*)MR{QWtzqIE}cl%&jBZwM5Ty z7aLRTST( zy_XuEuW_->1?f#%Sj!g5EMitAqCw+2JWm4Wlor;z*uaTp4Gg$9;i}^X7kfC7lmvy1 zZV}sOiy3|4CRew~w8e`zySiDkHCkI--Lk14W2;*PeN>BW+uS1d&Z|$#U@c@D*VHSDL#kL;CkLO+N z?P2_Q!Nmq2et#ET?DAnOamkel!uavBD`2!L?eU6>?LW*Nue#U+#N6?ki;X~7N=B94 z#cm)*jW=9u31ZZE)5X3Z*6(k*Am3s67*%!`n}a|BMwQ*g4k5;mcU=MXT`T$bTj= z;cLOZtB1Wz3=_L~*wDlbTR*y+T8v5$xC zPD~~Hdf4;CqCr0oAC5_7e-BT|&~bo=%}@*-2YT2M#qz-*5A;Kp4+eYK8^wj2As#kJ zF^C-M$$eoEIm`n&k%gk+9=1xcP&C35@ceZ(ccdrakf=i$<>6y8de~RR^3XUBJE&P68t-8nHP>(_c-TJ8M027C+9O^2Bu_dU7K$c&0;Y$q*G}=U zCyVQ~Q$5fjIo;Dd0p~;GnCYH?%b}~ZGdvlVb3SHz0#-*iT$|+ySRFdkvpsC!;!Mx+ z1pE$-IOci+R!1AO=6TrJ#nfQFhwWW-{R=#qV3;H<^aNavpX0to9`=1P4Or}fa>)d8 ziHFT!tmiKEumg-Uz0AWlFwXRH4|~Bl(-ND-7pywTGQzoXa&H zwu^Bt*Lv79#<^VQVdEI*ay^vaPfaj z?+t_hZP0terMKYoHagDq zH4l5~IMdgm_ZDaRh9@ARe;4=N^svc}Gkwd$PCL%@Z4cY+IMa7L?78Di-}MCCim&4p z_dEf6;$^h%d)SP}xoqfTM;@2x8u#jv1yNt zisn9c?y>CC!pHVK+GR^0d-!OVt$b|cqg}T41?-9G7`cs)-F&pmwm!D>(JtHh0``P1 zqPO>Dp2ZSv2OoR=SfcIdW5XZUXgc}W^~dDBvyZKROy0Zr*#F0}PgftC09mZ<=F3ux zh5YWmEX%nSJ$&p5WE$VomlYNZK)rlfX)&Si?F%>)>eT!A*fB`Q+}FppK|1DsKK2gM zG57ZcObJcM2Kd-ONXI_z1Kj`Oi0k@Gv= z$F4+L@&q4S6KTm4eF1SolblID$iAHY$v!qIa`vbA*r`ZMp6X+}BFjV5eC%0dd1$(i zjf-UT&+xH(k#;`Q#}-D~`79s%7-{FTeYs-M&gb|7;)KT4bA4=Zq!XU!W0xbH@O&Rz z9qEJ@_}K4AC%n+drbjyAMLu>u(g`p21!Rgb7-fksO>;8EQeWEGMCD~Ze(i!zc)5?C zydZI6g^%C8U=e4fj~~AvX0P(`3m7c_t@gn?CT6ek@iQ32?6p3A3xk-w&c_d85VP0& z_*D#g=M6r78iVM)(Z}y&5WP3~_>l~v_huizltJ{~;^XHsX!~1zaFl8L+kE_R25o=4 zk6+KA?eFmM6B@Mroj!g?gSNlR$B${y_IJYubAm-RY%pJd-{a$FHE8>Lef+itZGWGS zAK0Mg?Du83P0cv~%gYzr55n?n255(1c{T&I!?3)ZU~vSNmlG_G!pdwGagM>tYzAY; zVP!Uhu@kT|o59#g*j7%VI0f6XIlrf2JvIZcGq4_;f!A4IR@t2MbH0E$p_qN%m$fzv zcNcuAp-^1(rG`Rr3HD|a(J#Z^Y$Ey<*jv6Y##SQh<*e1meVS3 z!rpRP#Vy#IO+>#9d$U>kzvIg;o2CD|zJPS`HayimUqHH0yua_u9-DaIFc8o$l%v}y z5YR7l{km}=`*W&AlR!Yk&=jC)ARuCB3eYT&Lp7v}KtRc8j%zIf0VPB8&6a_HlA##U zDiBaI{uiy*ft;)%T?7JhhNi=90|7Zhiy-X+Ig`^b+6Mxf#*c8VLm;4OC~vo8Am?oc z@0|jxyK zw^tx79hO&m2Z9|wYjCYkAgyysM&Cf%I4rO93#6^X@=E_e+Bq!!4+sRrjzxIIz(7Fk zSb)}`KtSx6ht}XgIyvOm4G9Dkk6E}jG>|Sibz@i{T^%ms4G*N7!$rIifq(#_MURnz zU}upA<)Z@WnUgq12Le)v;=!0eKnfX!*4RM$IE>-O1=81H3^zWIehy=}34wqzqA}dW zKtLH8fYziy20BEG$$@}8(g)Y31OoDiMtD;L8R8HvrUe2TiAH$S0|AXhBfJ@b40nhY zGXojn5G`f}GSVSh%nk%QpW5KQIf0CJh!%4L8RHNw<^?j=AzI82WSm2^SP;l~hiI`d zkO|8CK>QcTM2BdxI1rFNlt8m2kTni%dTAhQ9oqD=K*0CV8C)L7Mu(}^ia<6wOtn@9 zvejXMepMh~ekfIHbs%7VJd4&EXtu+&YArO|VOq5gn(Z*HS`W>3Xx$s2*$%CHBQ)Eg zb#Dsfs6#~G9LO<;h`t5d?hw(pLff6}!+4Kv&~}Ff`t8tmhXwi_&~}GZsh!Yvhx^%f zLE9aYrglTeb4ErrblhRQwkHrUN8X9?_CnhoTK7I^yF=^V4{dj7-3I~zJ49{zU?5f9a6@%BY}V&qA}c2*n-0t?ig&r;d0*bK)??1(R(5gFhSIkPX+=e zNMp241p+3B+Vtr_zywj7J`)I-AX@1-8%XnfiT+$5V1lSkpNDPbOY|3DQ8^FeA}p#% zM85=!DiYBz!)A(1zOTS$@+JDKu$g>`{u*p1=V4rj%@nB-H()bGYQ#<0Oukru3pSH4 z*58KB6sa3`U^7MP#$DJ z%p&c#Z73joXb#pc6c9d!q18SV&^**?JA^X7NUQA_3J4!scj^?%;v#Leb0|xSwAC)C zsTOIgT|-$>q=j}1Wo3~T+C7w2MOtW&P}UY{mpwySSEOC`3T1tfcG)`=&_){JJ^F+K z+K5_X-%vms`6XKYLIGJsF}r^#Ackl(Hy{)cLlmh8h5}-UBK4pUzcN6i9vljYA)22L z2?fNEe?x0%C?JM>53OOLfEe;GXbleq#E^eRYeXm@hI|{Xk)ePXqP9OO6c9tS;4(Ut zWBL4!2?Zn&wf(W7fCTa?TH``Fna}U|P)_CZJ0TPhLta4d#85y7QQMys3g{qOdYK%` zg?#p>gaTs77jSKAC?JMt>1A3dmvbu4^iV(%`3$bj2n7_8Pop(6lxsy|#H>(27SYnn z>`*`!`2<>XLb;ifa!?ruZR9U-ZC)t1i^K?UV>M|oZ z6w0`q+;JGT>QY~hz*b%A%h6CkK2dVkG1zKO?l=xxb?GZkz*b%A%gIncNKt(`1*>%# z{bL1Umdoh>46N2=^pDjD5K^ANedl1cE_3_yuv(Y7{e@6KP5C5xFNOkY%3q;%36`8w zL@vXUbBf57P?ovWjjN%6r1C-BcMUe}(tlisO}q3TH(=8){m0EvR=YXrHk37PPP&Di zyIktM13P!KcVU#fp@6PJ(k<-V%}KYgb2s~4^kS_9#1++?Mv-jIHK%bT+j7lm63LF7 z_4C zBLOAmU(xCo2`DkDFWn;nB}OB`9+7|&^G|5?j08j&MU`HWfC%#qw0cJZBFx{T)h7}V zVH98bMgscFD`@qL1oW4e(dr)w=r1p#H6Rj@UNp8C7zs!(iZ6pAxtr_D;7CAvS%GUq zB5CB&r(iXxaZVc<772(ji_nXeArN8IyNrmWnMdz3GLq&VW5-dEfD$tky`v*(<*|M+ zCK6C$rr_GxNZNYzGvguwIYuMK@sWTWqkd*WBpp0Pj1waPO-3WeNs)jiGXky2k#zQm zIaq`0l9NiNMgr>0AoOBQ3e*|JoavEt_lP+&A_0j;BgUCnXv*m&vm)u0(@SPY(%U2E z%!vfVnl89+ZX_VqDCW$Iq+d=nnIB32oM^Hj5|C{aa~4JdvP~et_1xNXF%aqxF%1o}-wvArjDYRIfHhGBKy7Y>EU#9o4JNk$|Y9 zdbK5zDLM6MYa~-WRwlMZ0`kr`(Yrkokaxb0){aPKc&tq9jAW+A%EYcn=6KXAEaHL2 zqk2^x31~cDMhi=L^K-h&-bg^`c?Q?^MFK+4m(bcD2?#yvx3KUBLXY~bgOM!t7~39- z1k@h&TZbb7wMYHdkw`%3QEzoLlGPr))v-uG?fE#a9ghUm9`#lyB3b9rTb+z#y+=ek z6$$7*ib$s;0o~^VXq|~NKqTE=od*DEZfUdZ*T zbu1Tiy=oK7rChJt#&S8=D=eX2$@K~gsaJEo>JZDdT(3IDay{28EU4bd^$LrqH*>w} z63eYzue!!^JJ+jjvE1>9T-{^2n`>B)SnlN-)-#s-xrX(MrJ>JyXYW`V`CNzS6H8;C z>kxfoY2tGoqF*dceO5#J$I{GaHFQ8M&3#rw2gcIcCvpvnrHxPI8XQYopAqtqSlaoF zkg=TG-e-h7ES3&FF>H7&9erZhh*&!L#4s%6cJ_&3SkCR@6T?Qw($y!1VKKLxPYlBX zZg-y;HZGPPKI5kGvGnwbVH0BM@!-L5z7#t(bCLVhWbRVS+NZBiCnW|8SWFgus?EyPvpX4@kpP@ zH7}M?J~eE9EMtA*)q+^Y`P8e0v5fbrSBqkq>NApF9LqGHk@S*Sru&Sfm&P)~XC%EW zmYF^y>E*G^@)=35h-J3VNO~m}*nLLQt74h!Gm^%R&3Qh39u}wP`}BEhV_A?>-`2&l zFsHt)k7ZF#ecKSr;+*=nF_xu1v1wB*%Y0(f=2({dITbdRl{xioYb>k$oC+JuYM_NpQPj*^raqcE_?YC&5+6vdL$(v?rF$KBJ|*v25{KRofTK z)|?KvKbCDd9qvFZ+kFyh4}vh@v#NF|mYqJUYKLRll@sHR#Iidl#vP4iPfm$5-xpPBVJAcN1$ z`aF=qXJ&l?$lx=xz6fOSNtC?=WbjFpy$odVGYju_1$OT9_hzob&i(8bu3dwj``Hb& zuEWm#>>64(VCQ~z1+AN~b3eO;)-Bk%pIt!fHtgKb&Y^V&cJ60q(7Fpd4;UHUgPrFT zx%;s5oFdmS5zzk*;l4(Rfc|#?t;UHo3$lG^HAw_Sz&&U+O$0>1-DovSq-DUps?8Gt zC2$+AwMYb%z%6LCOr&igNlO_iy0_tEdTpN@KsDm0w4^Cu!z<6j#A|MfV!L^}@Ov>q#!x90B zusyB~PXr{wwrGt=1SCR@f<`6+5@8FpMkO*MCsK}1WM)pJ9FxebfLJm%k=Z%3Y+NF9 z16E?jCo(T!Bt0RK`2j026BAjGQz|DVvM{GqPEKS|K%|+H$l`!VGc}PV0g+}}B1>~} z<@7|B<>bm4i7XF@G&2)f5fEu+C9*1DOg%f1)d6FlIf<+Z82ijkWJ^w@oR`Sffce(^ zM79OY$`>TEJz)Hd?M^##N+mW)?aV2aixb%u5KFMdYIi^^S(-?7KrC672#Ayo@C_|b z1kA=K&;ro~EXKb@Yh@x}G5$4LAijXbsF~O5M2-YRkTr=M4Oo|7n+Pa{A3^WBL_jJ0 z5L)XK0U7WEXl+OY{JuX$Yhxnd^8GPdn-T$+@BL_PP6S-O_oB5Wk#hkNWNRW914cL7 z61fyGy4jw{<$%!*SUgt(MmIYXxf(FK0juX)!02XoBG&^(H`R&U2pHY$N#th0=msR6 zTLGh+eTm#w8YJSsMD7HPZVn`JH(+#gFp+x!qnksC+z%Mt98RQRNPRhyNTZNZ^U*{a zhx9_nVEZAx&~ey)NH25(wjVNTJ_*|o8Qp+))FNbba~ifEGHO1PNUM;U`dOer$f)@o zP#|Q~d>*zMQV%X90urOfz!wt%iScV_U4qqy%*8LmYD3m-uOtHMqGsh+69IKmYd6;t z0c%mStm}yk3>gF8fOUtAfp5aPLuTc-VBI0J^4qZPkXiX1*mTGk_%3WZWDI-{HXX8d zb00PxG8%4}%IJ`>N~2Ujc$|)RYn;lskgK#!QW>8UBb%l&L5Y#Tzf>lMT(51O%H)u! z(jt{9AyK7eDpNzEN~=_+g+!IssZ0-vDs57k8FCG`Z7QTv0{>E(9dZq~eJY?)_Qrd3 zNClM1o@jMUWqwF3>6FTXkXX_=m4zWAlrE_(3K^kvO=WS&2&G#pOGB>IbWdej$aUQw zsVon} zWGdAmW0g^<>a^$+oU%Tl=?ay?*qDh(rQ&WcnTMbw;?sWge` zg;u4~G@|CLPNkVrPf`C%rFlfnS({3Wh?=u5l~xhG(E3zbN7S4RskDixIU7@H8&PvM zrP3~<=4?&{R9MZKwxrTA%Iklrbc*u&Un-p=YR>jlx)MIVVyX6;X3e0vVJ!i~3(G zVPh^RSdfeaBf=NynBqUM}W1!P~%z%Kw9B5KY>AVWmWxddd0s5zHY znGrDqzXD{4s5w`G3=uWw8jvBP=3ECdMAV!csmzNQ+uj5+MAV#HK!%8#a~sGIQFHD9 z86s-V-BgxDjBW1$86x_q`#^?>KB{3!mPgEr8kJ;4#7L%bNmfP7ikg&Ub;PWwX-U>Z zTqkZ;lC=@niJO;XUBpPHMM*Y9%!*o;WMjlgrd3HcMT}%xmt=Fqtf);%wnWT|+LmOS z(w%{SCD|TvO{slJc0`P1I+O%t=bxdsV@Y;JM4wJ2sgCH6I+tWmM1Rz!Bzq(Jqpl^{ z7ttSeE6M(d{-}FN4o1wBdX(f)#Q3FWNe)MhUwW0~NW@I3cS(*$M4vt-Igx8l-;$in zHK$)mPUV`@za*z~%^6UVGZFpPz>=Je=(h%y1War7TZ2n-KBC_mQj!Z1tAj&Jaxo(M z3@gc{T!)62V@h%(q6ZsWlA94d*tnA1 zidfGXUy|FoHccqWom`tHmgH`(O_NG;FW08YCApt#)0C1lj2R(MElH!8zHC}a8prfy z(@WAMrZ1aOlBO|z+02qOi|NZ|m85yh2zho%z#-QNc}_`M#*C2XmINH}KDaioB;bT= zggn0_;DT#}yr3j)V`9_7lC+D7O^Zs>UOC}d|0qd^nAo(WBpqXVwWTHL6jQ^Nm85e_ z4O?E4E-^K1MM=8G)UcH$=@wJNR+XfCOq5z(k{&TpYE4Oc$HbSOby#ql7TTbY;#El#niAZB>|6J>x5fNG9)HSZ7T^_>FVFM zmjoGqXmTui*$Uy|`L@#;WHCMeGw^}mu#jEPr=N-`-XUL7vUJ6tjmok)rXOrv7I62K>(ZnwTVwjcre)a{(+@T)%l4Rluz6W_ z#EhU?lx1g3G;3LwT`|$DRath&M6=dqsg8+eZOXDICYrS^%ifqCv0YjA#q@~n%d%g0 zBOv}O%Ym34v13^d#`K7t%5o@X1*mgb4#&i`E@e3q6W6+ysFRyF>$SXS&qlV zwH{?T5z{yJEX&E5zOh$XPQ~<%y~}bsrf=+1mNPMZW8bozjfrsm%5p9y!u2o9`Irbd zpez^SeEp*=7vp^Wqb!$VBHZAzT#o4_hm_??OfNaKEZFs+@zt=hT#M-?hnMAgOfNa2 zEH`2z+{m)rjEQig%5p0v!i_G=?U)ERrYv`JT^n1Ld%3QSE6e>{*T$EnVUll!FH55& z-wI!r#tDCzXi{04B>cUq$z^Gp;D5-0|5BD_2^p7D%hEg{<8oSAS|ns#PA^N#gwgtp zvb0LbxSUy*)(K;-S!HRHFy@+FmbM9_^*Lo}m(X+0Elc}^o^xJVIwbU*^UKmPq32vs zmQD$^ZedwE>mCrSf0U(5Lakd|7VHaYiEB&B(k-FZEiFs;gj%<(EIkrx-SV>ZOsI7$ z%F-*L)~zf{?}S>nsw{mHYTfFx^i8OBYs%6uq1LS}OaFvgx2`M$5^CN0vJ6b9bsNeu zD52JEEX&}8TDPezLlSD;=CTY;sC8S)GAyCiZ7s|2gj%<)EF%(X-S)DKOsI7`$}&oK zrU3uSGCHBw?JCQdgj%<|EMpUDU3FO|B-FJ%Wto^z*Y=iWQbJwZSC+{Mb!~rHum$F6 zjCY_cQxodi!Lm$CsB4GHGCiTL9WKj^gt~U5EHe}8+R?JiN~mkc$}&5lt{pGSoP@e| zqAYV0>e|V&%u5)Xohl3V)#&QT>9Q6`GnrIcSSBF^rn3(axtMd?OTyc3B75*id;_UP5W2mNE7CC~!p*5jr<4dcw<4WWBHX-+bV-SD^DELbC7La$NUxM=wy+|-Q=-|T ziu6f|W{WG*Hzk@asYt(+XtuN>{ZpdZvWg5!iDAntGB_oMt*FS5lo+6JKhOMc{h?E$%wjv`_V%WNhj7o`N>nk!kC5CON$e5HEwy`2(Q)1Yrii}H% zVVf&5J|%{2smO$s7`C+{6H{W?wu($j={dJoWO7P0+fk7zDbZ|aMW&`ivt1RLmJ-c& zS7drhG^?)2jFf1$ry?^`qS@Yx%u0!7`zkU!C7SK8$efgDcAz42Q=-|yip)!iW``;= zKP8$SuE>IvXm+F`3sa)m(TXfeiDt(tvN$E09k0lelxTLMB1==E*~yA5ONnNuDzZE! znw_r5ij-(}rXnj-qS@JstV)Sy=PI%~C7PYD$eNUBcA+9`Q=-|$imXeCW|u0mJ|&u6 zuE@re@!FM&Y)TogU9HIGl=0fNifl<4uU!X9rHt2Z0Hso{w%i0FrCejV1w=}@#&R2o zlyZ&b4iG8j8p~ZEQpz=!dqAX=KTC2Sh?L@=;b8r@O7`a()~HGjQE&YQzBQ#D!G&rxjI$J<&?&qQ6(Kp#HNu|(y>Hr8dW8oO2nqoRnoacY#LJ~T}s5J zu~pKwL~I&YCEZKRD#uqzj}o)W302aw#H?~+mGmkxtDICNy-Un0Cs#?o5_8EZRnosi z?>Dtd29)Uird7$n620H_Dj8Iw_nT2AgG=;&Gpl4siQaEkl?*M>`^~PBVI_LMIaM;e zMDI7ZN=BB5QuC^0REa1xze+}zh*ArxWK4-DwXjOYmWWb|s$@cm*tEDxCYFdzOR8j2 ziP*HXN+y?xP0OleN{QICyh^5)h)pZ15?pM*Axe}(U zXwG~I52|R+^Aa9b(VT@69#t_xEtW7-#RT=DgvV7(P)j8|sbYe9DP*W(f?5{6U&VXf zSEBc;XwK^r7OH5@8=*iI&3P*nsG>RVgaTDG=Y0t;tMacxDq*>b=6n<~REb~U62Da< zWT+B9!6oj0g$z~R5AoL*Awv~^66C8;pi2A-m$?5B3RH=o;S%@1LV+spo%rjAP@qcu zB9}P-3I(dfPjZR-U!g#i_)RWx|69VhDt;UBAK^ijw;=x6U*SQOH!uGBCp@U~X2oAC zB>c)Nr$)l>Do(Xp34f|M)#@btt>RQ$DdArgr`jqBD+;{pt(Q7%FLBi?+--m0Iu%^KG;nqo5Ti|CY)=Ow8@O`)q5*iECXQPC51?tlz zVSR!6G)ve}pgx-?_cr0}}QZ=+Hq42MToPkc5K;I&@gVp#ryCME=jmtpiP%0Tq)3|D-s3@oN5CSt`#`Tu1Xjx zFoh3FxL#lizb4^Efhl}Q!p#Cx_;m@x1*Y&D5=IJ4;Ws6W7MQ|^CEO}7g^x(MU0@0y zl`vLd3cn>`yucKGTf$U=o2*9?o)x&snvpPD;3qsD zOPDJ#BR!EYUtmUhD&cv78R?mXg#t6utc0ZklhK@nmj!w?FJZYrubxYIRiIZ35?&YR z)uMzq1$y;D!rKD9T9WXtK(Ag(cweAb%Mv~m=+!F;9}D#AwS-Rvdi6%a=K{TYE8$B) z{CuGJ{D*|E1@L!)Ei(2LxtHH6V{egiZIiLDNV&Gl*k7bvJ7gRvQm&mc4i+g_i;N>h zdeti9Xpvs+lF?SASO3XqFVd^sGL9AL)gBqgi}Y%*jE*9`+9#v4NU!$GI8mfm2V|Tq z(yN0qP8I3ZAsMHO^y;vT?jm#35gBKT^y;XLo+7D37t7mM`jq>M{NdUZ<1*NgP3PsVVO+54P~ks`f1FJrVwuli-&D$=V9GHw^?)kPU& zMS68f#(0rlU6wIXq*qsDOcv?YfQ+dky}BynPLW;>%D7vkSJ!0RE7GeW8TX4!Ro7)q z7b({b84rq->!yr{ManfS<57`vjmVfOQm#=MPmA>GmW*dbdUadIY>{4#$(SqBt8p3g zMS3+M<9U%@P0Cm((yJ*Mi$!{MN5+dHy}B!7sYtKx$#_|$SNCNs7wOfsj8{c^^+3k! zBF}UWWxOd;u17N77Ae<^jCV!K^;pLHBISA_<3o{hJ(cmfNUxsB_)?@-vogLG>D8Q! zZ$)}FFXMZWUOkubqe!n7Wc)1Bt3?^ViuCG*jNe6iwIt(DkzT!&@wZ5?mSy}a(yLc8 zR+O00U(2W|F{8hcQCnh0e=DP|#Ekw<#>x^i`g<9xN|ft^jQSGg`Y6mP(W_6woD#kI zEX*mtesTK_A|DKVq}6Xukd(N`$gS)x}p3R+6^s#Za3iC)zy*j1ueD;4}#qF1XF>@Lx( zdIft*^lG(&y(N0JM!~)ky;`eae~Df-C^%4}SB(k|mgv|%!I2WZ z+Nj`YiC#4+Xe-gHW(CJf%vYNfbd>1TW(A!kdbLHti4wiqs^DaaUTsrwszk50D>z-E zS34A(DbcH)3c5=4szpI}iC(oTI9sAuyA<@4=+%D;dQ0?bw}QSB^VJ>&=Sq}ouY&U> z%C%2He~EJKS8$<3xeh3}SfX496m_=1Ou>y3y*jSoW{F;PC>So$t4;+YC3QgXXqF3h>JSfqt^9ml8 z=vBXhMrV6H^31{KVg zn6$1bcwVAhLkbp3lb-EHOd7P_Rj& zNJ|PfOBCs)f-Mq7T2`=CqDZe4Y?CO`YX#dSiu6Xo4v8YY6_!X8>7B4dqDb$BB@#vY zAS{t6(nn#5M3FuTOC;_OJ_}1E+Vn+OBGIO=!V-!5gKxqTiF?fN!V-yl%pbxMiF?eS z!V-yl%wNJ1iF?f7!V-yl%s;{siF?ey!V-yl%zp~nCGIg-s5mCkrWzH;CE8T0qC=uh zbt+Cu6ltZ3QxZj5rQ)H zspykv(|Q%>B-*q=#d(P~ZB)@O(WWL97bM!$tm2|Xn>MMqB+;hLDlSX3X^V<05^dV5 zVnCuz+f-bYXw!BTLlQ;Wq2jtkk#?%MAu&s}sJJQ7rdAch5^dV0Vnm`%|EU<2Xwz;L zw-NTN+0DrO|6s!kP;B`S47#S@82omBBu zqEe?+Jd>!@X%({)l{%whPNGs>D&{3B)ve;WM5WHESdgexkBUW!O7*IEAyKJ56-yG8 zI;Y~LM5WHFSeB?%zlv89mAatfwM3;Zs(2$&sY@!}N>u8yigyx~x}xH}#C$cN;)BF| zbydYjiTP?!#V3jR>Y9qr67$uNiZ2rL)pZqLB?@;##W#t<-Bj^iqHx11en=E4J3u1%>}Dbuw(DptvK z?XHS?nXcVav0A2U_f@Qs>Dsi4wK83MprS#hYY$a4%5?3Kighwwn^Cb|rfZK?Y>?^N z6BQd}y7p8>lT6p1sc4qz+N_FAGF_Wfv00{T^D4H<)a<#6?J_l6P_aX%W{WCz%GB(I ziWZrgEvaagso6^vyJTv%tl~eJn!Qr7Tc&2ORqTuqlzA)jTg3^Pw=#c(VKO(Qe}!Q(H>CfBVKO(QD>R&u=~|73E}5>? zYUq~fTAhZoGF@A#p+}}`t2Fe=bgf=PpG?f%XDq6hJKl@HE6gX)3rto z7iGG(PQxXcuC3Q_S*B|nG+dGC+C~inGF@xZa8;&j%^C(}y0%HfHJPq$)-WV9b8XRZ zU8ZnbHQbOX+%^q2WeT@l!>~-@c4!!pDcnvCqcVkS(Qr$qaIG3{%M@;xh6$Oj{ik74 zrfa)3Ov!X@kA^!kUE8bSu1weVX}BlTwf!3I%XIC4hH06u9n|nZrfY{ZJe29$VGWOD zx^_gvj7-;#YIrQuwKfe;WV+U_;i*j5j%j!%)3xIoW@Wn8pYAWx94k!=g;h zPHK1|Q?pYVmSk#nTEk13nw`C4XlM0oU&984u1#y$sL-_s8k!Wk_E1B!Lf0N?*rd?484a5iy7pMZ z7KN@o(XdsaYfm+7Q<&GDY1pn%xLFN56bd(|VW&dj<~6h^6z;i(R)xYXXxODtxJ3>B zDHQI7hTRH{sa8vW5c+U3;bBphDMPYdECPwKp0LD|GFxh9e4Hd#B;3 zLf77FXjACg2Mz5CUHhovm_pY+X*jOXwa*$l6uS0BL#IO5zG^t3(6w(GPAYWmyM|K= zUHhTov_jW@3d0n-_DguB@V@7_@Jiu*&mZBH!uy`T!YhUMJ^zGP3h#SX=s2%Xvl<=! z3N@?MaY3PGbviC8)NG}WOA0kxrQ@ljt2*(M#g6l%6v$8Ck0 zZP78NP_wN%#uaL|O~-^n&9>{9RG8Ox=$KOI+D;vJ6uQ=;zGyO+7TUd3SB#@V_u(ud5p>QX3 zEGrc5q>fh#g*&C=wL;-e>v*G3xHCH5Dip3u#|MS3b?f-3(6zHVJ}GpqN5^M{uJ!8p zqR_QI9bXl?c237Pg|3~~@m-;7{W^XqbnSwUp9)>OsN)5DLvk4tdDm9zb(X3LlDIJ?s zYIaA*W|f-V)v-mTX7_Y#RjJv19otlDHmzg3O3fbV*r8IhhdOqu)a;Rt7L}UK=x9}` z*<&5MRBHA_$A2m{d#Yo%O3j|>*rQUjSsi;-YBr~1pGwWu6Ky+AAIHDqVZ6x|?W2xUDqZ`eUOMRY$i<*S_gEt1_>B z*U_U=xF0%tRSNf0N1saJe(5-;Qn=s3HI>5s5w5Ac(f%u3Q+cEPPq?P?oxl|auBdda z#=w9|*J=%1Rq0xtfkBn7tu$~=rE9AU45@Uj-oSO0uB|q3L#1nL4BS-d+FAp{DqU+Z zFrw16MgyZNU0Y}1mP*&w8@R2~wG9TwRJyj&z_?1+nhZ>+bgkLIq)OK|8JJS(+GYbY zD!tlb;IT@twiQ&(O0QZCJXh(}E&~fH zz536NLLVcizBCjqm#P8(5`Lt_ue0HOh6-z-ldj|Iff0Er0*d zz*;ST|Ia{!mcRdJpi!e?R}HMwXxN~E^%@PkW?+Lx!-foO)M(gs15FwYyJ4VNqhU7< zY|?1huz}4Q4I44AMWbP(2DWN6?3RIT8V$Q`V7o@c#tiJxXxO-cof-|BFwmmWut@{0 z8V#E=uuG$1cMSZe(XhJ)c55{3o`F3Y4ZCk(uSUbB4eZls*aHLmH5&HNzyXbhJu+}m zqhT`!4rw&(v4O)H4SQnXh(^Pn8aS%auxAF^G#WN*pk1S3a|VuSG;H3$agByOH_)Nc zumuC18Vy@Ca6+SDFASX4DA$sKGaBW3X`oA^T+0T!HOlqMz*&uQy*ALJ=a~kD(Z{WO^zyD{TU(4VBGjKu6-~TgkQKMX+4P4SF*B1kqHOlo>*rZXe zZ^9;xa(x#zX_V`Suu0?F%s+)q8sBFAC2Z38x#-`*CXJtq{v&MC__^r6!X}NMi~c8U z((+$uF)^aiuo@Gi8V##8aZ96NbtZ0WG;F1bF^z_;GBK{vuzC{{8Vy@*Vp5}FYfMaO zG;FPjI~omZFmYF-VT~s4X*6t|iTfH2TW?}oV>a7h;(^9&w$a2xjoGZp#3PN_tl7kj zM(Z}2c&yR7%_g2`v~G)ury8x>YT}tj>$aJg)o9&z6LT7^+hJl}qjft?JlAMli-`q| z*0q{g)M(u<6E8Gc_n(O+jn?fp@lvC8drT~Av~I77R~oI`XX3R+>-L*?qtUtpCf;ha z?x2Zx8m&8I;=M-e4x9L((YhlhK5De?sEJP+t!p#!S)+CBCcbF2?wErR^ZrO~=mCVp$Q?zD+N8m&8H;;%;Qx=j4jXkE976*{du zYobP{bv-6(bz0YJqE4rEeI{1wwC3L3U|vyi%#Kgn`qT3+?a`7I)xiI@t;oNCQR(s zDcq!qJvxP(GO^t=%(mP-m^(H*rX3txcOaqSLhpCXVWK?V*V_ zovuAH(XP|A8575Jy7t&aht3LnVxm)Lg*`QKLT80NGjUR9h0U5crL)53Oq|h~$mUIS z>2&S6iEf>)Etu%lsoA25KAoDqFmX<&W=ke6=rru5iHkZ7TQ+e?r(v&54Cs{WwTY`b z<$7acP^VmPg%LU(dM7;4sn2`iflhrs2oH4X^HF%9Q=d=51Ks;S@y5(&;eqb`6@PsZ z9_aign6JVEo!GDS!IwEPT$N{(1{v@~6MS z!q@!iZ?y0&fBH=pzU!Q7%@%&>oNAja{M0$sHe2|mbE<8z@LT6p+iKyD&Z)M|!r#0O zwp;j@*TD`8D-7OQ@3c^3@Xor$Lao6&>sAYO2JftQSy*ZCUg$pys|?-??Y2;F@Lp(- zh1CY{toK@2Yw+FVeHI!FzMH(?LZiWVlMh%}XYg|q2Q92O__>Kg7B(34<*DKIAYL} zJ_|<;T5`@pn?Xy?TWB|ENxy|-1}(W@;kZFdE?Vd?XvrlDodzwrY~h4KORiWrX)rAf zSU6=cEnT&6+F)85v~b2?U0t)#Ww5S>EOZ;JtLqke49=|^7J3cNt(zA549=}#3+D{Z ztq}|74bH7m3;hOFxn<#^!D_l~;gZ2>8nbZOU^R_f7%(`kCM;YvIISiv3>utPQx>in zoK|-%3>lnOcP(5uIIZqkxM@(8`xb@`W~6BgBL;nWU}4mtFApu;GU&@A3%3nsq!|li z2BmpyVceiJPb^Frl;)|0NrM^bnT08X8EMwS9fKKZ&cc0z$!Olfv_X-cTXbFqE@a~C!`$wo^cz48Ke}yWB zH!1%5CsZ-`s~;Ov$ld0CmZ-bMm&c+{ulWC=mzXm7MDjWX{PNsSrHD><% zA2w>u{P#a>)S3D3f7n=Q=D+`8W0jfz{)dfvGynY$8*5CyMYG<VNj zO^VcHW1UHnnr*B%DbgkzO(q@MY@^wvLtAWYGI>+I)y8I%H#*yFY%zJGv)#s4lQ%j$ zY-~5_&`ujWOghwJW2ecS(`uu|WX{=Tqt#^2`On5KlR0O%jol_4+GAsnNr(2@*lW_E zeKz))+z{-yvESr|;DC(-Ce!sn8;49fbjZeGlMWrWam1uUM{FE5nRAZXXfr8Nn~ipp zBDLE%ZZcCJv(aHPQy;g{X);rH*f?P_Q+L`pX);rvuyM*{rao!oj7gDB+2}GU(rFvr zCPg}94+Bj!2-SpTvZ!+EV+UPf#Zu)FoFqv-7*|=yj-JG{^ z$z+o5w{gW}4PCG?V6uiT+PG@6hA!C{G+9HJZCo=s->%pgGCAJ{Y}_!JZm!z6X)@gm z+88#OZm!uFF)7lJjZu>#UAJ+|q)0bxjF~*O-Lx@oGUp82m@t`hMr=%)6lv7Plu40p z*|=j;q}w*`n{;T*#>Cl9Y8I$@<+IVbIpD7zpOzLyT#;nP6*`#iDn!DRM% zYU86xX`b2mV$zpc8(&TOGH2tPNnhq|d^hRKa~nTQW}gMo@g}p+qUdYidh>o{7t=@``w>YidiH^58t=`*M zZLu~!h>o{d8y`i-Tbx#(M8{j4R-Z-3Tbx#3M8{j4R$oQOTbx$kY;3SNt-g!iw>YhS zh~Bq2t$vE$w>YhSiQc!EeSVAHx0r$dh~BrDf&bdrW-$Z*6ADS#=I}S^QkqN(cX0{9M*52fHnPF003zS0%N8^B0S8wsX6l0u z1}tXkLk_N5%+!Y+3|h?8M;r|0)pXRs^}L$e9NfsOsolZNyqb6C+syqZosn9Qr`jDsnQC#o(7cPyII?clCObIv-r zXVIJ<2M;Vt)9c`&MQQpRJhGU5&N-N|n0?MWcx*BI^gDQB@uYsi!BdMT^@|RkSv;v< zaxiBx`&@P~Z_%794xU>yXTZUNMRTq?ShSdZ1|7VxsLwSAOBVGRa`4ikKGz+*vUrPf z!@+BdwzTGVI{3#oOT#2k$K24v#u`Z}DB1TMj;0eAnf+gO3*9<{NYH*`i3} z4!&3vX~Mx*iy}=r_-653Hs#>EMVsz8_+ineyAFO@wCSFMUlvo)eFuLmzDqpq;IGAZ zi61!lXYsQS4;`$qnW-N+sIi%;XB^bp%+!w^)Y+V1PaLeYIl-PfsJB^7&m63_SxvJJ z*4V73IR|TPp3vqUG}xSA&mA<{oL~zM*4dn3iw@S?oM0~;G}*Li$w9MCn_fEDWYeZ) z2b*o$^vb~&n>M|6u+^qbZyap1Y13N=+ih0UJE4kAo8AjmY})iesAAKmk3tojHhmJR z*tF@hP{pQAUxX?)ZTjk9ugwYeP55H7n!XEPY*y0`;fu{``YC*|x%c@ce6hLr`7M00 zx%c@ae6hLr`73;}x%c@ee6d+gD_k76`Cdzniw>JN!L=?rZJx{OT%53ZE?ep1q|I~L zDi^10p3CZ8oVKadY8PEL_daV}blcqftaWkL=DDoFMUTyMS)+?yo9D81F3#IbLF--g z+q7weiwibw+UVl4O_7>hT(K!qvx@7|!cun~RaW zUbed!wV8N!xEQlJ%XYdLw>isNTuj)UWvwnIZO*b?E~aeGvj1G%u{q0jyLfCf$?S3Q z#AcG&>*A@+B(u-OGn+|fzl&L$N#=lyIh)h!po{suA`ZEDo>#PPzDy zSHx)-pKSVa#>HowzI3_xl2=5xi*Gh>Y0tX&Zu6G5$HfnuzVy2IY15ZJ7r$)!a?ZtH zo2s05@z16z{VrBG`ToyEjg#;HT+}-G{?A37lkfjrtaS4IpNmyazW;Mk@311Sx>)0I z*F5NAt;1dOH5UyIcg;gC8Xe~1>n_$g%*8ictaq4;Z@Sp%P?cd9O%7EVanbBhl~EU) z9IA55#b$@9+;*|WVU>)z*y=DBkGt6BuwEuyY*cPC zR)_U+&&4i>)9Sv9{~S)MX&1YleE;WSkCX5JTr!EdTtgB}(4m*@))?qbkkYW^V< zaJWVMDHL!xt$qmw98Rm>E^azJss9lkI6SHU6&^S|ss9rmIQ-k(EwnJ%Z zJxn-EJarx>9ZIv(!&F{Pt32GvtEt|@-MpGsd$^ZZ(;5%=^J-e_VLGp-1`iMNYHIZG zFt4U{V#knI(|Qjxc{OeD@HnrgjUJxl)zswSXP{LCxtxQAbPg>`uN?Jy5@didio51sI^ z!sXmL>7mBu+&bl<*5%wf?V--)+&UwEO4(()?((q8WxDS6Q13EbpY^cXWxDS1u*PM& z?)9+NWxDS3(BLv%pYzb@@|NtphjlJ*$@)F4cPZBe4;x&{b~@)qZhP3{G8v6|*y}PGjeFSV^87a8VZY0a zH0j}h%ZxPT;jqhObjQOHm&xd^hodf&(LE1sE|bxH5A80K(X@wSE_3z+564~R?1vsY zT;}XY9y(o~?PolkaGAItdpPMbaX;~J%4Ony>fyA@#Qn^}8JCHB)&y)F$~^w8(huooWAxy(pQ9?rYWNH0C~ySy7)_He=F-PkJ+mt7k6 z+QSu>hQ0AH;L@=z4uFaezlBn6e*Ynqa`XES zp_I#Qz&~M=%WdNd9}iqk#2OzDT~5SWACFv4#5x}{E+^tjA5ZdXTIJ(uUQP8rp5@iF z+Q)2OO>2D2<<+#-$9!H*4L%lJ&cQ|>i!SHjIv+1w&cXFQmR!!k4L)AFoP!&EEW4b8 zO+H@d)zs|cOXk1sB#-*z8gT~5CpKECIb zv(v|qymDH6{LCw-)yJ>Aa(4Onomb9(KK|sDv)jktymI#VSmANUxYtLG#~tH7AGIEL zjQf4md3+$iQ$1K(BW4FgF)#qc6$I3b9W3R``Iqzei z$I9vValoTP7knJ_=+H$UhderT$;T0o3F@+sqaG8~6(4OL6V!l@c8>|_s*htHD`(J0 zhev&``RMeh&ybH39#3f3eVp{@&yr#|4l2O!>ItajM<%G2n5k-Su(R<5aun zW6= z$C$?*<1-)Q9(RnhJ|;ZgaLoCb^k~k!k13DlJojc_S3?c(#8l6!3VqePr3J*MPAioI@#D6}qsr>HamFGPW zfBg_Lc;0>S*H0mX$KT=jC1mjU-7LR-yz}_oEPs5w_xRl`e|>!L_+1D8gc}~e>tIEI zPagHD3GmsYKD7b9c+{sZz*mncd}V-d9#ieSj4{Z#^~ysPTF0u`xic&s&eC0ChfZJ(>fo^mz}v zDZnZ}zyAnO@8|a)0ap9@{YQWXpCWAw(CAa7?E%*L6lq6*jXqELI|DTNJmt3pX!ehSu6VLGg zCwwNJjsT~9`qCNTj89)q1nBaab4~{6_L*}|1vu+7=bR4E<1^=+3DD~^=X3?=^Ou7y#X%ztc|_^mweX7xd4}a*2eh&SA0s-A7H?zG#3I4`ph{O z16=c&b1nrK@|klk2e|Gt=UfSJ!>2R@0dD$~=4yappVABl81b2Nt_2wNnRA8$-13=o zt_Qg7Gw0k0Fy=Go+zc@8Gv^EknDCi%MgmOw)Mqrnluvzb1-Ro=pW6ZM`qXDEz_d?u z#sfU?Y0gA|hdy)8WPnFLbIw$N8J{`lPJqWg&uVuAJn^{$xEJ85&&}ff0JA=G&UAn| zpE>72fO(%e=V5^7J~xYx0xbC4EY1X2^toAl9N>k|&Ek^)OFlP?PXoO2dF$~kz-ym5 zXEwkapE+kvbgj?ZjCs+uK7Z5ax#(J-zv;6ey4L4!`YejB^?7glLUgUqd($P+wLb4n zUy82vd2hNby4L5t=_}Ep0juP-=+J;w@ReGnZQ za2|aOuqI$G{uE$sz+C)UbZx*~{6%zaz@z{$pNe6Ux4iat7JupmVkE{H6dC9zQ0i$VpqW1 zjJgne0^VV)46!%h9mc8<`vNAJ`Va>L=9kqW4h76FYeF0jm|xb0XbYHH8bY)O+yym; zI2JI!tP9Z@Ftw}?aUx)9*%0Dnz|^ua#F>Dbz@`vg0dFaqLv#l`sc#C=8*mf2IYeK; zllqnr=K^Mxts$-k%pluB3@<5-9n0aM2D5K945Mn{O3 z0aHe2h~{K+!f+uz_%y5LwpK& zlX*78=YT1rC&ZV4DWf;Uw}5@#7vg)sK0g=YN5DQmAL4hwY|$U$Prz((A;jN++2Ue| ze*v?_r4TDZZul;Ts0sO`uY{-#`J@Lz)P;P~S3|4}xsw?Tu`1*U3AJs~UNuIQeS6>(2=Psob6FS;jWMNEtC z30V;jL|25&m=8r)giHmGLL3j73T8rdgsh0iqEkXv#1qjeAuHmk=#-EZ@hrrtkQFg2 zIwfQs%!y73SqJkW&W5am=OKDR*1>}4o{(F*MbSMWE8>Odo{$x>6ykiyig+2KKV(HL zhqw^3B3^~K7_uT>hqx57BHo0!95Q#l4RIx8?tB+wAY|@*FS;@0S@(nJ#*j1Mqv*zv zGvHH*p^!7+bBOC9XTTTHp&@6$SJ9y%XTUenp&@6$chR9CXTT59p&@UVeu@qaISqb= zxE*pD{0=b|avJ;*T^sV$`&V>rn7{uQ;!en$?-dd5<+V{0;eK8lwGpO6YEc*ALCEdz z$_Niby0I$4qmXXYN0$5G z2n!(-#fAurdA)3m@FK65rU)-XPKf3R%ONMkrUPKeDBUWc3zTOzy(IU%-2cpGv; zY>V(NEB;bX|Tup`2!kaJ;YgwG*!L`#IPc@4Ej_!d%?T@k+L)%0J4A9*$Hj_@x zoQ%*E@zi@NLUY6fdOE_Uhzayegv}8XXjg=}u0GUDtRjc__*<=l#JCSv8>j?fjca>gQbN35Lj2xlW^i-`!m5gnS0&==96sR-wy z{QMiCKVr7H8{tC4Y;iBb#fS;?euPUA6X_ua79vbU zoJ@-mCL>O!7ZL76G-oNo-H7JA6f#6KXIaP)(VSO8hKT087BWOM=Z%mdqB(Dc3=z$F zCuE3d&ie>YBA$9b2pJ-tdOt>Z7V*^kNf;6F)caW&5%JXfMaU2_pMDiGM9in(gbWe$ z>Gudr5zo3mgbWeSx<7>s5zo56gbWeSy1#`C5zo4Rga;9SbMmk7AmVRM{)_NF;%`o_ zi18s}KCOxIF=9TgjqxdBKCO%KHKI8yV|O))d;t{7Wln)6?btuf8n9b;QebN0m89`hDpZ;Tx=PrdtMw8S)L ze~i|cndU%@T`@Dw!5II=%ru8$?2egf4#(INGt(T2u|K9cM`Ij_X-->=gE7r%k8wE8 z&%ZH_#QFI*#?d%G|Hf#GxoPW+(H=9?oQQEera32Lbi|xir($%*oK~k}oQOHC&crww zGv#*0I2AMHcE>m!b8elDaVDldJu$js>eCzJY|N8QUyPoZm2)meZ_LU$AEPg3<@Com z7jtf1h|wR@oQp9o#LT;wVqA>5X}cWba-5%kV_b>z^KXoSI6wc!xEkl@-xz~&e*TRy z6w{oc7}sNFpX)Jh#GG3pjK?t(&x06GVkVx4F`mZM=TVGjG4+{=F&A^Y|2W2c%$?hl7|&zw+@8i* zh`Don7Gp8y&TTfvQcQE^V!Vu*bLL|#$9&iCd5qUF%~^=?CZ;)yG2X^B=S7TnF*j{X zG2X}Aw7nD_#58AFco6eU{3^!hm}lbGF}}n+6TcBg#C(_dtuP|yFW$ZrGQ>3Jy^tZM zIUj@!G0piXJc#)XqMu^?i}?+rpM?wwr_~oBL&9nGRmhOAa=r-<5>Bh{!h?j<>WAl5rwXwHTNdlH_LHzwGd@SNO~U|+&Le{+KU2~W(M5*$dFcs3_E zoY0&t363N*XKR9^3C-D-pgm#E*`DB7!kn`s!SRGSXJ>+rggdvE1f2Q}|&VLC`C(Jp!6P!tybM_?YN_dXio1i;k;@OwrY{JB|KS57IeGVk(O{mYo1m_Ya zo*p2e>xm``{X zzmed1!t8T1!9v39Gn`;CVfGnG@FHRM8BMU1F#Fs}@G{}4{C0xngd6{{1g{cq{Kpf# zPUz4?f;R~rnoRIEp+i#%-X(PCPJ;Id9lD#~L&Dwvy#yZ?dOO(*!AFaGS1%H*N?BJ+3F=cO>6Zysr%ckz3D%^v z=~aTYDQ$Y4pdqDAZxS@7oN8|qtV>y8?-Hy}Sz+&mFDWbRgYYF~g?$vhq^z({!k3g4 z_F4FnGE;v^usP*?`zoYKIp4ksX;RL&??RfC^X*51?J4KmPhn2V`Sweglk$}RTlkW4 zzWqt?U&{IRS4fjGQ~wjvq|DSSQtVBsR85L~DV3^Cu|K6!btw*{RBC04gDKBtt5O_F zc`mC@aX4j0TAkuZ%8axo#nF@*X>E$Olo_cZMSIGO)R>|p<$b`q6rCy0W$RO%NO>;X zkm6)YuQsMQmC~!G6sJ>q)tur?O0PDh=t}9;<`ms2?+CV}IGghQh^;AlQl_PCDSA_; zrR^#DQl_OHDbA%#OFL7XPnnilQuL?X0JWyLka7dGE5*f>XSM%QTuLd|?i80(%C#rO zm6USrO)-#Cu6-%4rj%=cioui{;R7j#@(Mec;(A_Thf>_gE9`KJk-V;sq!`WX>S&5v zd0n-om`FM4+EYxXoOH)hOr@N3$5Y%(Io~=`+)p{*I#W!ioNp&mJW8q5$rLjwl{%H; zaZ065r+AjqrZXvKQ`*#(VlJgk-6B~Th-zj~$n&MAN zUj|dGC^I2nOHos1LLN#{TjsR7o?=y*GwMc)`Z8zK%@nK4oKeFm8p@nZBPklooJ^xB z)|EM#Zl%~*W*WYoqN&U@JeH!lOhLv|Y$?-?i49BL(wy3D)1=9u`+vqM)XIS9sgMLLYaO3 zMAUtm-ThS5c$wY(Ow@CkJv}RGx6IS=oT$?>Psj73CdW z-ft=1l$j^Li@GW^Mg94a%h;UpY}!=DmW*f9<}$Ws%!!-I*q+hd&1LM!=c4l;UYZ)zB{`rqGS~I%4 zy^LKMZ)A6r@n1%Pcb2g`qrfd??9F&KZ7pM8#2Na-ZI)UYP+wD_Ke!@FXLE7Z4Z=jJfpS;%jn3c?V&O{GirOdj1w8PJyOQWjM^S8 z<8;PuY%AkT#%^pcqbp-K9xJ0KV>cczqc>wWc9hYVu^T(fIG^!EdZLW}jOp-X85c69 z!&7Bk%$N>OmvJd$Iy_Ux<&5dDtBfldPZ-^03}kfoY#D-RURwjc}A7T%UH;m1SiT^%$Nix%UH^|1)D14 zWyUSooidg)YH_!WHyMq%SH|0n=g|9QyvwM?bQvEqroIPde9V~o9+vSbW9oZU#^;Qw zZ>Eed8B^cmGQMVf^Jze3M^P}kG3T^*X#ofFM=*ET&7bzdxL#o*+nV733v!U12us%VO= zJvfu$YlR+kW%yR12i+OISLngn3_mLLpeMu63O(q}@VmmTcwdHp6)JEpLrpcG`S}dB z)x3}I&rny*r+*>C%4$xHiy2l`b81}5P+!gM!sQHWs`>P8hpPF^r!pL_=3Kaw z;Yc-~{$0^g)l75uGPG55Lfp^LUd;(Ho#A*jpZ){UQPq6r4@DnUv*RC$KB{KN&ty1L z&5nO8I;xsk?@5O4YM$htW;k2T)b}hyZ#AF(tmvp}KJz)zN7d~3dC^DJdH&0AshSr^H-ves+kU7XBesG(|;p6 zs+u$4ZH8OboB{7L+^%L~e4k;wI)DE!!^3K3!jGa;s+kEtWtgdECj2aVrkdNvFQR9v znGU~-o~dR!{3d#)n#z9{JyT8Pe~6x`rt&{C%vUof{u13&P49naSg7XS@lS@uY9_|N zqNA#r82@Ehs%BzbQNhb<_I^zT%hl}t+6rD(v-j&Nc%47}l@+|HX78`6;B8(9^%cCU z=DBQj1@EgV|C$OuR8#)76@09w{0$X+s-_2xmH&}+Ut3W$N)&+Cev|)trgP3c!;=Y0 z&e=qcN(MneR8&Mk!GM?m6DUaq6$SH|v$>lGsP$Fts-AA_C+R^+0^gGC2BisnKdOkb z1P+q)pge(}NlpqC3H(ZOQm9PecaoDrRRVvKoD`}P_?u)ms7c^ok}}jLa7^H2S(iYz zz{#>cfgFL8<;et&3%t3WO5lWWbpJ>oS2((VB#6MsY)ha_;8wCdfpURc$&Lgn1Wucs2~-N4HoFq2 z5-3P_0@VTqIhR07z_P$6 z3qK~XBG9!@39JfqZ8w3J0$tln;FUnvJ}2;6ple?eSQDt(*96uDYPO%iJAs;gOW?gg z&AunFAyBh}1U3a~c9`)>ILf~nuY{xgoAF9G%D)+}g#V^8N%(ihD}hP)PsS^ON%(KZ zCV_8c`IoUtU=lu-#8-iaWhb#O(6F2&z6mt!coN?Q8g?Ry1A&I+CUGdxu)HLG2sA7| ziJtl#4X%OcE6$4Lh4erAWgXlBg1CSYr~^A`NRwqDG`)%}LaXG^{0wI+2F8 zCQ&cau(l*liZrY}iBlq{ppGO?i`1+$i8CTK>q_FRNX@#FXb`E{xg;7zYIZ(}CXt%; zB+)EVv)&|HL~7QTM5{>6`jcoAso6jh?IJZBOrk@iW@6QnL$5 z^oTTUG>Kl3hK(iBC(^KsN%V^}>{1c~A`Kf)Vo;=E6G;q-H0*K`!y*lvOkzZ&VONqE z6sAt1Mangk z#5Iv}-A-akq+EBBxGqwz*(9b#dNr5CEs*Ez+y`B<_gxY9WbPkzUEQp+?9w%{MDD)RQD0ioEqcP2!Qr zP20017De8ApC|EH_+DN?TWB;Jb5*zb~96PdB!C$TOvV{at!PGrX3Oya%B zjJ=h_hRBS)oy4Zd8_P}-TOw~PAClM>`J~CmBz8nTY4RzF4{Fc#2*IMYe;CJ|e%!c9_ve zQ_b|k?)fFoy1>}|E2ho(MRNeDgI{kkyuUtGWtlYregwf zByRJv1ss>S&C3yRLgF^>xPV-V+q@G3@+5Baas}i|+~(y8D3G|#%NI~6@tKnX0VNXe zDTM+`CEint1e8gD5HQsOyyLup$8Ud#zrt(?=XC$WbIss>;qx-Lb2I=VjE1*$2y8jAjl8)}b z0-B|x`>%i&iAnvefL4h~y+J^m#H8LRpj~2CYZA~QF{w8T=#-e+S_E`S-0-yu=$5$Q zYZK5Taj(}dpjSG&{|e}nj_$t#`lX}$uYdvR=>98UP&&H*3K)`@-_8pdmbkm=5ilZg zchf6iOgg&%3b-g8-G2pKl8)}b0>-7I`>%ir>FE9|;IhOCeptYy#3VN&;EF_>E(o|P z(WX%W*Cg6BCSXdUO&0}RmuS-^0n-wD-nf8U5_{f+fEkHB@3Mf~5_{gHfIAW=_$vZt zC3e570_G%6@Ye*~l{mpq3AiV5g1;_cUg89QL%@Q>&CX2$_a&ygX#tOCOWhUlTspe{3V0!LmYNr^EOC}v5U?U~ zmbx!sRXV!=3V10U-G2qVl8)}b0$xi;_g?{P60g3G1*}WF`Ys80Co%Co5%6B()%U4@ z4T)FZX96~*qy3+NE$L|gCtzDT+W!gIk&gC%0zOF;X;r|kM3G(!*pn#ID*>M+iu78* z7l|Uh5%5)_NN)w~OB88Mz&D8^tqb@rQKWYQ4kU{7UcjM5kv0VUkSNlofZq~D+7j?b zqDb2U{z?>SN5DUcB7G2WOg`HG3CNa@_J0{mWX|Zj8B1i&=zAGUWX|ZHGnUAl(Z6IY zkvXG(%~&FHM&B1uBvYhs0*Yn!x9=HCWcIg%j3qMr+hN8Mnf>iY#uAy6`Ol0cGCSR` zj3qKV-S3PgGCSR$j3qKV-QSEQGCSSBj3qKV-7yg-Wr~z7;*?C0azvb#DbjHfXJm?W zLd02_BISx`kSS80h(?(r<%?*NDN=!mW|<-tifEH5Qjv&unIaX7=#VK=iHJ^_B9)5h zk||P|h;Er8m5VqhQ=|$J=VgjiDWXTFNL3J~90Q>1eu zZp#$uyoft8Md}eTD^sLi5pyy{>Ju?9Q>198WNv23+BA&@d_g@ju<)izrh!-+AfWr{Q*VnwD%mqo0~ z6lqe#OPL~F5%Ef*5vk}1+%5xX))x+h{!rbzQ5KFbto zLBuziN$$Rg?=q9z0}%%@liWiQhcc7gBN0DjCb>lsKV@#H9*g)RGs!K9_$xEXJrVIw zW|Dg<;+Vq9c_t!TVdXp*k)yD3UWhoZ@NTs%;)KE)S`m?}u!dGe~EG;l#Zu zqEcZsZHcH-SWVj^sufn#j))qC)$~C`t-@;hD56ebHGL9MudteSGpZ=8roD_R3ajaJ zMiqtq?Mp@#g?05cql&`1+Rvz>u&%ykR8d%0-!rNxtgC~JDhliBP(+Kuy80oaRbgHI z%t)iKu6|{tQCL^MGtwxmt3MfO6xP+>j5G>6-M@@93M=fGgmVhhUABZ?g_$l#LZ8A+ zcU(fh!c2EU!hpg|mn&gVVW!KIFr+Zkg%U0(%ydN(MipkdVhLjk zGhK;0MPa6^mT*;JrmK-~ zO<|_1l`y3+)7441u5d$DFX4v5bazt1O@-<1l!R%8>F%_ITMERuD9m}+Bz#bq z^QI(xRG9OwOZcQP=iQL7t1#!?l(45T=S@ratT5-@lJG@g&YO|&RbkG%En#0_&buSw zo5Bs%tc33hH&k;H4ivg}SHht}*X~L9q0qH?2|pFOwjkk`Lf7s~_^r^j2NM1$+*Li4 z@K>R5k0kt4DBPliV=8;&V+q+Rg=Or>kDC6udl?Tv&Am9D*&P^r?jH3?NJ zU0at>t&O4q(i z=uqj}frL(#t{qC~Qt8?c3Ee7P`rRViG)j4_qM704J@ z=~|(T36-uD$+)c2wPG2QDqSm)aYdzTr82InbgfLrHI=TF%a~H>T7``3DqX9TaYLnR zRWfd>bgf#(v`W`%WZY8eTCI#3m9EvvxUJH)dKq_Ax^_~=tV-8T$(U2=+G!bgRl0UY z#yyp;os}`K(zON|3o2b}lyP6BYfUm9sC2Da#zU2^wa9p+(zR9@iz;1flkr%kYwa?Y zRJzt7+@Op%Duo-8@m8g9!!p)X3O6ESU8QgrWV}-;+^CHADuo-9v7u79 zi!wG<3U^7ymP+BqWo)YyZbHV6O5rZc_@Gj_Nf{qi3U@`uCzZlom9eW*xN9=@R0=mG zf|5OThU&b+w)Bgh**&2m=C?iLsaF1jh z*C^bgj1wA#dn_YYqi{SFErO~=- z1v470t5I-Uqjj|k?r5~GPQk23>*^KEX|(R7g1Z{6JEh>BM(a*1nAd3C83hX(tvjpW zzDDaB6g<#qU891B8m((m@JOR|%?cJZTGyiBu}14!6)b7Au1&!cjn=g*c&gF54h7FN zTGy%Ixkl@{6ui)AUAKZ|jn#8ikux@K>X7a|-@x z6z;BqV>F)_qjas?)kp3fgp9x2vFC zr*(S@I&@n1SwW{x>%J)H(rMjS1>HKW+gET-r*+>HoY!gHcLhB@T3WjxB_cvpm&OOM#jCDHqAjedU>a;Ff#h6a( za#UQ@Y29%ZmvmZpLdCdF>vC00=(H|R#buq=<*S&~X|(!RB=_Obww(!>9np` z#gtC#N>p6eX%9iby`=U;+9V9Dpkzrw603UZJpLttGJ`nx*8R; zI<2c!F{jhIIu&s^Y0m>)KR2(`jA1isw45>rnARr*)kwmUUX! zrD8>=b=@jn=@jmqiq|@YJFnu6PT_h~ywxdOuZlID!u6?G*C|}Tig!AN8&L6Hr*MNR zHgpO%q+(O2aKkFLbP6}3Vq2$h7gX%%6mC?-2c5!=sraZtm2DK;U-ml)hXN+75h4cyQ<=wPT{Vp_^wm9DHR7gg}bieP^WM=RQ%8> z+)WifbqY7F;+Ib0ZmIaKbDEn`@kgh1w^jVrY26(a|8!b6tKyhJ>*iEs8?^4OiX4O1 z-BWSgpmp;qP8hUqK}D`X>+Y+_Gicod75N6Od#IwopmmQ_6dJT{QALqK>mI8pHfY_F ziV}m?JyB6=(7LB8$_!ffOhvgt>z=EqFlgNi6_p09TUJqJ(7F{B)dsCwRZ(Nmx|b?y z4O;g~MV&$GUaP1#Xx$qXCkdiU)~%^HZP2=P6=w`u_fExGgVw!Q(O}TJ4Hbkd@(8?^3F#ehNUeyA8UXx&d0 zLk6w;rDE8ib-z`N7_{z>iVFs<`vArLhG~Psm1wwS zP`FYJGX{k#({S6MaOE2A7!mE!DmBa*6s}6cU4z0^Yq)1nxEc-f28FBDuwYQQ zIt}*?3Rkb;fkEL;YItZ+xKkP)85HichDC$Iozd{vpm1k3EEyE8LBkV+!Zm7mYEZZ) z4bKb;*R0{WLE&07yf7$StA=HR!nJ8wF(_QShE;>Yb!d2LaGLAX@XDZdT^e2+w60sj z8-v!J)9}`yb>}s#8MLlP!@5E1dNsT=XkDL%_Xe%&*RWyGx&aNF2CW;^uw~G?Ar0FG ztsB;`W6-)04Id0zcR|BPgVv2|_+-$!F%7#0t-GjU&!BaeG<-H_-MEG?2CbXW@YSGo zmo@Agv~E(vH-pw)(eT}%byqbU7_{!1hC_qaO=Ne z@=RK{pdsI+b@w$Cn6&PJhC-9pJ=9QS(z-_)icMO#sG-E9b&oZanzU|7LzzkIo@gjH zY28x|6(+5FrlHcLbRhu3^Zea0eQOO$v9YVZ@|xKQvr0DcnyDqb7y>rD4pZ zaKAIInH26%#x;|7_P-g|Oy1f5Wn43PXFsOnvPt2xbxfKRE=R`|lfoU>an+=7Cv;ph zDO|3ODU;J&o{sA#t;^SO!=!ZuI&PY@u29FcN$ZMq+%johv5py&)|KeEZPL0@9d}Gx zSEgguq;=&w=1f{wq2sPe>ne5JGihCwj(L;TRqI$VXn`ZnHEG?bjy;psjp_Jo(z=T}zL>P`l8&z?tsB>|Z_>I69p6k^cUi}Glh#e@ zI52756&;5rt-Gq@he_+M>G)~Vx+xvMOj>tc$8VF?-O%yJq;)rS{55Iaw2pr!t-Gb; zm__SmbYxq!?zWB`i`L!Ik!w-7Ssi&6g`3lnZ&A3rItnZbcTY#5Md9Xk6j>B*K}WGg z;qL1wu_)XF9iIn;hyWLvnbpP9rYH4Th?*XqHrrZPFWOgRmW+I!oAdS#-ebqbey#)+-n^T7KMAG zqtT*pZ*??T6mCsNvqj<7b+lL%?wyWSi__eD9c>n^+tAT&(Yj3?9Tu(I($Q(rx@{d@ z7OmUS(QVPX4?50SwCwwC+I11&h`l>KL_X-47jO7OnfK;7h}v-rH@zl?PjpDsFP;EF}-vJG6dXkCthYZk3LZeYrybtep5w`g6ifg2XB z%QJA(qILNOrY%}mVBnTT>k19bShTLlz-^1x6&tu?(Yg`?vlgu@H85w@X(@lwFVwpw64y;qDAZK4Lr7J-AMyW z7OgvF;E6@+P8)b?(YiARo>{c+tbykit!psw!lHGJ29_;a*JNPDqIJy%RxMiBV&J7k z>sk%GvS?kKf!7wTYd7%5qIDex-deP-)4-ZV>$(iATePm*z=lQP&KcOWDBO7iTNZ`u zF|ch>xLyN07KQ6G@WG;R{RTc-6mG!4CyT-j8rZcc+>n7ii^2^X_-s+Q5d&W=3U|T4 zSBt`p8rZie+?auH7KOWL;JZcPE*UtmDBQS#LyN*q82DjPxXT89S`=>5z%Pr!T`}<6 zqHtFY{IMw9H3NSw3O8lopGD!W8#re3DWn?)vTX`?(?E_*;ie57w<+8$11D@wb2A2V zZCZERK%PzO?ik3oY2B=W0-M&&87Q=A-CYAkHm$p7pxCB$^9D+6TDM@J)TVX!4V2lm z?ty`Fo7O!vP+`-$M+PcwTDNGR%BFRX4OH8-ZplE6P3xW*sI_U`Qv-E2t$Svm-llcW z4V<)T-3tS!Y+AQ$;IvKaRt%i6Y2B)Uvo@`JX`sQTb*~IG+O+PqfhL>Qy)n>i)4I0? zT5MXkW}wxkb?XM&Y+CouK)X%r-W%w!Y2Ai_PMg+k8tAfV-IjrFo7Qa`IA_zk9RufW zTKB;~k4@`78tAoY-6sQmHm%z=&~MYaJp%(at@~_X(57`?3=G+{?yG@eo7U|c7_n*H zHv<=JTKC<+s7>n*42;>d?$E$Ro7Vj>aLJ~1KMjoAwCiDO{6@*EWS~Hu1)$a4ja@+7zzU#F|av z+Dxq56t3OGJDb9Fn0Rko&1v)4FpewryH>-o%bg>v~LluxVYd ziH|m|>of7mrgi-$c5PZWU}Ddvb%Q28+q7=T#21^^4V(CC)4CB8`!=n+VB(ui>qbp{ zw`tv&i36L~T{LlM)4EG0e%Q2b+{90t)=ilBWz)LLCVtzrZqmdbo7P=1@zf zyJMozp>?w+iX2)uXQJ4lb$3maIJEAbiBgBw&6_B5Xx)N|a);L4H&Nlxx(6mI9a{I$ zM3qD99+{|iXx*ZT8i&?BHc{))x+N2J4y}7)qTZo(PfeV3Xx%dtryN@M+{9^z*1a%s z#-Vk~CeAvvZpB1{L+e&eG&;2IrHLko*1a;(?9jT`CR!X?_r^r4L+jp}Xme=Ynu&IY z)~%c9aA@5-6P*sNdvBu4p>-Q3x*b}#X`;uWa9bvN9SXN?qR*jlJ0|)a3irXpfJ5Ov znizB_+$R%54u#t_G3-#dJrg4ih5Kycf6{^+*cE04u#t{anYf0-%MO`DBO1w z;|_&8Ffrj!xI+_{9SZlu#H2&veww)AP`FW47%s3S8goWDY$Kf=WXJOW%b@>+N99mak z;jTmL3N74oXkC$od56{&TUc;tU5SPJ4y`M-@W7#UWfmSfw65I3BZt;iSXgvuU8RM` z4y~)Qu;kFXY70*sT32J?sYB~(Ej)8*U7dyJ4y~)V@WP>WCoL>HwC>TG-Z-?b$--NQ)-_vLb7){G4wOV-R(7HAY?;Tp# zZehcrbsZKq9a`6EVauU)T^6<-TGwr1$DwuSEPQZi-FXWi9a`68;gdt_dM)faw64#> zokL(JG5@X!XJm$UAFMop>>lM{yDVniiKk?t-ER=+og5aEabSf zZpy-Om)2dkaKfc^H!S43wC<*bJeSr@TgZ25-7O0RF0GrfQ0UUS+ZKvkT6f1nsY~Hz zEtI(wZq7ovOX2QXsBkIVJqwjCg`2lf3)L=#yKkY!rEm`{)VdVzp@lk^!acH3 z?^3u$3nyI)_t?TIm%=SsIPFrnCl=1Q6z-{ovo3{uW}(5QaL+9?x)kn(g(jE6En8@I zDcp*M7MH@UT4;4C+)E2>E`@t#q1~l$uPt=A6z+|MPM5;Hwb12KxHSviE`?jSaL%Q0 z?<|~mInBMd(Bsm&4GX<4t=qKF=hC_@3;iyw+qN*^(z+cBgD$Q6U}4CmbssGZyR`0; zg%Ow5?OM3t(z-nhqb{xcY+=l$bzdx8bZOmJ3zuA4w{KzGrFGvdOt`e}yM@axtvj$V z>C(DG3s+oP_rtn^SPW8sEN>;7h}bC14%l(Eh|`u>rP zTQ053wlU+zZx6b7@_RjrT6CYqhcA(z-Sqn=Y+ux3T5Yx(*xL zF0JddvE$OZE*l?QTGwr3*QIdhZ0xxd?!1l9E`{r{@x`TZy*9qO6t2(4zDwcyZG3Yn z+<=YmE`=Mkao|$8AsdG-g&VfbS{6z-ypzb=Kl zWaFPp;l^zo^Z5Un2^-lSg}ZDc$D?qQHjaA~?uv~Q9)-JVBiEyF*KFi@6mH5!zDMD% z+bHlT+zlIr9)-JUqsXIh(>97d3U|v!iN|Sf#zv_}>u%d9^Jv{28|5CYo3&Bl(YiSs zl^(6TYop4eb@yykd$exeMvX`77HrgdwC=u*I*-;puu<>Px`#GSdbIA5jZ+@2TeNZ7 zqjisMobhPgl8v(-t$Sjl!J~CgZ8Unc?wO4ykJdf6(d^N>7dBcvTDNSY)uVMQHrhN| zw`!x^qjfKBba=Gxm5ol1*1fjT<$YtSd9-fF#;`~0KG+!XXx&E}7d%?`$;PNh>vnC7 zd9-fN#zl|TeYSDQqjg_wjC-{1tBnbd*6rK4?9sY!HYPn<_ua-7kJcU7xa!fmLmSsT zTKB`olt=4++PLn~x?eVKc(m@fjho)l`|oW`d$jIv#yXGx0sNP-&f|Xok2$#Q(YkC0 zcRX5`<6zdKb;ljdd9?0?gS#HB%XM(iqjh-><~>@M?_j~Bbp;L{dK9kE!6T2t6**Y+ zC|t3F#~y_%aj@i3xKamCJPKFl;HgL9${jrOC|reu=N^TtbnwEXa8(YLJqlOtV8x?w zH4aui3RmmkrAOiF9K7-|o2Ia4inDJqp+AV8^3yZ4N$o6t3ODM~}jFIQZmon(K71 z>(RO{2YVi^>vr(jqjl#TeDP@Ac?VxTTG!)X-=lTC4!(J`uFt`DkJj}&IPhrQfP+Ji z)(txN;nBJw2R}VpH|*e-N9#r${Pt+w1qXjTS~u$8uSe^~9Q^ZW-9-n-d|G$OLAFop z#vSDNv~I$|ai7**c5uR{b(0QqeOhb4o>>C?tz0-KCOG`;IvQc9yvJU)4D|mXMI}t*g=C& z>y{ie`n2wegC?KWJ$2CR)4FF4T6|jf+(D~P>s~l$^J(3(gLa?RtvKlLY2B)WPM_Aj zbkOC~x>pXmeOmY0!8xDSy>W2fr*&@~^!T)H%|WkE>((9g`LynxgMOdZy>~F+)4B}@ zgFda>bTHymxGe`4dQlIV2iJTG_szkSPvO2hxb9Q90|z&J3U}z>rcdF1IGFY+ z+)oF$dk3^w_Gw*_izT1d6}x!i z)4CEDPkmZf>f)JC>&jd__i0_Zix)nvt8lUG)4EC*D?Y8OaC?JK z7h689YjUye)4FCCJ3g&zaq+>Yb*(Nw`n0ai#V4QEwY%8$XV&biq4Y2A4j-+Wrvv~-r__VIi#i38@`d$3+Y2AQ}pFXV{bn(ll zbwe(G`?PM@#UG#6jkx&h)4B^T{`s_S)WxxY){VKy4rtv)7dZi~yX4|{Ku$NI2x#4mi^_o3-F8tG(7HP=Y6A*4>!L28aC0u|0}6N7#mRue-E(m& zpm6gpP6rfj!Nr+?!rgaqHlT11Tr>m}?xBmufWkd;(G*a)MHkHhg?sFxC7^IiE?NT$ z_ryh8K;fRcXb&jdGZ!5Jg?sLzGoWxUTyzB#ZrMe5K;c$goC_%2s*Cdhg?s6uC!lbz zT=WJM?zM})fWp0T(H~H_w=M<(3b*EBFraYjE`|aM_s+#|z-jKii;;lVZMe7)(7H_* zqXDhkaxoUrx@{L116sG^;!;5CKDZbUXx&E_69KLJvmmC2DEO^#g%~8eRgp* zpmkqdTnlL3R~J(Ot=o5TJ)m{pT-*p~-FFu^16p_BVmhF8hc0dfwC;zCnSj>)ba6YN zb-!HP325DK7qbDa`{QCRpml#U)&+dG!@rDm0pIO#%)@*@>#{v81hg*4!~KBP9ry4c zpmiraJPc@Eu7^hft;_SU7|^b6$ivfs))jkr7SOs956=Ty zSL)$KKnc2~2DGly!^?oyRe5+7(7I|5uLD|FuNo`4QO4R zhqZv#)q7YEXx&KzX`# z2xwiihmQfRYw_?YpmnVtb^}`1=3y_Ob?qKL2ehuk!l z!?1_!kiw04$O$Rj1rNtV3ODNEL`dPrJmiKH?xKghkiuQ^kRMXGaSsI{g`4nD7*e>) z9*RN=H|e1`q;OX}l!O%Ss)y2$!d>%F7E-t=59J|+yY8VPq;NMpRE8ApriZGK!cBXq z4k_F%4>cjDxfu_&A+5XZp)RC#cRbXGv~JeJ$&l8~c{ml)y1O1uhqUgVhch9qoA+=w zq;(4(8bVrk-$P?a>mGP$3TfR#56vO1d*q=dq;-oPT0>g**h5=L>y|vUhqUgAhmMfe zJ@wET(z<6Jxt1*`7t*?A59dQ#x8k8Eq;;zvdP7?G(nDWJ>t1>24{6()JtgtYFRhYKOCd+%X1q;(q}#zI=R>EU8X>$W^x z3TfT8hw+fs?Rc07Y2618mqS|j(Zgg&>ppq764JU|4_8B4x98znNb5d(my3k9e9`tY2BfR+aay{;o(k5>wbEe4Qbsk4|5@{ z`|aUwNbCN1xEIp8zZvU7zQ^WY#=4O2u{q}Ben{)GeLM(hU5<~3A+0;^<55WKPWV_1 zXkiwPvco|Z- zG9Rx(3Rmvqbx7eVe7p%MT&0hq>rtT!kzN59a6Z{K6XM1cgDwukiwny@iC-u4L&}F6t2<7Zb;#peC&l3uGz=u zkixb2_!3gMRv%wO3fJaiKcsN&KE8z%uEWRokkeeJkAslbb@@09X(2Z571FvMAHPFd*X!d?NbCB1{0(VczmI<*tsC%hETVOTKC&ZPH{>HHqIJVQjz_d^ z#K(z<)?M(C8_~K^A9)e28}pGL(YlL13L;u}$wy&C>&AT)MYL|hM{z{!F8e5nXx*fb z(umew@lh7hx~o3QBU*ROM@2;IrhHUJwC=i(s)*Lz@KGJnx|=>~B3d`?qc);-w|vw^ zv~I>neMIYS`#2fVx;s8jMYL|#$LWaH&G|SJ(Ym`n&PKHEo{xrz*3J89jA-40kEV#$ z-S^QP(YgmdS|VEa&_`=T>mK=Ni)h`VkM@YxJ@(NN(Yhrcoe`~j;-f2~bx(bCN3`yl zk8=^Nd+y_WMC)Go=!t0EvX9<~)~)#Hi)h`dkN$|(z4S2<(YjYY1|wSc+Q(2t>)!Yn zj%eLmA0rX1Tk~-tqIK&&Mk8AH&c|3p>)!jg7}2^7AD1Fpx9Q_@MB%o4Ohy!L+sBoN z!tMCD8d10pKCVR+?xT;Xh{ApHaXq4NyFPA26mHMQ&4|K%_Awn%xGz3#MHKFQ zX)Z6o^N7~v2Y3uoBU_q5!KAtt$@jGNN@Q0bWJ4t~9{wh}M+_coWgO z@&IomT2~QZEuwXm0oEg0R~6u0MC+;pypL#IO@NJv*3|~sjA&h5fUStu)d$#)Xx+&G zI}xor72rce>rMyw7}2^j0X{{v?rebFh}Ja(*o$agV}Q>Qt!oPKC8BlB0lr4Gt|h>J zMC)1ue2ZvZTY&Eot!oc(5Yf7h0EZE+>kRNCqIF#XenzyeJHW4q)}0IRJEC>x1N@0- zT~C0&5v}VD@GqiueF2Wew5~ruc1-IA0_4QBZZN>{nAQyiI1$sj;Q+ZYts4oD7t^{6 z0rF#7HyWTIrgdWh3S(M#F+fpF>n;T-j%nR^fRdQjO#~>7Y2D=jWihRr3{W1^x+?)H zVp?}KKxItpt_7%yY28$S>X_DD4^R`+x*Gv%V_J7JKwV7hrUTT+wC+}blQFHE32-W= zb+-eYj%nSU01YvPn+?zyQ@FVRO)-VL8=yI+aQ6bV#1w8mKx<6l76P=z6z+b2_L#yw z2+$EzxQ78cV+!{uKvzuR76Ww06z*|=b1{Wm3UEHAa8CmC#1!snfZmwGJqyqmQ@G~= z`eO?BBEUdQ;g$mo#uRQPz)(!#Rs#&j6z*k!k(k203UDE&aIXW5#uV;NfU%guy$x_N zrf_QkF2xjXJ-~QO;ob$9h&j!@4{$lAbsGUDV_LTv;7UyEwgOy@Y29{!YcZ|c2{0AY zx(@-a$F%NafEzKb`xM}2OzU<7OvkitFTkys)_o2z6Vtjc0dB{%?rVTMF|FGVFdNgl zZvp0FTK7G`-I&%L1h^N|y2AkTF|GR%U?HY;KLgy4Y2B{?4`N#PJHW%3*8K_aD5iCP zGuFj?PwKynbur(QdMw0JOzW~kJc(&tPKc*5tvep#SxoCrgm@m)y4(;iVp^9MVmYRD z`5{(fT2~NaHKuiiAzsF`t|-K-nAR1CcpcNak`QlVT2~t4ZA|ORLafEKt~|tgOzSE_ zyo+gFWr+7Nt*Z*L5!1Tr5SuZrs|m3c)4JLa+cB-H3$YW^y7~|wVp?}H#K)M{oeJ?O zrgf)7?8db2Oo+Xh)}0OUIi__DA-=@4t}(>dnASCg*pF#lbBJ#-t!oMKJ*IW7Ar4|% z*B0V1rgiNhe#Eq{BgD^`)^qO$|5Wizu*B#g_{m>CPm?Hg*cnyG&d8XAw}zM zhiFXEx;r77QnYS1M01MP&4p-5(Ym`KT2r*{UWm37t(yy@ zqANw~9){>n(Yi+=&ZTJGVubuc8KdKTDKG8 zMvB&b2yrt->pq5%NDWPtm%A5DO_RyN7zeI zxRVh+rzqU12wzeZ?sSB&DGGNc!hVXvosIA!mkvCYm4wZMd8{b{7F%`jtGBKoaQ|}-Pt&@d2q)6Ct~Ww%n%4D2$V=0@{s{SLS~n1(AWiEABNV1--B5(0G_4zsP@JZ9 zBN0l{wC+NL(lo6bjZl`Rbz>3A)3oklgo-q+yA+`^P3y)ZRHbR%M1<-zt-BndCQa)m zBh;p8-IWM+Xk&?;Y2A$oXVSFpW`wh8S~ne`Ax-OU zMQBXZx|s+~XTJo~Cv8B6Or_-F$@3G_6~R z(3Pfj_ak(tY2AYe=hC$9VTAK(TK6bIPny;(M(9n`y2lav(zI?VLVudpJ&7=orgcvv z45n$_vj{_JTK7D{aGKV=h%l0-b;}Vhq-otsgwZsuTa7T5rgbkPTujrtR}n6yY2E7x z<7ry=Cc;FT*1e5zIZf-H~_dUYHG=)2e@F-2;4kIk4Dcp|;kJA+HXN09Rh5HrZ zNt(j_&bXF7djEaKwe->Z?=!BY|Lgj{e;L=(|8-=39gDG?rf}IYR?-wMC&p@;!X1zC zGEL!5#CVmaaJeyFr#a2##dwpZb@?&grfFS4jI}haD~z$8rgcRz-lb_>ag6tAT2~Td zBTef{V{E2rU0IB+G_5O-v7M%M6)|?ww5~G7hcvCLit#Z`>#AdXO4GWU7`tg&R~ut5 zP3!7nd`{E4`WRo*wC-e#uW4F$D#m`A)}4;=Elumr#Q2`3b!TH7q-kA4jKegoYmD(D zP3xLs{7loj<`}=yw5}z_?=-DzjqxW<>)K-cP1Cye82{3=t|P{=ELztYBRh-Mb;ZcZ zqIKOdj%U%jb1_b2(Yo_7aa%Fwl^7?pXx-Hqr?P0>wHT+fXx&tdGg-9mdW^GKwC+ZX zhAdilGe%<;t(%U~ltt@q#c0l=bu%$qvS{7y7_C{f?oN!3EDARpqce-b&Bf@-qHuR( zbZ1exdoj*sQMmaS=d&o>LX4g)3U@z7Zx)4n5Th@P!aa=9pGDyw#TdwD<5?7L zHO9pMO1jUkD1tW&;Qza4KL}^P2;G&dyJ5c2o;_j&41gjAFk-*}q97mwBA{X*M>D8^ zAYewsv~}*htC#fjo!@h7X6OX-a0`X#6Kr#fh3FTwZmAFhg4Vq+#63almJ4xT(7KgEJP@?*Lm>tQty?X` zLqY4-3h_wLy7fXl7PRhTA)W|Y_o)y=g4TU5#IT@sUkWiIXx-OBj0#%!tq@~^)_pI; zxS(|#g_sbu?nfae1+CjG#FU_QKMOG}Xx&yJW(2MKRft(Z>wXvFsi1X#3h_+Py1&6X z!83gS1?vP){n!@arJ!{s5nc&ew>`pZLF;xzm=m;aXM}k{>vlzWBWT_32yX?g+Y{lP zpmn7Y76h#;i?AqYU3r8hLF@KLcrR$(z6i^L*6ok5B52)#2p6FtScDBh>yAhG zA!uD~giS%~>LUCUwC+TNEkWx}M))OY-Khw_1+6D3cWKN`!Jr;jTv5D=A!K zgng32HAUDjDcrRP2PB1Sj!+>f-1P{RlEU4HP$el`ON4`x!nH;?Bq`j@2-T9pwM95A zDO`Jm8cE?gA{>zv?pB1OlEQUHI3_9F?Fh#uh3kq?D=A!eggQy#dLo>V6z)!hlaj*q zMmQxY+}#MLC57vYa7I$N{s?C!g&T-aFDcx;2cXp^*VHbT3kbx$L7NLu$S!YxVbo=51EwC+WO z+mhD3jL;=%-Kz-QlGeSB&?9NxT!cH4*3C!gm9*|ngu9Z~y^YW(Y2CXB{gT!#L>Q2? zZZX0=N$Zv(+?TZOeS`;+)-6XEl(cRo!b3^xK16sVY29js$CB2qMR+1<-Fk!}N$WmF z7?!l|Q-l#o>pn*qm9*|lgfU6$zD5|AwC-Dk2}$d|N0^kfZX?2!q;)?cOiNm~8DU1! zx}OndC9T_v@Kn;eUlE>3TK7A`b4ly|M0g=--QQrHSOFw6z*J%U5dh;kFi^^&0UDGN71^A zF-jG!Ylu;%Xx*h4<%-r_j`>sn$|D_YkYGDO%SR-uAy zQ?za%#(72S?!~yEXx;r77Zt605TilSy1^Ki6s>z0&M{R^%sp5eAl;H{!?B?9jhh1)K$peWo9fkj2(b_y&h3b#w( zy<(f&EwHR;-5!AzMe9lhJ}6pOCa|h#UAe%TqIG)())lSWC-70xy8Qy56sR68RkW^3;G3d#2L-+>T6aibL(#fwfgg(29TwPBw5~?rr=oR71hy2dJ1X!? z(Yj*-zZI=JF7QXux>|w1iq_Q${8O~rM)kXj*qlV7sPurv-LsT6acZr>1ph z1$Jp#S1+(z)4Fp4do-;(FHov!-35U%P3tZSlxteoAh1`{x=RB4G_AWVuwT=u%>k_0yUb}wF(^3wC<+B zQBCXG1deH1*Di2e)4C3UT21S23Djv?*C}v9)4JONCpE3>5;&!4UAMq#P3w9D&S+Y9 zN8qfcb-e=hn%3PFIHze{pTK!d>-q&QXj(TQa8c8`djbub*4-Dlq-os)fyzcw13Ea>WZdjm2Q@9a z1nz1I_fnuwQ@B?G{hGqP78uYJZcgByrf~BD_ceukBk({|xVHj>n!>#kc&I7dg1{rq zHn%A7Skt;CfhU^Qy%!kLv~F2oSkt-{fe}sXJ_w9zTDK}NrfJ=pz__M$>jD#+)_oM1 z)U@uCz?7zSp9Q8ht@|P{qiNk&fmu!Kz6m_lwC=mWGfnF@1fFYJ_e0=?rgfVFFEy?E zDey|ux-Eg%n%4ainA5cGx4^unb$rP7SFtqNJ z#7;x&PD|`EwC;?=ZbR$NO6)PTu3n@&2kL88J? zxJwe1hQeKzs4^7pio`)f;jT&?G8C>+qS{cnCW*s_!d;W7F%+&@;)tPe*Cmb`3U@=| zn4xej62}dNYn7-q6z--(ouP1T5+@9WYnM1_C|rlcDMR6INt`wmu2bTSp>Ve)&Ke5W zB~foET(`tIL*aTP&KnAMN8*B^aJ>>24TZZa(O@WCpTs3Y;rb;m8wxidam7%$dlFX- z+uVJLMnmf!NHiH*Hz;w<(7J~b&4$)JlDKYY-D8OxhSoiiXfd>INTSuyx?zc%hSrTp zv>94AD$#Ce-Izp&p>^XDw+yYDkmxkDZc^g5p>@wC`V6gmA<=JW-Ajo9L+f5i+%vT9wZwfx>*gdL7+NV$#sMb%`lM>pn_M8(Q~CV#d(A&l0nS)_sw9YG~b8iD!n^eUo@@Xx(>-7lzht zNW3((?uW!HL+dsrUK?8XQ)150x-E%$L+gG?yfL)yx5QgR>;6c*Gqmn+u+9`zg>OCn z1?vn?>D{KVWN2N9!h1vOwks?fTDL=C#n8H)3Lgxu+oiB-Xx(mwHACz6D6AV=SE}&C z(6BOvO+&-V6@D5TwpU@x(6D_9zYGoAukhQ@umcKz3=OML_-klbrNTc$!>SZYET2?; zP+_~}ld2CX?67=Nb+y7y%jdWrR@i0v9M>9!-ImWbJfcu)Dc4bjGE2FRDU@5vbzEVu zrChZN`z+z(y$8(M=TAysBqNMum*)=mWEwYIBsd!WrbQx!>%aQSsHd#;e@4OjS43% z4Qo<3Wog(oh0~UXH7lI4H0-*N0XtR`SK%w1Iu6qg{mU7)!xMeBV1BEV2uLc#mExmfE&|~SQH6V!UX3Z-xAbaU;en-B6AFWtUQH@I zwDf99;gO|R(+ZC*y_!*YV(Hba!jPp`PZfqOy?UlFV(Ha$g;7hdUMP%Ndi7Fa+|sL8 z3KN!Iy;hjERBBFP#!{(yg;`6b-Y7h`wCSzF3rm~cDZI3_X+dGmQlv$Nc}tO&6y8{h z^j=}X(xGLAMN5ZPf)SPueFz>{>a!X=u+(QQcwni|y26GnI1qgK7!A%UB7OxA924<7c;Gn8{sa#kv+*~0;Fyhn3VR&0u}!1Y<Kvcha9HDn<9{^QXq(v-`Z02`0MjV@YpT?+TGw;_Jb8O}V8sm=NDc#eUaQx->eT_-S|5<*Z zG3EHQtwD`xmp}hQW5)3`w?`VYj^|ZA)_Cf8BJUH8XRhE;ct;IsJa+|yVKuDr!WG;P zs}YTtu3#XnMm1hLnlq*`=h%_PHRc`lnb3IWXwIa@f@3q9(pYrVXIf*)QJ)!&_m29^ zYAic8qo*3Hj`}>)Saa0pxyHI_~z))oW^%Yhvqdl z936V2@x!qNz17%sY(eidemb_G1&uAo7PP4G%drJ5Y5aBt`@{9V*ZAWK_J-B6#$U&i z!B;f?Ii3vuL1UX|3tH7E@oYhB8rwZv(7MJB&s=@f*y)+8Pa3;CbM;wcw`Z=tXzcOK z)z_epXRf{leLQpZJ?P_^tBs(KXRdw(eLQou8T9eY)z6@hXRfw_KAySy74-4U)$gE> zXRiJPeLQpZH|XP;tA9Zs&s=RYIPAIOD>10?-0^KUIO4hE+hK6jvp4NDIOf@#b{QP^ z>`l83PI$JZJq9N|+fu2)DbKc4W^mfGEtMOb@oYHeeDmx>!v^0yMH(^K z@Dyp(;D@J3V+LEEB8?mT@)T*p;J2qplLmi0MVd1B>nYN-!9P!tW(>9^{6=xspd{hv z?N1H1C;YtqnZb^PpFur0*qQJ%s22vi67I`h8thKEFMDOMC*i*AwLxjZec7BrSwfNK z4ayUW^u}OsLXqAY>`N%pJA?fRMOrX8kWi#WgNlSAEg4iM6zRP|RYH-L4Gtz0X~p1B zLXkcgR3{W^HMo&bq_yBiLXp;k8wo}F7~DuG(x>1?LXkcPHxi2U#h^B!NM8-=5{mRK zSdvhr@4=FUlWrqel5o=f2$m$AbeqAFgp=-Puq5H6+X|K>oOHi}8wuyz@8Cwl`SvHc zk#N5K4Q?cyZ~uZD3Fq53iz^95DzUhlP^9e^jR{5CVbPROq@5Pm5{k6TqB)^RyDhFK z6lssejf5hVTC^k-sm!7^p-ANxHxr7q*P<<6N3FSI(F_}=V3l>ue<+^Awolvd@iDA#3+rwQe{ zV(~1YTvsigCzPwv;zdHank-%>l=`YpaClxx6ZBPqBMddWSDA4x%TSlzeS zObVL9>VZW`%DfC(Y)?7C9$M^3Il&%T>`IxJ#}>O&=H-dSo|JhRvM5by)38NZN}EP3 z%2V1jYOyz^O=A}OQra|bu|K6v6BY+j+B9iVk8V9^N}HZp98PJ|bBmgkHodSolG3J^7ROVH^va?(rAV(W>Qag{XK^B>Nb?paQ;PJ) z;#5kJ-ddbaDbhQOGbu${usEAiq(zJRlp-xzoJ%RvdyDfaMOwDFm@+Rb77Z!$^1{ZZlnc0VYM0DNDI2c>Su5xE$9rZt>8vl&=FR@f*WZ;TUh&hJlpU$m;X%sXU75p3K11aWqxlT&br{QMXrIG)K12H*Ch{3N;4qob zP=&*EN_{FFW>V@?JLm8z$=9e$?t z<%+{rN?)!z{7UIdqr>l%zBD=fN$JZqhrcO(X?FOR(wFNF+cG}i=Y~T`#?Js+9JXit z44~CvN5; z)MRw%zQd7>4n1%r4sLzbU)r|Vg zIy7d~=cz+eMtz<+T+67>bBE@P`n+(skx`$Q4lNn=dF9ZWQJ>ciH#6!p=g^i>pLvJ& zjMM6kLr2Cmy>+;iF-`9rIy3g{1&7-ibG7Kul`&UK4&51Z_1>W;W3HBi3>kB^5@g7j zs}DhjjJaA3GGxrvT96^*+*%I`WSmwXg92Ip`(KB_jE(!V!%&w0{=;E7%YXk7jL7oe ze*`14{P!Qhh>SgZBN&mfXa8`R%GjJ<1T-j$6P)yB_8wnylnS)lh4ZzkA-|nc6u!4Q?korDW8(v z9`Exh+2gUCPf4lAN?z{z{iH`}5xep!kFp|m<h)+YrYd(mT8f#MK948G-1qc{ z>nP@XdLUd!G26pEkLShg4EIA~i}U;6kjY{;fWeTuV!q!VhJ+P!U;8MeshIDw#~~%f zd`CSAImq#~9}4$8$Jc&1Tv3jDgAtF49RKD~kLn!n!kEXg94G8}xW740(+Q9I9B1fc zxV9WS`c$}=Irj1CaBVrh_A}wya@1_rqdmuTKK1CxF`dsmI&-|r=N^MOcApm>4|BW= zFT?%KvHQI8c${PRc^zJ%9J|k4xaT=u`Mk$)j@{>t$4HLd=dH(Rj`!`I$5@WtXCb_% zId-2#kBMBt)zFcaJSKAmm&5A4$5gJMA*_}?rgH@s!fM51CRcDStUiR-KF9t3s>h2Q zMOyQCnWISS97&Q%97XyRvX-MrpTphCQKT=ymmEKV{Oa*GN1MKRyvxz1@4=iL zZQ2Ow%<&V*AL0Jy_zC1@Feg{AEBq}#gE_f^9bvT<%*hp$%>MU({_|h|`Jev>%p=W3 literal 0 HcmV?d00001 diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_it.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_it.d new file mode 100644 index 0000000..55796c5 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_it.d @@ -0,0 +1,4 @@ +nucleo-f103rb\stm32f1xx_it.o: ../Src/stm32f1xx_it.c +nucleo-f103rb\stm32f1xx_it.o: ../Inc/stm32f1xx_it.h +nucleo-f103rb\stm32f1xx_it.o: ../Inc/main.h +nucleo-f103rb\stm32f1xx_it.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_rcc.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_adc.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_adc.d new file mode 100644 index 0000000..fa3b7de --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_adc.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_adc.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_adc.c +nucleo-f103rb\stm32f1xx_ll_adc.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_adc.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_crc.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_crc.d new file mode 100644 index 0000000..2c400db --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_crc.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_crc.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_crc.c +nucleo-f103rb\stm32f1xx_ll_crc.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_crc.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dac.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dac.d new file mode 100644 index 0000000..0394aaa --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dac.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_dac.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dac.c +nucleo-f103rb\stm32f1xx_ll_dac.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_dac.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dma.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dma.d new file mode 100644 index 0000000..d33fcdc --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_dma.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_dma.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dma.c +nucleo-f103rb\stm32f1xx_ll_dma.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_dma.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_exti.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_exti.d new file mode 100644 index 0000000..ee9bce9 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_exti.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_exti.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_exti.c +nucleo-f103rb\stm32f1xx_ll_exti.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_exti.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_gpio.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_gpio.d new file mode 100644 index 0000000..d2a7de2 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_gpio.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_gpio.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_gpio.c +nucleo-f103rb\stm32f1xx_ll_gpio.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_gpio.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_i2c.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_i2c.d new file mode 100644 index 0000000..6d210ae --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_i2c.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_i2c.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_i2c.c +nucleo-f103rb\stm32f1xx_ll_i2c.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_i2c.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_pwr.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_pwr.d new file mode 100644 index 0000000..2ae500c --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_pwr.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_pwr.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_pwr.c +nucleo-f103rb\stm32f1xx_ll_pwr.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_pwr.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rcc.crf b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rcc.crf new file mode 100644 index 0000000000000000000000000000000000000000..b849c65ec8b74e528b30514cc48e5a37b899345b GIT binary patch literal 388694 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 literal 0 HcmV?d00001 diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rtc.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rtc.d new file mode 100644 index 0000000..9c487b1 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_rtc.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_rtc.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_rtc.c +nucleo-f103rb\stm32f1xx_ll_rtc.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_rtc.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_spi.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_spi.d new file mode 100644 index 0000000..53d2a6e --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_spi.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_spi.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_spi.c +nucleo-f103rb\stm32f1xx_ll_spi.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_spi.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_tim.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_tim.d new file mode 100644 index 0000000..5f959a5 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_tim.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_tim.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_tim.c +nucleo-f103rb\stm32f1xx_ll_tim.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_tim.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_usart.d b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_usart.d new file mode 100644 index 0000000..f40e410 --- /dev/null +++ b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_usart.d @@ -0,0 +1,2 @@ +nucleo-f103rb\stm32f1xx_ll_usart.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_usart.c +nucleo-f103rb\stm32f1xx_ll_usart.o: ../../../../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_usart.h diff --git a/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_utils.crf b/MDK-ARM/NUCLEO-F103RB/stm32f1xx_ll_utils.crf new file mode 100644 index 0000000000000000000000000000000000000000..4ff66326c871d31a85ae45290136c05b69e9acd3 GIT binary patch literal 395014 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%0DTW|n0}1G1qQbmG<^VIID?4{ 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 literal 0 HcmV?d00001 diff --git a/MDK-ARM/NUCLEO-F103RB/system_stm32f1xx.crf b/MDK-ARM/NUCLEO-F103RB/system_stm32f1xx.crf new file mode 100644 index 0000000000000000000000000000000000000000..9848342c2b1755ffe82c5e0ac429dbc82258db66 GIT binary patch literal 372804 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

{fAH#VLr*_*}2pf1Z7>>MsgkwLhDg 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 literal 0 HcmV?d00001 diff --git a/MDK-ARM/Project.uvguix.trocache b/MDK-ARM/Project.uvguix.trocache new file mode 100644 index 0000000..63a3a16 --- /dev/null +++ b/MDK-ARM/Project.uvguix.trocache @@ -0,0 +1,3385 @@ + + + + -6.1 + +

### uVision Project, (C) Keil Software
+ + + + + + 38003 + Registers + 115 263 + + + 346 + Code Coverage + 720 160 + + + 204 + Performance Analyzer + 880 + + + + + + 1506 + Symbols + + 80 80 80 + + + 1936 + Watch 1 + + 80 80 80 + + + 1937 + Watch 2 + + 80 80 80 + + + 1935 + Call Stack + Locals + + 80 80 80 + + + 2506 + Trace Data + FiltIdx=0;DescrEn=0;DescrHeight=4;FuncTrc=1;FindType=8;ColWidths=004B00870082005F004600E600C80096 + 75 135 130 95 70 230 200 150 + + + + + + + + 0 + 0 + 0 + 50 + 16 + + + + + + + 44 + 2 + 3 + + -1 + -1 + + + -1 + -1 + + + 219 + 642 + 1920 + 889 + + + + 0 + + 60 + 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000 + + + + 0 + Build + + -1 + -1 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F4000000530000006E040000C1000000 + + + 16 + F40000006E0000006E040000DC000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000081010000CC020000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 109 + 109 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000081010000CC020000 + + + 16 + 9F000000BA0000008101000073020000 + + + + 1465 + 1465 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F7000000730000006B040000A2000000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1935 + 1935 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 195 + 195 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000081010000CC020000 + + + 16 + 9F000000BA0000008101000073020000 + + + + 196 + 196 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000081010000CC020000 + + + 16 + 9F000000BA0000008101000073020000 + + + + 197 + 197 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 000000000C03000080070000D4030000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 198 + 198 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 00000000830100006E0400000E020000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000000F0300007D070000B5030000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 203 + 203 + 0 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + F7000000730000006B040000A2000000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F7000000730000006B040000A2000000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F7000000730000006B040000A2000000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F7000000730000006B040000A2000000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F7000000730000006B040000A2000000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 38003 + 38003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000081010000CC020000 + + + 16 + 9F000000BA0000008101000073020000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000000F0300007D070000B5030000 + + + 16 + 9F000000BA000000D602000028010000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000000F0300007D070000B5030000 + + + 16 + 9F000000BA0000008101000073020000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000A30100006B040000EF010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 9F000000BA0000008F01000083010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 942 + 0 + 8192 + 0 + + 16 + 0000000000000000B90300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000D403000080070000ED030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 1 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 0 + 0 + 0 + 0 + 626 + 0 + 8192 + 2 + + 16 + 00000000380000007D02000054000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 3119 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000C10000006E040000C5000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000F40000006E0000006E040000DC000000F4000000530000006E040000C10000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF7A030000530000007E0300009C010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000007E0300006E0000006E040000B70100007E030000530000006E0400009C01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF840100005300000088010000EB0200000100000002000010040000000100000012FFFFFF87060000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000006E0000008401000006030000000000005300000084010000EB0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000007F0100006E0400008301000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000009E0100006E0400002902000000000000830100006E0400000E02000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF37020000830100003B0200000E02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000EB02000080070000EF02000001000000010000100400000001000000F6FCFFFF6C000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000000A03000080070000EF03000000000000EF02000080070000D40300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2298 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000040000000000000000000000000000000000000100000001000000960000000200205000000000066F766572736196000000000000001400066F7665727361054750494F430C4C4C5F4750494F5F496E6974094750494F5F4F44525F05466C6173680A53797374656D496E6974115243435F434647525F504C4C58545052450623656E6469660443656E74065243435F41500454494D5F0554494D5F54064765745F53740472656164134932435F536572765F496E6974537472756374134C4C5F4750494F5F496E697454797065446566124C4C5F4750494F5F537472756374496E6974045465616D094952516E5F54797065164952516E2020496E74657272757074206E756D6265720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AE030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 700 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050010000000A53696D756C6174657572960000000000000002000D4E55434C454F2D4631303352420A53696D756C617465757200000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756772020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1920 + 1080 + + + + 1 + Debug + + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3B0100005300000080070000C1000000 + + + 16 + 3B0100006E00000080070000DC000000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000034010000E4020000 + + + 16 + 2700000042000000170100000B010000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000034010000E4020000 + + + 16 + 270000004200000009010000FB010000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1466 + 1466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 1913 + 1913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3E010000730000007D070000A2000000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 2700000042000000170100000B010000 + + + + 1936 + 1936 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 2700000042000000170100000B010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 2700000042000000170100000B010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 195 + 195 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000034010000E4020000 + + + 16 + 270000004200000009010000FB010000 + + + + 196 + 196 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000034010000E4020000 + + + 16 + 270000004200000009010000FB010000 + + + + 197 + 197 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 03000000C00100006B040000EF010000 + + + 16 + 27000000420000005E020000B0000000 + + + + 198 + 198 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0000000007030000C0030000D4030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 199 + 199 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000C00100006B040000EF010000 + + + 16 + 27000000420000005E020000B0000000 + + + + 203 + 203 + 1 + 0 + 0 + 0 + 32767 + 0 + 8192 + 0 + + 16 + 3B0100007000000080070000C1000000 + + + 16 + 27000000420000005E020000B0000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3E010000730000007D070000A2000000 + + + 16 + 27000000420000005E020000B0000000 + + + + 221 + 221 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000000000000000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 2506 + 2506 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 2507 + 2507 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 27000000420000005E020000B0000000 + + + + 343 + 343 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3E010000730000007D070000A2000000 + + + 16 + 27000000420000005E020000B0000000 + + + + 346 + 346 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3E010000730000007D070000A2000000 + + + 16 + 27000000420000005E020000B0000000 + + + + 35824 + 35824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 3E010000730000007D070000A2000000 + + + 16 + 27000000420000005E020000B0000000 + + + + 35885 + 35885 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35886 + 35886 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35887 + 35887 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35888 + 35888 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35889 + 35889 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35890 + 35890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35891 + 35891 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35892 + 35892 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35893 + 35893 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35894 + 35894 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35895 + 35895 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35896 + 35896 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35897 + 35897 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35898 + 35898 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35899 + 35899 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35900 + 35900 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35901 + 35901 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35902 + 35902 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35903 + 35903 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35904 + 35904 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 35905 + 35905 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 38003 + 38003 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000007300000034010000E4020000 + + + 16 + 270000004200000009010000FB010000 + + + + 38007 + 38007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000C00100006B040000EF010000 + + + 16 + 27000000420000005E020000B0000000 + + + + 436 + 436 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000C00100006B040000EF010000 + + + 16 + 270000004200000009010000FB010000 + + + + 437 + 437 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 2700000042000000170100000B010000 + + + + 440 + 440 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C7030000270300007D070000B5030000 + + + 16 + 2700000042000000170100000B010000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + C703000042030000B70400005D030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 81030000730000006B0400007D010000 + + + 16 + 2700000042000000170100000B010000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 942 + 0 + 8192 + 0 + + 16 + 0000000000000000B90300001C000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000D403000080070000ED030000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 463 + 0 + 8192 + 1 + + 16 + 000000001C000000DA01000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59400 + 59400 + 1 + 0 + 0 + 0 + 626 + 0 + 8192 + 2 + + 16 + 010000001C0000007E02000038000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 3118 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF3B010000C100000080070000C5000000010000000100001004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000010000003B0100006E00000080070000DC0000003B0100005300000080070000C10000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF7A030000530000007E0300009C010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000007E0300006E0000006E040000B70100007E030000530000006E0400009C01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF37010000530000003B010000030300000100000002000010040000000100000012FFFFFF5D040000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000006E000000370100001E030000000000005300000037010000030300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000030300008007000007030000010000000100001004000000010000008DFEFFFF2600000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000001000000C40300002203000080070000EF030000C40300000703000080070000D403000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF000000000000000001000000000000000100000001000000FFFFFFFFC003000007030000C4030000D403000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF000000009C0100006E040000A0010000000000000100000004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000000000000000000BB0100006E0400002902000000000000A00100006E0400000E0200000000000040820046040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + + + 59392 + File + + 2323 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000005466C6173689600000000000000140005466C6173680A53797374656D496E6974115243435F434647525F504C4C58545052450623656E6469660443656E74065243435F41500454494D5F0554494D5F54064765745F53740472656164134932435F536572765F496E6974537472756374134C4C5F4750494F5F496E697454797065446566124C4C5F4750494F5F537472756374496E6974045465616D094952516E5F54797065164952516E2020496E74657272757074206E756D6265720970726F636573736F720C4E5649435F5365745072696F135450495F464643525F54726967496E5F4D736B124C4C5F4932435F456E61626C6549545F52780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AE030000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 1423 + 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 + + + + 59399 + Build + + 657 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 583 + 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 + + + + 59400 + Debug + + 2362 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756772020000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 + + + 898 + 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 + + + + 0 + 1920 + 1080 + + + + + diff --git a/MDK-ARM/Project.uvoptx b/MDK-ARM/Project.uvoptx new file mode 100644 index 0000000..b9bc961 --- /dev/null +++ b/MDK-ARM/Project.uvoptx @@ -0,0 +1,540 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + NUCLEO-F103RB + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 5 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 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)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=100,127,658,622,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)) + + + 0 + ST-LINKIII-KEIL_SWO + -U-O142 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM) + + + + + 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 + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Simulateur + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 5 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + DLGDARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 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)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=100,127,658,622,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + -T0 + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)) + + + 0 + ST-LINKIII-KEIL_SWO + -U-O142 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM) + + + + + 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 + + + + + + 1 + 0 + 2 + 10000000 + + + + + + User Application + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ../Src/main.c + main.c + 0 + 0 + + + + + User Services + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\Services\Chrono.c + Chrono.c + 0 + 0 + + + + + MyDrivers + 1 + 0 + 0 + 0 + + 3 + 3 + 1 + 0 + 0 + 0 + ..\MyDrivers\MyTimer.c + MyTimer.c + 0 + 0 + + + + + Drivers/STM32f1xx_LL_Driver + 1 + 0 + 0 + 0 + + 4 + 4 + 1 + 0 + 0 + 0 + ..\LLDrivers\src\stm32f1xx_ll_rcc.c + stm32f1xx_ll_rcc.c + 0 + 0 + + + 4 + 5 + 1 + 0 + 0 + 0 + ..\LLDrivers\src\stm32f1xx_ll_utils.c + stm32f1xx_ll_utils.c + 0 + 0 + + + + + Doc + 1 + 0 + 0 + 0 + + 5 + 6 + 5 + 0 + 0 + 0 + ../readme.txt + readme.txt + 0 + 0 + + + + + Drivers/CMSIS + 0 + 0 + 0 + 0 + + 6 + 7 + 1 + 0 + 0 + 0 + ../Src/system_stm32f1xx.c + system_stm32f1xx.c + 0 + 0 + + + + + Example/MDK-ARM + 1 + 0 + 0 + 0 + + 7 + 8 + 2 + 0 + 0 + 0 + startup_stm32f103xb.s + startup_stm32f103xb.s + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
diff --git a/MDK-ARM/Project.uvprojx b/MDK-ARM/Project.uvprojx new file mode 100644 index 0000000..c7613f3 --- /dev/null +++ b/MDK-ARM/Project.uvprojx @@ -0,0 +1,925 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + NUCLEO-F103RB + 0x4 + ARM-ADS + 5060422::V5.06 update 4 (build 422)::ARMCC + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.2.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + NUCLEO-F103RB\ + NUCLEO-F103RB + 1 + 0 + 0 + 1 + 1 + + 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 + + + 0 + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103RB + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4107 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER,HSE_VALUE=8000000U + + ..\Inc;..\LLDrivers\inc;..\Services;..\MyDrivers + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + User Application + + + main.c + 1 + ../Src/main.c + + + + + User Services + + + Chrono.c + 1 + ..\Services\Chrono.c + + + + + MyDrivers + + + MyTimer.c + 1 + ..\MyDrivers\MyTimer.c + + + + + Drivers/STM32f1xx_LL_Driver + + + stm32f1xx_ll_rcc.c + 1 + ..\LLDrivers\src\stm32f1xx_ll_rcc.c + + + stm32f1xx_ll_utils.c + 1 + ..\LLDrivers\src\stm32f1xx_ll_utils.c + + + + + Doc + + + readme.txt + 5 + ../readme.txt + + + + + Drivers/CMSIS + + + system_stm32f1xx.c + 1 + ../Src/system_stm32f1xx.c + + + + + Example/MDK-ARM + + + startup_stm32f103xb.s + 2 + startup_stm32f103xb.s + + + + + ::CMSIS + + + + + Simulateur + 0x4 + ARM-ADS + 5060422::V5.06 update 4 (build 422)::ARMCC + + + STM32F103RB + STMicroelectronics + Keil.STM32F1xx_DFP.2.2.0 + http://www.keil.com/pack/ + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + + + + + + + + + + + + + + $$Device:STM32F103RB$SVD\STM32F103xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + NUCLEO-F103RB\ + NUCLEO-F103RB + 1 + 0 + 0 + 1 + 1 + + 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 + + + 0 + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103RB + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103RB + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4107 + + 1 + STLink\ST-LINKIII-KEIL_SWO.dll + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + --C99 + STM32F103xB,USE_FULL_LL_DRIVER,HSE_VALUE=8000000U + + ..\Inc;..\LLDrivers\inc;..\Services;..\MyDrivers + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + + + + + + + + + + + + User Application + + + main.c + 1 + ../Src/main.c + + + + + User Services + + + Chrono.c + 1 + ..\Services\Chrono.c + + + + + MyDrivers + + + MyTimer.c + 1 + ..\MyDrivers\MyTimer.c + + + + + Drivers/STM32f1xx_LL_Driver + + + stm32f1xx_ll_rcc.c + 1 + ..\LLDrivers\src\stm32f1xx_ll_rcc.c + + + stm32f1xx_ll_utils.c + 1 + ..\LLDrivers\src\stm32f1xx_ll_utils.c + + + + + Doc + + + readme.txt + 5 + ../readme.txt + + + + + Drivers/CMSIS + + + system_stm32f1xx.c + 1 + ../Src/system_stm32f1xx.c + + + + + Example/MDK-ARM + + + startup_stm32f103xb.s + 2 + startup_stm32f103xb.s + + + + + ::CMSIS + + + + + + + + + + + + + + + + + + + +
diff --git a/MDK-ARM/RTE/_NUCLEO-F103RB/RTE_Components.h b/MDK-ARM/RTE/_NUCLEO-F103RB/RTE_Components.h new file mode 100644 index 0000000..0f329be --- /dev/null +++ b/MDK-ARM/RTE/_NUCLEO-F103RB/RTE_Components.h @@ -0,0 +1,20 @@ + +/* + * Auto generated Run-Time-Environment Component Configuration File + * *** Do not modify ! *** + * + * Project: 'Project' + * Target: 'NUCLEO-F103RB' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "stm32f10x.h" + + +#endif /* RTE_COMPONENTS_H */ diff --git a/MDK-ARM/RTE/_Simulateur/RTE_Components.h b/MDK-ARM/RTE/_Simulateur/RTE_Components.h new file mode 100644 index 0000000..1e9ee3e --- /dev/null +++ b/MDK-ARM/RTE/_Simulateur/RTE_Components.h @@ -0,0 +1,20 @@ + +/* + * Auto generated Run-Time-Environment Component Configuration File + * *** Do not modify ! *** + * + * Project: 'Project' + * Target: 'Simulateur' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "stm32f10x.h" + + +#endif /* RTE_COMPONENTS_H */ diff --git a/MDK-ARM/startup_stm32f103xb.s b/MDK-ARM/startup_stm32f103xb.s new file mode 100644 index 0000000..b10b2ed --- /dev/null +++ b/MDK-ARM/startup_stm32f103xb.s @@ -0,0 +1,307 @@ +;******************** (C) COPYRIGHT 2017 STMicroelectronics ******************** +;* File Name : startup_stm32f103xb.s +;* Author : MCD Application Team +;* Description : STM32F103xB Devices 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 Cortex-M3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;****************************************************************************** +;* @attention +;* +;* Copyright (c) 2017 STMicroelectronics. +;* All rights reserved. +;* +;* This software component is licensed by ST under BSD 3-Clause license, +;* the "License"; You may not use this file except in compliance with the +;* License. You may obtain a copy of the License at: +;* opensource.org/licenses/BSD-3-Clause +;* +;****************************************************************************** + +; 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 0x400 + + 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 0x200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_IRQHandler ; Tamper + DCD RTC_IRQHandler ; RTC + DCD FLASH_IRQHandler ; Flash + DCD RCC_IRQHandler ; RCC + DCD EXTI0_IRQHandler ; EXTI Line 0 + DCD EXTI1_IRQHandler ; EXTI Line 1 + DCD EXTI2_IRQHandler ; EXTI Line 2 + DCD EXTI3_IRQHandler ; EXTI Line 3 + DCD EXTI4_IRQHandler ; EXTI Line 4 + DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 + DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 + DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 + DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 + DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 + DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 + DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 + DCD ADC1_2_IRQHandler ; ADC1_2 + DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX + DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 + DCD CAN1_RX1_IRQHandler ; CAN1 RX1 + DCD CAN1_SCE_IRQHandler ; CAN1 SCE + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD TIM1_BRK_IRQHandler ; TIM1 Break + DCD TIM1_UP_IRQHandler ; TIM1 Update + DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation + DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare + DCD TIM2_IRQHandler ; TIM2 + DCD TIM3_IRQHandler ; TIM3 + DCD TIM4_IRQHandler ; TIM4 + DCD I2C1_EV_IRQHandler ; I2C1 Event + DCD I2C1_ER_IRQHandler ; I2C1 Error + DCD I2C2_EV_IRQHandler ; I2C2 Event + DCD I2C2_ER_IRQHandler ; I2C2 Error + DCD SPI1_IRQHandler ; SPI1 + DCD SPI2_IRQHandler ; SPI2 + DCD USART1_IRQHandler ; USART1 + DCD USART2_IRQHandler ; USART2 + DCD USART3_IRQHandler ; USART3 + DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 + DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line + DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT __main + IMPORT SystemInit + LDR R0, =SystemInit + BLX R0 + LDR R0, =__main + BX R0 + ENDP + +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WWDG_IRQHandler [WEAK] + EXPORT PVD_IRQHandler [WEAK] + EXPORT TAMPER_IRQHandler [WEAK] + EXPORT RTC_IRQHandler [WEAK] + EXPORT FLASH_IRQHandler [WEAK] + EXPORT RCC_IRQHandler [WEAK] + EXPORT EXTI0_IRQHandler [WEAK] + EXPORT EXTI1_IRQHandler [WEAK] + EXPORT EXTI2_IRQHandler [WEAK] + EXPORT EXTI3_IRQHandler [WEAK] + EXPORT EXTI4_IRQHandler [WEAK] + EXPORT DMA1_Channel1_IRQHandler [WEAK] + EXPORT DMA1_Channel2_IRQHandler [WEAK] + EXPORT DMA1_Channel3_IRQHandler [WEAK] + EXPORT DMA1_Channel4_IRQHandler [WEAK] + EXPORT DMA1_Channel5_IRQHandler [WEAK] + EXPORT DMA1_Channel6_IRQHandler [WEAK] + EXPORT DMA1_Channel7_IRQHandler [WEAK] + EXPORT ADC1_2_IRQHandler [WEAK] + EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK] + EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK] + EXPORT CAN1_RX1_IRQHandler [WEAK] + EXPORT CAN1_SCE_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT TIM1_BRK_IRQHandler [WEAK] + EXPORT TIM1_UP_IRQHandler [WEAK] + EXPORT TIM1_TRG_COM_IRQHandler [WEAK] + EXPORT TIM1_CC_IRQHandler [WEAK] + EXPORT TIM2_IRQHandler [WEAK] + EXPORT TIM3_IRQHandler [WEAK] + EXPORT TIM4_IRQHandler [WEAK] + EXPORT I2C1_EV_IRQHandler [WEAK] + EXPORT I2C1_ER_IRQHandler [WEAK] + EXPORT I2C2_EV_IRQHandler [WEAK] + EXPORT I2C2_ER_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT SPI2_IRQHandler [WEAK] + EXPORT USART1_IRQHandler [WEAK] + EXPORT USART2_IRQHandler [WEAK] + EXPORT USART3_IRQHandler [WEAK] + EXPORT EXTI15_10_IRQHandler [WEAK] + EXPORT RTC_Alarm_IRQHandler [WEAK] + EXPORT USBWakeUp_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_IRQHandler +RTC_IRQHandler +FLASH_IRQHandler +RCC_IRQHandler +EXTI0_IRQHandler +EXTI1_IRQHandler +EXTI2_IRQHandler +EXTI3_IRQHandler +EXTI4_IRQHandler +DMA1_Channel1_IRQHandler +DMA1_Channel2_IRQHandler +DMA1_Channel3_IRQHandler +DMA1_Channel4_IRQHandler +DMA1_Channel5_IRQHandler +DMA1_Channel6_IRQHandler +DMA1_Channel7_IRQHandler +ADC1_2_IRQHandler +USB_HP_CAN1_TX_IRQHandler +USB_LP_CAN1_RX0_IRQHandler +CAN1_RX1_IRQHandler +CAN1_SCE_IRQHandler +EXTI9_5_IRQHandler +TIM1_BRK_IRQHandler +TIM1_UP_IRQHandler +TIM1_TRG_COM_IRQHandler +TIM1_CC_IRQHandler +TIM2_IRQHandler +TIM3_IRQHandler +TIM4_IRQHandler +I2C1_EV_IRQHandler +I2C1_ER_IRQHandler +I2C2_EV_IRQHandler +I2C2_ER_IRQHandler +SPI1_IRQHandler +SPI2_IRQHandler +USART1_IRQHandler +USART2_IRQHandler +USART3_IRQHandler +EXTI15_10_IRQHandler +RTC_Alarm_IRQHandler +USBWakeUp_IRQHandler + + B . + + ENDP + + ALIGN + +;******************************************************************************* +; User Stack and Heap initialization +;******************************************************************************* + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap + +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + END + +;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE***** diff --git a/MyDrivers/MyTimer.c b/MyDrivers/MyTimer.c new file mode 100644 index 0000000..bdfc3fd --- /dev/null +++ b/MyDrivers/MyTimer.c @@ -0,0 +1,13 @@ +// TOUT A FAIRE !! // + +/* + indispensable pour pouvoir adresser les registres des périphériques. + Rem : OBLIGATION d'utiliser les définitions utiles contenues dans ce fichier (ex : TIM_CR1_CEN, RCC_APB1ENR_TIM2EN ...) + pour une meilleure lisibilité du code. + + Pour les masques, utiliser également les définitions proposée + Rappel : pour mettre à 1 , reg = reg | Mask (ou Mask est le représente le ou les bits à positionner à 1) + pour mettre à 0 , reg = reg&~ Mask (ou Mask est le représente le ou les bits à positionner à 0) + +*/ +#include "stm32f103xb.h" diff --git a/MyDrivers/MyTimer.h b/MyDrivers/MyTimer.h new file mode 100644 index 0000000..f2fa06c --- /dev/null +++ b/MyDrivers/MyTimer.h @@ -0,0 +1,70 @@ +// RIEN A MODIFIER // + +#ifndef MY_TIMER_H +#define MY_TIMER_H + +/* +Driver pour Timer 1 à 4 du STM32F103RB + +*/ + +#include "stm32f103xb.h" + +/** + * @brief Active l'horloge et règle l'ARR et le PSC du timer visé + * @note Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart) + * @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * int Arr : valeur à placer dans ARR + * int Psc : valeur à placer dans PSC + * @retval None + */ +void MyTimer_Conf(TIM_TypeDef * Timer,int Arr, int Psc); + + +/** + * @brief Démarre le timer considéré + * @note + * @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * @retval None + */ +void MyTimer_Start(TIM_TypeDef * Timer); + + +/** + * @brief Arrêt le timer considéré + * @note + * @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * @retval None + */ +void MyTimer_Stop(TIM_TypeDef * Timer); + + +/** + * @brief Configure le Timer considéré en interruption sur débordement. + * @note A ce stade, les interruptions ne sont pas validés (voir MyTimer_IT_Enable ) + * @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption + * int Prio : priorité associée à l'interruption + * @retval None + */ +void MyTimer_IT_Conf(TIM_TypeDef * Timer, void (*IT_function) (void),int Prio); + + +/** + * @brief Autorise les interruptions + * @note + * @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * @retval None + */ +void MyTimer_IT_Enable(TIM_TypeDef * Timer); + + +/** + * @brief Interdit les interruptions + * @note + * @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * @retval None + */ +void MyTimer_IT_Disable(TIM_TypeDef * Timer); + +#endif diff --git a/Release_Notes.html b/Release_Notes.html new file mode 100644 index 0000000..f229983 --- /dev/null +++ b/Release_Notes.html @@ -0,0 +1,713 @@ + + + + + + + + +Release Notes for STM32F103RB-Nucleo Templates LL + + + + + +
+

 

+
+ + + + + + +
+ + + + + + + + + +
+

Back to Release page

+
+

Release +Notes for STM32F103RB-Nucleo Templates LL

+

Copyright +2017 STMicroelectronics

+

+
+

 

+ + + + + + +
+

Update History

V1.0.0 / 14-April-2017

Main Changes

  • First official release containing the Low Layer templates.

License

+
+
Redistribution +and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met:
+
+
  1. Redistributions +of source code must retain the above copyright notice, this list of +conditions and the following disclaimer.
  2. Redistributions +in binary form must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution.
  3. Neither the +name of STMicroelectronics nor the names of its contributors may be +used to endorse or promote products derived from this software without specific prior written permission.
+
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ +
+
+

For +complete documentation on STM32 Microcontrollers visit www.st.com/STM32

+
+

+
+
+

 

+
+ \ No newline at end of file diff --git a/Services/Chrono.c b/Services/Chrono.c new file mode 100644 index 0000000..975d170 --- /dev/null +++ b/Services/Chrono.c @@ -0,0 +1,134 @@ +// A COMPLETER + +/* +Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100 +Utilise un timer au choix (TIMER1 à TIMER4). +Utilise la lib MyTimers.h /.c +*/ + + + +#include "Chrono.h" +#include "MyTimer.h" + +// variable privée de type Time qui mémorise la durée mesurée +static Time Chrono_Time; // rem : static rend la visibilité de la variable Chrono_Time limitée à ce fichier + +// variable privée qui mémorise pour le module le timer utilisé par le module +static TIM_TypeDef * Chrono_Timer=TIM1; // init par défaut au cas où l'utilisateur ne lance pas Chrono_Conf avant toute autre fct. + +// déclaration callback appelé toute les 10ms +void Chrono_Task_10ms(void); + +/** + * @brief Configure le chronomètre. + * @note A lancer avant toute autre fonction. + * @param Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * @retval None + */ +void Chrono_Conf(TIM_TypeDef * Timer) +{ + // Reset Time + Chrono_Time.Hund=0; + Chrono_Time.Sec=0; + Chrono_Time.Min=0; + + // Fixation du Timer + Chrono_Timer=Timer; + + // Réglage Timer pour un débordement à 10ms + //MyTimer_Conf(Chrono_Timer... + + // Réglage interruption du Timer avec callback : Chrono_Task_10ms() + //MyTimer_IT_Conf(.. + + // Validation IT + //MyTimer_IT_Enable(.. + + +} + + +/** + * @brief Démarre le chronomètre. + * @note si la durée dépasse 59mn 59sec 99 Hund, elle est remise à zéro et repart + * @param Aucun + * @retval Aucun + */ +void Chrono_Start(void) +{ + //MyTimer_Start(..); +} + + +/** + * @brief Arrête le chronomètre. + * @note + * @param Aucun + * @retval Aucun + */ +void Chrono_Stop(void) +{ + //MyTimer_Stop(.. +} + + +/** + * @brief Remet le chronomètre à 0 + * @note + * @param Aucun + * @retval Aucun + */ +void Chrono_Reset(void) +{ + // Arrêt Chrono + //MyTimer_Stop(.. + + // Reset Time + Chrono_Time.Hund=0; + Chrono_Time.Sec=0; + Chrono_Time.Min=0; +} + + +/** + * @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c + * @note + * @param Aucun + * @retval adresse de la variable Time + */ +Time * Chrono_Read(void) +{ + return &Chrono_Time; +} + + + + +/** + * @brief incrémente la variable privée Chron_Time modulo 60mn + * @note + * @param Aucun + * @retval Aucun + */ +void Chrono_Task_10ms(void) +{ + Chrono_Time.Hund++; + if (Chrono_Time.Hund==100) + { + Chrono_Time.Sec++; + Chrono_Time.Hund=0; + } + if (Chrono_Time.Sec==60) + { + Chrono_Time.Min++; + Chrono_Time.Sec=0; + } + if (Chrono_Time.Min==60) + { + Chrono_Time.Hund=0; + } + +} + + diff --git a/Services/Chrono.h b/Services/Chrono.h new file mode 100644 index 0000000..41bedf3 --- /dev/null +++ b/Services/Chrono.h @@ -0,0 +1,69 @@ +// RIEN A MODIFIER // + +#ifndef CHRONO_H +#define CHRONO_H + +/* +Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100 +Utilise un timer au choix (TIMER1 à TIMER4). +Utilise la lib MyTimers.h /.c +*/ + +#include "stm32f103xb.h" + +// Type de donnée utilisé dans le module + +typedef struct { + char Hund; + char Sec; + char Min; +} Time; + + + + +/** + * @brief Configure le chronomètre. + * @note A lancer avant toute autre fonction. + * @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4 + * @retval None + */ +void Chrono_Conf(TIM_TypeDef * Timer); + + +/** + * @brief Démarre le chronomètre. + * @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart + * @param Aucun + * @retval Aucun + */ +void Chrono_Start(void); + + +/** + * @brief Arrête le chronomètre. + * @note + * @param Aucun + * @retval Aucun + */ +void Chrono_Stop(void); + + +/** + * @brief Remet le chronomètre à 0 + * @note + * @param Aucun + * @retval Aucun + */ +void Chrono_Reset(void); + + +/** + * @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c + * @note + * @param Aucun + * @retval adresse de la variable Time + */ +Time * Chrono_Read(void); + +#endif diff --git a/Src/main.c b/Src/main.c new file mode 100644 index 0000000..8566001 --- /dev/null +++ b/Src/main.c @@ -0,0 +1,146 @@ +/** + ****************************************************************************** + * @file Templates_LL/Src/main.c + * @author MCD Application Team + * @brief Main program body through the LL API + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +#include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config +#include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config +#include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config + +#include "Chrono.h" + +void SystemClock_Config(void); + +/* Private functions ---------------------------------------------------------*/ + +/** + * @brief Main program + * @param None + * @retval None + */ +int main(void) +{ + /* Configure the system clock to 72 MHz */ + SystemClock_Config(); + + /* Add your application code here */ + // Configuration chronomètre + Chrono_Conf(TIM2); + + // Lancement chronomètre + Chrono_Start(); + + /* Infinite loop */ + while (1) + { + } +} + + + + + + + +/** + * @brief System Clock Configuration + * The system Clock is configured as follow : + * System Clock source = PLL (HSE) + * SYSCLK(Hz) = 72000000 + * HCLK(Hz) = 72000000 + * AHB Prescaler = 1 + * APB1 Prescaler = 2 + * APB2 Prescaler = 1 + * HSE Frequency(Hz) = 8000000 + * PLLMUL = 9 + * Flash Latency(WS) = 2 + * @param None + * @retval None + */ +void SystemClock_Config(void) +{ + /* Set FLASH latency */ + LL_FLASH_SetLatency(LL_FLASH_LATENCY_2); + + /* Enable HSE oscillator */ + // ********* Commenter la ligne ci-dessous pour MCBSTM32 ***************** + // ********* Conserver la ligne si Nucléo********************************* + LL_RCC_HSE_EnableBypass(); + LL_RCC_HSE_Enable(); + while(LL_RCC_HSE_IsReady() != 1) + { + }; + + /* Main PLL configuration and activation */ + LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9); + + LL_RCC_PLL_Enable(); + while(LL_RCC_PLL_IsReady() != 1) + { + }; + + /* Sysclk activation on the main PLL */ + LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1); + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL); + while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL) + { + }; + + /* Set APB1 & APB2 prescaler*/ + LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2); + LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1); + + /* Set systick to 1ms in using frequency set to 72MHz */ + //LL_Init1msTick(72000000); !! décommenter que si l'IT est récupérée + + /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */ + LL_SetSystemCoreClock(72000000); +} + + + +/* ============== BOARD SPECIFIC CONFIGURATION CODE END ============== */ + +#ifdef USE_FULL_ASSERT + +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d", file, line) */ + + /* Infinite loop */ + while (1) + { + } +} +#endif + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Src/system_stm32f1xx.c b/Src/system_stm32f1xx.c new file mode 100644 index 0000000..fc3d39f --- /dev/null +++ b/Src/system_stm32f1xx.c @@ -0,0 +1,419 @@ +/** + ****************************************************************************** + * @file system_stm32f1xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. + * + * 1. This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier + * factors, AHB/APBx prescalers and Flash settings). + * This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f1xx_xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * 2. After each device reset the HSI (8 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32f1xx_xx.s" file, to + * configure the system clock before to branch to main program. + * + * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depending on + * the product used), refer to "HSE_VALUE". + * When HSE is used as system clock source, directly or through PLL, and you + * are using different crystal you have to adapt the HSE value to your own + * configuration. + * + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f1xx_system + * @{ + */ + +/** @addtogroup STM32F1xx_System_Private_Includes + * @{ + */ + +#include "stm32f1xx.h" + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Defines + * @{ + */ + +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)8000000) /*!< Default value of the Internal oscillator in Hz. + This value can be provided and adapted by the user application. */ +#endif /* HSI_VALUE */ + +/*!< Uncomment the following line if you need to use external SRAM */ +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +/* #define DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ + + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Variables + * @{ + */ + /* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ +uint32_t SystemCoreClock = 16000000; +const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +#ifdef DATA_IN_ExtSRAM + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/** + * @} + */ + +/** @addtogroup STM32F1xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemCoreClock variable. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +void SystemInit (void) +{ + /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + + /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ +#if !defined(STM32F105xC) && !defined(STM32F107xC) + RCC->CFGR &= (uint32_t)0xF8FF0000; +#else + RCC->CFGR &= (uint32_t)0xF0FF0000; +#endif /* STM32F105xC */ + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ + RCC->CFGR &= (uint32_t)0xFF80FFFF; + +#if defined(STM32F105xC) || defined(STM32F107xC) + /* Reset PLL2ON and PLL3ON bits */ + RCC->CR &= (uint32_t)0xEBFFFFFF; + + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x00FF0000; + + /* Reset CFGR2 register */ + RCC->CFGR2 = 0x00000000; +#elif defined(STM32F100xB) || defined(STM32F100xE) + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x009F0000; + + /* Reset CFGR2 register */ + RCC->CFGR2 = 0x00000000; +#else + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x009F0000; +#endif /* STM32F105xC */ + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) + #ifdef DATA_IN_ExtSRAM + SystemInit_ExtMemCtl(); + #endif /* DATA_IN_ExtSRAM */ +#endif + +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f1xx.h file (default value + * 8 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f1xx.h file (default value + * 8 MHz or 25 MHz, depending on the product used), user has to ensure + * that HSE_VALUE is same as the real frequency of the crystal used. + * Otherwise, this function may have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0, pllmull = 0, pllsource = 0; + +#if defined(STM32F105xC) || defined(STM32F107xC) + uint32_t prediv1source = 0, prediv1factor = 0, prediv2factor = 0, pll2mull = 0; +#endif /* STM32F105xC */ + +#if defined(STM32F100xB) || defined(STM32F100xE) + uint32_t prediv1factor = 0; +#endif /* STM32F100xB or STM32F100xE */ + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08: /* PLL used as system clock */ + + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + +#if !defined(STM32F105xC) && !defined(STM32F107xC) + pllmull = ( pllmull >> 18) + 2; + + if (pllsource == 0x00) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1) * pllmull; + } + else + { + #if defined(STM32F100xB) || defined(STM32F100xE) + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + #else + /* HSE selected as PLL clock entry */ + if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET) + {/* HSE oscillator clock divided by 2 */ + SystemCoreClock = (HSE_VALUE >> 1) * pllmull; + } + else + { + SystemCoreClock = HSE_VALUE * pllmull; + } + #endif + } +#else + pllmull = pllmull >> 18; + + if (pllmull != 0x0D) + { + pllmull += 2; + } + else + { /* PLL multiplication factor = PLL input clock * 6.5 */ + pllmull = 13 / 2; + } + + if (pllsource == 0x00) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1) * pllmull; + } + else + {/* PREDIV1 selected as PLL clock entry */ + + /* Get PREDIV1 clock source and division factor */ + prediv1source = RCC->CFGR2 & RCC_CFGR2_PREDIV1SRC; + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; + + if (prediv1source == 0) + { + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + } + else + {/* PLL2 clock selected as PREDIV1 clock entry */ + + /* Get PREDIV2 division factor and PLL2 multiplication factor */ + prediv2factor = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> 4) + 1; + pll2mull = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> 8 ) + 2; + SystemCoreClock = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull; + } + } +#endif /* STM32F105xC */ + break; + + default: + SystemCoreClock = HSI_VALUE; + break; + } + + /* Compute HCLK clock frequency ----------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +#if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) +/** + * @brief Setup the external memory controller. Called in startup_stm32f1xx.s + * before jump to __main + * @param None + * @retval None + */ +#ifdef DATA_IN_ExtSRAM +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f1xx_xx.s/.c before jump to main. + * This function configures the external SRAM mounted on STM3210E-EVAL + * board (STM32 High density devices). This SRAM will be used as program + * data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ +/*!< FSMC Bank1 NOR/SRAM3 is used for the STM3210E-EVAL, if another Bank is + required, then adjust the Register Addresses */ + + /* Enable FSMC clock */ + RCC->AHBENR = 0x00000114; + + /* Enable GPIOD, GPIOE, GPIOF and GPIOG clocks */ + RCC->APB2ENR = 0x000001E0; + +/* --------------- SRAM Data lines, NOE and NWE configuration ---------------*/ +/*---------------- SRAM Address lines configuration -------------------------*/ +/*---------------- NOE and NWE configuration --------------------------------*/ +/*---------------- NE3 configuration ----------------------------------------*/ +/*---------------- NBL0, NBL1 configuration ---------------------------------*/ + + GPIOD->CRL = 0x44BB44BB; + GPIOD->CRH = 0xBBBBBBBB; + + GPIOE->CRL = 0xB44444BB; + GPIOE->CRH = 0xBBBBBBBB; + + GPIOF->CRL = 0x44BBBBBB; + GPIOF->CRH = 0xBBBB4444; + + GPIOG->CRL = 0x44BBBBBB; + GPIOG->CRH = 0x44444B44; + +/*---------------- FSMC Configuration ---------------------------------------*/ +/*---------------- Enable FSMC Bank1_SRAM Bank ------------------------------*/ + + FSMC_Bank1->BTCR[4] = 0x00001011; + FSMC_Bank1->BTCR[5] = 0x00000200; +} +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..bbec5bc --- /dev/null +++ b/readme.txt @@ -0,0 +1,146 @@ +============= Génération de ce projet, T.Rocacher =========================================== +Le projet est basé sur CubeF1/STM32Cube_FW_F1_V1.8.0/Projects/STM32F103RB-Nucleo/Templates_LL +La seconde partie de ce readme est l'original qu'on peut trouver dans /Templates_LL + +NB: curieusement ds le main, la fonction void SystemClock_Config(void) est différente des exemples LL. +Elle est donc modifiée pour coller à tout les exemples LL, en particulier, elle utilise la lib utils. + + +Cette partie du readme explique les modifications apportées à Templates_LL +============================================================================================= + +*********************** LES MODIFICATIONS ************************************************ + +############# Structuration du projet, du répertoire (modif par rapport au template ######## + +La philosophie générale est de partir du template et de sortir du projet tout ce qui n'est pas utile +en terme de lib LL. On a tout de même besoin de RCC et de utils (les deux pour la clock conf) +Chaque projet est donc "self contained" et contient les lib LL dont il a besoin. + + +Structure physique des répertoire +/Inc (h "systeme") +/src (main et system_stm32f1xx.c = systeminit au boot startup) +/LLDrivers : src et inc des drivers LL utiles, ici rcc et utils +/MDK-ARM : le projet KEIL +/Services: vide pour l'instant... + +Structure de groupes de KEIL en deux grandes parties : +Partie sources user +/User Applications +/User Services +/MyDriver les drivers à faire à la main ... +/Drivers/STM32f1xx_LL_Driver +/Doc + +Partie système +/Drivers/CMSIS (l'init system depuis boot) +/Example/MDK-ARM contient le startup + + +###### La récupération des IT ############## +La philosophie LL est de récupérer les IT dans un fichier spécifique stm32f1xx_it.c. +Il est supprimé de manière à ce que les handlers soient placés dans les divers modules que les +étudiants construiront. + + +###### Divers main ############## +main.h enlevé +Remarque ligne 72 LL_RCC_HSE_EnableBypass();, si on devait travailler sur MCBSTM32, il faudrait commenter la ligne +Ligne 108 commentée, il s'agit de l'activation systick inutile mais qui active les IT non récupérée ... donc otée + +*********************** FIN DES MODIFICATIONS ************************************************ + + +Readme d'origine ... + + + +/** + @page Templates_LL Description of the Templates_LL example + + @verbatim + ******************** (C) COPYRIGHT 2017 STMicroelectronics ******************* + * @file Templates_LL/readme.txt + * @author MCD Application Team + * @brief Description of the Templates_LL example. + ****************************************************************************** + * @attention + * + *

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

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + @endverbatim + +@par Example Description + +This projects provides a reference template through the LL API that can be used to build any firmware application. + +This project LL template provides: + - Inclusion of all LL drivers (include files in "main.h" and LL sources files in IDE environment, with option "USE_FULL_LL_DRIVER" in IDE environment) + Note: If optimization is needed afterwards, user can perform a cleanup by removing unused drivers. + - Definition of LEDs and user button (file: main.h) + Note: User button name printed on board may differ from naming "user button" in code: "key button", ... + - Clock configuration (file: main.c) + +This project LL template does not provide: + - Functions to initialize and control LED and user button + - Functions to manage IRQ handler of user button + +To port a LL example to the targeted board: +1. Select the LL example to port. + To find the board on which LL examples are deployed, refer to LL examples list in "STM32CubeProjectsList.html", table section "Examples_LL" + or AN4724: STM32Cube firmware examples for STM32F1 Series + +2. Replace source files of the LL template by the ones of the LL example, except code specific to board. + Note: Code specific to board is specified between tags: + /* ============== BOARD SPECIFIC CONFIGURATION CODE BEGIN ============== */ + /* ============== BOARD SPECIFIC CONFIGURATION CODE END ============== */ + + - Replace file main.h, with updates: + - Keep LED and user button definition of the LL template under tags + + - Replace file main.c, with updates: + - Keep clock configuration of the LL template: function "SystemClock_Config()" + - Depending of LED availability, replace LEDx_PIN by another LEDx (number) available in file main.h + + - Replace file stm32f1xx_it.h + - Replace file stm32f1xx_it.c + +@par Keywords + +Reference, Templates_LL + +@par Directory contents + + - Templates_LL/Inc/stm32f1xx_it.h Interrupt handlers header file + - Templates_LL/Inc/main.h Header for main.c module + - Templates_LL/Inc/stm32_assert.h Template file to include assert_failed function + - Templates_LL/Src/stm32f1xx_it.c Interrupt handlers + - Templates_LL/Src/main.c Main program + - Templates_LL/Src/system_stm32f1xx.c STM32f1x system source file + + +@par Hardware and Software environment + + - This template runs on STM32F103xB devices. + + - This template has been tested with STM32F103RB-Nucleo RevC board and can be + easily tailored to any other supported device and development board. + + +@par How to use it ? + +In order to make the program work, you must do the following : + - Open your preferred toolchain + - Rebuild all files and load your image into target memory + - Run the example + + *

© COPYRIGHT STMicroelectronics

+ */