diff --git a/Libraries/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf b/Libraries/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aabdddc5d9c5804f9b983d2d50ae8e0812fd21d0 GIT binary patch literal 24914 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
© COPYRIGHT 2013 STMicroelectronics
+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32l1xx + * @{ + */ + +#ifndef __STM32L1XX_H +#define __STM32L1XX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/** @addtogroup Library_configuration_section + * @{ + */ + +/* Uncomment the line below according to the target STM32L device used in your + application + */ + +#if !defined (STM32L1XX_MD) && !defined (STM32L1XX_MDP) && !defined (STM32L1XX_HD) + +/* #define STM32L1XX_MD */ /*!< - Ultra Low Power Medium-density devices: STM32L151x6xx, STM32L151x8xx, + STM32L151xBxx, STM32L152x6xx, STM32L152x8xx and STM32L152xBxx. + - Ultra Low Power Medium-density Value Line devices: STM32L100x6xx, + STM32L100x8xx and STM32L100xBxx. */ + +/* #define STM32L1XX_MDP */ /*!< - Ultra Low Power Medium-density Plus devices: STM32L151xCxx, STM32L152xCxx and STM32L162xCxx + - Ultra Low Power Medium-density Plus Value Line devices: STM32L100xCxx */ + +#define STM32L1XX_HD /*!< Ultra Low Power High-density devices: STM32L151xDxx, STM32L152xDxx and STM32L162xDxx */ +#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 (STM32L1XX_MD) && !defined (STM32L1XX_MDP) && !defined (STM32L1XX_HD) + #error "Please select first the target STM32L1xx device used in your application (in stm32l1xx.h file)" +#endif + +#if !defined USE_STDPERIPH_DRIVER +/** + * @brief Comment the line below if you will not use the peripherals drivers. + In this case, these drivers will not be included and the application code will + be based on direct access to peripherals registers + */ + /*#define USE_STDPERIPH_DRIVER*/ +#endif + +/** + * @brief In the following line adjust the value of External High Speed oscillator (HSE) + used in your application + + Tip: To avoid modifying this file each time you need to use different HSE, you + can define the HSE value in your toolchain compiler preprocessor. + */ +#if !defined (HSE_VALUE) +#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ +#endif + +/** + * @brief In the following line adjust the External High Speed oscillator (HSE) Startup + Timeout value + */ +#if !defined (HSE_STARTUP_TIMEOUT) +#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSE start up */ +#endif + +/** + * @brief In the following line adjust the Internal High Speed oscillator (HSI) Startup + Timeout value + */ +#if !defined (HSI_STARTUP_TIMEOUT) +#define HSI_STARTUP_TIMEOUT ((uint16_t)0x0500) /*!< Time out for HSI start up */ +#endif + +#if !defined (HSI_VALUE) +#define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal High Speed oscillator in Hz. + The real value may vary depending on the variations + in voltage and temperature. */ +#endif + +#if !defined (LSI_VALUE) +#define LSI_VALUE ((uint32_t)37000) /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature. */ +#endif + +#if !defined (LSE_VALUE) +#define LSE_VALUE ((uint32_t)32768) /*!< Value of the External Low Speed oscillator in Hz */ +#endif + +/** + * @brief STM32L1xx Standard Peripheral Library version number V1.2.1 + */ +#define __STM32L1XX_STDPERIPH_VERSION_MAIN (0x01) /*!< [31:24] main version */ +#define __STM32L1XX_STDPERIPH_VERSION_SUB1 (0x02) /*!< [23:16] sub1 version */ +#define __STM32L1XX_STDPERIPH_VERSION_SUB2 (0x01) /*!< [15:8] sub2 version */ +#define __STM32L1XX_STDPERIPH_VERSION_RC (0x00) /*!< [7:0] release candidate */ +#define __STM32L1XX_STDPERIPH_VERSION ( (__STM32L1XX_STDPERIPH_VERSION_MAIN << 24)\ + |(__STM32L1XX_STDPERIPH_VERSION_SUB1 << 16)\ + |(__STM32L1XX_STDPERIPH_VERSION_SUB2 << 8)\ + |(__STM32L1XX_STDPERIPH_VERSION_RC)) + +/** + * @} + */ + +/** @addtogroup Configuration_section_for_CMSIS + * @{ + */ + +/** + * @brief STM32L1xx Interrupt Number Definition, according to the selected device + * in @ref Library_configuration_section + */ +#define __CM3_REV 0x200 /*!< Cortex-M3 Revision r2p0 */ +#define __MPU_PRESENT 1 /*!< STM32L1 provides MPU */ +#define __NVIC_PRIO_BITS 4 /*!< STM32L1 uses 4 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +/*!< Interrupt Number Definition */ +typedef enum IRQn +{ +/****** Cortex-M3 Processor Exceptions Numbers ******************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ + MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ + BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ + UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ + SVC_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ + SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ + +/****** STM32L specific Interrupt Numbers ***********************************************************/ + WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ + PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ + TAMPER_STAMP_IRQn = 2, /*!< Tamper and Time Stamp through EXTI Line Interrupts */ + RTC_WKUP_IRQn = 3, /*!< RTC Wakeup Timer through EXTI Line Interrupt */ + FLASH_IRQn = 4, /*!< FLASH global Interrupt */ + RCC_IRQn = 5, /*!< RCC global Interrupt */ + EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ + EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ + EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ + EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ + EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */ + DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */ + DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */ + DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */ + DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */ + DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */ + DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */ + DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt */ + ADC1_IRQn = 18, /*!< ADC1 global Interrupt */ + USB_HP_IRQn = 19, /*!< USB High Priority Interrupt */ + USB_LP_IRQn = 20, /*!< USB Low Priority Interrupt */ + DAC_IRQn = 21, /*!< DAC Interrupt */ + COMP_IRQn = 22, /*!< Comparator through EXTI Line Interrupt */ + EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */ + LCD_IRQn = 24, /*!< LCD Interrupt */ + TIM9_IRQn = 25, /*!< TIM9 global Interrupt */ + TIM10_IRQn = 26, /*!< TIM10 global Interrupt */ + TIM11_IRQn = 27, /*!< TIM11 global Interrupt */ + TIM2_IRQn = 28, /*!< TIM2 global Interrupt */ + TIM3_IRQn = 29, /*!< TIM3 global Interrupt */ + TIM4_IRQn = 30, /*!< TIM4 global Interrupt */ + I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */ + I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */ + I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */ + I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */ + SPI1_IRQn = 35, /*!< SPI1 global Interrupt */ + SPI2_IRQn = 36, /*!< SPI2 global Interrupt */ + USART1_IRQn = 37, /*!< USART1 global Interrupt */ + USART2_IRQn = 38, /*!< USART2 global Interrupt */ + USART3_IRQn = 39, /*!< USART3 global Interrupt */ + EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */ + RTC_Alarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */ + USB_FS_WKUP_IRQn = 42, /*!< USB FS WakeUp from suspend through EXTI Line Interrupt */ + TIM6_IRQn = 43, /*!< TIM6 global Interrupt */ +#ifdef STM32L1XX_MD + TIM7_IRQn = 44 /*!< TIM7 global Interrupt */ +#endif /* STM32L1XX_MD */ + +#ifdef STM32L1XX_MDP + TIM7_IRQn = 44, /*!< TIM7 global Interrupt */ + TIM5_IRQn = 46, /*!< TIM5 global Interrupt */ + SPI3_IRQn = 47, /*!< SPI3 global Interrupt */ + DMA2_Channel1_IRQn = 50, /*!< DMA2 Channel 1 global Interrupt */ + DMA2_Channel2_IRQn = 51, /*!< DMA2 Channel 2 global Interrupt */ + DMA2_Channel3_IRQn = 52, /*!< DMA2 Channel 3 global Interrupt */ + DMA2_Channel4_IRQn = 53, /*!< DMA2 Channel 4 global Interrupt */ + DMA2_Channel5_IRQn = 54, /*!< DMA2 Channel 5 global Interrupt */ + AES_IRQn = 55, /*!< AES global Interrupt */ + COMP_ACQ_IRQn = 56 /*!< Comparator Channel Acquisition global Interrupt */ +#endif /* STM32L1XX_MDP */ + +#ifdef STM32L1XX_HD + TIM7_IRQn = 44, /*!< TIM7 global Interrupt */ + SDIO_IRQn = 45, /*!< SDIO global Interrupt */ + TIM5_IRQn = 46, /*!< TIM5 global Interrupt */ + SPI3_IRQn = 47, /*!< SPI3 global Interrupt */ + UART4_IRQn = 48, /*!< UART4 global Interrupt */ + UART5_IRQn = 49, /*!< UART5 global Interrupt */ + DMA2_Channel1_IRQn = 50, /*!< DMA2 Channel 1 global Interrupt */ + DMA2_Channel2_IRQn = 51, /*!< DMA2 Channel 2 global Interrupt */ + DMA2_Channel3_IRQn = 52, /*!< DMA2 Channel 3 global Interrupt */ + DMA2_Channel4_IRQn = 53, /*!< DMA2 Channel 4 global Interrupt */ + DMA2_Channel5_IRQn = 54, /*!< DMA2 Channel 5 global Interrupt */ + AES_IRQn = 55, /*!< AES global Interrupt */ + COMP_ACQ_IRQn = 56 /*!< Comparator Channel Acquisition global Interrupt */ +#endif /* STM32L1XX_HD */ +} IRQn_Type; + +/** + * @} + */ + +#include "core_cm3.h" +#include "system_stm32l1xx.h" +#include + +/** @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 {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; + +/** + * @brief __RAM_FUNC definition + */ +#if defined ( __CC_ARM ) +/* ARM Compiler + ------------ + RAM functions are defined using the toolchain options. + Functions that are executed in RAM should reside in a separate source module. + Using the 'Options for File' dialog you can simply change the 'Code / Const' + area of a module to a memory space in physical RAM. + Available memory areas are declared in the 'Target' tab of the 'Options for Target' + dialog. +*/ + #define __RAM_FUNC FLASH_Status + +#elif defined ( __ICCARM__ ) +/* ICCARM Compiler + --------------- + RAM functions are defined using a specific toolchain keyword "__ramfunc". +*/ + #define __RAM_FUNC __ramfunc FLASH_Status + +#elif defined ( __GNUC__ ) +/* GNU Compiler + ------------ + RAM functions are defined using a specific toolchain attribute + "__attribute__((section(".data")))". +*/ + #define __RAM_FUNC FLASH_Status __attribute__((section(".data"))) + +#elif defined ( __TASKING__ ) +/* TASKING Compiler + ---------------- + RAM functions are defined using a specific toolchain pragma. This pragma is + defined in the stm32l1xx_flash_ramfunc.c +*/ + #define __RAM_FUNC FLASH_Status + +#endif + +/** + * @} + */ + +/** @addtogroup Peripheral_registers_structures + * @{ + */ + +/** + * @brief Analog to Digital Converter + */ + +typedef struct +{ + __IO uint32_t SR; /*!< ADC status register, Address offset: 0x00 */ + __IO uint32_t CR1; /*!< ADC control register 1, Address offset: 0x04 */ + __IO uint32_t CR2; /*!< ADC control register 2, Address offset: 0x08 */ + __IO uint32_t SMPR1; /*!< ADC sample time register 1, Address offset: 0x0C */ + __IO uint32_t SMPR2; /*!< ADC sample time register 2, Address offset: 0x10 */ + __IO uint32_t SMPR3; /*!< ADC sample time register 3, Address offset: 0x14 */ + __IO uint32_t JOFR1; /*!< ADC injected channel data offset register 1, Address offset: 0x18 */ + __IO uint32_t JOFR2; /*!< ADC injected channel data offset register 2, Address offset: 0x1C */ + __IO uint32_t JOFR3; /*!< ADC injected channel data offset register 3, Address offset: 0x20 */ + __IO uint32_t JOFR4; /*!< ADC injected channel data offset register 4, Address offset: 0x24 */ + __IO uint32_t HTR; /*!< ADC watchdog higher threshold register, Address offset: 0x28 */ + __IO uint32_t LTR; /*!< ADC watchdog lower threshold register, Address offset: 0x2C */ + __IO uint32_t SQR1; /*!< ADC regular sequence register 1, Address offset: 0x30 */ + __IO uint32_t SQR2; /*!< ADC regular sequence register 2, Address offset: 0x34 */ + __IO uint32_t SQR3; /*!< ADC regular sequence register 3, Address offset: 0x38 */ + __IO uint32_t SQR4; /*!< ADC regular sequence register 4, Address offset: 0x3C */ + __IO uint32_t SQR5; /*!< ADC regular sequence register 5, Address offset: 0x40 */ + __IO uint32_t JSQR; /*!< ADC injected sequence register, Address offset: 0x44 */ + __IO uint32_t JDR1; /*!< ADC injected data register 1, Address offset: 0x48 */ + __IO uint32_t JDR2; /*!< ADC injected data register 2, Address offset: 0x4C */ + __IO uint32_t JDR3; /*!< ADC injected data register 3, Address offset: 0x50 */ + __IO uint32_t JDR4; /*!< ADC injected data register 4, Address offset: 0x54 */ + __IO uint32_t DR; /*!< ADC regular data register, Address offset: 0x58 */ + __IO uint32_t SMPR0; /*!< ADC sample time register 0, Address offset: 0x5C */ +} ADC_TypeDef; + +typedef struct +{ + __IO uint32_t CSR; /*!< ADC common status register, Address offset: ADC1 base address + 0x300 */ + __IO uint32_t CCR; /*!< ADC common control register, Address offset: ADC1 base address + 0x304 */ +} ADC_Common_TypeDef; + + +/** + * @brief AES hardware accelerator + */ + +typedef struct +{ + __IO uint32_t CR; /*!< AES control register, Address offset: 0x00 */ + __IO uint32_t SR; /*!< AES status register, Address offset: 0x04 */ + __IO uint32_t DINR; /*!< AES data input register, Address offset: 0x08 */ + __IO uint32_t DOUTR; /*!< AES data output register, Address offset: 0x0C */ + __IO uint32_t KEYR0; /*!< AES key register 0, Address offset: 0x10 */ + __IO uint32_t KEYR1; /*!< AES key register 1, Address offset: 0x14 */ + __IO uint32_t KEYR2; /*!< AES key register 2, Address offset: 0x18 */ + __IO uint32_t KEYR3; /*!< AES key register 3, Address offset: 0x1C */ + __IO uint32_t IVR0; /*!< AES initialization vector register 0, Address offset: 0x20 */ + __IO uint32_t IVR1; /*!< AES initialization vector register 1, Address offset: 0x24 */ + __IO uint32_t IVR2; /*!< AES initialization vector register 2, Address offset: 0x28 */ + __IO uint32_t IVR3; /*!< AES initialization vector register 3, Address offset: 0x2C */ +} AES_TypeDef; + +/** + * @brief Comparator + */ + +typedef struct +{ + __IO uint32_t CSR; /*!< COMP comparator control and status register, Address offset: 0x00 */ +} COMP_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, 0x05 */ + uint16_t RESERVED1; /*!< Reserved, 0x06 */ + __IO uint32_t CR; /*!< CRC Control register, Address offset: 0x08 */ +} CRC_TypeDef; + +/** + * @brief Digital to Analog Converter + */ + +typedef struct +{ + __IO uint32_t CR; /*!< DAC control register, Address offset: 0x00 */ + __IO uint32_t SWTRIGR; /*!< DAC software trigger register, Address offset: 0x04 */ + __IO uint32_t DHR12R1; /*!< DAC channel1 12-bit right-aligned data holding register, Address offset: 0x08 */ + __IO uint32_t DHR12L1; /*!< DAC channel1 12-bit left aligned data holding register, Address offset: 0x0C */ + __IO uint32_t DHR8R1; /*!< DAC channel1 8-bit right aligned data holding register, Address offset: 0x10 */ + __IO uint32_t DHR12R2; /*!< DAC channel2 12-bit right aligned data holding register, Address offset: 0x14 */ + __IO uint32_t DHR12L2; /*!< DAC channel2 12-bit left aligned data holding register, Address offset: 0x18 */ + __IO uint32_t DHR8R2; /*!< DAC channel2 8-bit right-aligned data holding register, Address offset: 0x1C */ + __IO uint32_t DHR12RD; /*!< Dual DAC 12-bit right-aligned data holding register, Address offset: 0x20 */ + __IO uint32_t DHR12LD; /*!< DUAL DAC 12-bit left aligned data holding register, Address offset: 0x24 */ + __IO uint32_t DHR8RD; /*!< DUAL DAC 8-bit right aligned data holding register, Address offset: 0x28 */ + __IO uint32_t DOR1; /*!< DAC channel1 data output register, Address offset: 0x2C */ + __IO uint32_t DOR2; /*!< DAC channel2 data output register, Address offset: 0x30 */ + __IO uint32_t SR; /*!< DAC status register, Address offset: 0x34 */ +} DAC_TypeDef; + +/** + * @brief Debug MCU + */ + +typedef struct +{ + __IO uint32_t IDCODE; /*!< MCU device ID code, Address offset: 0x00 */ + __IO uint32_t CR; /*!< Debug MCU configuration register, Address offset: 0x04 */ + __IO uint32_t APB1FZ; /*!< Debug MCU APB1 freeze register, Address offset: 0x08 */ + __IO uint32_t APB2FZ; /*!< Debug MCU APB2 freeze register, Address offset: 0x0C */ +}DBGMCU_TypeDef; + +/** + * @brief DMA Controller + */ + +typedef struct +{ + __IO uint32_t CCR; /*!< DMA channel x configuration register */ + __IO uint32_t CNDTR; /*!< DMA channel x number of data register */ + __IO uint32_t CPAR; /*!< DMA channel x peripheral address register */ + __IO uint32_t CMAR; /*!< DMA channel x memory address register */ +} DMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t ISR; /*!< DMA interrupt status register, Address offset: 0x00 */ + __IO uint32_t IFCR; /*!< DMA interrupt flag clear register, Address offset: 0x04 */ +} DMA_TypeDef; + +/** + * @brief External Interrupt/Event Controller + */ + +typedef struct +{ + __IO uint32_t IMR; /*!< EXTI interrupt mask register, Address offset: 0x00 */ + __IO uint32_t EMR; /*!< EXTI event mask register, Address offset: 0x04 */ + __IO uint32_t RTSR; /*!< EXTI rising edge trigger selection register, Address offset: 0x08 */ + __IO uint32_t FTSR; /*!< EXTI Falling edge trigger selection register, Address offset: 0x0C */ + __IO uint32_t SWIER; /*!< EXTI software interrupt event register, Address offset: 0x10 */ + __IO uint32_t PR; /*!< EXTI pending register, Address offset: 0x14 */ +} EXTI_TypeDef; + +/** + * @brief FLASH Registers + */ + +typedef struct +{ + __IO uint32_t ACR; /*!< Access control register, Address offset: 0x00 */ + __IO uint32_t PECR; /*!< Program/erase control register, Address offset: 0x04 */ + __IO uint32_t PDKEYR; /*!< Power down key register, Address offset: 0x08 */ + __IO uint32_t PEKEYR; /*!< Program/erase key register, Address offset: 0x0c */ + __IO uint32_t PRGKEYR; /*!< Program memory key register, Address offset: 0x10 */ + __IO uint32_t OPTKEYR; /*!< Option byte key register, Address offset: 0x14 */ + __IO uint32_t SR; /*!< Status register, Address offset: 0x18 */ + __IO uint32_t OBR; /*!< Option byte register, Address offset: 0x1c */ + __IO uint32_t WRPR; /*!< Write protection register, Address offset: 0x20 */ + uint32_t RESERVED[23]; /*!< Reserved, 0x24 */ + __IO uint32_t WRPR1; /*!< Write protection register 1, Address offset: 0x28 */ + __IO uint32_t WRPR2; /*!< Write protection register 2, Address offset: 0x2C */ +} FLASH_TypeDef; + +/** + * @brief Option Bytes Registers + */ + +typedef struct +{ + __IO uint32_t RDP; /*!< Read protection register, Address offset: 0x00 */ + __IO uint32_t USER; /*!< user register, Address offset: 0x04 */ + __IO uint32_t WRP01; /*!< write protection register 0 1, Address offset: 0x08 */ + __IO uint32_t WRP23; /*!< write protection register 2 3, Address offset: 0x0C */ + __IO uint32_t WRP45; /*!< write protection register 4 5, Address offset: 0x10 */ + __IO uint32_t WRP67; /*!< write protection register 6 7, Address offset: 0x14 */ + __IO uint32_t WRP89; /*!< write protection register 8 9, Address offset: 0x18 */ + __IO uint32_t WRP1011; /*!< write protection register 10 11, Address offset: 0x1C */ +} OB_TypeDef; + +/** + * @brief Operational Amplifier (OPAMP) + */ + +typedef struct +{ + __IO uint32_t CSR; /*!< OPAMP control/status register, Address offset: 0x00 */ + __IO uint32_t OTR; /*!< OPAMP offset trimming register for normal mode, Address offset: 0x04 */ + __IO uint32_t LPOTR; /*!< OPAMP offset trimming register for low power mode, Address offset: 0x08 */ +} OPAMP_TypeDef; + +/** + * @brief Flexible Static Memory Controller + */ + +typedef struct +{ + __IO uint32_t BTCR[8]; /*!< NOR/PSRAM chip-select control register(BCR) and chip-select timing register(BTR), Address offset: 0x00-1C */ +} FSMC_Bank1_TypeDef; + +/** + * @brief Flexible Static Memory Controller Bank1E + */ + +typedef struct +{ + __IO uint32_t BWTR[7]; /*!< NOR/PSRAM write timing registers, Address offset: 0x104-0x11C */ +} FSMC_Bank1E_TypeDef; + +/** + * @brief General Purpose IO + */ + +typedef struct +{ + __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ + __IO uint16_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ + uint16_t RESERVED0; /*!< Reserved, 0x06 */ + __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset: 0x08 */ + __IO uint32_t PUPDR; /*!< GPIO port pull-up/pull-down register, Address offset: 0x0C */ + __IO uint16_t IDR; /*!< GPIO port input data register, Address offset: 0x10 */ + uint16_t RESERVED1; /*!< Reserved, 0x12 */ + __IO uint16_t ODR; /*!< GPIO port output data register, Address offset: 0x14 */ + uint16_t RESERVED2; /*!< Reserved, 0x16 */ + __IO uint16_t BSRRL; /*!< GPIO port bit set/reset low registerBSRR, Address offset: 0x18 */ + __IO uint16_t BSRRH; /*!< GPIO port bit set/reset high registerBSRR, Address offset: 0x1A */ + __IO uint32_t LCKR; /*!< GPIO port configuration lock register, Address offset: 0x1C */ + __IO uint32_t AFR[2]; /*!< GPIO alternate function low register, Address offset: 0x20-0x24 */ + __IO uint16_t BRR; /*!< GPIO bit reset register, Address offset: 0x28 */ + uint16_t RESERVED3; /*!< Reserved, 0x2A */ +} GPIO_TypeDef; + +/** + * @brief SysTem Configuration + */ + +typedef struct +{ + __IO uint32_t MEMRMP; /*!< SYSCFG memory remap register, Address offset: 0x00 */ + __IO uint32_t PMC; /*!< SYSCFG peripheral mode configuration register, Address offset: 0x04 */ + __IO uint32_t EXTICR[4]; /*!< SYSCFG external interrupt configuration registers, Address offset: 0x08-0x14 */ +} SYSCFG_TypeDef; + +/** + * @brief Inter-integrated Circuit Interface + */ + +typedef struct +{ + __IO uint16_t CR1; /*!< I2C Control register 1, Address offset: 0x00 */ + uint16_t RESERVED0; /*!< Reserved, 0x02 */ + __IO uint16_t CR2; /*!< I2C Control register 2, Address offset: 0x04 */ + uint16_t RESERVED1; /*!< Reserved, 0x06 */ + __IO uint16_t OAR1; /*!< I2C Own address register 1, Address offset: 0x08 */ + uint16_t RESERVED2; /*!< Reserved, 0x0A */ + __IO uint16_t OAR2; /*!< I2C Own address register 2, Address offset: 0x0C */ + uint16_t RESERVED3; /*!< Reserved, 0x0E */ + __IO uint16_t DR; /*!< I2C Data register, Address offset: 0x10 */ + uint16_t RESERVED4; /*!< Reserved, 0x12 */ + __IO uint16_t SR1; /*!< I2C Status register 1, Address offset: 0x14 */ + uint16_t RESERVED5; /*!< Reserved, 0x16 */ + __IO uint16_t SR2; /*!< I2C Status register 2, Address offset: 0x18 */ + uint16_t RESERVED6; /*!< Reserved, 0x1A */ + __IO uint16_t CCR; /*!< I2C Clock control register, Address offset: 0x1C */ + uint16_t RESERVED7; /*!< Reserved, 0x1E */ + __IO uint16_t TRISE; /*!< I2C TRISE register, Address offset: 0x20 */ + uint16_t RESERVED8; /*!< Reserved, 0x22 */ +} I2C_TypeDef; + +/** + * @brief Independent WATCHDOG + */ + +typedef struct +{ + __IO uint32_t KR; /*!< Key register, Address offset: 0x00 */ + __IO uint32_t PR; /*!< Prescaler register, Address offset: 0x04 */ + __IO uint32_t RLR; /*!< Reload register, Address offset: 0x08 */ + __IO uint32_t SR; /*!< Status register, Address offset: 0x0C */ +} IWDG_TypeDef; + + +/** + * @brief LCD + */ + +typedef struct +{ + __IO uint32_t CR; /*!< LCD control register, Address offset: 0x00 */ + __IO uint32_t FCR; /*!< LCD frame control register, Address offset: 0x04 */ + __IO uint32_t SR; /*!< LCD status register, Address offset: 0x08 */ + __IO uint32_t CLR; /*!< LCD clear register, Address offset: 0x0C */ + uint32_t RESERVED; /*!< Reserved, Address offset: 0x10 */ + __IO uint32_t RAM[16]; /*!< LCD display memory, Address offset: 0x14-0x50 */ +} LCD_TypeDef; + +/** + * @brief Power Control + */ + +typedef struct +{ + __IO uint32_t CR; /*!< PWR power control register, Address offset: 0x00 */ + __IO uint32_t CSR; /*!< PWR power control/status register, Address offset: 0x04 */ +} PWR_TypeDef; + +/** + * @brief Reset and Clock Control + */ + +typedef struct +{ + __IO uint32_t CR; /*!< RCC clock control register, Address offset: 0x00 */ + __IO uint32_t ICSCR; /*!< RCC Internal clock sources calibration register, Address offset: 0x04 */ + __IO uint32_t CFGR; /*!< RCC Clock configuration register, Address offset: 0x08 */ + __IO uint32_t CIR; /*!< RCC Clock interrupt register, Address offset: 0x0C */ + __IO uint32_t AHBRSTR; /*!< RCC AHB peripheral reset register, Address offset: 0x10 */ + __IO uint32_t APB2RSTR; /*!< RCC APB2 peripheral reset register, Address offset: 0x14 */ + __IO uint32_t APB1RSTR; /*!< RCC APB1 peripheral reset register, Address offset: 0x18 */ + __IO uint32_t AHBENR; /*!< RCC AHB peripheral clock enable register, Address offset: 0x1C */ + __IO uint32_t APB2ENR; /*!< RCC APB2 peripheral clock enable register, Address offset: 0x20 */ + __IO uint32_t APB1ENR; /*!< RCC APB1 peripheral clock enable register, Address offset: 0x24 */ + __IO uint32_t AHBLPENR; /*!< RCC AHB peripheral clock enable in low power mode register, Address offset: 0x28 */ + __IO uint32_t APB2LPENR; /*!< RCC APB2 peripheral clock enable in low power mode register, Address offset: 0x2C */ + __IO uint32_t APB1LPENR; /*!< RCC APB1 peripheral clock enable in low power mode register, Address offset: 0x30 */ + __IO uint32_t CSR; /*!< RCC Control/status register, Address offset: 0x34 */ +} RCC_TypeDef; + +/** + * @brief Routing Interface + */ + +typedef struct +{ + __IO uint32_t ICR; /*!< RI input capture register, Address offset: 0x04 */ + __IO uint32_t ASCR1; /*!< RI analog switches control register, Address offset: 0x08 */ + __IO uint32_t ASCR2; /*!< RI analog switch control register 2, Address offset: 0x0C */ + __IO uint32_t HYSCR1; /*!< RI hysteresis control register 1, Address offset: 0x10 */ + __IO uint32_t HYSCR2; /*!< RI Hysteresis control register 2, Address offset: 0x14 */ + __IO uint32_t HYSCR3; /*!< RI Hysteresis control register 3, Address offset: 0x18 */ + __IO uint32_t HYSCR4; /*!< RI Hysteresis control register 4, Address offset: 0x1C */ + __IO uint32_t ASMR1; /*!< RI Analog switch mode register 1, Address offset: 0x20 */ + __IO uint32_t CMR1; /*!< RI Channel mask register 1, Address offset: 0x24 */ + __IO uint32_t CICR1; /*!< RI Channel identification for capture register 1, Address offset: 0x28 */ + __IO uint32_t ASMR2; /*!< RI Analog switch mode register 2, Address offset: 0x2C */ + __IO uint32_t CMR2; /*!< RI Channel mask register 2, Address offset: 0x30 */ + __IO uint32_t CICR2; /*!< RI Channel identification for capture register 2, Address offset: 0x34 */ + __IO uint32_t ASMR3; /*!< RI Analog switch mode register 3, Address offset: 0x38 */ + __IO uint32_t CMR3; /*!< RI Channel mask register 3, Address offset: 0x3C */ + __IO uint32_t CICR3; /*!< RI Channel identification for capture register3 , Address offset: 0x40 */ + __IO uint32_t ASMR4; /*!< RI Analog switch mode register 4, Address offset: 0x44 */ + __IO uint32_t CMR4; /*!< RI Channel mask register 4, Address offset: 0x48 */ + __IO uint32_t CICR4; /*!< RI Channel identification for capture register 4, Address offset: 0x4C */ + __IO uint32_t ASMR5; /*!< RI Analog switch mode register 5, Address offset: 0x50 */ + __IO uint32_t CMR5; /*!< RI Channel mask register 5, Address offset: 0x54 */ + __IO uint32_t CICR5; /*!< RI Channel identification for capture register 5, Address offset: 0x58 */ +} RI_TypeDef; + +/** + * @brief Real-Time Clock + */ + +typedef struct +{ + __IO uint32_t TR; /*!< RTC time register, Address offset: 0x00 */ + __IO uint32_t DR; /*!< RTC date register, Address offset: 0x04 */ + __IO uint32_t CR; /*!< RTC control register, Address offset: 0x08 */ + __IO uint32_t ISR; /*!< RTC initialization and status register, Address offset: 0x0C */ + __IO uint32_t PRER; /*!< RTC prescaler register, Address offset: 0x10 */ + __IO uint32_t WUTR; /*!< RTC wakeup timer register, Address offset: 0x14 */ + __IO uint32_t CALIBR; /*!< RTC calibration register, Address offset: 0x18 */ + __IO uint32_t ALRMAR; /*!< RTC alarm A register, Address offset: 0x1C */ + __IO uint32_t ALRMBR; /*!< RTC alarm B register, Address offset: 0x20 */ + __IO uint32_t WPR; /*!< RTC write protection register, Address offset: 0x24 */ + __IO uint32_t SSR; /*!< RTC sub second register, Address offset: 0x28 */ + __IO uint32_t SHIFTR; /*!< RTC shift control register, Address offset: 0x2C */ + __IO uint32_t TSTR; /*!< RTC time stamp time register, Address offset: 0x30 */ + __IO uint32_t TSDR; /*!< RTC time stamp date register, Address offset: 0x34 */ + __IO uint32_t TSSSR; /*!< RTC time-stamp sub second register, Address offset: 0x38 */ + __IO uint32_t CALR; /*!< RRTC calibration register, Address offset: 0x3C */ + __IO uint32_t TAFCR; /*!< RTC tamper and alternate function configuration register, Address offset: 0x40 */ + __IO uint32_t ALRMASSR; /*!< RTC alarm A sub second register, Address offset: 0x44 */ + __IO uint32_t ALRMBSSR; /*!< RTC alarm B sub second register, Address offset: 0x48 */ + uint32_t RESERVED7; /*!< Reserved, 0x4C */ + __IO uint32_t BKP0R; /*!< RTC backup register 0, Address offset: 0x50 */ + __IO uint32_t BKP1R; /*!< RTC backup register 1, Address offset: 0x54 */ + __IO uint32_t BKP2R; /*!< RTC backup register 2, Address offset: 0x58 */ + __IO uint32_t BKP3R; /*!< RTC backup register 3, Address offset: 0x5C */ + __IO uint32_t BKP4R; /*!< RTC backup register 4, Address offset: 0x60 */ + __IO uint32_t BKP5R; /*!< RTC backup register 5, Address offset: 0x64 */ + __IO uint32_t BKP6R; /*!< RTC backup register 6, Address offset: 0x68 */ + __IO uint32_t BKP7R; /*!< RTC backup register 7, Address offset: 0x6C */ + __IO uint32_t BKP8R; /*!< RTC backup register 8, Address offset: 0x70 */ + __IO uint32_t BKP9R; /*!< RTC backup register 9, Address offset: 0x74 */ + __IO uint32_t BKP10R; /*!< RTC backup register 10, Address offset: 0x78 */ + __IO uint32_t BKP11R; /*!< RTC backup register 11, Address offset: 0x7C */ + __IO uint32_t BKP12R; /*!< RTC backup register 12, Address offset: 0x80 */ + __IO uint32_t BKP13R; /*!< RTC backup register 13, Address offset: 0x84 */ + __IO uint32_t BKP14R; /*!< RTC backup register 14, Address offset: 0x88 */ + __IO uint32_t BKP15R; /*!< RTC backup register 15, Address offset: 0x8C */ + __IO uint32_t BKP16R; /*!< RTC backup register 16, Address offset: 0x90 */ + __IO uint32_t BKP17R; /*!< RTC backup register 17, Address offset: 0x94 */ + __IO uint32_t BKP18R; /*!< RTC backup register 18, Address offset: 0x98 */ + __IO uint32_t BKP19R; /*!< RTC backup register 19, Address offset: 0x9C */ + __IO uint32_t BKP20R; /*!< RTC backup register 20, Address offset: 0xA0 */ + __IO uint32_t BKP21R; /*!< RTC backup register 21, Address offset: 0xA4 */ + __IO uint32_t BKP22R; /*!< RTC backup register 22, Address offset: 0xA8 */ + __IO uint32_t BKP23R; /*!< RTC backup register 23, Address offset: 0xAC */ + __IO uint32_t BKP24R; /*!< RTC backup register 24, Address offset: 0xB0 */ + __IO uint32_t BKP25R; /*!< RTC backup register 25, Address offset: 0xB4 */ + __IO uint32_t BKP26R; /*!< RTC backup register 26, Address offset: 0xB8 */ + __IO uint32_t BKP27R; /*!< RTC backup register 27, Address offset: 0xBC */ + __IO uint32_t BKP28R; /*!< RTC backup register 28, Address offset: 0xC0 */ + __IO uint32_t BKP29R; /*!< RTC backup register 29, Address offset: 0xC4 */ + __IO uint32_t BKP30R; /*!< RTC backup register 30, Address offset: 0xC8 */ + __IO uint32_t BKP31R; /*!< RTC backup register 31, Address offset: 0xCC */ +} RTC_TypeDef; + +/** + * @brief SD host Interface + */ + +typedef struct +{ + __IO uint32_t POWER; /*!< SDIO power control register, Address offset: 0x00 */ + __IO uint32_t CLKCR; /*!< SDI clock control register, Address offset: 0x04 */ + __IO uint32_t ARG; /*!< SDIO argument register, Address offset: 0x08 */ + __IO uint32_t CMD; /*!< SDIO command register, Address offset: 0x0C */ + __I uint32_t RESPCMD; /*!< SDIO command response register, Address offset: 0x10 */ + __I uint32_t RESP1; /*!< SDIO response 1 register, Address offset: 0x14 */ + __I uint32_t RESP2; /*!< SDIO response 2 register, Address offset: 0x18 */ + __I uint32_t RESP3; /*!< SDIO response 3 register, Address offset: 0x1C */ + __I uint32_t RESP4; /*!< SDIO response 4 register, Address offset: 0x20 */ + __IO uint32_t DTIMER; /*!< SDIO data timer register, Address offset: 0x24 */ + __IO uint32_t DLEN; /*!< SDIO data length register, Address offset: 0x28 */ + __IO uint32_t DCTRL; /*!< SDIO data control register, Address offset: 0x2C */ + __I uint32_t DCOUNT; /*!< SDIO data counter register, Address offset: 0x30 */ + __I uint32_t STA; /*!< SDIO status register, Address offset: 0x34 */ + __IO uint32_t ICR; /*!< SDIO interrupt clear register, Address offset: 0x38 */ + __IO uint32_t MASK; /*!< SDIO mask register, Address offset: 0x3C */ + uint32_t RESERVED0[2]; /*!< Reserved, 0x40-0x44 */ + __I uint32_t FIFOCNT; /*!< SDIO FIFO counter register, Address offset: 0x48 */ + uint32_t RESERVED1[13]; /*!< Reserved, 0x4C-0x7C */ + __IO uint32_t FIFO; /*!< SDIO data FIFO register, Address offset: 0x80 */ +} SDIO_TypeDef; + +/** + * @brief Serial Peripheral Interface + */ + +typedef struct +{ + __IO uint16_t CR1; /*!< SPI control register 1 (not used in I2S mode), Address offset: 0x00 */ + uint16_t RESERVED0; /*!< Reserved, 0x02 */ + __IO uint16_t CR2; /*!< SPI control register 2, Address offset: 0x04 */ + uint16_t RESERVED1; /*!< Reserved, 0x06 */ + __IO uint16_t SR; /*!< SPI status register, Address offset: 0x08 */ + uint16_t RESERVED2; /*!< Reserved, 0x0A */ + __IO uint16_t DR; /*!< SPI data register, Address offset: 0x0C */ + uint16_t RESERVED3; /*!< Reserved, 0x0E */ + __IO uint16_t CRCPR; /*!< SPI CRC polynomial register (not used in I2S mode), Address offset: 0x10 */ + uint16_t RESERVED4; /*!< Reserved, 0x12 */ + __IO uint16_t RXCRCR; /*!< SPI RX CRC register (not used in I2S mode), Address offset: 0x14 */ + uint16_t RESERVED5; /*!< Reserved, 0x16 */ + __IO uint16_t TXCRCR; /*!< SPI TX CRC register (not used in I2S mode), Address offset: 0x18 */ + uint16_t RESERVED6; /*!< Reserved, 0x1A */ + __IO uint16_t I2SCFGR; /*!< SPI_I2S configuration register, Address offset: 0x1C */ + uint16_t RESERVED7; /*!< Reserved, 0x1E */ + __IO uint16_t I2SPR; /*!< SPI_I2S prescaler register, Address offset: 0x20 */ + uint16_t RESERVED8; /*!< Reserved, 0x22 */ +} SPI_TypeDef; + +/** + * @brief TIM + */ + +typedef struct +{ + __IO uint16_t CR1; /*!< TIM control register 1, Address offset: 0x00 */ + uint16_t RESERVED0; /*!< Reserved, 0x02 */ + __IO uint16_t CR2; /*!< TIM control register 2, Address offset: 0x04 */ + uint16_t RESERVED1; /*!< Reserved, 0x06 */ + __IO uint16_t SMCR; /*!< TIM slave mode control register, Address offset: 0x08 */ + uint16_t RESERVED2; /*!< Reserved, 0x0A */ + __IO uint16_t DIER; /*!< TIM DMA/interrupt enable register, Address offset: 0x0C */ + uint16_t RESERVED3; /*!< Reserved, 0x0E */ + __IO uint16_t SR; /*!< TIM status register, Address offset: 0x10 */ + uint16_t RESERVED4; /*!< Reserved, 0x12 */ + __IO uint16_t EGR; /*!< TIM event generation register, Address offset: 0x14 */ + uint16_t RESERVED5; /*!< Reserved, 0x16 */ + __IO uint16_t CCMR1; /*!< TIM capture/compare mode register 1, Address offset: 0x18 */ + uint16_t RESERVED6; /*!< Reserved, 0x1A */ + __IO uint16_t CCMR2; /*!< TIM capture/compare mode register 2, Address offset: 0x1C */ + uint16_t RESERVED7; /*!< Reserved, 0x1E */ + __IO uint16_t CCER; /*!< TIM capture/compare enable register, Address offset: 0x20 */ + uint16_t RESERVED8; /*!< Reserved, 0x22 */ + __IO uint32_t CNT; /*!< TIM counter register, Address offset: 0x24 */ + __IO uint16_t PSC; /*!< TIM prescaler, Address offset: 0x28 */ + uint16_t RESERVED10; /*!< Reserved, 0x2A */ + __IO uint32_t ARR; /*!< TIM auto-reload register, Address offset: 0x2C */ + uint32_t RESERVED12; /*!< Reserved, 0x30 */ + __IO uint32_t CCR1; /*!< TIM capture/compare register 1, Address offset: 0x34 */ + __IO uint32_t CCR2; /*!< TIM capture/compare register 2, Address offset: 0x38 */ + __IO uint32_t CCR3; /*!< TIM capture/compare register 3, Address offset: 0x3C */ + __IO uint32_t CCR4; /*!< TIM capture/compare register 4, Address offset: 0x40 */ + uint32_t RESERVED17; /*!< Reserved, 0x44 */ + __IO uint16_t DCR; /*!< TIM DMA control register, Address offset: 0x48 */ + uint16_t RESERVED18; /*!< Reserved, 0x4A */ + __IO uint16_t DMAR; /*!< TIM DMA address for full transfer, Address offset: 0x4C */ + uint16_t RESERVED19; /*!< Reserved, 0x4E */ + __IO uint16_t OR; /*!< TIM option register, Address offset: 0x50 */ + uint16_t RESERVED20; /*!< Reserved, 0x52 */ +} TIM_TypeDef; + +/** + * @brief Universal Synchronous Asynchronous Receiver Transmitter + */ + +typedef struct +{ + __IO uint16_t SR; /*!< USART Status register, Address offset: 0x00 */ + uint16_t RESERVED0; /*!< Reserved, 0x02 */ + __IO uint16_t DR; /*!< USART Data register, Address offset: 0x04 */ + uint16_t RESERVED1; /*!< Reserved, 0x06 */ + __IO uint16_t BRR; /*!< USART Baud rate register, Address offset: 0x08 */ + uint16_t RESERVED2; /*!< Reserved, 0x0A */ + __IO uint16_t CR1; /*!< USART Control register 1, Address offset: 0x0C */ + uint16_t RESERVED3; /*!< Reserved, 0x0E */ + __IO uint16_t CR2; /*!< USART Control register 2, Address offset: 0x10 */ + uint16_t RESERVED4; /*!< Reserved, 0x12 */ + __IO uint16_t CR3; /*!< USART Control register 3, Address offset: 0x14 */ + uint16_t RESERVED5; /*!< Reserved, 0x16 */ + __IO uint16_t GTPR; /*!< USART Guard time and prescaler register, Address offset: 0x18 */ + uint16_t RESERVED6; /*!< Reserved, 0x1A */ +} USART_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 ((uint32_t)0x08000000) /*!< FLASH base address in the alias region */ +#define SRAM_BASE ((uint32_t)0x20000000) /*!< SRAM base address in the alias region */ +#define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */ + +#define SRAM_BB_BASE ((uint32_t)0x22000000) /*!< SRAM base address in the bit-band region */ +#define PERIPH_BB_BASE ((uint32_t)0x42000000) /*!< Peripheral base address in the bit-band region */ + +#define FSMC_R_BASE ((uint32_t)0xA0000000) /*!< FSMC registers base address */ + +/*!< Peripheral memory map */ +#define APB1PERIPH_BASE PERIPH_BASE +#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) +#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) + +#define TIM2_BASE (APB1PERIPH_BASE + 0x0000) +#define TIM3_BASE (APB1PERIPH_BASE + 0x0400) +#define TIM4_BASE (APB1PERIPH_BASE + 0x0800) +#define TIM5_BASE (APB1PERIPH_BASE + 0x0C00) +#define TIM6_BASE (APB1PERIPH_BASE + 0x1000) +#define TIM7_BASE (APB1PERIPH_BASE + 0x1400) +#define LCD_BASE (APB1PERIPH_BASE + 0x2400) +#define RTC_BASE (APB1PERIPH_BASE + 0x2800) +#define WWDG_BASE (APB1PERIPH_BASE + 0x2C00) +#define IWDG_BASE (APB1PERIPH_BASE + 0x3000) +#define SPI2_BASE (APB1PERIPH_BASE + 0x3800) +#define SPI3_BASE (APB1PERIPH_BASE + 0x3C00) +#define USART2_BASE (APB1PERIPH_BASE + 0x4400) +#define USART3_BASE (APB1PERIPH_BASE + 0x4800) +#define UART4_BASE (APB1PERIPH_BASE + 0x4C00) +#define UART5_BASE (APB1PERIPH_BASE + 0x5000) +#define I2C1_BASE (APB1PERIPH_BASE + 0x5400) +#define I2C2_BASE (APB1PERIPH_BASE + 0x5800) +#define PWR_BASE (APB1PERIPH_BASE + 0x7000) +#define DAC_BASE (APB1PERIPH_BASE + 0x7400) +#define COMP_BASE (APB1PERIPH_BASE + 0x7C00) +#define RI_BASE (APB1PERIPH_BASE + 0x7C04) +#define OPAMP_BASE (APB1PERIPH_BASE + 0x7C5C) + +#define SYSCFG_BASE (APB2PERIPH_BASE + 0x0000) +#define EXTI_BASE (APB2PERIPH_BASE + 0x0400) +#define TIM9_BASE (APB2PERIPH_BASE + 0x0800) +#define TIM10_BASE (APB2PERIPH_BASE + 0x0C00) +#define TIM11_BASE (APB2PERIPH_BASE + 0x1000) +#define ADC1_BASE (APB2PERIPH_BASE + 0x2400) +#define ADC_BASE (APB2PERIPH_BASE + 0x2700) +#define SDIO_BASE (APB2PERIPH_BASE + 0x2C00) +#define SPI1_BASE (APB2PERIPH_BASE + 0x3000) +#define USART1_BASE (APB2PERIPH_BASE + 0x3800) + +#define GPIOA_BASE (AHBPERIPH_BASE + 0x0000) +#define GPIOB_BASE (AHBPERIPH_BASE + 0x0400) +#define GPIOC_BASE (AHBPERIPH_BASE + 0x0800) +#define GPIOD_BASE (AHBPERIPH_BASE + 0x0C00) +#define GPIOE_BASE (AHBPERIPH_BASE + 0x1000) +#define GPIOH_BASE (AHBPERIPH_BASE + 0x1400) +#define GPIOF_BASE (AHBPERIPH_BASE + 0x1800) +#define GPIOG_BASE (AHBPERIPH_BASE + 0x1C00) +#define CRC_BASE (AHBPERIPH_BASE + 0x3000) +#define RCC_BASE (AHBPERIPH_BASE + 0x3800) + + +#define FLASH_R_BASE (AHBPERIPH_BASE + 0x3C00) /*!< FLASH registers base address */ +#define OB_BASE ((uint32_t)0x1FF80000) /*!< FLASH Option Bytes base address */ + +#define DMA1_BASE (AHBPERIPH_BASE + 0x6000) +#define DMA1_Channel1_BASE (DMA1_BASE + 0x0008) +#define DMA1_Channel2_BASE (DMA1_BASE + 0x001C) +#define DMA1_Channel3_BASE (DMA1_BASE + 0x0030) +#define DMA1_Channel4_BASE (DMA1_BASE + 0x0044) +#define DMA1_Channel5_BASE (DMA1_BASE + 0x0058) +#define DMA1_Channel6_BASE (DMA1_BASE + 0x006C) +#define DMA1_Channel7_BASE (DMA1_BASE + 0x0080) + +#define DMA2_BASE (AHBPERIPH_BASE + 0x6400) +#define DMA2_Channel1_BASE (DMA2_BASE + 0x0008) +#define DMA2_Channel2_BASE (DMA2_BASE + 0x001C) +#define DMA2_Channel3_BASE (DMA2_BASE + 0x0030) +#define DMA2_Channel4_BASE (DMA2_BASE + 0x0044) +#define DMA2_Channel5_BASE (DMA2_BASE + 0x0058) + +#define AES_BASE ((uint32_t)0x50060000) + +#define FSMC_Bank1_R_BASE (FSMC_R_BASE + 0x0000) /*!< FSMC Bank1 registers base address */ +#define FSMC_Bank1E_R_BASE (FSMC_R_BASE + 0x0104) /*!< FSMC Bank1E registers base address */ + +#define DBGMCU_BASE ((uint32_t)0xE0042000) /*!< Debug MCU registers base address */ + +/** + * @} + */ + +/** @addtogroup Peripheral_declaration + * @{ + */ + +#define TIM2 ((TIM_TypeDef *) TIM2_BASE) +#define TIM3 ((TIM_TypeDef *) TIM3_BASE) +#define TIM4 ((TIM_TypeDef *) TIM4_BASE) +#define TIM5 ((TIM_TypeDef *) TIM5_BASE) +#define TIM6 ((TIM_TypeDef *) TIM6_BASE) +#define TIM7 ((TIM_TypeDef *) TIM7_BASE) +#define LCD ((LCD_TypeDef *) LCD_BASE) +#define RTC ((RTC_TypeDef *) RTC_BASE) +#define WWDG ((WWDG_TypeDef *) WWDG_BASE) +#define IWDG ((IWDG_TypeDef *) IWDG_BASE) +#define SPI2 ((SPI_TypeDef *) SPI2_BASE) +#define SPI3 ((SPI_TypeDef *) SPI3_BASE) +#define USART2 ((USART_TypeDef *) USART2_BASE) +#define USART3 ((USART_TypeDef *) USART3_BASE) +#define UART4 ((USART_TypeDef *) UART4_BASE) +#define UART5 ((USART_TypeDef *) UART5_BASE) +#define I2C1 ((I2C_TypeDef *) I2C1_BASE) +#define I2C2 ((I2C_TypeDef *) I2C2_BASE) +#define PWR ((PWR_TypeDef *) PWR_BASE) +#define DAC ((DAC_TypeDef *) DAC_BASE) +#define COMP ((COMP_TypeDef *) COMP_BASE) +#define RI ((RI_TypeDef *) RI_BASE) +#define OPAMP ((OPAMP_TypeDef *) OPAMP_BASE) +#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) +#define EXTI ((EXTI_TypeDef *) EXTI_BASE) + +#define ADC1 ((ADC_TypeDef *) ADC1_BASE) +#define ADC ((ADC_Common_TypeDef *) ADC_BASE) +#define SDIO ((SDIO_TypeDef *) SDIO_BASE) +#define TIM9 ((TIM_TypeDef *) TIM9_BASE) +#define TIM10 ((TIM_TypeDef *) TIM10_BASE) +#define TIM11 ((TIM_TypeDef *) TIM11_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 DMA2 ((DMA_TypeDef *) DMA2_BASE) +#define DMA2_Channel1 ((DMA_Channel_TypeDef *) DMA2_Channel1_BASE) +#define DMA2_Channel2 ((DMA_Channel_TypeDef *) DMA2_Channel2_BASE) +#define DMA2_Channel3 ((DMA_Channel_TypeDef *) DMA2_Channel3_BASE) +#define DMA2_Channel4 ((DMA_Channel_TypeDef *) DMA2_Channel4_BASE) +#define DMA2_Channel5 ((DMA_Channel_TypeDef *) DMA2_Channel5_BASE) + +#define RCC ((RCC_TypeDef *) RCC_BASE) +#define CRC ((CRC_TypeDef *) CRC_BASE) + +#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) +#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) +#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) +#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE) +#define GPIOE ((GPIO_TypeDef *) GPIOE_BASE) +#define GPIOH ((GPIO_TypeDef *) GPIOH_BASE) +#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE) +#define GPIOG ((GPIO_TypeDef *) GPIOG_BASE) + +#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE) +#define OB ((OB_TypeDef *) OB_BASE) + +#define AES ((AES_TypeDef *) AES_BASE) + +#define FSMC_Bank1 ((FSMC_Bank1_TypeDef *) FSMC_Bank1_R_BASE) +#define FSMC_Bank1E ((FSMC_Bank1E_TypeDef *) FSMC_Bank1E_R_BASE) + +#define DBGMCU ((DBGMCU_TypeDef *) DBGMCU_BASE) + +/** + * @} + */ + +/** @addtogroup Exported_constants + * @{ + */ + +/** @addtogroup Peripheral_Registers_Bits_Definition + * @{ + */ + +/******************************************************************************/ +/* Peripheral Registers Bits Definition */ +/******************************************************************************/ +/******************************************************************************/ +/* */ +/* Analog to Digital Converter (ADC) */ +/* */ +/******************************************************************************/ + +/******************** Bit definition for ADC_SR register ********************/ +#define ADC_SR_AWD ((uint32_t)0x00000001) /*!< Analog watchdog flag */ +#define ADC_SR_EOC ((uint32_t)0x00000002) /*!< End of conversion */ +#define ADC_SR_JEOC ((uint32_t)0x00000004) /*!< Injected channel end of conversion */ +#define ADC_SR_JSTRT ((uint32_t)0x00000008) /*!< Injected channel Start flag */ +#define ADC_SR_STRT ((uint32_t)0x00000010) /*!< Regular channel Start flag */ +#define ADC_SR_OVR ((uint32_t)0x00000020) /*!< Overrun flag */ +#define ADC_SR_ADONS ((uint32_t)0x00000040) /*!< ADC ON status */ +#define ADC_SR_RCNR ((uint32_t)0x00000100) /*!< Regular channel not ready flag */ +#define ADC_SR_JCNR ((uint32_t)0x00000200) /*!< Injected channel not ready flag */ + +/******************* Bit definition for ADC_CR1 register ********************/ +#define ADC_CR1_AWDCH ((uint32_t)0x0000001F) /*!< AWDCH[4:0] bits (Analog watchdog channel select bits) */ +#define ADC_CR1_AWDCH_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_CR1_AWDCH_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_CR1_AWDCH_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +#define ADC_CR1_AWDCH_3 ((uint32_t)0x00000008) /*!< Bit 3 */ +#define ADC_CR1_AWDCH_4 ((uint32_t)0x00000010) /*!< Bit 4 */ + +#define ADC_CR1_EOCIE ((uint32_t)0x00000020) /*!< Interrupt enable for EOC */ +#define ADC_CR1_AWDIE ((uint32_t)0x00000040) /*!< Analog Watchdog interrupt enable */ +#define ADC_CR1_JEOCIE ((uint32_t)0x00000080) /*!< Interrupt enable for injected channels */ +#define ADC_CR1_SCAN ((uint32_t)0x00000100) /*!< Scan mode */ +#define ADC_CR1_AWDSGL ((uint32_t)0x00000200) /*!< Enable the watchdog on a single channel in scan mode */ +#define ADC_CR1_JAUTO ((uint32_t)0x00000400) /*!< Automatic injected group conversion */ +#define ADC_CR1_DISCEN ((uint32_t)0x00000800) /*!< Discontinuous mode on regular channels */ +#define ADC_CR1_JDISCEN ((uint32_t)0x00001000) /*!< Discontinuous mode on injected channels */ + +#define ADC_CR1_DISCNUM ((uint32_t)0x0000E000) /*!< DISCNUM[2:0] bits (Discontinuous mode channel count) */ +#define ADC_CR1_DISCNUM_0 ((uint32_t)0x00002000) /*!< Bit 0 */ +#define ADC_CR1_DISCNUM_1 ((uint32_t)0x00004000) /*!< Bit 1 */ +#define ADC_CR1_DISCNUM_2 ((uint32_t)0x00008000) /*!< Bit 2 */ + +#define ADC_CR1_PDD ((uint32_t)0x00010000) /*!< Power Down during Delay phase */ +#define ADC_CR1_PDI ((uint32_t)0x00020000) /*!< Power Down during Idle phase */ + +#define ADC_CR1_JAWDEN ((uint32_t)0x00400000) /*!< Analog watchdog enable on injected channels */ +#define ADC_CR1_AWDEN ((uint32_t)0x00800000) /*!< Analog watchdog enable on regular channels */ + +#define ADC_CR1_RES ((uint32_t)0x03000000) /*!< RES[1:0] bits (Resolution) */ +#define ADC_CR1_RES_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define ADC_CR1_RES_1 ((uint32_t)0x02000000) /*!< Bit 1 */ + +#define ADC_CR1_OVRIE ((uint32_t)0x04000000) /*!< Overrun interrupt enable */ + +/******************* Bit definition for ADC_CR2 register ********************/ +#define ADC_CR2_ADON ((uint32_t)0x00000001) /*!< A/D Converter ON / OFF */ +#define ADC_CR2_CONT ((uint32_t)0x00000002) /*!< Continuous Conversion */ +#define ADC_CR2_CFG ((uint32_t)0x00000004) /*!< ADC Configuration */ + +#define ADC_CR2_DELS ((uint32_t)0x00000070) /*!< DELS[2:0] bits (Delay selection) */ +#define ADC_CR2_DELS_0 ((uint32_t)0x00000010) /*!< Bit 0 */ +#define ADC_CR2_DELS_1 ((uint32_t)0x00000020) /*!< Bit 1 */ +#define ADC_CR2_DELS_2 ((uint32_t)0x00000040) /*!< Bit 2 */ + +#define ADC_CR2_DMA ((uint32_t)0x00000100) /*!< Direct Memory access mode */ +#define ADC_CR2_DDS ((uint32_t)0x00000200) /*!< DMA disable selection (Single ADC) */ +#define ADC_CR2_EOCS ((uint32_t)0x00000400) /*!< End of conversion selection */ +#define ADC_CR2_ALIGN ((uint32_t)0x00000800) /*!< Data Alignment */ + +#define ADC_CR2_JEXTSEL ((uint32_t)0x000F0000) /*!< JEXTSEL[3:0] bits (External event select for injected group) */ +#define ADC_CR2_JEXTSEL_0 ((uint32_t)0x00010000) /*!< Bit 0 */ +#define ADC_CR2_JEXTSEL_1 ((uint32_t)0x00020000) /*!< Bit 1 */ +#define ADC_CR2_JEXTSEL_2 ((uint32_t)0x00040000) /*!< Bit 2 */ +#define ADC_CR2_JEXTSEL_3 ((uint32_t)0x00080000) /*!< Bit 3 */ + +#define ADC_CR2_JEXTEN ((uint32_t)0x00300000) /*!< JEXTEN[1:0] bits (External Trigger Conversion mode for injected channels) */ +#define ADC_CR2_JEXTEN_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define ADC_CR2_JEXTEN_1 ((uint32_t)0x00200000) /*!< Bit 1 */ + +#define ADC_CR2_JSWSTART ((uint32_t)0x00400000) /*!< Start Conversion of injected channels */ + +#define ADC_CR2_EXTSEL ((uint32_t)0x0F000000) /*!< EXTSEL[3:0] bits (External Event Select for regular group) */ +#define ADC_CR2_EXTSEL_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define ADC_CR2_EXTSEL_1 ((uint32_t)0x02000000) /*!< Bit 1 */ +#define ADC_CR2_EXTSEL_2 ((uint32_t)0x04000000) /*!< Bit 2 */ +#define ADC_CR2_EXTSEL_3 ((uint32_t)0x08000000) /*!< Bit 3 */ + +#define ADC_CR2_EXTEN ((uint32_t)0x30000000) /*!< EXTEN[1:0] bits (External Trigger Conversion mode for regular channels) */ +#define ADC_CR2_EXTEN_0 ((uint32_t)0x10000000) /*!< Bit 0 */ +#define ADC_CR2_EXTEN_1 ((uint32_t)0x20000000) /*!< Bit 1 */ + +#define ADC_CR2_SWSTART ((uint32_t)0x40000000) /*!< Start Conversion of regular channels */ + +/****************** Bit definition for ADC_SMPR1 register *******************/ +#define ADC_SMPR1_SMP20 ((uint32_t)0x00000007) /*!< SMP20[2:0] bits (Channel 20 Sample time selection) */ +#define ADC_SMPR1_SMP20_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SMPR1_SMP20_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SMPR1_SMP20_2 ((uint32_t)0x00000004) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP21 ((uint32_t)0x00000038) /*!< SMP21[2:0] bits (Channel 21 Sample time selection) */ +#define ADC_SMPR1_SMP21_0 ((uint32_t)0x00000008) /*!< Bit 0 */ +#define ADC_SMPR1_SMP21_1 ((uint32_t)0x00000010) /*!< Bit 1 */ +#define ADC_SMPR1_SMP21_2 ((uint32_t)0x00000020) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP22 ((uint32_t)0x000001C0) /*!< SMP22[2:0] bits (Channel 22 Sample time selection) */ +#define ADC_SMPR1_SMP22_0 ((uint32_t)0x00000040) /*!< Bit 0 */ +#define ADC_SMPR1_SMP22_1 ((uint32_t)0x00000080) /*!< Bit 1 */ +#define ADC_SMPR1_SMP22_2 ((uint32_t)0x00000100) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP23 ((uint32_t)0x00000E00) /*!< SMP23[2:0] bits (Channel 23 Sample time selection) */ +#define ADC_SMPR1_SMP23_0 ((uint32_t)0x00000200) /*!< Bit 0 */ +#define ADC_SMPR1_SMP23_1 ((uint32_t)0x00000400) /*!< Bit 1 */ +#define ADC_SMPR1_SMP23_2 ((uint32_t)0x00000800) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP24 ((uint32_t)0x00007000) /*!< SMP24[2:0] bits (Channel 24 Sample time selection) */ +#define ADC_SMPR1_SMP24_0 ((uint32_t)0x00001000) /*!< Bit 0 */ +#define ADC_SMPR1_SMP24_1 ((uint32_t)0x00002000) /*!< Bit 1 */ +#define ADC_SMPR1_SMP24_2 ((uint32_t)0x00004000) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP25 ((uint32_t)0x00038000) /*!< SMP25[2:0] bits (Channel 25 Sample time selection) */ +#define ADC_SMPR1_SMP25_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SMPR1_SMP25_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SMPR1_SMP25_2 ((uint32_t)0x00020000) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP26 ((uint32_t)0x001C0000) /*!< SMP26[2:0] bits (Channel 26 Sample time selection) */ +#define ADC_SMPR1_SMP26_0 ((uint32_t)0x00040000) /*!< Bit 0 */ +#define ADC_SMPR1_SMP26_1 ((uint32_t)0x00080000) /*!< Bit 1 */ +#define ADC_SMPR1_SMP26_2 ((uint32_t)0x00100000) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP27 ((uint32_t)0x00E00000) /*!< SMP27[2:0] bits (Channel 27 Sample time selection) */ +#define ADC_SMPR1_SMP27_0 ((uint32_t)0x00200000) /*!< Bit 0 */ +#define ADC_SMPR1_SMP27_1 ((uint32_t)0x00400000) /*!< Bit 1 */ +#define ADC_SMPR1_SMP27_2 ((uint32_t)0x00800000) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP28 ((uint32_t)0x07000000) /*!< SMP28[2:0] bits (Channel 28 Sample time selection) */ +#define ADC_SMPR1_SMP28_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define ADC_SMPR1_SMP28_1 ((uint32_t)0x02000000) /*!< Bit 1 */ +#define ADC_SMPR1_SMP28_2 ((uint32_t)0x04000000) /*!< Bit 2 */ + +#define ADC_SMPR1_SMP29 ((uint32_t)0x38000000) /*!< SMP29[2:0] bits (Channel 29 Sample time selection) */ +#define ADC_SMPR1_SMP29_0 ((uint32_t)0x08000000) /*!< Bit 0 */ +#define ADC_SMPR1_SMP29_1 ((uint32_t)0x10000000) /*!< Bit 1 */ +#define ADC_SMPR1_SMP29_2 ((uint32_t)0x20000000) /*!< Bit 2 */ + +/****************** Bit definition for ADC_SMPR2 register *******************/ +#define ADC_SMPR2_SMP10 ((uint32_t)0x00000007) /*!< SMP10[2:0] bits (Channel 10 Sample time selection) */ +#define ADC_SMPR2_SMP10_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SMPR2_SMP10_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SMPR2_SMP10_2 ((uint32_t)0x00000004) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP11 ((uint32_t)0x00000038) /*!< SMP11[2:0] bits (Channel 11 Sample time selection) */ +#define ADC_SMPR2_SMP11_0 ((uint32_t)0x00000008) /*!< Bit 0 */ +#define ADC_SMPR2_SMP11_1 ((uint32_t)0x00000010) /*!< Bit 1 */ +#define ADC_SMPR2_SMP11_2 ((uint32_t)0x00000020) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP12 ((uint32_t)0x000001C0) /*!< SMP12[2:0] bits (Channel 12 Sample time selection) */ +#define ADC_SMPR2_SMP12_0 ((uint32_t)0x00000040) /*!< Bit 0 */ +#define ADC_SMPR2_SMP12_1 ((uint32_t)0x00000080) /*!< Bit 1 */ +#define ADC_SMPR2_SMP12_2 ((uint32_t)0x00000100) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP13 ((uint32_t)0x00000E00) /*!< SMP13[2:0] bits (Channel 13 Sample time selection) */ +#define ADC_SMPR2_SMP13_0 ((uint32_t)0x00000200) /*!< Bit 0 */ +#define ADC_SMPR2_SMP13_1 ((uint32_t)0x00000400) /*!< Bit 1 */ +#define ADC_SMPR2_SMP13_2 ((uint32_t)0x00000800) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP14 ((uint32_t)0x00007000) /*!< SMP14[2:0] bits (Channel 14 Sample time selection) */ +#define ADC_SMPR2_SMP14_0 ((uint32_t)0x00001000) /*!< Bit 0 */ +#define ADC_SMPR2_SMP14_1 ((uint32_t)0x00002000) /*!< Bit 1 */ +#define ADC_SMPR2_SMP14_2 ((uint32_t)0x00004000) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP15 ((uint32_t)0x00038000) /*!< SMP15[2:0] bits (Channel 5 Sample time selection) */ +#define ADC_SMPR2_SMP15_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SMPR2_SMP15_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SMPR2_SMP15_2 ((uint32_t)0x00020000) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP16 ((uint32_t)0x001C0000) /*!< SMP16[2:0] bits (Channel 16 Sample time selection) */ +#define ADC_SMPR2_SMP16_0 ((uint32_t)0x00040000) /*!< Bit 0 */ +#define ADC_SMPR2_SMP16_1 ((uint32_t)0x00080000) /*!< Bit 1 */ +#define ADC_SMPR2_SMP16_2 ((uint32_t)0x00100000) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP17 ((uint32_t)0x00E00000) /*!< SMP17[2:0] bits (Channel 17 Sample time selection) */ +#define ADC_SMPR2_SMP17_0 ((uint32_t)0x00200000) /*!< Bit 0 */ +#define ADC_SMPR2_SMP17_1 ((uint32_t)0x00400000) /*!< Bit 1 */ +#define ADC_SMPR2_SMP17_2 ((uint32_t)0x00800000) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP18 ((uint32_t)0x07000000) /*!< SMP18[2:0] bits (Channel 18 Sample time selection) */ +#define ADC_SMPR2_SMP18_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define ADC_SMPR2_SMP18_1 ((uint32_t)0x02000000) /*!< Bit 1 */ +#define ADC_SMPR2_SMP18_2 ((uint32_t)0x04000000) /*!< Bit 2 */ + +#define ADC_SMPR2_SMP19 ((uint32_t)0x38000000) /*!< SMP19[2:0] bits (Channel 19 Sample time selection) */ +#define ADC_SMPR2_SMP19_0 ((uint32_t)0x08000000) /*!< Bit 0 */ +#define ADC_SMPR2_SMP19_1 ((uint32_t)0x10000000) /*!< Bit 1 */ +#define ADC_SMPR2_SMP19_2 ((uint32_t)0x20000000) /*!< Bit 2 */ + +/****************** Bit definition for ADC_SMPR3 register *******************/ +#define ADC_SMPR3_SMP0 ((uint32_t)0x00000007) /*!< SMP0[2:0] bits (Channel 0 Sample time selection) */ +#define ADC_SMPR3_SMP0_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SMPR3_SMP0_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SMPR3_SMP0_2 ((uint32_t)0x00000004) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP1 ((uint32_t)0x00000038) /*!< SMP1[2:0] bits (Channel 1 Sample time selection) */ +#define ADC_SMPR3_SMP1_0 ((uint32_t)0x00000008) /*!< Bit 0 */ +#define ADC_SMPR3_SMP1_1 ((uint32_t)0x00000010) /*!< Bit 1 */ +#define ADC_SMPR3_SMP1_2 ((uint32_t)0x00000020) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP2 ((uint32_t)0x000001C0) /*!< SMP2[2:0] bits (Channel 2 Sample time selection) */ +#define ADC_SMPR3_SMP2_0 ((uint32_t)0x00000040) /*!< Bit 0 */ +#define ADC_SMPR3_SMP2_1 ((uint32_t)0x00000080) /*!< Bit 1 */ +#define ADC_SMPR3_SMP2_2 ((uint32_t)0x00000100) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP3 ((uint32_t)0x00000E00) /*!< SMP3[2:0] bits (Channel 3 Sample time selection) */ +#define ADC_SMPR3_SMP3_0 ((uint32_t)0x00000200) /*!< Bit 0 */ +#define ADC_SMPR3_SMP3_1 ((uint32_t)0x00000400) /*!< Bit 1 */ +#define ADC_SMPR3_SMP3_2 ((uint32_t)0x00000800) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP4 ((uint32_t)0x00007000) /*!< SMP4[2:0] bits (Channel 4 Sample time selection) */ +#define ADC_SMPR3_SMP4_0 ((uint32_t)0x00001000) /*!< Bit 0 */ +#define ADC_SMPR3_SMP4_1 ((uint32_t)0x00002000) /*!< Bit 1 */ +#define ADC_SMPR3_SMP4_2 ((uint32_t)0x00004000) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP5 ((uint32_t)0x00038000) /*!< SMP5[2:0] bits (Channel 5 Sample time selection) */ +#define ADC_SMPR3_SMP5_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SMPR3_SMP5_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SMPR3_SMP5_2 ((uint32_t)0x00020000) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP6 ((uint32_t)0x001C0000) /*!< SMP6[2:0] bits (Channel 6 Sample time selection) */ +#define ADC_SMPR3_SMP6_0 ((uint32_t)0x00040000) /*!< Bit 0 */ +#define ADC_SMPR3_SMP6_1 ((uint32_t)0x00080000) /*!< Bit 1 */ +#define ADC_SMPR3_SMP6_2 ((uint32_t)0x00100000) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP7 ((uint32_t)0x00E00000) /*!< SMP7[2:0] bits (Channel 7 Sample time selection) */ +#define ADC_SMPR3_SMP7_0 ((uint32_t)0x00200000) /*!< Bit 0 */ +#define ADC_SMPR3_SMP7_1 ((uint32_t)0x00400000) /*!< Bit 1 */ +#define ADC_SMPR3_SMP7_2 ((uint32_t)0x00800000) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP8 ((uint32_t)0x07000000) /*!< SMP8[2:0] bits (Channel 8 Sample time selection) */ +#define ADC_SMPR3_SMP8_0 ((uint32_t)0x01000000) /*!< Bit 0 */ +#define ADC_SMPR3_SMP8_1 ((uint32_t)0x02000000) /*!< Bit 1 */ +#define ADC_SMPR3_SMP8_2 ((uint32_t)0x04000000) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP9 ((uint32_t)0x38000000) /*!< SMP9[2:0] bits (Channel 9 Sample time selection) */ +#define ADC_SMPR3_SMP9_0 ((uint32_t)0x08000000) /*!< Bit 0 */ +#define ADC_SMPR3_SMP9_1 ((uint32_t)0x10000000) /*!< Bit 1 */ +#define ADC_SMPR3_SMP9_2 ((uint32_t)0x20000000) /*!< Bit 2 */ + +/****************** Bit definition for ADC_JOFR1 register *******************/ +#define ADC_JOFR1_JOFFSET1 ((uint32_t)0x00000FFF) /*!< Data offset for injected channel 1 */ + +/****************** Bit definition for ADC_JOFR2 register *******************/ +#define ADC_JOFR2_JOFFSET2 ((uint32_t)0x00000FFF) /*!< Data offset for injected channel 2 */ + +/****************** Bit definition for ADC_JOFR3 register *******************/ +#define ADC_JOFR3_JOFFSET3 ((uint32_t)0x00000FFF) /*!< Data offset for injected channel 3 */ + +/****************** Bit definition for ADC_JOFR4 register *******************/ +#define ADC_JOFR4_JOFFSET4 ((uint32_t)0x00000FFF) /*!< Data offset for injected channel 4 */ + +/******************* Bit definition for ADC_HTR register ********************/ +#define ADC_HTR_HT ((uint32_t)0x00000FFF) /*!< Analog watchdog high threshold */ + +/******************* Bit definition for ADC_LTR register ********************/ +#define ADC_LTR_LT ((uint32_t)0x00000FFF) /*!< Analog watchdog low threshold */ + +/******************* Bit definition for ADC_SQR1 register *******************/ +#define ADC_SQR1_L ((uint32_t)0x00F00000) /*!< L[3:0] bits (Regular channel sequence length) */ +#define ADC_SQR1_L_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define ADC_SQR1_L_1 ((uint32_t)0x00200000) /*!< Bit 1 */ +#define ADC_SQR1_L_2 ((uint32_t)0x00400000) /*!< Bit 2 */ +#define ADC_SQR1_L_3 ((uint32_t)0x00800000) /*!< Bit 3 */ + +#define ADC_SQR1_SQ28 ((uint32_t)0x000F8000) /*!< SQ28[4:0] bits (25th conversion in regular sequence) */ +#define ADC_SQR1_SQ28_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SQR1_SQ28_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SQR1_SQ28_2 ((uint32_t)0x00020000) /*!< Bit 2 */ +#define ADC_SQR1_SQ28_3 ((uint32_t)0x00040000) /*!< Bit 3 */ +#define ADC_SQR1_SQ28_4 ((uint32_t)0x00080000) /*!< Bit 4 */ + +#define ADC_SQR1_SQ27 ((uint32_t)0x00007C00) /*!< SQ27[4:0] bits (27th conversion in regular sequence) */ +#define ADC_SQR1_SQ27_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define ADC_SQR1_SQ27_1 ((uint32_t)0x00000800) /*!< Bit 1 */ +#define ADC_SQR1_SQ27_2 ((uint32_t)0x00001000) /*!< Bit 2 */ +#define ADC_SQR1_SQ27_3 ((uint32_t)0x00002000) /*!< Bit 3 */ +#define ADC_SQR1_SQ27_4 ((uint32_t)0x00004000) /*!< Bit 4 */ + +#define ADC_SQR1_SQ26 ((uint32_t)0x000003E0) /*!< SQ26[4:0] bits (26th conversion in regular sequence) */ +#define ADC_SQR1_SQ26_0 ((uint32_t)0x00000020) /*!< Bit 0 */ +#define ADC_SQR1_SQ26_1 ((uint32_t)0x00000040) /*!< Bit 1 */ +#define ADC_SQR1_SQ26_2 ((uint32_t)0x00000080) /*!< Bit 2 */ +#define ADC_SQR1_SQ26_3 ((uint32_t)0x00000100) /*!< Bit 3 */ +#define ADC_SQR1_SQ26_4 ((uint32_t)0x00000200) /*!< Bit 4 */ + +#define ADC_SQR1_SQ25 ((uint32_t)0x0000001F) /*!< SQ25[4:0] bits (25th conversion in regular sequence) */ +#define ADC_SQR1_SQ25_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SQR1_SQ25_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SQR1_SQ25_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +#define ADC_SQR1_SQ25_3 ((uint32_t)0x00000008) /*!< Bit 3 */ +#define ADC_SQR1_SQ25_4 ((uint32_t)0x00000010) /*!< Bit 4 */ + +/******************* Bit definition for ADC_SQR2 register *******************/ +#define ADC_SQR2_SQ19 ((uint32_t)0x0000001F) /*!< SQ19[4:0] bits (19th conversion in regular sequence) */ +#define ADC_SQR2_SQ19_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SQR2_SQ19_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SQR2_SQ19_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +#define ADC_SQR2_SQ19_3 ((uint32_t)0x00000008) /*!< Bit 3 */ +#define ADC_SQR2_SQ19_4 ((uint32_t)0x00000010) /*!< Bit 4 */ + +#define ADC_SQR2_SQ20 ((uint32_t)0x000003E0) /*!< SQ20[4:0] bits (20th conversion in regular sequence) */ +#define ADC_SQR2_SQ20_0 ((uint32_t)0x00000020) /*!< Bit 0 */ +#define ADC_SQR2_SQ20_1 ((uint32_t)0x00000040) /*!< Bit 1 */ +#define ADC_SQR2_SQ20_2 ((uint32_t)0x00000080) /*!< Bit 2 */ +#define ADC_SQR2_SQ20_3 ((uint32_t)0x00000100) /*!< Bit 3 */ +#define ADC_SQR2_SQ20_4 ((uint32_t)0x00000200) /*!< Bit 4 */ + +#define ADC_SQR2_SQ21 ((uint32_t)0x00007C00) /*!< SQ21[4:0] bits (21th conversion in regular sequence) */ +#define ADC_SQR2_SQ21_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define ADC_SQR2_SQ21_1 ((uint32_t)0x00000800) /*!< Bit 1 */ +#define ADC_SQR2_SQ21_2 ((uint32_t)0x00001000) /*!< Bit 2 */ +#define ADC_SQR2_SQ21_3 ((uint32_t)0x00002000) /*!< Bit 3 */ +#define ADC_SQR2_SQ21_4 ((uint32_t)0x00004000) /*!< Bit 4 */ + +#define ADC_SQR2_SQ22 ((uint32_t)0x000F8000) /*!< SQ22[4:0] bits (22th conversion in regular sequence) */ +#define ADC_SQR2_SQ22_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SQR2_SQ22_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SQR2_SQ22_2 ((uint32_t)0x00020000) /*!< Bit 2 */ +#define ADC_SQR2_SQ22_3 ((uint32_t)0x00040000) /*!< Bit 3 */ +#define ADC_SQR2_SQ22_4 ((uint32_t)0x00080000) /*!< Bit 4 */ + +#define ADC_SQR2_SQ23 ((uint32_t)0x01F00000) /*!< SQ23[4:0] bits (23th conversion in regular sequence) */ +#define ADC_SQR2_SQ23_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define ADC_SQR2_SQ23_1 ((uint32_t)0x00200000) /*!< Bit 1 */ +#define ADC_SQR2_SQ23_2 ((uint32_t)0x00400000) /*!< Bit 2 */ +#define ADC_SQR2_SQ23_3 ((uint32_t)0x00800000) /*!< Bit 3 */ +#define ADC_SQR2_SQ23_4 ((uint32_t)0x01000000) /*!< Bit 4 */ + +#define ADC_SQR2_SQ24 ((uint32_t)0x3E000000) /*!< SQ24[4:0] bits (24th conversion in regular sequence) */ +#define ADC_SQR2_SQ24_0 ((uint32_t)0x02000000) /*!< Bit 0 */ +#define ADC_SQR2_SQ24_1 ((uint32_t)0x04000000) /*!< Bit 1 */ +#define ADC_SQR2_SQ24_2 ((uint32_t)0x08000000) /*!< Bit 2 */ +#define ADC_SQR2_SQ24_3 ((uint32_t)0x10000000) /*!< Bit 3 */ +#define ADC_SQR2_SQ24_4 ((uint32_t)0x20000000) /*!< Bit 4 */ + +/******************* Bit definition for ADC_SQR3 register *******************/ +#define ADC_SQR3_SQ13 ((uint32_t)0x0000001F) /*!< SQ13[4:0] bits (13th conversion in regular sequence) */ +#define ADC_SQR3_SQ13_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SQR3_SQ13_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SQR3_SQ13_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +#define ADC_SQR3_SQ13_3 ((uint32_t)0x00000008) /*!< Bit 3 */ +#define ADC_SQR3_SQ13_4 ((uint32_t)0x00000010) /*!< Bit 4 */ + +#define ADC_SQR3_SQ14 ((uint32_t)0x000003E0) /*!< SQ14[4:0] bits (14th conversion in regular sequence) */ +#define ADC_SQR3_SQ14_0 ((uint32_t)0x00000020) /*!< Bit 0 */ +#define ADC_SQR3_SQ14_1 ((uint32_t)0x00000040) /*!< Bit 1 */ +#define ADC_SQR3_SQ14_2 ((uint32_t)0x00000080) /*!< Bit 2 */ +#define ADC_SQR3_SQ14_3 ((uint32_t)0x00000100) /*!< Bit 3 */ +#define ADC_SQR3_SQ14_4 ((uint32_t)0x00000200) /*!< Bit 4 */ + +#define ADC_SQR3_SQ15 ((uint32_t)0x00007C00) /*!< SQ15[4:0] bits (15th conversion in regular sequence) */ +#define ADC_SQR3_SQ15_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define ADC_SQR3_SQ15_1 ((uint32_t)0x00000800) /*!< Bit 1 */ +#define ADC_SQR3_SQ15_2 ((uint32_t)0x00001000) /*!< Bit 2 */ +#define ADC_SQR3_SQ15_3 ((uint32_t)0x00002000) /*!< Bit 3 */ +#define ADC_SQR3_SQ15_4 ((uint32_t)0x00004000) /*!< Bit 4 */ + +#define ADC_SQR3_SQ16 ((uint32_t)0x000F8000) /*!< SQ16[4:0] bits (16th conversion in regular sequence) */ +#define ADC_SQR3_SQ16_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SQR3_SQ16_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SQR3_SQ16_2 ((uint32_t)0x00020000) /*!< Bit 2 */ +#define ADC_SQR3_SQ16_3 ((uint32_t)0x00040000) /*!< Bit 3 */ +#define ADC_SQR3_SQ16_4 ((uint32_t)0x00080000) /*!< Bit 4 */ + +#define ADC_SQR3_SQ17 ((uint32_t)0x01F00000) /*!< SQ17[4:0] bits (17th conversion in regular sequence) */ +#define ADC_SQR3_SQ17_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define ADC_SQR3_SQ17_1 ((uint32_t)0x00200000) /*!< Bit 1 */ +#define ADC_SQR3_SQ17_2 ((uint32_t)0x00400000) /*!< Bit 2 */ +#define ADC_SQR3_SQ17_3 ((uint32_t)0x00800000) /*!< Bit 3 */ +#define ADC_SQR3_SQ17_4 ((uint32_t)0x01000000) /*!< Bit 4 */ + +#define ADC_SQR3_SQ18 ((uint32_t)0x3E000000) /*!< SQ18[4:0] bits (18th conversion in regular sequence) */ +#define ADC_SQR3_SQ18_0 ((uint32_t)0x02000000) /*!< Bit 0 */ +#define ADC_SQR3_SQ18_1 ((uint32_t)0x04000000) /*!< Bit 1 */ +#define ADC_SQR3_SQ18_2 ((uint32_t)0x08000000) /*!< Bit 2 */ +#define ADC_SQR3_SQ18_3 ((uint32_t)0x10000000) /*!< Bit 3 */ +#define ADC_SQR3_SQ18_4 ((uint32_t)0x20000000) /*!< Bit 4 */ + +/******************* Bit definition for ADC_SQR4 register *******************/ +#define ADC_SQR4_SQ7 ((uint32_t)0x0000001F) /*!< SQ7[4:0] bits (7th conversion in regular sequence) */ +#define ADC_SQR4_SQ7_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SQR4_SQ7_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SQR4_SQ7_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +#define ADC_SQR4_SQ7_3 ((uint32_t)0x00000008) /*!< Bit 3 */ +#define ADC_SQR4_SQ7_4 ((uint32_t)0x00000010) /*!< Bit 4 */ + +#define ADC_SQR4_SQ8 ((uint32_t)0x000003E0) /*!< SQ8[4:0] bits (8th conversion in regular sequence) */ +#define ADC_SQR4_SQ8_0 ((uint32_t)0x00000020) /*!< Bit 0 */ +#define ADC_SQR4_SQ8_1 ((uint32_t)0x00000040) /*!< Bit 1 */ +#define ADC_SQR4_SQ8_2 ((uint32_t)0x00000080) /*!< Bit 2 */ +#define ADC_SQR4_SQ8_3 ((uint32_t)0x00000100) /*!< Bit 3 */ +#define ADC_SQR4_SQ8_4 ((uint32_t)0x00000200) /*!< Bit 4 */ + +#define ADC_SQR4_SQ9 ((uint32_t)0x00007C00) /*!< SQ9[4:0] bits (9th conversion in regular sequence) */ +#define ADC_SQR4_SQ9_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define ADC_SQR4_SQ9_1 ((uint32_t)0x00000800) /*!< Bit 1 */ +#define ADC_SQR4_SQ9_2 ((uint32_t)0x00001000) /*!< Bit 2 */ +#define ADC_SQR4_SQ9_3 ((uint32_t)0x00002000) /*!< Bit 3 */ +#define ADC_SQR4_SQ9_4 ((uint32_t)0x00004000) /*!< Bit 4 */ + +#define ADC_SQR4_SQ10 ((uint32_t)0x000F8000) /*!< SQ10[4:0] bits (10th conversion in regular sequence) */ +#define ADC_SQR4_SQ10_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SQR4_SQ10_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SQR4_SQ10_2 ((uint32_t)0x00020000) /*!< Bit 2 */ +#define ADC_SQR4_SQ10_3 ((uint32_t)0x00040000) /*!< Bit 3 */ +#define ADC_SQR4_SQ10_4 ((uint32_t)0x00080000) /*!< Bit 4 */ + +#define ADC_SQR4_SQ11 ((uint32_t)0x01F00000) /*!< SQ11[4:0] bits (11th conversion in regular sequence) */ +#define ADC_SQR4_SQ11_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define ADC_SQR4_SQ11_1 ((uint32_t)0x00200000) /*!< Bit 1 */ +#define ADC_SQR4_SQ11_2 ((uint32_t)0x00400000) /*!< Bit 2 */ +#define ADC_SQR4_SQ11_3 ((uint32_t)0x00800000) /*!< Bit 3 */ +#define ADC_SQR4_SQ11_4 ((uint32_t)0x01000000) /*!< Bit 4 */ + +#define ADC_SQR4_SQ12 ((uint32_t)0x3E000000) /*!< SQ12[4:0] bits (12th conversion in regular sequence) */ +#define ADC_SQR4_SQ12_0 ((uint32_t)0x02000000) /*!< Bit 0 */ +#define ADC_SQR4_SQ12_1 ((uint32_t)0x04000000) /*!< Bit 1 */ +#define ADC_SQR4_SQ12_2 ((uint32_t)0x08000000) /*!< Bit 2 */ +#define ADC_SQR4_SQ12_3 ((uint32_t)0x10000000) /*!< Bit 3 */ +#define ADC_SQR4_SQ12_4 ((uint32_t)0x20000000) /*!< Bit 4 */ + +/******************* Bit definition for ADC_SQR5 register *******************/ +#define ADC_SQR5_SQ1 ((uint32_t)0x0000001F) /*!< SQ1[4:0] bits (1st conversion in regular sequence) */ +#define ADC_SQR5_SQ1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SQR5_SQ1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SQR5_SQ1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +#define ADC_SQR5_SQ1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ +#define ADC_SQR5_SQ1_4 ((uint32_t)0x00000010) /*!< Bit 4 */ + +#define ADC_SQR5_SQ2 ((uint32_t)0x000003E0) /*!< SQ2[4:0] bits (2nd conversion in regular sequence) */ +#define ADC_SQR5_SQ2_0 ((uint32_t)0x00000020) /*!< Bit 0 */ +#define ADC_SQR5_SQ2_1 ((uint32_t)0x00000040) /*!< Bit 1 */ +#define ADC_SQR5_SQ2_2 ((uint32_t)0x00000080) /*!< Bit 2 */ +#define ADC_SQR5_SQ2_3 ((uint32_t)0x00000100) /*!< Bit 3 */ +#define ADC_SQR5_SQ2_4 ((uint32_t)0x00000200) /*!< Bit 4 */ + +#define ADC_SQR5_SQ3 ((uint32_t)0x00007C00) /*!< SQ3[4:0] bits (3rd conversion in regular sequence) */ +#define ADC_SQR5_SQ3_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define ADC_SQR5_SQ3_1 ((uint32_t)0x00000800) /*!< Bit 1 */ +#define ADC_SQR5_SQ3_2 ((uint32_t)0x00001000) /*!< Bit 2 */ +#define ADC_SQR5_SQ3_3 ((uint32_t)0x00002000) /*!< Bit 3 */ +#define ADC_SQR5_SQ3_4 ((uint32_t)0x00004000) /*!< Bit 4 */ + +#define ADC_SQR5_SQ4 ((uint32_t)0x000F8000) /*!< SQ4[4:0] bits (4th conversion in regular sequence) */ +#define ADC_SQR5_SQ4_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_SQR5_SQ4_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_SQR5_SQ4_2 ((uint32_t)0x00020000) /*!< Bit 2 */ +#define ADC_SQR5_SQ4_3 ((uint32_t)0x00040000) /*!< Bit 3 */ +#define ADC_SQR5_SQ4_4 ((uint32_t)0x00080000) /*!< Bit 4 */ + +#define ADC_SQR5_SQ5 ((uint32_t)0x01F00000) /*!< SQ5[4:0] bits (5th conversion in regular sequence) */ +#define ADC_SQR5_SQ5_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define ADC_SQR5_SQ5_1 ((uint32_t)0x00200000) /*!< Bit 1 */ +#define ADC_SQR5_SQ5_2 ((uint32_t)0x00400000) /*!< Bit 2 */ +#define ADC_SQR5_SQ5_3 ((uint32_t)0x00800000) /*!< Bit 3 */ +#define ADC_SQR5_SQ5_4 ((uint32_t)0x01000000) /*!< Bit 4 */ + +#define ADC_SQR5_SQ6 ((uint32_t)0x3E000000) /*!< SQ6[4:0] bits (6th conversion in regular sequence) */ +#define ADC_SQR5_SQ6_0 ((uint32_t)0x02000000) /*!< Bit 0 */ +#define ADC_SQR5_SQ6_1 ((uint32_t)0x04000000) /*!< Bit 1 */ +#define ADC_SQR5_SQ6_2 ((uint32_t)0x08000000) /*!< Bit 2 */ +#define ADC_SQR5_SQ6_3 ((uint32_t)0x10000000) /*!< Bit 3 */ +#define ADC_SQR5_SQ6_4 ((uint32_t)0x20000000) /*!< Bit 4 */ + + +/******************* Bit definition for ADC_JSQR register *******************/ +#define ADC_JSQR_JSQ1 ((uint32_t)0x0000001F) /*!< JSQ1[4:0] bits (1st conversion in injected sequence) */ +#define ADC_JSQR_JSQ1_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_JSQR_JSQ1_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_JSQR_JSQ1_2 ((uint32_t)0x00000004) /*!< Bit 2 */ +#define ADC_JSQR_JSQ1_3 ((uint32_t)0x00000008) /*!< Bit 3 */ +#define ADC_JSQR_JSQ1_4 ((uint32_t)0x00000010) /*!< Bit 4 */ + +#define ADC_JSQR_JSQ2 ((uint32_t)0x000003E0) /*!< JSQ2[4:0] bits (2nd conversion in injected sequence) */ +#define ADC_JSQR_JSQ2_0 ((uint32_t)0x00000020) /*!< Bit 0 */ +#define ADC_JSQR_JSQ2_1 ((uint32_t)0x00000040) /*!< Bit 1 */ +#define ADC_JSQR_JSQ2_2 ((uint32_t)0x00000080) /*!< Bit 2 */ +#define ADC_JSQR_JSQ2_3 ((uint32_t)0x00000100) /*!< Bit 3 */ +#define ADC_JSQR_JSQ2_4 ((uint32_t)0x00000200) /*!< Bit 4 */ + +#define ADC_JSQR_JSQ3 ((uint32_t)0x00007C00) /*!< JSQ3[4:0] bits (3rd conversion in injected sequence) */ +#define ADC_JSQR_JSQ3_0 ((uint32_t)0x00000400) /*!< Bit 0 */ +#define ADC_JSQR_JSQ3_1 ((uint32_t)0x00000800) /*!< Bit 1 */ +#define ADC_JSQR_JSQ3_2 ((uint32_t)0x00001000) /*!< Bit 2 */ +#define ADC_JSQR_JSQ3_3 ((uint32_t)0x00002000) /*!< Bit 3 */ +#define ADC_JSQR_JSQ3_4 ((uint32_t)0x00004000) /*!< Bit 4 */ + +#define ADC_JSQR_JSQ4 ((uint32_t)0x000F8000) /*!< JSQ4[4:0] bits (4th conversion in injected sequence) */ +#define ADC_JSQR_JSQ4_0 ((uint32_t)0x00008000) /*!< Bit 0 */ +#define ADC_JSQR_JSQ4_1 ((uint32_t)0x00010000) /*!< Bit 1 */ +#define ADC_JSQR_JSQ4_2 ((uint32_t)0x00020000) /*!< Bit 2 */ +#define ADC_JSQR_JSQ4_3 ((uint32_t)0x00040000) /*!< Bit 3 */ +#define ADC_JSQR_JSQ4_4 ((uint32_t)0x00080000) /*!< Bit 4 */ + +#define ADC_JSQR_JL ((uint32_t)0x00300000) /*!< JL[1:0] bits (Injected Sequence length) */ +#define ADC_JSQR_JL_0 ((uint32_t)0x00100000) /*!< Bit 0 */ +#define ADC_JSQR_JL_1 ((uint32_t)0x00200000) /*!< Bit 1 */ + +/******************* Bit definition for ADC_JDR1 register *******************/ +#define ADC_JDR1_JDATA ((uint32_t)0x0000FFFF) /*!< Injected data */ + +/******************* Bit definition for ADC_JDR2 register *******************/ +#define ADC_JDR2_JDATA ((uint32_t)0x0000FFFF) /*!< Injected data */ + +/******************* Bit definition for ADC_JDR3 register *******************/ +#define ADC_JDR3_JDATA ((uint32_t)0x0000FFFF) /*!< Injected data */ + +/******************* Bit definition for ADC_JDR4 register *******************/ +#define ADC_JDR4_JDATA ((uint32_t)0x0000FFFF) /*!< Injected data */ + +/******************** Bit definition for ADC_DR register ********************/ +#define ADC_DR_DATA ((uint32_t)0x0000FFFF) /*!< Regular data */ + +/****************** Bit definition for ADC_SMPR0 register *******************/ +#define ADC_SMPR3_SMP30 ((uint32_t)0x00000007) /*!< SMP30[2:0] bits (Channel 30 Sample time selection) */ +#define ADC_SMPR3_SMP30_0 ((uint32_t)0x00000001) /*!< Bit 0 */ +#define ADC_SMPR3_SMP30_1 ((uint32_t)0x00000002) /*!< Bit 1 */ +#define ADC_SMPR3_SMP30_2 ((uint32_t)0x00000004) /*!< Bit 2 */ + +#define ADC_SMPR3_SMP31 ((uint32_t)0x00000038) /*!< SMP31[2:0] bits (Channel 31 Sample time selection) */ +#define ADC_SMPR3_SMP31_0 ((uint32_t)0x00000008) /*!< Bit 0 */ +#define ADC_SMPR3_SMP31_1 ((uint32_t)0x00000010) /*!< Bit 1 */ +#define ADC_SMPR3_SMP31_2 ((uint32_t)0x00000020) /*!< Bit 2 */ + +/******************* Bit definition for ADC_CSR register ********************/ +#define ADC_CSR_AWD1 ((uint32_t)0x00000001) /*!< ADC1 Analog watchdog flag */ +#define ADC_CSR_EOC1 ((uint32_t)0x00000002) /*!< ADC1 End of conversion */ +#define ADC_CSR_JEOC1 ((uint32_t)0x00000004) /*!< ADC1 Injected channel end of conversion */ +#define ADC_CSR_JSTRT1 ((uint32_t)0x00000008) /*!< ADC1 Injected channel Start flag */ +#define ADC_CSR_STRT1 ((uint32_t)0x00000010) /*!< ADC1 Regular channel Start flag */ +#define ADC_CSR_OVR1 ((uint32_t)0x00000020) /*!< ADC1 overrun flag */ +#define ADC_CSR_ADONS1 ((uint32_t)0x00000040) /*!< ADON status of ADC1 */ + +/******************* Bit definition for ADC_CCR register ********************/ +#define ADC_CCR_ADCPRE ((uint32_t)0x00030000) /*!< ADC prescaler*/ +#define ADC_CCR_ADCPRE_0 ((uint32_t)0x00010000) /*!< Bit 0 */ +#define ADC_CCR_ADCPRE_1 ((uint32_t)0x00020000) /*!< Bit 1 */ +#define ADC_CCR_TSVREFE ((uint32_t)0x00800000) /*!< Temperature Sensor and VREFINT Enable */ + +/******************************************************************************/ +/* */ +/* Advanced Encryption Standard (AES) */ +/* */ +/******************************************************************************/ +/******************* Bit definition for AES_CR register *********************/ +#define AES_CR_EN ((uint32_t)0x00000001) /*!< AES Enable */ +#define AES_CR_DATATYPE ((uint32_t)0x00000006) /*!< Data type selection */ +#define AES_CR_DATATYPE_0 ((uint32_t)0x00000002) /*!< Bit 0 */ +#define AES_CR_DATATYPE_1 ((uint32_t)0x00000004) /*!< Bit 1 */ + +#define AES_CR_MODE ((uint32_t)0x00000018) /*!< AES Mode Of Operation */ +#define AES_CR_MODE_0 ((uint32_t)0x00000008) /*!< Bit 0 */ +#define AES_CR_MODE_1 ((uint32_t)0x00000010) /*!< Bit 1 */ + +#define AES_CR_CHMOD ((uint32_t)0x00000060) /*!< AES Chaining Mode */ +#define AES_CR_CHMOD_0 ((uint32_t)0x00000020) /*!< Bit 0 */ +#define AES_CR_CHMOD_1 ((uint32_t)0x00000040) /*!< Bit 1 */ + +#define AES_CR_CCFC ((uint32_t)0x00000080) /*!< Computation Complete Flag Clear */ +#define AES_CR_ERRC ((uint32_t)0x00000100) /*!< Error Clear */ +#define AES_CR_CCIE ((uint32_t)0x00000200) /*!< Computation Complete Interrupt Enable */ +#define AES_CR_ERRIE ((uint32_t)0x00000400) /*!< Error Interrupt Enable */ +#define AES_CR_DMAINEN ((uint32_t)0x00000800) /*!< DMA ENable managing the data input phase */ +#define AES_CR_DMAOUTEN ((uint32_t)0x00001000) /*!< DMA Enable managing the data output phase */ + +/******************* Bit definition for AES_SR register *********************/ +#define AES_SR_CCF ((uint32_t)0x00000001) /*!< Computation Complete Flag */ +#define AES_SR_RDERR ((uint32_t)0x00000002) /*!< Read Error Flag */ +#define AES_SR_WRERR ((uint32_t)0x00000004) /*!< Write Error Flag */ + +/******************* Bit definition for AES_DINR register *******************/ +#define AES_DINR ((uint32_t)0x0000FFFF) /*!< AES Data Input Register */ + +/******************* Bit definition for AES_DOUTR register ******************/ +#define AES_DOUTR ((uint32_t)0x0000FFFF) /*!< AES Data Output Register */ + +/******************* Bit definition for AES_KEYR0 register ******************/ +#define AES_KEYR0 ((uint32_t)0x0000FFFF) /*!< AES Key Register 0 */ + +/******************* Bit definition for AES_KEYR1 register ******************/ +#define AES_KEYR1 ((uint32_t)0x0000FFFF) /*!< AES Key Register 1 */ + +/******************* Bit definition for AES_KEYR2 register ******************/ +#define AES_KEYR2 ((uint32_t)0x0000FFFF) /*!< AES Key Register 2 */ + +/******************* Bit definition for AES_KEYR3 register ******************/ +#define AES_KEYR3 ((uint32_t)0x0000FFFF) /*!< AES Key Register 3 */ + +/******************* Bit definition for AES_IVR0 register *******************/ +#define AES_IVR0 ((uint32_t)0x0000FFFF) /*!< AES Initialization Vector Register 0 */ + +/******************* Bit definition for AES_IVR1 register *******************/ +#define AES_IVR1 ((uint32_t)0x0000FFFF) /*!< AES Initialization Vector Register 1 */ + +/******************* Bit definition for AES_IVR2 register *******************/ +#define AES_IVR2 ((uint32_t)0x0000FFFF) /*!< AES Initialization Vector Register 2 */ + +/******************* Bit definition for AES_IVR3 register *******************/ +#define AES_IVR3 ((uint32_t)0x0000FFFF) /*!< AES Initialization Vector Register 3 */ + +/******************************************************************************/ +/* */ +/* Analog Comparators (COMP) */ +/* */ +/******************************************************************************/ + +/****************** Bit definition for COMP_CSR register ********************/ +#define COMP_CSR_10KPU ((uint32_t)0x00000001) /*!< 10K pull-up resistor */ +#define COMP_CSR_400KPU ((uint32_t)0x00000002) /*!< 400K pull-up resistor */ +#define COMP_CSR_10KPD ((uint32_t)0x00000004) /*!< 10K pull-down resistor */ +#define COMP_CSR_400KPD ((uint32_t)0x00000008) /*!< 400K pull-down resistor */ + +#define COMP_CSR_CMP1EN ((uint32_t)0x00000010) /*!< Comparator 1 enable */ +#define COMP_CSR_SW1 ((uint32_t)0x00000020) /*!< SW1 analog switch enable */ +#define COMP_CSR_CMP1OUT ((uint32_t)0x00000080) /*!< Comparator 1 output */ + +#define COMP_CSR_SPEED ((uint32_t)0x00001000) /*!< Comparator 2 speed */ +#define COMP_CSR_CMP2OUT ((uint32_t)0x00002000) /*!< Comparator 2 ouput */ + +#define COMP_CSR_VREFOUTEN ((uint32_t)0x00010000) /*!< Comparator Vref Enable */ +#define COMP_CSR_WNDWE ((uint32_t)0x00020000) /*!< Window mode enable */ + +#define COMP_CSR_INSEL ((uint32_t)0x001C0000) /*!< INSEL[2:0] Inversion input Selection */ +#define COMP_CSR_INSEL_0 ((uint32_t)0x00040000) /*!< Bit 0 */ +#define COMP_CSR_INSEL_1 ((uint32_t)0x00080000) /*!< Bit 1 */ +#define COMP_CSR_INSEL_2 ((uint32_t)0x00100000) /*!< Bit 2 */ + +#define COMP_CSR_OUTSEL ((uint32_t)0x00E00000) /*!< OUTSEL[2:0] comparator 2 output redirection */ +#define COMP_CSR_OUTSEL_0 ((uint32_t)0x00200000) /*!< Bit 0 */ +#define COMP_CSR_OUTSEL_1 ((uint32_t)0x00400000) /*!< Bit 1 */ +#define COMP_CSR_OUTSEL_2 ((uint32_t)0x00800000) /*!< Bit 2 */ + +#define COMP_CSR_FCH3 ((uint32_t)0x04000000) /*!< Bit 26 */ +#define COMP_CSR_FCH8 ((uint32_t)0x08000000) /*!< Bit 27 */ +#define COMP_CSR_RCH13 ((uint32_t)0x10000000) /*!< Bit 28 */ + +#define COMP_CSR_CAIE ((uint32_t)0x20000000) /*!< Bit 29 */ +#define COMP_CSR_CAIF ((uint32_t)0x40000000) /*!< Bit 30 */ +#define COMP_CSR_TSUSP ((uint32_t)0x80000000) /*!< Bit 31 */ + +/******************************************************************************/ +/* */ +/* Operational Amplifier (OPAMP) */ +/* */ +/******************************************************************************/ +/******************* Bit definition for OPAMP_CSR register ******************/ +#define OPAMP_CSR_OPA1PD ((uint32_t)0x00000001) /*!< OPAMP1 disable */ +#define OPAMP_CSR_S3SEL1 ((uint32_t)0x00000002) /*!< Switch 3 for OPAMP1 Enable */ +#define OPAMP_CSR_S4SEL1 ((uint32_t)0x00000004) /*!< Switch 4 for OPAMP1 Enable */ +#define OPAMP_CSR_S5SEL1 ((uint32_t)0x00000008) /*!< Switch 5 for OPAMP1 Enable */ +#define OPAMP_CSR_S6SEL1 ((uint32_t)0x00000010) /*!< Switch 6 for OPAMP1 Enable */ +#define OPAMP_CSR_OPA1CAL_L ((uint32_t)0x00000020) /*!< OPAMP1 Offset calibration for P differential pair */ +#define OPAMP_CSR_OPA1CAL_H ((uint32_t)0x00000040) /*!< OPAMP1 Offset calibration for N differential pair */ +#define OPAMP_CSR_OPA1LPM ((uint32_t)0x00000080) /*!< OPAMP1 Low power enable */ +#define OPAMP_CSR_OPA2PD ((uint32_t)0x00000100) /*!< OPAMP2 disable */ +#define OPAMP_CSR_S3SEL2 ((uint32_t)0x00000200) /*!< Switch 3 for OPAMP2 Enable */ +#define OPAMP_CSR_S4SEL2 ((uint32_t)0x00000400) /*!< Switch 4 for OPAMP2 Enable */ +#define OPAMP_CSR_S5SEL2 ((uint32_t)0x00000800) /*!< Switch 5 for OPAMP2 Enable */ +#define OPAMP_CSR_S6SEL2 ((uint32_t)0x00001000) /*!< Switch 6 for OPAMP2 Enable */ +#define OPAMP_CSR_OPA2CAL_L ((uint32_t)0x00002000) /*!< OPAMP2 Offset calibration for P differential pair */ +#define OPAMP_CSR_OPA2CAL_H ((uint32_t)0x00004000) /*!< OPAMP2 Offset calibration for N differential pair */ +#define OPAMP_CSR_OPA2LPM ((uint32_t)0x00008000) /*!< OPAMP2 Low power enable */ +#define OPAMP_CSR_OPA3PD ((uint32_t)0x00010000) /*!< OPAMP3 disable */ +#define OPAMP_CSR_S3SEL3 ((uint32_t)0x00020000) /*!< Switch 3 for OPAMP3 Enable */ +#define OPAMP_CSR_S4SEL3 ((uint32_t)0x00040000) /*!< Switch 4 for OPAMP3 Enable */ +#define OPAMP_CSR_S5SEL3 ((uint32_t)0x00080000) /*!< Switch 5 for OPAMP3 Enable */ +#define OPAMP_CSR_S6SEL3 ((uint32_t)0x00100000) /*!< Switch 6 for OPAMP3 Enable */ +#define OPAMP_CSR_OPA3CAL_L ((uint32_t)0x00200000) /*!< OPAMP3 Offset calibration for P differential pair */ +#define OPAMP_CSR_OPA3CAL_H ((uint32_t)0x00400000) /*!< OPAMP3 Offset calibration for N differential pair */ +#define OPAMP_CSR_OPA3LPM ((uint32_t)0x00800000) /*!< OPAMP3 Low power enable */ +#define OPAMP_CSR_ANAWSEL1 ((uint32_t)0x01000000) /*!< Switch ANA Enable for OPAMP1 */ +#define OPAMP_CSR_ANAWSEL2 ((uint32_t)0x02000000) /*!< Switch ANA Enable for OPAMP2 */ +#define OPAMP_CSR_ANAWSEL3 ((uint32_t)0x04000000) /*!< Switch ANA Enable for OPAMP3 */ +#define OPAMP_CSR_S7SEL2 ((uint32_t)0x08000000) /*!< Switch 7 for OPAMP2 Enable */ +#define OPAMP_CSR_AOP_RANGE ((uint32_t)0x10000000) /*!< Power range selection */ +#define OPAMP_CSR_OPA1CALOUT ((uint32_t)0x20000000) /*!< OPAMP1 calibration output */ +#define OPAMP_CSR_OPA2CALOUT ((uint32_t)0x40000000) /*!< OPAMP2 calibration output */ +#define OPAMP_CSR_OPA3CALOUT ((uint32_t)0x80000000) /*!< OPAMP3 calibration output */ + +/******************* Bit definition for OPAMP_OTR register ******************/ +#define OPAMP_OTR_AO1_OPT_OFFSET_TRIM ((uint32_t)0x000003FF) /*!< Offset trim for OPAMP1 */ +#define OPAMP_OTR_AO2_OPT_OFFSET_TRIM ((uint32_t)0x000FFC00) /*!< Offset trim for OPAMP2 */ +#define OPAMP_OTR_AO3_OPT_OFFSET_TRIM ((uint32_t)0x3FF00000) /*!< Offset trim for OPAMP2 */ +#define OPAMP_OTR_OT_USER ((uint32_t)0x80000000) /*!< Switch to OPAMP offset user trimmed values */ + +/******************* Bit definition for OPAMP_LPOTR register ****************/ +#define OPAMP_LP_OTR_AO1_OPT_OFFSET_TRIM_LP ((uint32_t)0x000003FF) /*!< Offset trim in low power for OPAMP1 */ +#define OPAMP_LP_OTR_AO2_OPT_OFFSET_TRIM_LP ((uint32_t)0x000FFC00) /*!< Offset trim in low power for OPAMP2 */ +#define OPAMP_LP_OTR_AO3_OPT_OFFSET_TRIM_LP ((uint32_t)0x3FF00000) /*!< Offset trim in low power for OPAMP3 */ + +/******************************************************************************/ +/* */ +/* CRC calculation unit (CRC) */ +/* */ +/******************************************************************************/ + +/******************* Bit definition for CRC_DR register *********************/ +#define CRC_DR_DR ((uint32_t)0xFFFFFFFF) /*!< Data register bits */ + +/******************* Bit definition for CRC_IDR register ********************/ +#define CRC_IDR_IDR ((uint8_t)0xFF) /*!< General-purpose 8-bit data register bits */ + +/******************** Bit definition for CRC_CR register ********************/ +#define CRC_CR_RESET ((uint32_t)0x00000001) /*!< RESET bit */ + +/******************************************************************************/ +/* */ +/* Digital to Analog Converter (DAC) */ +/* */ +/******************************************************************************/ + +/******************** Bit definition for DAC_CR register ********************/ +#define DAC_CR_EN1 ((uint32_t)0x00000001) /*!
© COPYRIGHT 2013 STMicroelectronics
+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32l1xx_system + * @{ + */ + +/** + * @brief Define to prevent recursive inclusion + */ +#ifndef __SYSTEM_STM32L1XX_H +#define __SYSTEM_STM32L1XX_H + +#ifdef __cplusplus + extern "C" { +#endif + +/** @addtogroup STM32L1xx_System_Includes + * @{ + */ + +/** + * @} + */ + + +/** @addtogroup STM32L1xx_System_Exported_types + * @{ + */ + +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Exported_Constants + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Exported_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Exported_Functions + * @{ + */ + +extern void SystemInit(void); +extern void SystemCoreClockUpdate(void); +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /*__SYSTEM_STM32L1XX_H */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Release_Notes.html b/Libraries/CMSIS/Device/ST/STM32L1xx/Release_Notes.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Release_Notes.html @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + + +Release Notes for STM32L1xx CMSIS + + + + + +
+


+

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

Release +Notes for STM32L1xx CMSIS
+

+

Copyright +© 2013 STMicroelectronics

+

+
+

 

+ + + + + + +
+

Contents

+
    +
  1. STM32L1xx CMSIS update history
  2. +
  3. License
  4. +
+

STM32L1xx CMSIS update history


+

V1.2.1 / 19-June-2013

+ + + + +

Main +Changes

+ + + + + +
    +
  • stm32l1xx.h
    • Update RI_TypeDef structure by adding registers RI_ASMRx, RI_CMRx and RI_CICRx (x=1..5)
    • +
    • Add bits definition for registers RI_ASMRx, RI_CMRx and RI_CICRx (x=1..5)
    • +
    +
+ +

V1.2.0 / 22-February-2013

+ + +

Main +Changes

+ + + +
    +
  • stm32l1xx.h
  • +
      +
    • List of supported devices: add reference to STM32L100xx Ultra Low Power Value Line devices
    • +
    +
      +
    • Add SPRMOD bit definition in FLASH_OBR register
    • +
    • Add RDERR bit definition in FLASH_SR register
    • + +
    +
      +
    • Rename FLASH_OBR_nRST_BFB2 to FLASH_OBR_BFB2
    • +
    +
      +
    • Delete FLASH_OBR_USER define (useless)
      +
    • +
    +
+ +

V1.1.1 / 05-March-2012

+

Main +Changes

+ +
  • All source files: license disclaimer text update and add link to the License file on ST Internet.

V1.1.0 / 24-January-2012

+

Main +Changes

+ +
    +
  • Alpha version for STM32L1xx High-density and Medium-density Plus devices.
  • +
  • Add support for STM32L1xx High-density and Medium-density Plus devices:
  • +
      +
    • Add new product define: "#define STM32L1XX_MDP"
    • +
    • Add new product define: "#define STM32L1XX_HD"
    • + +
    + +
      +
    • Change the library version to V1.1.0
      +
    • +
    +
      +
    • Add new IRQ to support STM32L1XX_HD and STM32L1XX_MDP vector table
    • +
    +
      +
    • Add new and update some Typedef to support new peripherals (AES, SDIO, OPAMP, FSMC, I2S)
    • +
    +
      +
    • Add new peripherals address mapping
    • +
    +
      +
    • Update bits definition
    • +
    +
  • Add new startup file "startup_stm32l1xx_mdp.s" for all toolchains
  • +
  • Add new startup file "startup_stm32l1xx_hd.s" for all toolchains
  • +
  • Change the RTC "CAL" register name to "CALR"
  • +
  • Update registers bits definitions.
    + +
  • +
+ + +

V1.0.0 / 31-December-2010

Main +Changes

+
  • Created

    + +

    License

    Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); You may not use this package except in compliance with the License. You may obtain a copy of the License at:


    Unless +required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See +the License for the specific language governing permissions and +limitations under the License.
    +
    +
    +

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

    +
    +

    +
    +
    +

     

    +
    + \ No newline at end of file diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TASKING/cstart_thumb2.asm b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TASKING/cstart_thumb2.asm new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TASKING/cstart_thumb2.asm @@ -0,0 +1,140 @@ + + +;; NOTE: To allow the use of this file for both ARMv6M and ARMv7M, +;; we will only use 16-bit Thumb intructions. + + .extern _lc_ub_stack ; usr/sys mode stack pointer + .extern _lc_ue_stack ; symbol required by debugger + .extern _lc_ub_table ; ROM to RAM copy table + .extern main + .extern _Exit + .extern exit + .weak exit + .global __get_argcv + .weak __get_argcv + .extern __argcvbuf + .weak __argcvbuf + ;;.extern __init_hardware + .extern SystemInit + + .if @defined('__PROF_ENABLE__') + .extern __prof_init + .endif + .if @defined('__POSIX__') + .extern posix_main + .extern _posix_boot_stack_top + .endif + + .global _START + + .section .text.cstart + + .thumb +_START: + ;; anticipate possible ROM/RAM remapping + ;; by loading the 'real' program address + ldr r1,=_Next + bx r1 +_Next: + ;; initialize the stack pointer + ldr r1,=_lc_ub_stack ; TODO: make this part of the vector table + mov sp,r1 + + ;; call a user function which initializes function. + bl SystemInit + + ;; copy initialized sections from ROM to RAM + ;; and clear uninitialized data sections in RAM + + ldr r3,=_lc_ub_table + movs r0,#0 +cploop: + ldr r4,[r3,#0] ; load type + ldr r5,[r3,#4] ; dst address + ldr r6,[r3,#8] ; src address + ldr r7,[r3,#12] ; size + + cmp r4,#1 + beq copy + cmp r4,#2 + beq clear + b done + +copy: + subs r7,r7,#1 + ldrb r1,[r6,r7] + strb r1,[r5,r7] + bne copy + + adds r3,r3,#16 + b cploop + +clear: + subs r7,r7,#1 + strb r0,[r5,r7] + bne clear + + adds r3,r3,#16 + b cploop + +done: + + .if @defined('__POSIX__') + + ;; posix stack buffer for system upbringing + ldr r0,=_posix_boot_stack_top + ldr r0, [r0] + mov sp,r0 + + .else + + ;; load r10 with end of USR/SYS stack, which is + ;; needed in case stack overflow checking is on + ;; NOTE: use 16-bit instructions only, for ARMv6M + ldr r0,=_lc_ue_stack + mov r10,r0 + + .endif + + .if @defined('__PROF_ENABLE__') + bl __prof_init + .endif + + .if @defined('__POSIX__') + ;; call posix_main with no arguments + bl posix_main + .else + ;; retrieve argc and argv (default argv[0]==NULL & argc==0) + bl __get_argcv + ldr r1,=__argcvbuf + ;; call main + bl main + .endif + + ;; call exit using the return value from main() + ;; Note. Calling exit will also run all functions + ;; that were supplied through atexit(). + bl exit + +__get_argcv: ; weak definition + movs r0,#0 + bx lr + + .ltorg + .endsec + + .calls '_START', ' ' + .calls '_START','__init_vector_table' + .if @defined('__PROF_ENABLE__') + .calls '_START','__prof_init' + .endif + .if @defined('__POSIX__') + .calls '_START','posix_main' + .else + .calls '_START','__get_argcv' + .calls '_START','main' + .endif + .calls '_START','exit' + .calls '_START','',0 + + .end diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_hd.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_hd.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_hd.s @@ -0,0 +1,424 @@ +/** + ****************************************************************************** + * @file startup_stm32l1xx_hd.s + * @author MCD Application Team + * @version V1.2.1 + * @date 19-June-2013 + * @brief STM32L1xx Ultra Low Power High-density Devices vector table for + * Atollic toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Configure the clock system + * - 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 2013 STMicroelectronics

    + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF108F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r3, =_sidata + ldr r3, [r3, r1] + str r3, [r0, r1] + adds r1, r1, #4 + +LoopCopyDataInit: + ldr r0, =_sdata + ldr r3, =_edata + adds r2, r0, r1 + cmp r2, r3 + bcc CopyDataInit + ldr r2, =_sbss + b LoopFillZerobss +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + str r3, [r2], #4 + +LoopFillZerobss: + ldr r3, = _ebss + cmp r2, r3 + bcc FillZerobss + +/* Call the clock system intitialization function.*/ + bl SystemInit +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + bx lr +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/****************************************************************************** +* +* The minimal vector table for a Cortex M3. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_IRQHandler + .word TAMPER_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word DAC_IRQHandler + .word COMP_IRQHandler + .word EXTI9_5_IRQHandler + .word LCD_IRQHandler + .word TIM9_IRQHandler + .word TIM10_IRQHandler + .word TIM11_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USB_FS_WKUP_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word SDIO_IRQHandler + .word TIM5_IRQHandler + .word SPI3_IRQHandler + .word UART4_IRQHandler + .word UART5_IRQHandler + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word AES_IRQHandler + .word COMP_ACQ_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32L15x ULtra Low Power High-density devices. */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_IRQHandler + .thumb_set PVD_IRQHandler,Default_Handler + + .weak TAMPER_STAMP_IRQHandler + .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak DAC_IRQHandler + .thumb_set DAC_IRQHandler,Default_Handler + + .weak COMP_IRQHandler + .thumb_set COMP_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak LCD_IRQHandler + .thumb_set LCD_IRQHandler,Default_Handler + + .weak TIM9_IRQHandler + .thumb_set TIM9_IRQHandler,Default_Handler + + .weak TIM10_IRQHandler + .thumb_set TIM10_IRQHandler,Default_Handler + + .weak TIM11_IRQHandler + .thumb_set TIM11_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USB_FS_WKUP_IRQHandler + .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak SDIO_IRQHandler + .thumb_set SDIO_IRQHandler,Default_Handler + + .weak TIM5_IRQHandler + .thumb_set TIM5_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak UART4_IRQHandler + .thumb_set UART4_IRQHandler,Default_Handler + + .weak UART5_IRQHandler + .thumb_set UART5_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak AES_IRQHandler + .thumb_set AES_IRQHandler,Default_Handler + + .weak COMP_ACQ_IRQHandler + .thumb_set COMP_ACQ_IRQHandler,Default_Handler + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_md.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_md.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_md.s @@ -0,0 +1,376 @@ +/** + ****************************************************************************** + * @file startup_stm32l1xx_md.s + * @author MCD Application Team + * @version V1.2.1 + * @date 19-June-2013 + * @brief STM32L1xx Ultra Low Power Medium-density Devices vector table for + * Atollic toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Configure the clock system + * - 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 2013 STMicroelectronics

    + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF108F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r3, =_sidata + ldr r3, [r3, r1] + str r3, [r0, r1] + adds r1, r1, #4 + +LoopCopyDataInit: + ldr r0, =_sdata + ldr r3, =_edata + adds r2, r0, r1 + cmp r2, r3 + bcc CopyDataInit + ldr r2, =_sbss + b LoopFillZerobss +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + str r3, [r2], #4 + +LoopFillZerobss: + ldr r3, = _ebss + cmp r2, r3 + bcc FillZerobss + +/* Call the clock system intitialization function.*/ + bl SystemInit +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + bx lr +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/****************************************************************************** +* +* The minimal vector table for a Cortex M3. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_IRQHandler + .word TAMPER_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word DAC_IRQHandler + .word COMP_IRQHandler + .word EXTI9_5_IRQHandler + .word LCD_IRQHandler + .word TIM9_IRQHandler + .word TIM10_IRQHandler + .word TIM11_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USB_FS_WKUP_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32L15x ULtra Low Power Medium-density devices. */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_IRQHandler + .thumb_set PVD_IRQHandler,Default_Handler + + .weak TAMPER_STAMP_IRQHandler + .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak DAC_IRQHandler + .thumb_set DAC_IRQHandler,Default_Handler + + .weak COMP_IRQHandler + .thumb_set COMP_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak LCD_IRQHandler + .thumb_set LCD_IRQHandler,Default_Handler + + .weak TIM9_IRQHandler + .thumb_set TIM9_IRQHandler,Default_Handler + + .weak TIM10_IRQHandler + .thumb_set TIM10_IRQHandler,Default_Handler + + .weak TIM11_IRQHandler + .thumb_set TIM11_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USB_FS_WKUP_IRQHandler + .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_mdp.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_mdp.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_stm32l1xx_mdp.s @@ -0,0 +1,415 @@ +/** + ****************************************************************************** + * @file startup_stm32l1xx_mdp.s + * @author MCD Application Team + * @version V1.2.1 + * @date 19-June-2013 + * @brief STM32L1xx Ultra Low Power Medium-density Plus Devices vector table + * for Atollic toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - Configure the clock system + * - 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 2013 STMicroelectronics

    + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF108F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r3, =_sidata + ldr r3, [r3, r1] + str r3, [r0, r1] + adds r1, r1, #4 + +LoopCopyDataInit: + ldr r0, =_sdata + ldr r3, =_edata + adds r2, r0, r1 + cmp r2, r3 + bcc CopyDataInit + ldr r2, =_sbss + b LoopFillZerobss +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + str r3, [r2], #4 + +LoopFillZerobss: + ldr r3, = _ebss + cmp r2, r3 + bcc FillZerobss + +/* Call the clock system intitialization function.*/ + bl SystemInit +/* Call static constructors */ + bl __libc_init_array +/* Call the application's entry point.*/ + bl main + bx lr +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval : None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/****************************************************************************** +* +* The minimal vector table for a Cortex M3. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +* +******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_IRQHandler + .word TAMPER_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word DAC_IRQHandler + .word COMP_IRQHandler + .word EXTI9_5_IRQHandler + .word LCD_IRQHandler + .word TIM9_IRQHandler + .word TIM10_IRQHandler + .word TIM11_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USB_FS_WKUP_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word 0 + .word TIM5_IRQHandler + .word SPI3_IRQHandler + .word 0 + .word 0 + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word AES_IRQHandler + .word COMP_ACQ_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32L15x ULtra Low Power Medium-density devices. */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_IRQHandler + .thumb_set PVD_IRQHandler,Default_Handler + + .weak TAMPER_STAMP_IRQHandler + .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak DAC_IRQHandler + .thumb_set DAC_IRQHandler,Default_Handler + + .weak COMP_IRQHandler + .thumb_set COMP_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak LCD_IRQHandler + .thumb_set LCD_IRQHandler,Default_Handler + + .weak TIM9_IRQHandler + .thumb_set TIM9_IRQHandler,Default_Handler + + .weak TIM10_IRQHandler + .thumb_set TIM10_IRQHandler,Default_Handler + + .weak TIM11_IRQHandler + .thumb_set TIM11_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USB_FS_WKUP_IRQHandler + .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak TIM5_IRQHandler + .thumb_set TIM5_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak AES_IRQHandler + .thumb_set AES_IRQHandler,Default_Handler + + .weak COMP_ACQ_IRQHandler + .thumb_set COMP_ACQ_IRQHandler,Default_Handler + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_hd.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_hd.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_hd.s @@ -0,0 +1,356 @@ +;******************** (C) COPYRIGHT 2013 STMicroelectronics ******************** +;* File Name : startup_stm32l1xx_hd.s +;* Author : MCD Application Team +;* Version : V1.2.1 +;* Date : 19-June-2013 +;* Description : STM32L1xx Ultra Low Power High-density 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 +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +; +; Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); +; You may not use this file except in compliance with the License. +; You may obtain a copy of the License at: +; +; http://www.st.com/software_license_agreement_liberty_v2 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;******************************************************************************* + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp + DCD RTC_WKUP_IRQHandler ; RTC Wakeup + 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_IRQHandler ; ADC1 + DCD USB_HP_IRQHandler ; USB High Priority + DCD USB_LP_IRQHandler ; USB Low Priority + DCD DAC_IRQHandler ; DAC + DCD COMP_IRQHandler ; COMP through EXTI Line + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD LCD_IRQHandler ; LCD + DCD TIM9_IRQHandler ; TIM9 + DCD TIM10_IRQHandler ; TIM10 + DCD TIM11_IRQHandler ; TIM11 + 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 USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend + DCD TIM6_IRQHandler ; TIM6 + DCD TIM7_IRQHandler ; TIM7 + DCD SDIO_IRQHandler ; SDIO + DCD TIM5_IRQHandler ; TIM5 + DCD SPI3_IRQHandler ; SPI3 + DCD UART4_IRQHandler ; UART4 + DCD UART5_IRQHandler ; UART5 + DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 + DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 + DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 + DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 + DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 + DCD AES_IRQHandler ; AES + DCD COMP_ACQ_IRQHandler ; Comparator Channel Acquisition + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler routine +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_STAMP_IRQHandler [WEAK] + EXPORT RTC_WKUP_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_IRQHandler [WEAK] + EXPORT USB_HP_IRQHandler [WEAK] + EXPORT USB_LP_IRQHandler [WEAK] + EXPORT DAC_IRQHandler [WEAK] + EXPORT COMP_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT LCD_IRQHandler [WEAK] + EXPORT TIM9_IRQHandler [WEAK] + EXPORT TIM10_IRQHandler [WEAK] + EXPORT TIM11_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 USB_FS_WKUP_IRQHandler [WEAK] + EXPORT TIM6_IRQHandler [WEAK] + EXPORT TIM7_IRQHandler [WEAK] + EXPORT SDIO_IRQHandler [WEAK] + EXPORT TIM5_IRQHandler [WEAK] + EXPORT SPI3_IRQHandler [WEAK] + EXPORT UART4_IRQHandler [WEAK] + EXPORT UART5_IRQHandler [WEAK] + EXPORT DMA2_Channel1_IRQHandler [WEAK] + EXPORT DMA2_Channel2_IRQHandler [WEAK] + EXPORT DMA2_Channel3_IRQHandler [WEAK] + EXPORT DMA2_Channel4_IRQHandler [WEAK] + EXPORT DMA2_Channel5_IRQHandler [WEAK] + EXPORT AES_IRQHandler [WEAK] + EXPORT COMP_ACQ_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_STAMP_IRQHandler +RTC_WKUP_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_IRQHandler +USB_HP_IRQHandler +USB_LP_IRQHandler +DAC_IRQHandler +COMP_IRQHandler +EXTI9_5_IRQHandler +LCD_IRQHandler +TIM9_IRQHandler +TIM10_IRQHandler +TIM11_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 +USB_FS_WKUP_IRQHandler +TIM6_IRQHandler +TIM7_IRQHandler +SDIO_IRQHandler +TIM5_IRQHandler +SPI3_IRQHandler +UART4_IRQHandler +UART5_IRQHandler +DMA2_Channel1_IRQHandler +DMA2_Channel2_IRQHandler +DMA2_Channel3_IRQHandler +DMA2_Channel4_IRQHandler +DMA2_Channel5_IRQHandler +AES_IRQHandler +COMP_ACQ_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/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_md.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_md.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_md.s @@ -0,0 +1,319 @@ +;******************** (C) COPYRIGHT 2013 STMicroelectronics ******************** +;* File Name : startup_stm32l1xx_md.s +;* Author : MCD Application Team +;* Version : V1.2.1 +;* Date : 19-June-2013 +;* Description : STM32L1xx Ultra Low Power Medium-density 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 +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +; +; Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); +; You may not use this file except in compliance with the License. +; You may obtain a copy of the License at: +; +; http://www.st.com/software_license_agreement_liberty_v2 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;******************************************************************************* + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp + DCD RTC_WKUP_IRQHandler ; RTC Wakeup + 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_IRQHandler ; ADC1 + DCD USB_HP_IRQHandler ; USB High Priority + DCD USB_LP_IRQHandler ; USB Low Priority + DCD DAC_IRQHandler ; DAC + DCD COMP_IRQHandler ; COMP through EXTI Line + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD LCD_IRQHandler ; LCD + DCD TIM9_IRQHandler ; TIM9 + DCD TIM10_IRQHandler ; TIM10 + DCD TIM11_IRQHandler ; TIM11 + 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 USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend + DCD TIM6_IRQHandler ; TIM6 + DCD TIM7_IRQHandler ; TIM7 +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler routine +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_STAMP_IRQHandler [WEAK] + EXPORT RTC_WKUP_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_IRQHandler [WEAK] + EXPORT USB_HP_IRQHandler [WEAK] + EXPORT USB_LP_IRQHandler [WEAK] + EXPORT DAC_IRQHandler [WEAK] + EXPORT COMP_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT LCD_IRQHandler [WEAK] + EXPORT TIM9_IRQHandler [WEAK] + EXPORT TIM10_IRQHandler [WEAK] + EXPORT TIM11_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 USB_FS_WKUP_IRQHandler [WEAK] + EXPORT TIM6_IRQHandler [WEAK] + EXPORT TIM7_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_STAMP_IRQHandler +RTC_WKUP_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_IRQHandler +USB_HP_IRQHandler +USB_LP_IRQHandler +DAC_IRQHandler +COMP_IRQHandler +EXTI9_5_IRQHandler +LCD_IRQHandler +TIM9_IRQHandler +TIM10_IRQHandler +TIM11_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 +USB_FS_WKUP_IRQHandler +TIM6_IRQHandler +TIM7_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/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_mdp.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_mdp.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/arm/startup_stm32l1xx_mdp.s @@ -0,0 +1,350 @@ +;******************** (C) COPYRIGHT 2013 STMicroelectronics ******************** +;* File Name : startup_stm32l1xx_mdp.s +;* Author : MCD Application Team +;* Version : V1.2.1 +;* Date : 19-June-2013 +;* Description : STM32L1xx Ultra Low Power Medium-density Plus 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 +;* - Branches to __main in the C library (which eventually +;* calls main()). +;* After Reset the CortexM3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;* <<< Use Configuration Wizard in Context Menu >>> +;******************************************************************************* +; +; Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); +; You may not use this file except in compliance with the License. +; You may obtain a copy of the License at: +; +; http://www.st.com/software_license_agreement_liberty_v2 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; +;******************************************************************************* + +; Amount of memory (in bytes) allocated for Stack +; Tailor this value to your application needs +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00000400 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000200 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + + +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp + DCD RTC_WKUP_IRQHandler ; RTC Wakeup + 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_IRQHandler ; ADC1 + DCD USB_HP_IRQHandler ; USB High Priority + DCD USB_LP_IRQHandler ; USB Low Priority + DCD DAC_IRQHandler ; DAC + DCD COMP_IRQHandler ; COMP through EXTI Line + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD LCD_IRQHandler ; LCD + DCD TIM9_IRQHandler ; TIM9 + DCD TIM10_IRQHandler ; TIM10 + DCD TIM11_IRQHandler ; TIM11 + 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 USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend + DCD TIM6_IRQHandler ; TIM6 + DCD TIM7_IRQHandler ; TIM7 + DCD 0 ; Reserved + DCD TIM5_IRQHandler ; TIM5 + DCD SPI3_IRQHandler ; SPI3 + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 + DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 + DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 + DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 + DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 + DCD AES_IRQHandler ; AES + DCD COMP_ACQ_IRQHandler ; Comparator Channel Acquisition + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + AREA |.text|, CODE, READONLY + +; Reset handler routine +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_STAMP_IRQHandler [WEAK] + EXPORT RTC_WKUP_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_IRQHandler [WEAK] + EXPORT USB_HP_IRQHandler [WEAK] + EXPORT USB_LP_IRQHandler [WEAK] + EXPORT DAC_IRQHandler [WEAK] + EXPORT COMP_IRQHandler [WEAK] + EXPORT EXTI9_5_IRQHandler [WEAK] + EXPORT LCD_IRQHandler [WEAK] + EXPORT TIM9_IRQHandler [WEAK] + EXPORT TIM10_IRQHandler [WEAK] + EXPORT TIM11_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 USB_FS_WKUP_IRQHandler [WEAK] + EXPORT TIM6_IRQHandler [WEAK] + EXPORT TIM7_IRQHandler [WEAK] + EXPORT TIM5_IRQHandler [WEAK] + EXPORT SPI3_IRQHandler [WEAK] + EXPORT DMA2_Channel1_IRQHandler [WEAK] + EXPORT DMA2_Channel2_IRQHandler [WEAK] + EXPORT DMA2_Channel3_IRQHandler [WEAK] + EXPORT DMA2_Channel4_IRQHandler [WEAK] + EXPORT DMA2_Channel5_IRQHandler [WEAK] + EXPORT AES_IRQHandler [WEAK] + EXPORT COMP_ACQ_IRQHandler [WEAK] + +WWDG_IRQHandler +PVD_IRQHandler +TAMPER_STAMP_IRQHandler +RTC_WKUP_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_IRQHandler +USB_HP_IRQHandler +USB_LP_IRQHandler +DAC_IRQHandler +COMP_IRQHandler +EXTI9_5_IRQHandler +LCD_IRQHandler +TIM9_IRQHandler +TIM10_IRQHandler +TIM11_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 +USB_FS_WKUP_IRQHandler +TIM6_IRQHandler +TIM7_IRQHandler +TIM5_IRQHandler +SPI3_IRQHandler +DMA2_Channel1_IRQHandler +DMA2_Channel2_IRQHandler +DMA2_Channel3_IRQHandler +DMA2_Channel4_IRQHandler +DMA2_Channel5_IRQHandler +AES_IRQHandler +COMP_ACQ_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/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_hd.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_hd.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_hd.s @@ -0,0 +1,419 @@ +/** + ****************************************************************************** + * @file startup_stm32l1xx_hd.s + * @author MCD Application Team + * @version V1.2.1 + * @date 19-June-2013 + * @brief STM32L1xx Ultra Low Power High-density Devices vector table for + * RIDE7 toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - 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 2013 STMicroelectronics

    + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF108F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r3, =_sidata + ldr r3, [r3, r1] + str r3, [r0, r1] + adds r1, r1, #4 + +LoopCopyDataInit: + ldr r0, =_sdata + ldr r3, =_edata + adds r2, r0, r1 + cmp r2, r3 + bcc CopyDataInit + ldr r2, =_sbss + b LoopFillZerobss +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + str r3, [r2], #4 + +LoopFillZerobss: + ldr r3, = _ebss + cmp r2, r3 + bcc FillZerobss +/* Call the clock system intitialization function.*/ + bl SystemInit +/* Call the application's entry point.*/ + bl main + bx lr +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/******************************************************************************* +* +* The minimal vector table for a Cortex M3. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +*******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_IRQHandler + .word TAMPER_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word DAC_IRQHandler + .word COMP_IRQHandler + .word EXTI9_5_IRQHandler + .word LCD_IRQHandler + .word TIM9_IRQHandler + .word TIM10_IRQHandler + .word TIM11_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USB_FS_WKUP_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word SDIO_IRQHandler + .word TIM5_IRQHandler + .word SPI3_IRQHandler + .word UART4_IRQHandler + .word UART5_IRQHandler + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word AES_IRQHandler + .word COMP_ACQ_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32L15x ULtra Low Power High-density devices. */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_IRQHandler + .thumb_set PVD_IRQHandler,Default_Handler + + .weak TAMPER_STAMP_IRQHandler + .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak DAC_IRQHandler + .thumb_set DAC_IRQHandler,Default_Handler + + .weak COMP_IRQHandler + .thumb_set COMP_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak LCD_IRQHandler + .thumb_set LCD_IRQHandler,Default_Handler + + .weak TIM9_IRQHandler + .thumb_set TIM9_IRQHandler,Default_Handler + + .weak TIM10_IRQHandler + .thumb_set TIM10_IRQHandler,Default_Handler + + .weak TIM11_IRQHandler + .thumb_set TIM11_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USB_FS_WKUP_IRQHandler + .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak SDIO_IRQHandler + .thumb_set SDIO_IRQHandler,Default_Handler + + .weak TIM5_IRQHandler + .thumb_set TIM5_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak UART4_IRQHandler + .thumb_set UART4_IRQHandler,Default_Handler + + .weak UART5_IRQHandler + .thumb_set UART5_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak AES_IRQHandler + .thumb_set AES_IRQHandler,Default_Handler + + .weak COMP_ACQ_IRQHandler + .thumb_set COMP_ACQ_IRQHandler,Default_Handler + +/************************* (C) COPYRIGHT STMicroelectronics *****END OF FILE***/ + diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_md.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_md.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_md.s @@ -0,0 +1,371 @@ +/** + ****************************************************************************** + * @file startup_stm32l1xx_md.s + * @author MCD Application Team + * @version V1.2.1 + * @date 19-June-2013 + * @brief STM32L1xx Ultra Low Power Medium-density Devices vector table for + * RIDE7 toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - 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 2013 STMicroelectronics

    + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF108F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r3, =_sidata + ldr r3, [r3, r1] + str r3, [r0, r1] + adds r1, r1, #4 + +LoopCopyDataInit: + ldr r0, =_sdata + ldr r3, =_edata + adds r2, r0, r1 + cmp r2, r3 + bcc CopyDataInit + ldr r2, =_sbss + b LoopFillZerobss +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + str r3, [r2], #4 + +LoopFillZerobss: + ldr r3, = _ebss + cmp r2, r3 + bcc FillZerobss +/* Call the clock system intitialization function.*/ + bl SystemInit +/* Call the application's entry point.*/ + bl main + bx lr +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/******************************************************************************* +* +* The minimal vector table for a Cortex M3. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +*******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_IRQHandler + .word TAMPER_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word DAC_IRQHandler + .word COMP_IRQHandler + .word EXTI9_5_IRQHandler + .word LCD_IRQHandler + .word TIM9_IRQHandler + .word TIM10_IRQHandler + .word TIM11_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USB_FS_WKUP_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32L15x ULtra Low Power Medium-density devices. */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_IRQHandler + .thumb_set PVD_IRQHandler,Default_Handler + + .weak TAMPER_STAMP_IRQHandler + .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak DAC_IRQHandler + .thumb_set DAC_IRQHandler,Default_Handler + + .weak COMP_IRQHandler + .thumb_set COMP_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak LCD_IRQHandler + .thumb_set LCD_IRQHandler,Default_Handler + + .weak TIM9_IRQHandler + .thumb_set TIM9_IRQHandler,Default_Handler + + .weak TIM10_IRQHandler + .thumb_set TIM10_IRQHandler,Default_Handler + + .weak TIM11_IRQHandler + .thumb_set TIM11_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USB_FS_WKUP_IRQHandler + .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + +/************************* (C) COPYRIGHT STMicroelectronics *****END OF FILE***/ + diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_mdp.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_mdp.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/gcc_ride7/startup_stm32l1xx_mdp.s @@ -0,0 +1,410 @@ +/** + ****************************************************************************** + * @file startup_stm32l1xx_mdp.s + * @author MCD Application Team + * @version V1.2.1 + * @date 19-June-2013 + * @brief STM32L1xx Ultra Low Power Medium-density Plus Devices vector table + * for RIDE7 toolchain. + * This module performs: + * - Set the initial SP + * - Set the initial PC == Reset_Handler, + * - Set the vector table entries with the exceptions ISR address + * - 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 2013 STMicroelectronics

    + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + .syntax unified + .cpu cortex-m3 + .fpu softvfp + .thumb + +.global g_pfnVectors +.global Default_Handler + +/* start address for the initialization values of the .data section. +defined in linker script */ +.word _sidata +/* start address for the .data section. defined in linker script */ +.word _sdata +/* end address for the .data section. defined in linker script */ +.word _edata +/* start address for the .bss section. defined in linker script */ +.word _sbss +/* end address for the .bss section. defined in linker script */ +.word _ebss + +.equ BootRAM, 0xF108F85F +/** + * @brief This is the code that gets called when the processor first + * starts execution following a reset event. Only the absolutely + * necessary set is performed, after which the application + * supplied main() routine is called. + * @param None + * @retval : None +*/ + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + b LoopCopyDataInit + +CopyDataInit: + ldr r3, =_sidata + ldr r3, [r3, r1] + str r3, [r0, r1] + adds r1, r1, #4 + +LoopCopyDataInit: + ldr r0, =_sdata + ldr r3, =_edata + adds r2, r0, r1 + cmp r2, r3 + bcc CopyDataInit + ldr r2, =_sbss + b LoopFillZerobss +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + str r3, [r2], #4 + +LoopFillZerobss: + ldr r3, = _ebss + cmp r2, r3 + bcc FillZerobss +/* Call the clock system intitialization function.*/ + bl SystemInit +/* Call the application's entry point.*/ + bl main + bx lr +.size Reset_Handler, .-Reset_Handler + +/** + * @brief This is the code that gets called when the processor receives an + * unexpected interrupt. This simply enters an infinite loop, preserving + * the system state for examination by a debugger. + * + * @param None + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + .size Default_Handler, .-Default_Handler +/******************************************************************************* +* +* The minimal vector table for a Cortex M3. Note that the proper constructs +* must be placed on this to ensure that it ends up at physical address +* 0x0000.0000. +*******************************************************************************/ + .section .isr_vector,"a",%progbits + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_IRQHandler + .word TAMPER_STAMP_IRQHandler + .word RTC_WKUP_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_IRQHandler + .word USB_HP_IRQHandler + .word USB_LP_IRQHandler + .word DAC_IRQHandler + .word COMP_IRQHandler + .word EXTI9_5_IRQHandler + .word LCD_IRQHandler + .word TIM9_IRQHandler + .word TIM10_IRQHandler + .word TIM11_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTC_Alarm_IRQHandler + .word USB_FS_WKUP_IRQHandler + .word TIM6_IRQHandler + .word TIM7_IRQHandler + .word 0 + .word TIM5_IRQHandler + .word SPI3_IRQHandler + .word 0 + .word 0 + .word DMA2_Channel1_IRQHandler + .word DMA2_Channel2_IRQHandler + .word DMA2_Channel3_IRQHandler + .word DMA2_Channel4_IRQHandler + .word DMA2_Channel5_IRQHandler + .word AES_IRQHandler + .word COMP_ACQ_IRQHandler + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word BootRAM /* @0x108. This is for boot in RAM mode for + STM32L15x ULtra Low Power Medium-density Plus devices. */ + +/******************************************************************************* +* +* Provide weak aliases for each Exception handler to the Default_Handler. +* As they are weak aliases, any function with the same name will override +* this definition. +* +*******************************************************************************/ + + .weak NMI_Handler + .thumb_set NMI_Handler,Default_Handler + + .weak HardFault_Handler + .thumb_set HardFault_Handler,Default_Handler + + .weak MemManage_Handler + .thumb_set MemManage_Handler,Default_Handler + + .weak BusFault_Handler + .thumb_set BusFault_Handler,Default_Handler + + .weak UsageFault_Handler + .thumb_set UsageFault_Handler,Default_Handler + + .weak SVC_Handler + .thumb_set SVC_Handler,Default_Handler + + .weak DebugMon_Handler + .thumb_set DebugMon_Handler,Default_Handler + + .weak PendSV_Handler + .thumb_set PendSV_Handler,Default_Handler + + .weak SysTick_Handler + .thumb_set SysTick_Handler,Default_Handler + + .weak WWDG_IRQHandler + .thumb_set WWDG_IRQHandler,Default_Handler + + .weak PVD_IRQHandler + .thumb_set PVD_IRQHandler,Default_Handler + + .weak TAMPER_STAMP_IRQHandler + .thumb_set TAMPER_STAMP_IRQHandler,Default_Handler + + .weak RTC_WKUP_IRQHandler + .thumb_set RTC_WKUP_IRQHandler,Default_Handler + + .weak FLASH_IRQHandler + .thumb_set FLASH_IRQHandler,Default_Handler + + .weak RCC_IRQHandler + .thumb_set RCC_IRQHandler,Default_Handler + + .weak EXTI0_IRQHandler + .thumb_set EXTI0_IRQHandler,Default_Handler + + .weak EXTI1_IRQHandler + .thumb_set EXTI1_IRQHandler,Default_Handler + + .weak EXTI2_IRQHandler + .thumb_set EXTI2_IRQHandler,Default_Handler + + .weak EXTI3_IRQHandler + .thumb_set EXTI3_IRQHandler,Default_Handler + + .weak EXTI4_IRQHandler + .thumb_set EXTI4_IRQHandler,Default_Handler + + .weak DMA1_Channel1_IRQHandler + .thumb_set DMA1_Channel1_IRQHandler,Default_Handler + + .weak DMA1_Channel2_IRQHandler + .thumb_set DMA1_Channel2_IRQHandler,Default_Handler + + .weak DMA1_Channel3_IRQHandler + .thumb_set DMA1_Channel3_IRQHandler,Default_Handler + + .weak DMA1_Channel4_IRQHandler + .thumb_set DMA1_Channel4_IRQHandler,Default_Handler + + .weak DMA1_Channel5_IRQHandler + .thumb_set DMA1_Channel5_IRQHandler,Default_Handler + + .weak DMA1_Channel6_IRQHandler + .thumb_set DMA1_Channel6_IRQHandler,Default_Handler + + .weak DMA1_Channel7_IRQHandler + .thumb_set DMA1_Channel7_IRQHandler,Default_Handler + + .weak ADC1_IRQHandler + .thumb_set ADC1_IRQHandler,Default_Handler + + .weak USB_HP_IRQHandler + .thumb_set USB_HP_IRQHandler,Default_Handler + + .weak USB_LP_IRQHandler + .thumb_set USB_LP_IRQHandler,Default_Handler + + .weak DAC_IRQHandler + .thumb_set DAC_IRQHandler,Default_Handler + + .weak COMP_IRQHandler + .thumb_set COMP_IRQHandler,Default_Handler + + .weak EXTI9_5_IRQHandler + .thumb_set EXTI9_5_IRQHandler,Default_Handler + + .weak LCD_IRQHandler + .thumb_set LCD_IRQHandler,Default_Handler + + .weak TIM9_IRQHandler + .thumb_set TIM9_IRQHandler,Default_Handler + + .weak TIM10_IRQHandler + .thumb_set TIM10_IRQHandler,Default_Handler + + .weak TIM11_IRQHandler + .thumb_set TIM11_IRQHandler,Default_Handler + + .weak TIM2_IRQHandler + .thumb_set TIM2_IRQHandler,Default_Handler + + .weak TIM3_IRQHandler + .thumb_set TIM3_IRQHandler,Default_Handler + + .weak TIM4_IRQHandler + .thumb_set TIM4_IRQHandler,Default_Handler + + .weak I2C1_EV_IRQHandler + .thumb_set I2C1_EV_IRQHandler,Default_Handler + + .weak I2C1_ER_IRQHandler + .thumb_set I2C1_ER_IRQHandler,Default_Handler + + .weak I2C2_EV_IRQHandler + .thumb_set I2C2_EV_IRQHandler,Default_Handler + + .weak I2C2_ER_IRQHandler + .thumb_set I2C2_ER_IRQHandler,Default_Handler + + .weak SPI1_IRQHandler + .thumb_set SPI1_IRQHandler,Default_Handler + + .weak SPI2_IRQHandler + .thumb_set SPI2_IRQHandler,Default_Handler + + .weak USART1_IRQHandler + .thumb_set USART1_IRQHandler,Default_Handler + + .weak USART2_IRQHandler + .thumb_set USART2_IRQHandler,Default_Handler + + .weak USART3_IRQHandler + .thumb_set USART3_IRQHandler,Default_Handler + + .weak EXTI15_10_IRQHandler + .thumb_set EXTI15_10_IRQHandler,Default_Handler + + .weak RTC_Alarm_IRQHandler + .thumb_set RTC_Alarm_IRQHandler,Default_Handler + + .weak USB_FS_WKUP_IRQHandler + .thumb_set USB_FS_WKUP_IRQHandler,Default_Handler + + .weak TIM6_IRQHandler + .thumb_set TIM6_IRQHandler,Default_Handler + + .weak TIM7_IRQHandler + .thumb_set TIM7_IRQHandler,Default_Handler + + .weak TIM5_IRQHandler + .thumb_set TIM5_IRQHandler,Default_Handler + + .weak SPI3_IRQHandler + .thumb_set SPI3_IRQHandler,Default_Handler + + .weak DMA2_Channel1_IRQHandler + .thumb_set DMA2_Channel1_IRQHandler,Default_Handler + + .weak DMA2_Channel2_IRQHandler + .thumb_set DMA2_Channel2_IRQHandler,Default_Handler + + .weak DMA2_Channel3_IRQHandler + .thumb_set DMA2_Channel3_IRQHandler,Default_Handler + + .weak DMA2_Channel4_IRQHandler + .thumb_set DMA2_Channel4_IRQHandler,Default_Handler + + .weak DMA2_Channel5_IRQHandler + .thumb_set DMA2_Channel5_IRQHandler,Default_Handler + + .weak AES_IRQHandler + .thumb_set AES_IRQHandler,Default_Handler + + .weak COMP_ACQ_IRQHandler + .thumb_set COMP_ACQ_IRQHandler,Default_Handler + +/************************* (C) COPYRIGHT STMicroelectronics *****END OF FILE***/ + diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_hd.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_hd.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_hd.s @@ -0,0 +1,544 @@ +;/******************** (C) COPYRIGHT 2013 STMicroelectronics ******************** +;* File Name : startup_stm32l1xx_hd.s +;* Author : MCD Application Team +;* Version : V1.2.1 +;* Date : 19-June-2013 +;* Description : STM32L1xx Ultra Low Power High-density Devices vector +;* table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start, +;* - Set the vector table entries with the exceptions ISR +;* address. +;* After Reset the Cortex-M3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;******************************************************************************** +;* +;* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); +;* You may not use this file except in compliance with the License. +;* You may obtain a copy of the License at: +;* +;* http://www.st.com/software_license_agreement_liberty_v2 +;* +;* Unless required by applicable law or agreed to in writing, software +;* distributed under the License is distributed on an "AS IS" BASIS, +;* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +;* See the License for the specific language governing permissions and +;* limitations under the License. +;* +;*******************************************************************************/ +; +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) + DCD Reset_Handler ; Reset Handler + + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp + DCD RTC_WKUP_IRQHandler ; RTC Wakeup + 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_IRQHandler ; ADC1 + DCD USB_HP_IRQHandler ; USB High Priority + DCD USB_LP_IRQHandler ; USB Low Priority + DCD DAC_IRQHandler ; DAC + DCD COMP_IRQHandler ; COMP through EXTI Line + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD LCD_IRQHandler ; LCD + DCD TIM9_IRQHandler ; TIM9 + DCD TIM10_IRQHandler ; TIM10 + DCD TIM11_IRQHandler ; TIM11 + 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 USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend + DCD TIM6_IRQHandler ; TIM6 + DCD TIM7_IRQHandler ; TIM7 + DCD SDIO_IRQHandler ; SDIO + DCD TIM5_IRQHandler ; TIM5 + DCD SPI3_IRQHandler ; SPI3 + DCD UART4_IRQHandler ; UART4 + DCD UART5_IRQHandler ; UART5 + DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 + DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 + DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 + DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 + DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 + DCD AES_IRQHandler ; AES + DCD COMP_ACQ_IRQHandler ; Comparator Channel Acquisition + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER(1) +NMI_Handler + B NMI_Handler + + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER(1) +HardFault_Handler + B HardFault_Handler + + + PUBWEAK MemManage_Handler + SECTION .text:CODE:REORDER(1) +MemManage_Handler + B MemManage_Handler + + + PUBWEAK BusFault_Handler + SECTION .text:CODE:REORDER(1) +BusFault_Handler + B BusFault_Handler + + + PUBWEAK UsageFault_Handler + SECTION .text:CODE:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER(1) +SVC_Handler + B SVC_Handler + + + PUBWEAK DebugMon_Handler + SECTION .text:CODE:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER(1) +PendSV_Handler + B PendSV_Handler + + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER(1) +SysTick_Handler + B SysTick_Handler + + + PUBWEAK WWDG_IRQHandler + SECTION .text:CODE:REORDER(1) +WWDG_IRQHandler + B WWDG_IRQHandler + + + PUBWEAK PVD_IRQHandler + SECTION .text:CODE:REORDER(1) +PVD_IRQHandler + B PVD_IRQHandler + + + PUBWEAK TAMPER_STAMP_IRQHandler + SECTION .text:CODE:REORDER(1) +TAMPER_STAMP_IRQHandler + B TAMPER_STAMP_IRQHandler + + + PUBWEAK RTC_WKUP_IRQHandler + SECTION .text:CODE:REORDER(1) +RTC_WKUP_IRQHandler + B RTC_WKUP_IRQHandler + + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER(1) +RCC_IRQHandler + B RCC_IRQHandler + + + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + + + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + + + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + + + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + + + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + + + PUBWEAK DMA1_Channel1_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel1_IRQHandler + B DMA1_Channel1_IRQHandler + + + PUBWEAK DMA1_Channel2_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel2_IRQHandler + B DMA1_Channel2_IRQHandler + + + PUBWEAK DMA1_Channel3_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel3_IRQHandler + B DMA1_Channel3_IRQHandler + + + PUBWEAK DMA1_Channel4_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel4_IRQHandler + B DMA1_Channel4_IRQHandler + + + PUBWEAK DMA1_Channel5_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel5_IRQHandler + B DMA1_Channel5_IRQHandler + + + PUBWEAK DMA1_Channel6_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel6_IRQHandler + B DMA1_Channel6_IRQHandler + + + PUBWEAK DMA1_Channel7_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel7_IRQHandler + B DMA1_Channel7_IRQHandler + + + PUBWEAK ADC1_IRQHandler + SECTION .text:CODE:REORDER(1) +ADC1_IRQHandler + B ADC1_IRQHandler + + + PUBWEAK USB_HP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_HP_IRQHandler + B USB_HP_IRQHandler + + + PUBWEAK USB_LP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_LP_IRQHandler + B USB_LP_IRQHandler + + + PUBWEAK DAC_IRQHandler + SECTION .text:CODE:REORDER(1) +DAC_IRQHandler + B DAC_IRQHandler + + + PUBWEAK COMP_IRQHandler + SECTION .text:CODE:REORDER(1) +COMP_IRQHandler + B COMP_IRQHandler + + + PUBWEAK EXTI9_5_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI9_5_IRQHandler + B EXTI9_5_IRQHandler + + + PUBWEAK LCD_IRQHandler + SECTION .text:CODE:REORDER(1) +LCD_IRQHandler + B LCD_IRQHandler + + + PUBWEAK TIM9_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM9_IRQHandler + B TIM9_IRQHandler + + + PUBWEAK TIM10_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM10_IRQHandler + B TIM10_IRQHandler + + + PUBWEAK TIM11_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM11_IRQHandler + B TIM11_IRQHandler + + + PUBWEAK TIM2_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM2_IRQHandler + B TIM2_IRQHandler + + + PUBWEAK TIM3_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM3_IRQHandler + B TIM3_IRQHandler + + + PUBWEAK TIM4_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM4_IRQHandler + B TIM4_IRQHandler + + + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + + + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + + + PUBWEAK I2C2_EV_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C2_EV_IRQHandler + B I2C2_EV_IRQHandler + + + PUBWEAK I2C2_ER_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C2_ER_IRQHandler + B I2C2_ER_IRQHandler + + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + + PUBWEAK SPI2_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI2_IRQHandler + B SPI2_IRQHandler + + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER(1) +USART1_IRQHandler + B USART1_IRQHandler + + + PUBWEAK USART2_IRQHandler + SECTION .text:CODE:REORDER(1) +USART2_IRQHandler + B USART2_IRQHandler + + + PUBWEAK USART3_IRQHandler + SECTION .text:CODE:REORDER(1) +USART3_IRQHandler + B USART3_IRQHandler + + + PUBWEAK EXTI15_10_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI15_10_IRQHandler + B EXTI15_10_IRQHandler + + + PUBWEAK RTC_Alarm_IRQHandler + SECTION .text:CODE:REORDER(1) +RTC_Alarm_IRQHandler + B RTC_Alarm_IRQHandler + + + PUBWEAK USB_FS_WKUP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_FS_WKUP_IRQHandler + B USB_FS_WKUP_IRQHandler + + + PUBWEAK TIM6_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM6_IRQHandler + B TIM6_IRQHandler + + + PUBWEAK TIM7_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM7_IRQHandler + B TIM7_IRQHandler + + PUBWEAK SDIO_IRQHandler + SECTION .text:CODE:REORDER(1) +SDIO_IRQHandler + B SDIO_IRQHandler + + + PUBWEAK TIM5_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM5_IRQHandler + B TIM5_IRQHandler + + PUBWEAK SPI3_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI3_IRQHandler + B SPI3_IRQHandler + + + PUBWEAK UART4_IRQHandler + SECTION .text:CODE:REORDER(1) +UART4_IRQHandler + B UART4_IRQHandler + + + PUBWEAK UART5_IRQHandler + SECTION .text:CODE:REORDER(1) +UART5_IRQHandler + B UART5_IRQHandler + + PUBWEAK DMA2_Channel1_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel1_IRQHandler + B DMA2_Channel1_IRQHandler + + + PUBWEAK DMA2_Channel2_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel2_IRQHandler + B DMA2_Channel2_IRQHandler + + + PUBWEAK DMA2_Channel3_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel3_IRQHandler + B DMA2_Channel3_IRQHandler + + + PUBWEAK DMA2_Channel4_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel4_IRQHandler + B DMA2_Channel4_IRQHandler + + + PUBWEAK DMA2_Channel5_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel5_IRQHandler + B DMA2_Channel5_IRQHandler + + + PUBWEAK AES_IRQHandler + SECTION .text:CODE:REORDER(1) +AES_IRQHandler + B AES_IRQHandler + + + PUBWEAK COMP_ACQ_IRQHandler + SECTION .text:CODE:REORDER(1) +COMP_ACQ_IRQHandler + B COMP_ACQ_IRQHandler + + END +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_md.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_md.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_md.s @@ -0,0 +1,463 @@ +;/******************** (C) COPYRIGHT 2013 STMicroelectronics ******************** +;* File Name : startup_stm32l1xx_md.s +;* Author : MCD Application Team +;* Version : V1.2.1 +;* Date : 19-June-2013 +;* Description : STM32L1xx Ultra Low Power Medium-density Devices vector +;* table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start, +;* - Set the vector table entries with the exceptions ISR +;* address. +;* After Reset the Cortex-M3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;******************************************************************************** +;* +;* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); +;* You may not use this file except in compliance with the License. +;* You may obtain a copy of the License at: +;* +;* http://www.st.com/software_license_agreement_liberty_v2 +;* +;* Unless required by applicable law or agreed to in writing, software +;* distributed under the License is distributed on an "AS IS" BASIS, +;* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +;* See the License for the specific language governing permissions and +;* limitations under the License. +;* +;*******************************************************************************/ +; +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) + DCD Reset_Handler ; Reset Handler + + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp + DCD RTC_WKUP_IRQHandler ; RTC Wakeup + 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_IRQHandler ; ADC1 + DCD USB_HP_IRQHandler ; USB High Priority + DCD USB_LP_IRQHandler ; USB Low Priority + DCD DAC_IRQHandler ; DAC + DCD COMP_IRQHandler ; COMP through EXTI Line + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD LCD_IRQHandler ; LCD + DCD TIM9_IRQHandler ; TIM9 + DCD TIM10_IRQHandler ; TIM10 + DCD TIM11_IRQHandler ; TIM11 + 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 USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend + DCD TIM6_IRQHandler ; TIM6 + DCD TIM7_IRQHandler ; TIM7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER(1) +NMI_Handler + B NMI_Handler + + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER(1) +HardFault_Handler + B HardFault_Handler + + + PUBWEAK MemManage_Handler + SECTION .text:CODE:REORDER(1) +MemManage_Handler + B MemManage_Handler + + + PUBWEAK BusFault_Handler + SECTION .text:CODE:REORDER(1) +BusFault_Handler + B BusFault_Handler + + + PUBWEAK UsageFault_Handler + SECTION .text:CODE:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER(1) +SVC_Handler + B SVC_Handler + + + PUBWEAK DebugMon_Handler + SECTION .text:CODE:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER(1) +PendSV_Handler + B PendSV_Handler + + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER(1) +SysTick_Handler + B SysTick_Handler + + + PUBWEAK WWDG_IRQHandler + SECTION .text:CODE:REORDER(1) +WWDG_IRQHandler + B WWDG_IRQHandler + + + PUBWEAK PVD_IRQHandler + SECTION .text:CODE:REORDER(1) +PVD_IRQHandler + B PVD_IRQHandler + + + PUBWEAK TAMPER_STAMP_IRQHandler + SECTION .text:CODE:REORDER(1) +TAMPER_STAMP_IRQHandler + B TAMPER_STAMP_IRQHandler + + + PUBWEAK RTC_WKUP_IRQHandler + SECTION .text:CODE:REORDER(1) +RTC_WKUP_IRQHandler + B RTC_WKUP_IRQHandler + + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER(1) +RCC_IRQHandler + B RCC_IRQHandler + + + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + + + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + + + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + + + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + + + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + + + PUBWEAK DMA1_Channel1_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel1_IRQHandler + B DMA1_Channel1_IRQHandler + + + PUBWEAK DMA1_Channel2_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel2_IRQHandler + B DMA1_Channel2_IRQHandler + + + PUBWEAK DMA1_Channel3_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel3_IRQHandler + B DMA1_Channel3_IRQHandler + + + PUBWEAK DMA1_Channel4_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel4_IRQHandler + B DMA1_Channel4_IRQHandler + + + PUBWEAK DMA1_Channel5_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel5_IRQHandler + B DMA1_Channel5_IRQHandler + + + PUBWEAK DMA1_Channel6_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel6_IRQHandler + B DMA1_Channel6_IRQHandler + + + PUBWEAK DMA1_Channel7_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel7_IRQHandler + B DMA1_Channel7_IRQHandler + + + PUBWEAK ADC1_IRQHandler + SECTION .text:CODE:REORDER(1) +ADC1_IRQHandler + B ADC1_IRQHandler + + + PUBWEAK USB_HP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_HP_IRQHandler + B USB_HP_IRQHandler + + + PUBWEAK USB_LP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_LP_IRQHandler + B USB_LP_IRQHandler + + + PUBWEAK DAC_IRQHandler + SECTION .text:CODE:REORDER(1) +DAC_IRQHandler + B DAC_IRQHandler + + + PUBWEAK COMP_IRQHandler + SECTION .text:CODE:REORDER(1) +COMP_IRQHandler + B COMP_IRQHandler + + + PUBWEAK EXTI9_5_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI9_5_IRQHandler + B EXTI9_5_IRQHandler + + + PUBWEAK LCD_IRQHandler + SECTION .text:CODE:REORDER(1) +LCD_IRQHandler + B LCD_IRQHandler + + + PUBWEAK TIM9_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM9_IRQHandler + B TIM9_IRQHandler + + + PUBWEAK TIM10_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM10_IRQHandler + B TIM10_IRQHandler + + + PUBWEAK TIM11_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM11_IRQHandler + B TIM11_IRQHandler + + + PUBWEAK TIM2_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM2_IRQHandler + B TIM2_IRQHandler + + + PUBWEAK TIM3_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM3_IRQHandler + B TIM3_IRQHandler + + + PUBWEAK TIM4_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM4_IRQHandler + B TIM4_IRQHandler + + + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + + + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + + + PUBWEAK I2C2_EV_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C2_EV_IRQHandler + B I2C2_EV_IRQHandler + + + PUBWEAK I2C2_ER_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C2_ER_IRQHandler + B I2C2_ER_IRQHandler + + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + + PUBWEAK SPI2_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI2_IRQHandler + B SPI2_IRQHandler + + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER(1) +USART1_IRQHandler + B USART1_IRQHandler + + + PUBWEAK USART2_IRQHandler + SECTION .text:CODE:REORDER(1) +USART2_IRQHandler + B USART2_IRQHandler + + + PUBWEAK USART3_IRQHandler + SECTION .text:CODE:REORDER(1) +USART3_IRQHandler + B USART3_IRQHandler + + + PUBWEAK EXTI15_10_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI15_10_IRQHandler + B EXTI15_10_IRQHandler + + + PUBWEAK RTC_Alarm_IRQHandler + SECTION .text:CODE:REORDER(1) +RTC_Alarm_IRQHandler + B RTC_Alarm_IRQHandler + + + PUBWEAK USB_FS_WKUP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_FS_WKUP_IRQHandler + B USB_FS_WKUP_IRQHandler + + + PUBWEAK TIM6_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM6_IRQHandler + B TIM6_IRQHandler + + + PUBWEAK TIM7_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM7_IRQHandler + B TIM7_IRQHandler + + END +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_mdp.s b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_mdp.s new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/iar/startup_stm32l1xx_mdp.s @@ -0,0 +1,520 @@ +;/******************** (C) COPYRIGHT 2013 STMicroelectronics ******************** +;* File Name : startup_stm32l1xx_mdp.s +;* Author : MCD Application Team +;* Version : V1.2.1 +;* Date : 19-June-2013 +;* Description : STM32L1xx Ultra Low Power Medium-density Plus Devices vector +;* table for EWARM toolchain. +;* This module performs: +;* - Set the initial SP +;* - Set the initial PC == __iar_program_start, +;* - Set the vector table entries with the exceptions ISR +;* address. +;* After Reset the Cortex-M3 processor is in Thread mode, +;* priority is Privileged, and the Stack is set to Main. +;******************************************************************************** +;* +;* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); +;* You may not use this file except in compliance with the License. +;* You may obtain a copy of the License at: +;* +;* http://www.st.com/software_license_agreement_liberty_v2 +;* +;* Unless required by applicable law or agreed to in writing, software +;* distributed under the License is distributed on an "AS IS" BASIS, +;* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +;* See the License for the specific language governing permissions and +;* limitations under the License. +;* +;*******************************************************************************/ +; +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + EXTERN SystemInit + PUBLIC __vector_table + + DATA +__vector_table + DCD sfe(CSTACK) + DCD Reset_Handler ; Reset Handler + + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WWDG_IRQHandler ; Window Watchdog + DCD PVD_IRQHandler ; PVD through EXTI Line detect + DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp + DCD RTC_WKUP_IRQHandler ; RTC Wakeup + 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_IRQHandler ; ADC1 + DCD USB_HP_IRQHandler ; USB High Priority + DCD USB_LP_IRQHandler ; USB Low Priority + DCD DAC_IRQHandler ; DAC + DCD COMP_IRQHandler ; COMP through EXTI Line + DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 + DCD LCD_IRQHandler ; LCD + DCD TIM9_IRQHandler ; TIM9 + DCD TIM10_IRQHandler ; TIM10 + DCD TIM11_IRQHandler ; TIM11 + 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 USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend + DCD TIM6_IRQHandler ; TIM6 + DCD TIM7_IRQHandler ; TIM7 + DCD 0 ; Reserved + DCD TIM5_IRQHandler ; TIM5 + DCD SPI3_IRQHandler ; SPI3 + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 + DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 + DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 + DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 + DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 + DCD AES_IRQHandler ; AES + DCD COMP_ACQ_IRQHandler ; Comparator Channel Acquisition + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER(2) +Reset_Handler + LDR R0, =SystemInit + BLX R0 + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + SECTION .text:CODE:REORDER(1) +NMI_Handler + B NMI_Handler + + + PUBWEAK HardFault_Handler + SECTION .text:CODE:REORDER(1) +HardFault_Handler + B HardFault_Handler + + + PUBWEAK MemManage_Handler + SECTION .text:CODE:REORDER(1) +MemManage_Handler + B MemManage_Handler + + + PUBWEAK BusFault_Handler + SECTION .text:CODE:REORDER(1) +BusFault_Handler + B BusFault_Handler + + + PUBWEAK UsageFault_Handler + SECTION .text:CODE:REORDER(1) +UsageFault_Handler + B UsageFault_Handler + + + PUBWEAK SVC_Handler + SECTION .text:CODE:REORDER(1) +SVC_Handler + B SVC_Handler + + + PUBWEAK DebugMon_Handler + SECTION .text:CODE:REORDER(1) +DebugMon_Handler + B DebugMon_Handler + + + PUBWEAK PendSV_Handler + SECTION .text:CODE:REORDER(1) +PendSV_Handler + B PendSV_Handler + + + PUBWEAK SysTick_Handler + SECTION .text:CODE:REORDER(1) +SysTick_Handler + B SysTick_Handler + + + PUBWEAK WWDG_IRQHandler + SECTION .text:CODE:REORDER(1) +WWDG_IRQHandler + B WWDG_IRQHandler + + + PUBWEAK PVD_IRQHandler + SECTION .text:CODE:REORDER(1) +PVD_IRQHandler + B PVD_IRQHandler + + + PUBWEAK TAMPER_STAMP_IRQHandler + SECTION .text:CODE:REORDER(1) +TAMPER_STAMP_IRQHandler + B TAMPER_STAMP_IRQHandler + + + PUBWEAK RTC_WKUP_IRQHandler + SECTION .text:CODE:REORDER(1) +RTC_WKUP_IRQHandler + B RTC_WKUP_IRQHandler + + + PUBWEAK FLASH_IRQHandler + SECTION .text:CODE:REORDER(1) +FLASH_IRQHandler + B FLASH_IRQHandler + + + PUBWEAK RCC_IRQHandler + SECTION .text:CODE:REORDER(1) +RCC_IRQHandler + B RCC_IRQHandler + + + PUBWEAK EXTI0_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI0_IRQHandler + B EXTI0_IRQHandler + + + PUBWEAK EXTI1_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI1_IRQHandler + B EXTI1_IRQHandler + + + PUBWEAK EXTI2_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI2_IRQHandler + B EXTI2_IRQHandler + + + PUBWEAK EXTI3_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI3_IRQHandler + B EXTI3_IRQHandler + + + PUBWEAK EXTI4_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI4_IRQHandler + B EXTI4_IRQHandler + + + PUBWEAK DMA1_Channel1_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel1_IRQHandler + B DMA1_Channel1_IRQHandler + + + PUBWEAK DMA1_Channel2_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel2_IRQHandler + B DMA1_Channel2_IRQHandler + + + PUBWEAK DMA1_Channel3_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel3_IRQHandler + B DMA1_Channel3_IRQHandler + + + PUBWEAK DMA1_Channel4_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel4_IRQHandler + B DMA1_Channel4_IRQHandler + + + PUBWEAK DMA1_Channel5_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel5_IRQHandler + B DMA1_Channel5_IRQHandler + + + PUBWEAK DMA1_Channel6_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel6_IRQHandler + B DMA1_Channel6_IRQHandler + + + PUBWEAK DMA1_Channel7_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA1_Channel7_IRQHandler + B DMA1_Channel7_IRQHandler + + + PUBWEAK ADC1_IRQHandler + SECTION .text:CODE:REORDER(1) +ADC1_IRQHandler + B ADC1_IRQHandler + + + PUBWEAK USB_HP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_HP_IRQHandler + B USB_HP_IRQHandler + + + PUBWEAK USB_LP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_LP_IRQHandler + B USB_LP_IRQHandler + + + PUBWEAK DAC_IRQHandler + SECTION .text:CODE:REORDER(1) +DAC_IRQHandler + B DAC_IRQHandler + + + PUBWEAK COMP_IRQHandler + SECTION .text:CODE:REORDER(1) +COMP_IRQHandler + B COMP_IRQHandler + + + PUBWEAK EXTI9_5_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI9_5_IRQHandler + B EXTI9_5_IRQHandler + + + PUBWEAK LCD_IRQHandler + SECTION .text:CODE:REORDER(1) +LCD_IRQHandler + B LCD_IRQHandler + + + PUBWEAK TIM9_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM9_IRQHandler + B TIM9_IRQHandler + + + PUBWEAK TIM10_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM10_IRQHandler + B TIM10_IRQHandler + + + PUBWEAK TIM11_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM11_IRQHandler + B TIM11_IRQHandler + + + PUBWEAK TIM2_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM2_IRQHandler + B TIM2_IRQHandler + + + PUBWEAK TIM3_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM3_IRQHandler + B TIM3_IRQHandler + + + PUBWEAK TIM4_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM4_IRQHandler + B TIM4_IRQHandler + + + PUBWEAK I2C1_EV_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C1_EV_IRQHandler + B I2C1_EV_IRQHandler + + + PUBWEAK I2C1_ER_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C1_ER_IRQHandler + B I2C1_ER_IRQHandler + + + PUBWEAK I2C2_EV_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C2_EV_IRQHandler + B I2C2_EV_IRQHandler + + + PUBWEAK I2C2_ER_IRQHandler + SECTION .text:CODE:REORDER(1) +I2C2_ER_IRQHandler + B I2C2_ER_IRQHandler + + + PUBWEAK SPI1_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI1_IRQHandler + B SPI1_IRQHandler + + + PUBWEAK SPI2_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI2_IRQHandler + B SPI2_IRQHandler + + + PUBWEAK USART1_IRQHandler + SECTION .text:CODE:REORDER(1) +USART1_IRQHandler + B USART1_IRQHandler + + + PUBWEAK USART2_IRQHandler + SECTION .text:CODE:REORDER(1) +USART2_IRQHandler + B USART2_IRQHandler + + + PUBWEAK USART3_IRQHandler + SECTION .text:CODE:REORDER(1) +USART3_IRQHandler + B USART3_IRQHandler + + + PUBWEAK EXTI15_10_IRQHandler + SECTION .text:CODE:REORDER(1) +EXTI15_10_IRQHandler + B EXTI15_10_IRQHandler + + + PUBWEAK RTC_Alarm_IRQHandler + SECTION .text:CODE:REORDER(1) +RTC_Alarm_IRQHandler + B RTC_Alarm_IRQHandler + + + PUBWEAK USB_FS_WKUP_IRQHandler + SECTION .text:CODE:REORDER(1) +USB_FS_WKUP_IRQHandler + B USB_FS_WKUP_IRQHandler + + + PUBWEAK TIM6_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM6_IRQHandler + B TIM6_IRQHandler + + + PUBWEAK TIM7_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM7_IRQHandler + B TIM7_IRQHandler + + PUBWEAK TIM5_IRQHandler + SECTION .text:CODE:REORDER(1) +TIM5_IRQHandler + B TIM5_IRQHandler + + PUBWEAK SPI3_IRQHandler + SECTION .text:CODE:REORDER(1) +SPI3_IRQHandler + B SPI3_IRQHandler + + PUBWEAK DMA2_Channel1_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel1_IRQHandler + B DMA2_Channel1_IRQHandler + + PUBWEAK DMA2_Channel2_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel2_IRQHandler + B DMA2_Channel2_IRQHandler + + PUBWEAK DMA2_Channel3_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel3_IRQHandler + B DMA2_Channel3_IRQHandler + + PUBWEAK DMA2_Channel4_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel4_IRQHandler + B DMA2_Channel4_IRQHandler + + PUBWEAK DMA2_Channel5_IRQHandler + SECTION .text:CODE:REORDER(1) +DMA2_Channel5_IRQHandler + B DMA2_Channel5_IRQHandler + + PUBWEAK AES_IRQHandler + SECTION .text:CODE:REORDER(1) +AES_IRQHandler + B AES_IRQHandler + + PUBWEAK COMP_ACQ_IRQHandler + SECTION .text:CODE:REORDER(1) +COMP_ACQ_IRQHandler + B COMP_ACQ_IRQHandler + + END +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/system_stm32l1xx.c b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/system_stm32l1xx.c new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/system_stm32l1xx.c @@ -0,0 +1,533 @@ +/** + ****************************************************************************** + * @file system_stm32l1xx.c + * @author MCD Application Team + * @version V1.2.1 + * @date 19-June-2013 + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. + * This file contains the system clock configuration for STM32L1xx Ultra + * Low Power devices, and is generated by the clock configuration + * tool "STM32L1xx_Clock_Configuration_V1.1.0.xls". + * + * 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 + * and Divider factors, AHB/APBx prescalers and Flash settings), + * depending on the configuration made in the clock xls tool. + * This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32l1xx_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 MSI (2.1 MHz Range) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32l1xx_xx.s" file, to + * configure the system clock before to branch to main program. + * + * 3. If the system clock source selected by user fails to startup, the SystemInit() + * function will do nothing and MSI still used as system clock source. User can + * add some code to deal with this issue inside the SetSysClock() function. + * + * 4. The default value of HSE crystal is set to 8MHz, refer to "HSE_VALUE" define + * in "stm32l1xx.h" file. When HSE is used as system clock source, directly or + * through PLL, and you are using different crystal you have to adapt the HSE + * value to your own configuration. + * + * 5. This file configures the system clock as follows: + *============================================================================= + * System Clock Configuration + *============================================================================= + * System Clock source | PLL(HSE) + *----------------------------------------------------------------------------- + * SYSCLK | 32000000 Hz + *----------------------------------------------------------------------------- + * HCLK | 32000000 Hz + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * HSE Frequency | 8000000 Hz + *----------------------------------------------------------------------------- + * PLL DIV | 3 + *----------------------------------------------------------------------------- + * PLL MUL | 12 + *----------------------------------------------------------------------------- + * VDD | 3.3 V + *----------------------------------------------------------------------------- + * Vcore | 1.8 V (Range 1) + *----------------------------------------------------------------------------- + * Flash Latency | 1 WS + *----------------------------------------------------------------------------- + * SDIO clock (SDIOCLK) | 48000000 Hz + *----------------------------------------------------------------------------- + * Require 48MHz for USB clock | Disabled + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + *

    © COPYRIGHT 2013 STMicroelectronics

    + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32l1xx_system + * @{ + */ + +/** @addtogroup STM32L1xx_System_Private_Includes + * @{ + */ + +#include "stm32l1xx.h" + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Defines + * @{ + */ + +/*!< Uncomment the following line if you need to use external SRAM mounted + on STM32L152D_EVAL board as data memory */ +/* #define DATA_IN_ExtSRAM */ + +/*!< 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 STM32L1xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Variables + * @{ + */ +uint32_t SystemCoreClock = 32000000; +__I uint8_t PLLMulTable[9] = {3, 4, 6, 8, 12, 16, 24, 32, 48}; +__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_FunctionPrototypes + * @{ + */ + +static void SetSysClock(void); +#ifdef DATA_IN_ExtSRAM + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system. + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemCoreClock variable. + * @param None + * @retval None + */ +void SystemInit (void) +{ + /*!< Set MSION bit */ + RCC->CR |= (uint32_t)0x00000100; + + /*!< Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0], MCOSEL[2:0] and MCOPRE[2:0] bits */ + RCC->CFGR &= (uint32_t)0x88FFC00C; + + /*!< Reset HSION, HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xEEFEFFFE; + + /*!< Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /*!< Reset PLLSRC, PLLMUL[3:0] and PLLDIV[1:0] bits */ + RCC->CFGR &= (uint32_t)0xFF02FFFF; + + /*!< Disable all interrupts */ + RCC->CIR = 0x00000000; + +#ifdef DATA_IN_ExtSRAM + SystemInit_ExtMemCtl(); +#endif /* DATA_IN_ExtSRAM */ + + /* Configure the System clock frequency, AHB/APBx prescalers and Flash settings */ + SetSysClock(); + +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ +#endif +} + +/** + * @brief Update SystemCoreClock according to Clock Register Values + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is MSI, SystemCoreClock will contain the MSI + * value as defined by the MSI range. + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32l1xx.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32l1xx.h file (default value + * 8 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0, pllmul = 0, plldiv = 0, pllsource = 0, msirange = 0; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* MSI used as system clock */ + msirange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE) >> 13; + SystemCoreClock = (32768 * (1 << (msirange + 1))); + break; + case 0x04: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x08: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x0C: /* PLL used as system clock */ + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmul = RCC->CFGR & RCC_CFGR_PLLMUL; + plldiv = RCC->CFGR & RCC_CFGR_PLLDIV; + pllmul = PLLMulTable[(pllmul >> 18)]; + plldiv = (plldiv >> 22) + 1; + + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + + if (pllsource == 0x00) + { + /* HSI oscillator clock selected as PLL clock entry */ + SystemCoreClock = (((HSI_VALUE) * pllmul) / plldiv); + } + else + { + /* HSE selected as PLL clock entry */ + SystemCoreClock = (((HSE_VALUE) * pllmul) / plldiv); + } + break; + default: /* MSI used as system clock */ + msirange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE) >> 13; + SystemCoreClock = (32768 * (1 << (msirange + 1))); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Configures the System clock frequency, AHB/APBx prescalers and Flash + * settings. + * @note This function should be called only once the RCC clock configuration + * is reset to the default reset state (done in SystemInit() function). + * @param None + * @retval None + */ +static void SetSysClock(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable 64-bit access */ + FLASH->ACR |= FLASH_ACR_ACC64; + + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTEN; + + /* Flash 1 wait state */ + FLASH->ACR |= FLASH_ACR_LATENCY; + + /* Power enable */ + RCC->APB1ENR |= RCC_APB1ENR_PWREN; + + /* Select the Voltage Range 1 (1.8 V) */ + PWR->CR = PWR_CR_VOS_0; + + /* Wait Until the Voltage Regulator is ready */ + while((PWR->CSR & PWR_CSR_VOSF) != RESET) + { + } + + /* HCLK = SYSCLK /1*/ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK /1*/ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK /1*/ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + + /* PLL configuration */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL | + RCC_CFGR_PLLDIV)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMUL12 | RCC_CFGR_PLLDIV3); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +#ifdef DATA_IN_ExtSRAM +/** + * @brief Setup the external memory controller. + * Called in SystemInit() function before jump to main. + * This function configures the external SRAM mounted on STM32L152D_EVAL board + * This SRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ +/*-- GPIOs Configuration -----------------------------------------------------*/ +/* + +-------------------+--------------------+------------------+------------------+ + + SRAM pins assignment + + +-------------------+--------------------+------------------+------------------+ + | PD0 <-> FSMC_D2 | PE0 <-> FSMC_NBL0 | PF0 <-> FSMC_A0 | PG0 <-> FSMC_A10 | + | PD1 <-> FSMC_D3 | PE1 <-> FSMC_NBL1 | PF1 <-> FSMC_A1 | PG1 <-> FSMC_A11 | + | PD4 <-> FSMC_NOE | PE7 <-> FSMC_D4 | PF2 <-> FSMC_A2 | PG2 <-> FSMC_A12 | + | PD5 <-> FSMC_NWE | PE8 <-> FSMC_D5 | PF3 <-> FSMC_A3 | PG3 <-> FSMC_A13 | + | PD8 <-> FSMC_D13 | PE9 <-> FSMC_D6 | PF4 <-> FSMC_A4 | PG4 <-> FSMC_A14 | + | PD9 <-> FSMC_D14 | PE10 <-> FSMC_D7 | PF5 <-> FSMC_A5 | PG5 <-> FSMC_A15 | + | PD10 <-> FSMC_D15 | PE11 <-> FSMC_D8 | PF12 <-> FSMC_A6 | PG10<-> FSMC_NE2 | + | PD11 <-> FSMC_A16 | PE12 <-> FSMC_D9 | PF13 <-> FSMC_A7 |------------------+ + | PD12 <-> FSMC_A17 | PE13 <-> FSMC_D10 | PF14 <-> FSMC_A8 | + | PD13 <-> FSMC_A18 | PE14 <-> FSMC_D11 | PF15 <-> FSMC_A9 | + | PD14 <-> FSMC_D0 | PE15 <-> FSMC_D12 |------------------+ + | PD15 <-> FSMC_D1 |--------------------+ + +-------------------+ +*/ + + /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ + RCC->AHBENR = 0x000080D8; + + /* Connect PDx pins to FSMC Alternate function */ + GPIOD->AFR[0] = 0x00CC00CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A0A; + /* Configure PDx pins speed to 40 MHz */ + GPIOD->OSPEEDR = 0xFFFF0F0F; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FSMC Alternate function */ + GPIOE->AFR[0] = 0xC00000CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA800A; + /* Configure PEx pins speed to 40 MHz */ + GPIOE->OSPEEDR = 0xFFFFC00F; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FSMC Alternate function */ + GPIOF->AFR[0] = 0x00CCCCCC; + GPIOF->AFR[1] = 0xCCCC0000; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA000AAA; + /* Configure PFx pins speed to 40 MHz */ + GPIOF->OSPEEDR = 0xFF000FFF; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FSMC Alternate function */ + GPIOG->AFR[0] = 0x00CCCCCC; + GPIOG->AFR[1] = 0x00000C00; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0x00200AAA; + /* Configure PGx pins speed to 40 MHz */ + GPIOG->OSPEEDR = 0x00300FFF; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +/*-- FSMC Configuration ------------------------------------------------------*/ + /* Enable the FSMC interface clock */ + RCC->AHBENR = 0x400080D8; + + /* Configure and enable Bank1_SRAM3 */ + FSMC_Bank1->BTCR[4] = 0x00001011; + FSMC_Bank1->BTCR[5] = 0x00000300; + FSMC_Bank1E->BWTR[4] = 0x0FFFFFFF; +/* + Bank1_SRAM3 is configured as follow: + + p.FSMC_AddressSetupTime = 0; + p.FSMC_AddressHoldTime = 0; + p.FSMC_DataSetupTime = 3; + p.FSMC_BusTurnAroundDuration = 0; + p.FSMC_CLKDivision = 0; + p.FSMC_DataLatency = 0; + p.FSMC_AccessMode = FSMC_AccessMode_A; + + FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3; + FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; + FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; + FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; + FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; + FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; + FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; + FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; + FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; + FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; + + FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); + + FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE); +*/ + +} +#endif /* DATA_IN_ExtSRAM */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Libraries/CMSIS/Documentation/Core/html/CMSIS_CORE_Files.png b/Libraries/CMSIS/Documentation/Core/html/CMSIS_CORE_Files.png new file mode 100644 index 0000000000000000000000000000000000000000..a542159e74046b623789b341ef7f1b144e5385d0 GIT binary patch literal 20924 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 i?Rd4f`x;gphkvy9zx~9~A`+`3hOfu>S`(&sszP diff --git a/Libraries/CMSIS/Documentation/Core/html/CMSIS_Logo_Final.png b/Libraries/CMSIS/Documentation/Core/html/CMSIS_Logo_Final.png new file mode 100644 index 0000000000000000000000000000000000000000..2056b7e747bf58f53e03ad845cde816fea03a4bc GIT binary patch literal 12402 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 + + + + +CMSIS-CORE: MISRA-C:2004 Compliance Exceptions + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    MISRA-C:2004 Compliance Exceptions
    +
    +
    +

    CMSIS-CORE uses the common coding rules for CMSIS components that are documented under Introduction .

    +

    CMSIS-CORE violates the following MISRA-C:2004 rules:

    +
      +
    • Required Rule 8.5, object/function definition in header file.
      + Violated since function definitions in header files are used to allow 'inlining'.
    • +
    +
      +
    • Required Rule 18.4, declaration of union type or object of union type: '{...}'.
      + Violated since unions are used for effective representation of core registers.
    • +
    +
      +
    • Advisory Rule 19.7, Function-like macro defined.
      + Violated since function-like macros are used to allow more efficient code.
    • +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/_reg_map_pg.html b/Libraries/CMSIS/Documentation/Core/html/_reg_map_pg.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/_reg_map_pg.html @@ -0,0 +1,302 @@ + + + + + +CMSIS-CORE: Register Mapping + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Register Mapping
    +
    +
    +

    The table below associates some common register names used in CMSIS to the register names used in Technical Reference Manuals.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CMSIS Register Name Cortex-M3 and Cortex-M4 Cortex-M0 and Cortex-M0+ Register Name
    Nested Vectored Interrupt Controller (NVIC) Register Access
    NVIC->ISER[] NVIC_ISER0..7 ISER Interrupt Set-Enable Registers
    NVIC->ICER[] NVIC_ICER0..7 ICER Interrupt Clear-Enable Registers
    NVIC->ISPR[] NVIC_ISPR0..7 ISPR Interrupt Set-Pending Registers
    NVIC->ICPR[] NVIC_ICPR0..7 ICPR Interrupt Clear-Pending Registers
    NVIC->IABR[] NVIC_IABR0..7 - Interrupt Active Bit Register
    NVIC->IP[] NVIC_IPR0..59 IPR0..7 Interrupt Priority Register
    NVIC->STIR STIR - Software Triggered Interrupt Register
    System Control Block (SCB) Register Access
    SCB->CPUID CPUID CPUID CPUID Base Register
    SCB->ICSR ICSR ICSR Interrupt Control and State Register
    SCB->VTOR VTOR - Vector Table Offset Register
    SCB->AIRCR AIRCR AIRCR Application Interrupt and Reset Control Register
    SCB->SCR SCR SCR System Control Register
    SCB->CCR CCR CCR Configuration and Control Register
    SCB->SHP[] SHPR1..3 SHPR2..3 System Handler Priority Registers
    SCB->SHCSR SHCSR SHCSR System Handler Control and State Register
    SCB->CFSR CFSR - Configurable Fault Status Registers
    SCB->HFSR HFSR - HardFault Status Register
    SCB->DFSR DFSR - Debug Fault Status Register
    SCB->MMFAR MMFAR - MemManage Fault Address Register
    SCB->BFAR BFAR - BusFault Address Register
    SCB->AFSR AFSR - Auxiliary Fault Status Register
    SCB->PFR[] ID_PFR0..1 - Processor Feature Registers
    SCB->DFR ID_DFR0 - Debug Feature Register
    SCB->ADR ID_AFR0 - Auxiliary Feature Register
    SCB->MMFR[] ID_MMFR0..3 - Memory Model Feature Registers
    SCB->ISAR[] ID_ISAR0..4 - Instruction Set Attributes Registers
    SCB->CPACR CPACR - Coprocessor Access Control Register
    System Control and ID Registers not in the SCB (SCnSCB) Register Access
    SCnSCB->ICTR ICTR - Interrupt Controller Type Register
    SCnSCB->ACTLR ACTLR - Auxiliary Control Register
    System Timer (SysTick) Control and Status Register Access
    SysTick->CTRL STCSR SYST_CSR SysTick Control and Status Register
    SysTick->LOAD STRVR SYST_RVR SysTick Reload Value Register
    SysTick->VAL STCVR SYST_CVR SysTick Current Value Register
    SysTick->CALIB STCR SYST_CALIB SysTick Calibaration Value Register
    Data Watchpoint and Trace (DWT) Register Access
    DWT->CTRL DWT_CTRL - Control Register
    DWT->CYCCNT DWT_CYCCNT - Cycle Count Register
    DWT->CPICNT DWT_CPICNT - CPI Count Register
    DWT->EXCCNT DWT_EXCCNT - Exception Overhead Count Register
    DWT->SLEEPCNT DWT_SLEEPCNT - Sleep Count Register
    DWT->LSUCNT DWT_LSUCNT - LSU Count Register
    DWT->FOLDCNT DWT_FOLDCNT - Folded-instruction Count Register
    DWT->PCSR DWT_PCSR - Program Counter Sample Register
    DWT->COMP0..3 DWT_COMP0..3 - Comparator Register 0..3
    DWT->MASK0..3 DWT_MASK0..3 - Mask Register 0..3
    DWT->FUNCTION0..3 DWT_FUNCTION0..3 - Function Register 0..3
    Instrumentation Trace Macrocell (ITM) Register Access
    ITM->PORT[] ITM_STIM0..31 - Stimulus Port Registers
    ITM->TER ITM_TER - Trace Enable Register
    ITM->TPR ITM_TPR - ITM Trace Privilege Register
    ITM->TCR ITM_TCR - Trace Control Register
    Trace Port Interface (TPIU) Register Access
    TPI->SSPSR TPIU_SSPR - Supported Parallel Port Size Register
    TPI->CSPSR TPIU_CSPSR - Current Parallel Port Size Register
    TPI->ACPR TPIU_ACPR - Asynchronous Clock Prescaler Register
    TPI->SPPR TPIU_SPPR - Selected Pin Protocol Register
    TPI->FFSR TPIU_FFSR - Formatter and Flush Status Register
    TPI->FFCR TPIU_FFCR - Formatter and Flush Control Register
    TPI->FSCR TPIU_FSCR - Formatter Synchronization Counter Register
    TPI->TRIGGER TRIGGER - TRIGGER
    TPI->FIFO0 FIFO data 0 - Integration ETM Data
    TPI->ITATBCTR2 ITATBCTR2 - ITATBCTR2
    TPI->ITATBCTR0 ITATBCTR0 - ITATBCTR0
    TPI->FIFO1 FIFO data 1 - Integration ITM Data
    TPI->ITCTRL TPIU_ITCTRL - Integration Mode Control
    TPI->CLAIMSET CLAIMSET - Claim tag set
    TPI->CLAIMCLR CLAIMCLR - Claim tag clear
    TPI->DEVID TPIU_DEVID - TPIU_DEVID
    TPI->DEVTYPE TPIU_DEVTYPE - TPIU_DEVTYPE
    Memory Protection Unit (MPU) Register Access
    MPU->TYPE MPU_TYPE - MPU Type Register
    MPU->CTRL MPU_CTRL - MPU Control Register
    MPU->RNR MPU_RNR - MPU Region Number Register
    MPU->RBAR MPU_RBAR - MPU Region Base Address Register
    MPU->RASR MPU_RASR - MPU Region Attribute and Size Register
    MPU->RBAR_A1..3 MPU_RBAR_A1..3 - MPU alias Register
    MPU->RSAR_A1..3 MPU_RSAR_A1..3 - MPU alias Register
    Floating Point Unit (FPU) Register Access [only Cortex-M4 with FPU]
    FPU->FPCCR FPCCR - FP Context Control Register
    FPU->FPCAR FPCAR - FP Context Address Register
    FPU->FPDSCR FPDSCR - FP Default Status Control Register
    FPU->MVFR0..1 MVFR0..1 - Media and VFP Feature Registers
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/_templates_pg.html b/Libraries/CMSIS/Documentation/Core/html/_templates_pg.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/_templates_pg.html @@ -0,0 +1,212 @@ + + + + + +CMSIS-CORE: Template Files + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Template Files
    +
    +
    +

    ARM supplies CMSIS-CORE template files for the all supported Cortex-M processors and various compiler vendors. Refer to the list of Tested and Verified Toolchains for compliancy. These template files include the following:

    +
      +
    • Register names of the Core Peripherals and names of the Core Exception Vectors.
    • +
    • Functions to access core peripherals, special CPU instructions and SIMD instructions (for Cortex-M4)
    • +
    • Generic startup code and system configuration code.
    • +
    +

    The detailed file structure of the CMSIS-CORE is shown in the following picture.

    +
    +CMSIS_CORE_Files.png +
    +CMSIS-CORE File Structure
    +

    +Template Files

    +

    The CMSIS-CORE template files should be extended by the silicon vendor to reflect the actual device and device peripherals. Silicon vendors add in this context the:

    +
      +
    • Device Peripheral Access Layer that provides definitions for device-specific peripherals.
    • +
    • Access Functions for Peripherals (optional) that provides additional helper functions to access device-specific peripherals.
    • +
    • Interrupt vectors in the startup file that are device specific.
    • +
    + + + + + + + + + + + + + + + + + +
    Template File Description
    ".\Device_Template_Vendor\Vendor\Device\Source\ARM\startup_Device.s" Startup file template for ARM C/C++ Compiler.
    ".\Device_Template_Vendor\Vendor\Device\Source\GCC\startup_Device.s" Startup file template for GNU GCC ARM Embedded Compiler.
    ".\Device_Template_Vendor\Vendor\Device\Source\G++\startup_Device.s" Startup file template for GNU Sourcery G++ Compiler.
    ".\Device_Template_Vendor\Vendor\Device\Source\IAR\startup_Device.s" Startup file template for IAR C/C++ Compiler.
    ".\Device_Template_Vendor\Vendor\Device\Source\system_Device.c" Generic system_Device.c file for system configuration (i.e. processor clock and memory bus system).
    ".\Device_Template_Vendor\Vendor\Device\Include\Device.h" Generic device header file. Needs to be extended with the device-specific peripheral registers. Optionally functions that access the peripherals can be part of that file.
    ".\Device_Template_Vendor\Vendor\Device\Include\system_Device.h" Generic system device configuration include file.
    +

    In addition ARM provides the following core header files that do not need any modifications.

    + + + + + + + + + + + +
    Core Header Files Description
    core_<cpu>.h Defines the core peripherals and provides helper functions that access the core registers. This file is available for all supported processors:
      +
    • core_cm0.h: for the Cortex-M0 processor
    • +
    • core_cm0plus.h: for the Cortex-M0+ processor
    • +
    • core_cm3.h: for the Cortex-M0 processor
    • +
    • core_cm4.h: for the Cortex-M0 processor
    • +
    • core_sc000.h: for the SecurCore SC000 processor
    • +
    • core_sc300.h: for the SecurCore SC300 processor
    • +
    +
    core_cmInstr.h Defines intrinsic functions to access special Cortex-M instructions.
    core_cmFunc.h Defines functions to access the Cortex-M core peripherals.
    core_cm4_simd.h Defines intrinsic functions to access the Cortex-M4 SIMD instructions.
    +

    +Adaption of Template Files to Devices

    +

    Copy the complete folder including files and replace:

    +
      +
    • folder name 'Vendor' with the abbreviation for the device vendor e.g.: NXP.
    • +
    • folder name 'Device' with the specific device name e.g.: LPC17xx.
    • +
    • in the filenames 'Device' with the specific device name e.g.: LPC17xx.
    • +
    +

    Each template file contains comments that start with ToDo: that describe a required modification. The template files contain placeholders:

    + + + + + + + + + + + +
    Placeholder Replaced with
    <Device> the specific device name or device family name; i.e. LPC17xx.
    <DeviceInterrupt> a specific interrupt name of the device; i.e. TIM1 for Timer 1.
    <DeviceAbbreviation> short name or abbreviation of the device family; i.e. LPC.
    Cortex-M# the specific Cortex-M processor name; i.e. Cortex-M3.
    +

    The adaption of the template files is described in detail on the following pages:

    + +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/_templates_pg.js b/Libraries/CMSIS/Documentation/Core/html/_templates_pg.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/_templates_pg.js @@ -0,0 +1,19 @@ +var _templates_pg = +[ + [ "Template Files", "_templates_pg.html#template_files_sec", null ], + [ "Adaption of Template Files to Devices", "_templates_pg.html#adapt_template_files_sec", null ], + [ "Startup File startup_.s", "startup_s_pg.html", [ + [ "startup_Device.s Template File", "startup_s_pg.html#startup_s_sec", null ] + ] ], + [ "System Configuration Files system_.c and system_.h", "system_c_pg.html", [ + [ "system_Device.c Template File", "system_c_pg.html#system_Device_sec", null ], + [ "system_Device.h Template File", "system_c_pg.html#system_Device_h_sec", null ] + ] ], + [ "Device Header File ", "device_h_pg.html", [ + [ "Interrupt Number Definition", "device_h_pg.html#interrupt_number_sec", null ], + [ "Configuration of the Processor and Core Peripherals", "device_h_pg.html#core_config_sect", null ], + [ "CMSIS Version and Processor Information", "device_h_pg.html#core_version_sect", null ], + [ "Device Peripheral Access Layer", "device_h_pg.html#device_access", null ], + [ "Device.h Template File", "device_h_pg.html#device_h_sec", null ] + ] ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/_using__a_r_m_pg.html b/Libraries/CMSIS/Documentation/Core/html/_using__a_r_m_pg.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/_using__a_r_m_pg.html @@ -0,0 +1,164 @@ + + + + + +CMSIS-CORE: Using CMSIS with generic ARM Processors + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Using CMSIS with generic ARM Processors
    +
    +
    +

    ARM provides CMSIS-CORE files for the supported ARM Processors and for various compiler vendors. These files can be used when standard ARM processors should be used in a project. The table below lists the folder and device names of the ARM processors.

    + + + + + + + + + + + + + + + +
    Folder Processor Description
    ".\Device\ARM\ARMCM0" Cortex-M0 Contains Include and Source template files configured for the Cortex-M0 processor. The device name is ARMCM0 and the name of the Device Header File <device.h> is <ARMCM0.h>.
    ".\Device\ARM\ARMCM0plus" Cortex-M0+ Contains Include and Source template files configured for the Cortex-M0+ processor. The device name is ARMCM0plus and the name of the Device Header File <device.h> is <ARMCM0plus.h>.
    ".\Device\ARM\ARMCM3" Cortex-M3 Contains Include and Source template files configured for the Cortex-M3 processor. The device name is ARMCM3 and the name of the Device Header File <device.h> is <ARMCM3.h>.
    ".\Device\ARM\ARMCM4" Cortex-M4 Contains Include and Source template files configured for the Cortex-M4 processor. The device name is ARMCM4 and the name of the Device Header File <device.h> is <ARMCM4.h>.
    ".\Device\ARM\ARMSC000" SecurCore SC000 Contains Include and Source template files configured for the SecurCore SC000 processor. The device name is ARMSC000 and the name of the Device Header File <device.h> is <ARMSC000.h>.
    ".\Device\ARM\ARMSC300" SecurCore SC300 Contains Include and Source template files configured for the SecurCore SC300 processor. The device name is ARMSC300 and the name of the Device Header File <device.h> is <ARMSC300.h>.
    +

    +Create generic Libraries with CMSIS

    +

    The CMSIS Processor and Core Peripheral files allow also to create generic libraries. The CMSIS-DSP Libraries are an example for such a generic library.

    +

    To build a generic Library set the define __CMSIS_GENERIC and include the relevant core_<cpu>.h CMSIS CPU & Core Access header file for the processor. The define __CMSIS_GENERIC disables device-dependent features such as the SysTick timer and the Interrupt System. Refer to Configuration of the Processor and Core Peripherals for a list of the available core_<cpu>.h header files.

    +

    Example:

    +

    The following code section shows the usage of the core_<cpu>.h header files to build a generic library for Cortex-M0, Cortex-M3, or Cortex-M4. To select the processor the source code uses the define CORTEX_M4, CORTEX_M3, or CORTEX_M0. By using this header file, the source code can access the functions for Core Register Access, Intrinsic Functions for CPU Instructions, Intrinsic Functions for SIMD Instructions [only Cortex-M4], and Debug Access.

    +
    #define __CMSIS_GENERIC /* disable NVIC and Systick functions */
    +
    +
    #if defined (CORTEX_M4)
    +
    #include "core_cm4.h"
    +
    #elif defined (CORTEX_M3)
    +
    #include "core_cm3.h"
    +
    #elif defined (CORTEX_M0)
    +
    #include "core_cm0.h"
    +
    #elif defined (CORTEX_M0PLUS)
    +
    #include "core_cm0plus.h"
    +
    #else
    +
    #error "Processor not specified or unsupported."
    +
    #endif
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/_using_pg.html b/Libraries/CMSIS/Documentation/Core/html/_using_pg.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/_using_pg.html @@ -0,0 +1,213 @@ + + + + + +CMSIS-CORE: Using CMSIS in Embedded Applications + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Using CMSIS in Embedded Applications
    +
    +
    +

    To use the CMSIS-CORE the following files are added to the embedded application:

    + +
    Note
    The files Startup File startup_<device>.s and System Configuration Files system_<device>.c and system_<device>.h may require application specific adaptations and therefore should be copied into the application project folder prior configuration. The Device Header File <device.h> is included in all source files that need device access and can be stored on a central include folder that is generic for all projects.
    +

    The Startup File startup_<device>.s is executed after reset and calls SystemInit. After the system initialization control is transferred to the C/C++ run-time library which performs initialization and calls the main function in the user code. In addition the Startup File startup_<device>.s contains all exception and interrupt vectors and implements a default function for every interrupt. It may also contain stack and heap configurations for the user application.

    +

    The System Configuration Files system_<device>.c and system_<device>.h performs the setup for the processor clock. The variable SystemCoreClock indicates the CPU clock speed. System and Clock Configuration describes the minimum feature set. In addition the file may contain functions for the memory BUS setup and clock re-configuration.

    +

    The Device Header File <device.h> is the central include file that the application programmer is using in the C source code. It provides the following features:

    + +
    +CMSIS_CORE_Files_user.png +
    +CMSIS-CORE User Files
    +

    The CMSIS-CORE are device specific. In addition, the Startup File startup_<device>.s is also compiler vendor specific. The various compiler vendor tool chains may provide folders that contain the CMSIS files for each supported device. Using CMSIS with generic ARM Processors explains how to use CMSIS-CORE for ARM processors.

    +

    For example, the following files are provided in MDK-ARM to support the STM32F10x Connectivity Line device variants:

    + + + + + + + + + + + +
    File Description
    ".\ARM\Startup\ST\STM32F10x\startup_stm32f10x_cl.s" Startup File startup_<device>.s for the STM32F10x Connectivity Line device variants.
    ".\ARM\Startup\ST\STM32F10x\system_stmf10x.c" System Configuration Files system_<device>.c and system_<device>.h for the STM32F10x device families.
    ".\ARM\INC\ST\STM32F10x\stm32f10x.h" Device Header File <device.h> for the STM32F10x device families.
    ".\ARM\INC\ST\STM32F10x\system_stm32f10x.h" system_Device.h Template File for the STM32F10x device families.
    +
    Note
    The silicon vendors create these device-specific CMSIS-CORE files based on Template Files provide by ARM.
    +

    Thereafter, the functions described under Reference can be used in the application.

    +

    A typical example for using the CMSIS layer is provided below. The example is based on a STM32F10x Device.

    +
    #include <stm32f10x.h> // File name depends on device used
    +
    +
    uint32_t volatile msTicks; // Counter for millisecond Interval
    +
    +
    void SysTick_Handler (void) { // SysTick Interrupt Handler
    +
    msTicks++; // Increment Counter
    +
    }
    +
    +
    void WaitForTick (void) {
    +
    uint32_t curTicks;
    +
    +
    curTicks = msTicks; // Save Current SysTick Value
    +
    while (msTicks == curTicks) { // Wait for next SysTick Interrupt
    +
    __WFE (); // Power-Down until next Event/Interrupt
    +
    }
    +
    }
    +
    +
    void TIM1_UP_IRQHandler (void) { // Timer Interrupt Handler
    +
    ; // Add user code here
    +
    }
    +
    +
    void timer1_init(int frequency) { // Set up Timer (device specific)
    +
    NVIC_SetPriority (TIM1_UP_IRQn, 1); // Set Timer priority
    +
    NVIC_EnableIRQ (TIM1_UP_IRQn); // Enable Timer Interrupt
    +
    }
    +
    +
    +
    void Device_Initialization (void) { // Configure & Initialize MCU
    +
    if (SysTick_Config (SystemCoreClock / 1000)) { // SysTick 1mSec
    +
    : // Handle Error
    +
    }
    +
    timer1_init (); // setup device-specific timer
    +
    }
    +
    +
    +
    // The processor clock is initialized by CMSIS startup + system file
    +
    void main (void) { // user application starts here
    +
    Device_Initialization (); // Configure & Initialize MCU
    +
    while (1) { // Endless Loop (the Super-Loop)
    +
    __disable_irq (); // Disable all interrupts
    +
    Get_InputValues (); // Read Values
    +
    __enable_irq (); // Enable all interrupts
    +
    Calculation_Response (); // Calculate Results
    +
    Output_Response (); // Output Results
    +
    WaitForTick (); // Synchronize to SysTick Timer
    +
    }
    +
    }
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/_using_pg.js b/Libraries/CMSIS/Documentation/Core/html/_using_pg.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/_using_pg.js @@ -0,0 +1,6 @@ +var _using_pg = +[ + [ "Using CMSIS with generic ARM Processors", "_using__a_r_m_pg.html", [ + [ "Create generic Libraries with CMSIS", "_using__a_r_m_pg.html#Using_ARM_Lib_sec", null ] + ] ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/annotated.html b/Libraries/CMSIS/Documentation/Core/html/annotated.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/annotated.html @@ -0,0 +1,151 @@ + + + + + +CMSIS-CORE: Data Structures + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Data Structures
    +
    +
    +
    Here are the data structures with brief descriptions:
    + + + + + + + + + + + + + + + +
    oCAPSR_TypeUnion type to access the Application Program Status Register (APSR)
    oCCONTROL_TypeUnion type to access the Control Registers (CONTROL)
    oCCoreDebug_TypeStructure type to access the Core Debug Register (CoreDebug)
    oCDWT_TypeStructure type to access the Data Watchpoint and Trace Register (DWT)
    oCFPU_TypeStructure type to access the Floating Point Unit (FPU)
    oCIPSR_TypeUnion type to access the Interrupt Program Status Register (IPSR)
    oCITM_TypeStructure type to access the Instrumentation Trace Macrocell Register (ITM)
    oCMPU_TypeStructure type to access the Memory Protection Unit (MPU)
    oCNVIC_TypeStructure type to access the Nested Vectored Interrupt Controller (NVIC)
    oCSCB_TypeStructure type to access the System Control Block (SCB)
    oCSCnSCB_TypeStructure type to access the System Control and ID Register not in the SCB
    oCSysTick_TypeStructure type to access the System Timer (SysTick)
    oCTPI_TypeStructure type to access the Trace Port Interface Register (TPI)
    \CxPSR_TypeUnion type to access the Special-Purpose Program Status Registers (xPSR)
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/annotated.js b/Libraries/CMSIS/Documentation/Core/html/annotated.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/annotated.js @@ -0,0 +1,17 @@ +var annotated = +[ + [ "APSR_Type", "union_a_p_s_r___type.html", "union_a_p_s_r___type" ], + [ "CONTROL_Type", "union_c_o_n_t_r_o_l___type.html", "union_c_o_n_t_r_o_l___type" ], + [ "CoreDebug_Type", "struct_core_debug___type.html", "struct_core_debug___type" ], + [ "DWT_Type", "struct_d_w_t___type.html", "struct_d_w_t___type" ], + [ "FPU_Type", "struct_f_p_u___type.html", "struct_f_p_u___type" ], + [ "IPSR_Type", "union_i_p_s_r___type.html", "union_i_p_s_r___type" ], + [ "ITM_Type", "struct_i_t_m___type.html", "struct_i_t_m___type" ], + [ "MPU_Type", "struct_m_p_u___type.html", "struct_m_p_u___type" ], + [ "NVIC_Type", "struct_n_v_i_c___type.html", "struct_n_v_i_c___type" ], + [ "SCB_Type", "struct_s_c_b___type.html", "struct_s_c_b___type" ], + [ "SCnSCB_Type", "struct_s_cn_s_c_b___type.html", "struct_s_cn_s_c_b___type" ], + [ "SysTick_Type", "struct_sys_tick___type.html", "struct_sys_tick___type" ], + [ "TPI_Type", "struct_t_p_i___type.html", "struct_t_p_i___type" ], + [ "xPSR_Type", "unionx_p_s_r___type.html", "unionx_p_s_r___type" ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/bc_s.png b/Libraries/CMSIS/Documentation/Core/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..66f8e9a20a325383ef4c3eb0fd74d731d2ac1d1f GIT binary patch literal 671 zc$@*B0$}}#P)*})pz_;ij6rqt7dB0l}=)*Ff^Eb}@xXT{~I6p9{ z`-$>mRTZp!Hv*5c0s7D1{h7>kc?xW87&8Frx&2P}Rzk>1Wr@b~9I5>jjn9}s_bmg^ ztdC z+<21>)XI`&*za*<5D07s==QP9r#dW@YyBKcjFRy6*8sriM6M#9F3htnBT!G;uD${Q zMiL(NJMO}99N9%$uZ#l#Y#rA;`Esq(E{v0teJ=q3wvGc1*?OkPEq~(x0Ja&2G>4#W zY(SKRdS3tlBZUxHsqkw?kC5Y+#{hs)*rkds`KmNOvyf^a$1Xhw07lb+B1OhJgb)}b z%@>|!C#!8Dz3(fuuYX-g8I|O#YK~?DeQsAy4yD}SYARz~Gda@pbTg@8fnvd(PCX9J zET)VG<}0h4H-S@{B6uZ%PR=f-hRl9A+&Q`#&y{)=iSndrZYgcvAYZB;(z5#0}a-EuHTq(hOVbUy*>+@m+k_@mv{G`+66dN@~{1RPG zw*UYmQrG@?9$QSrhHXT^Y;p79U`f~UO(Y{r$^VkN{RMo_vP=|v%GLk?002ovPDHLk FV1j>aG)Vve diff --git a/Libraries/CMSIS/Documentation/Core/html/bdwn.png b/Libraries/CMSIS/Documentation/Core/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..d400769b52b86c123cbd0a3312d2d13be8016ebe GIT binary patch literal 147 zc%17D@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb9eJL81T5rpA7L3 z+49EG*IP2^Qkv$mCK;~-T`bx^o|ON)!*d`y+sf~??1Ab3rdwt)XDr=m=Ug37^Wm^b vdDEriuQo4wu+!vxVf-&^u|~Es#T^V0)1`igMg9l_+QQ)J>gTe~DWM4f+`}~y diff --git a/Libraries/CMSIS/Documentation/Core/html/check.png b/Libraries/CMSIS/Documentation/Core/html/check.png new file mode 100644 index 0000000000000000000000000000000000000000..094e59cf59c4257682f6c8d5faa5e2670730c939 GIT binary patch literal 922 zc$@*617-Y)P)WdKHUATc!{PH%P~GB7YQATcmHFgQ9gIUp-AF)%RoqGHAX000McNliru z)&&<0F)fD2eNX@Z010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00Qz! zL_t(|+D%hkNRwd{e!g!%4z@XGYQ#uwZjnhsgQkx1Ux zRp^ZobYl^MBvED(LWXN-{?^oQqMQ43Tl@X~I`8LZZai%7%X!Xw&Uv20;rQnTtT;dq zZ{#~qTJ3IGlDN=8@{bx(rZA6J_=W&Qi3GJs;f~0oXsM8FW8D`!9Q9RaAS49@Qu~PJ zlGq3au)MyvFRq9W@EY$a`Y%CdG+mM0U~*1AYrA8Y_$0j1IrvioLYXk4*#vU*EwS?v%^5%1XxRIiCn8CP-TT%3j6T% z>~q|2=)?GxFG!|!m~8Q&w#=o?c!bFPvqMlMI;2YhMY}E|82NCFbmkNcZa+j^N}$f_ z!jEg)a9Z4l0{I5e|8e2hck+ zNJFJZ*{i`CQvU#0Cmn$JVM;H?R@a1}M2dPM%jovBASQ27*^hC1n#klkg}ojw2V$qF zh0Q3Ikf57wW+>)F18$;Af1V%FpXQBOS%TFFBr^rCG3=9K5eH>jmM{^2gB{ICeWIoR#Dk?^q=ZauSW49^^V9P;>-|!v5|5|vj9$@99Pjm zCUNkWU^7-j + + + + +CMSIS-CORE: Data Structure Index + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Data Structure Index
    +
    +
    +
    A | C | D | F | I | M | N | S | T | X
    + + + + + + + + + + + +
      A  
    +
      D  
    +
    ITM_Type   
      S  
    +
      X  
    +
      M  
    +
    APSR_Type   DWT_Type   SCB_Type   xPSR_Type   
      C  
    +
      F  
    +
    MPU_Type   SCnSCB_Type   
      N  
    +
    SysTick_Type   
    CONTROL_Type   FPU_Type   
      T  
    +
    CoreDebug_Type   
      I  
    +
    NVIC_Type   
    TPI_Type   
    IPSR_Type   
    +
    A | C | D | F | I | M | N | S | T | X
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/closed.png b/Libraries/CMSIS/Documentation/Core/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbcf6292cc639250e326ab5a20d65ec72572f89 GIT binary patch literal 132 zc%17D@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@1EvmP~>pExH|Uc zl-ny4x0$6zO8NRUXoMtGX!Fk(VhGuHjeUU@^NolZ4531Qw!ZoQTIKeGMa<4y!gguw gdD);oDPb?CimQmgA=#j#Kw}v^UHx3vIVCg!0G&ZAU;qFB diff --git a/Libraries/CMSIS/Documentation/Core/html/cmsis.css b/Libraries/CMSIS/Documentation/Core/html/cmsis.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/cmsis.css @@ -0,0 +1,1256 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 13px; + line-height: 1.3; +} + +/* CMSIS styles */ + +.style1 { + text-align: center; +} +.style2 { + color: #0000FF; + font-weight: normal; +} +.style3 { + text-align: left; +} +.style4 { + color: #008000; +} +.style5 { + color: #0000FF; +} +.style6 { + color: #000000; + font-style:italic; +} +.mand { + color: #0000FF; +} +.opt { + color: #008000; +} +.cond { + color: #990000; +} + +.choice +{ + background-color:#F7F9D0; +} +.seq +{ + background-color:#C9DECB; +} +.group1 +{ + background-color:#F8F1F1; +} +.group2 +{ + background-color:#DCEDEA; +} + + +ul ul { + list-style-type: disc; +} + +ul ul ul { + list-style-type: disc; +} + +ul.hierarchy { + color: green; +} + +em { + color: #000000; + font-style:italic; +} + + + +/* CMSIS Tables */ +table.cmtab1 { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; + text-align: justify; + width:70%; +} + +th.cmtab1 { + background: #EBEFF6; + font-weight: bold; + height: 28px; +} + +td.cmtab1 { + padding:1px; + text-align: left; +} + +table.cmtable { + border-collapse:collapse; + text-align: justify; +} + +table.cmtable td, table.cmtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.cmtable th { + background-color: #EBEFF6; + border: 1px solid #2D4068; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + height: 28px; +} + +td.MonoTxt { + font-family:"Arial monospaced for SAP"; +} + +span.XML-Token +{ + azimuth: 180; + font-style:italic; + color:Maroon; + z-index:20; + +} + + + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3A568E; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4464A5; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9AAED5; + color: #ffffff; + border: 1px double #849CCC; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FBFCFD; + border: 1px solid #C3CFE6; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; +} + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C3CFE6; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C3CFE6; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EDF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9AAED5; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A2B4D8; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4769AD; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C3CFE6; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4464A5; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4464A5; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 0px 6px 0px; + color: #233456; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #708CC4; + border-top:1px solid #5072B7; + border-left:1px solid #5072B7; + border-right:1px solid #C3CFE6; + border-bottom:1px solid #C3CFE6; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3A568E; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #293C63; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2B4069; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #354E81; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A7B8DA; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A7B8DA; + border-bottom: 1px solid #A7B8DA; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A7B8DA; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + font-size: 90%; + color: #233456; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A7B8DA; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#889FCE; + border:solid 1px #C1CDE5; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#344D7E; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6583BF; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#344D7E; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C3CFE6; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5072B7; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #8EA4D0; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#314877; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D7DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4464A5; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/Libraries/CMSIS/Documentation/Core/html/device_h_pg.html b/Libraries/CMSIS/Documentation/Core/html/device_h_pg.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/device_h_pg.html @@ -0,0 +1,526 @@ + + + + + +CMSIS-CORE: Device Header File <device.h> + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Device Header File <device.h>
    +
    +
    +

    The Device Header File <device.h> contains the following sections that are device specific:

    +
      +
    • Interrupt Number Definition provides interrupt numbers (IRQn) for all exceptions and interrupts of the device.
    • +
    • Configuration of the Processor and Core Peripherals reflect the features of the device.
    • +
    • Device Peripheral Access Layer provides definitions for the Peripheral Access to all device peripherals. It contains all data structures and the address mapping for device-specific peripherals.
    • +
    • Access Functions for Peripherals (optional) provide additional helper functions for peripherals that are useful for programming of these peripherals. Access Functions may be provided as inline functions or can be extern references to a device-specific library provided by the silicon vendor.
    • +
    +

    Reference describes the standard features and functions of the Device Header File <device.h> in detail.

    +

    +Interrupt Number Definition

    +

    Device Header File <device.h> contains the enumeration IRQn_Type that defines all exceptions and interrupts of the device.

    +
      +
    • Negative IRQn values represent processor core exceptions (internal interrupts).
    • +
    • Positive IRQn values represent device-specific exceptions (external interrupts). The first device-specific interrupt has the IRQn value 0. The IRQn values needs extension to reflect the device-specific interrupt vector table in the Startup File startup_<device>.s.
    • +
    +

    Example:

    +

    The following example shows the extension of the interrupt vector table for the LPC1100 device family.

    +
    typedef enum IRQn
    +
    {
    +
    /****** Cortex-M0 Processor Exceptions Numbers ***************************************************/
    + + +
    SVCall_IRQn = -5,
    +
    PendSV_IRQn = -2,
    +
    SysTick_IRQn = -1,
    +
    /****** LPC11xx/LPC11Cxx Specific Interrupt Numbers **********************************************/
    +
    WAKEUP0_IRQn = 0,
    +
    WAKEUP1_IRQn = 1,
    +
    WAKEUP2_IRQn = 2,
    +
    : :
    +
    : :
    +
    EINT1_IRQn = 30,
    +
    EINT0_IRQn = 31,
    + +

    +Configuration of the Processor and Core Peripherals

    +

    The Device Header File <device.h> configures the Cortex-M or SecurCore processor and the core peripherals with #defines that are set prior to including the file core_<cpu>.h.

    +

    The following tables list the #defines along with the possible values for each processor core. If these #defines are missing default values are used.

    +

    core_cm0.h

    + + + + + + + + + +
    #define Value Range Default Description
    __CM0_REV 0x0000 0x0000 Core revision number ([15:8] revision number, [7:0] patch number)
    __NVIC_PRIO_BITS 2 2 Number of priority bits implemented in the NVIC (device specific)
    __Vendor_SysTickConfig 0 .. 1 0 If this define is set to 1, then the default SysTick_Config function is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.
    +

    core_cm0plus.h

    + + + + + + + + + +
    #define Value Range Default Description
    __CM0PLUS_REV 0x0000 0x0000 Core revision number ([15:8] revision number, [7:0] patch number)
    __NVIC_PRIO_BITS 2 2 Number of priority bits implemented in the NVIC (device specific)
    __Vendor_SysTickConfig 0 .. 1 0 If this define is set to 1, then the default SysTick_Config function is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.
    +

    core_cm3.h

    + + + + + + + + + + + +
    #define Value Range Default Description
    __CM3_REV 0x0101 | 0x0200 0x0200 Core revision number ([15:8] revision number, [7:0] patch number)
    __NVIC_PRIO_BITS 2 .. 8 4 Number of priority bits implemented in the NVIC (device specific)
    __MPU_PRESENT 0 .. 1 0 Defines if a MPU is present or not
    __Vendor_SysTickConfig 0 .. 1 0 If this define is set to 1, then the default SysTick_Config function is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.
    +

    core_cm4.h

    + + + + + + + + + + + + + +
    #define Value Range Default Description
    __CM4_REV 0x0000 0x0000 Core revision number ([15:8] revision number, [7:0] patch number)
    __NVIC_PRIO_BITS 2 .. 8 4 Number of priority bits implemented in the NVIC (device specific)
    __MPU_PRESENT 0 .. 1 0 Defines if a MPU is present or not
    __FPU_PRESENT 0 .. 1 0 Defines if a FPU is present or not
    __Vendor_SysTickConfig 0 .. 1 0 If this define is set to 1, then the default SysTick_Config function is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.
    +

    core_sc000.h

    + + + + + + + + + + + +
    #define Value Range Default Description
    __SC000_REV 0x0000 0x0000 Core revision number ([15:8] revision number, [7:0] patch number)
    __NVIC_PRIO_BITS 2 2 Number of priority bits implemented in the NVIC (device specific)
    __MPU_PRESENT 0 .. 1 0 Defines if a MPU is present or not
    __Vendor_SysTickConfig 0 .. 1 0 If this define is set to 1, then the default SysTick_Config function is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.
    +

    core_sc300.h

    + + + + + + + + + + + +
    #define Value Range Default Description
    __SC300_REV 0x0000 0x0000 Core revision number ([15:8] revision number, [7:0] patch number)
    __NVIC_PRIO_BITS 2 .. 8 4 Number of priority bits implemented in the NVIC (device specific)
    __MPU_PRESENT 0 .. 1 0 Defines if a MPU is present or not
    __Vendor_SysTickConfig 0 .. 1 0 If this define is set to 1, then the default SysTick_Config function is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.
    +

    Example

    +

    The following code exemplifies the configuration of the Cortex-M4 Processor and Core Peripherals.

    +
    #define __CM4_REV 0x0001 /* Core revision r0p1 */
    +
    #define __MPU_PRESENT 1 /* MPU present or not */
    +
    #define __NVIC_PRIO_BITS 3 /* Number of Bits used for Priority Levels */
    +
    #define __Vendor_SysTickConfig 0 /* Set to 1 if different SysTick Config is used */
    +
    #define __FPU_PRESENT 1 /* FPU present or not */
    +
    .
    +
    .
    +
    #include <core_cm4.h> /* Cortex-M4 processor and core peripherals */
    +

    +CMSIS Version and Processor Information

    +

    Defines in the core_cpu.h file identify the version of the CMSIS-CORE and the processor used. The following shows the defines in the various core_cpu.h files that may be used in the Device Header File <device.h> to verify a minimum version or ensure that the right processor core is used.

    +

    core_cm0.h

    +
    #define __CM0_CMSIS_VERSION_MAIN (0x03) /* [31:16] CMSIS HAL main version */
    +
    #define __CM0_CMSIS_VERSION_SUB (0x00) /* [15:0] CMSIS HAL sub version */
    +
    #define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16) | \
    +
    __CM0_CMSIS_VERSION_SUB ) /* CMSIS HAL version number */
    +
    ...
    +
    #define __CORTEX_M (0x00) /* Cortex-M Core */
    +

    core_cm0plus.h

    +
    #define __CM0PLUS_CMSIS_VERSION_MAIN (0x03) /* [31:16] CMSIS HAL main version */
    +
    #define __CM0PLUS_CMSIS_VERSION_SUB (0x00) /* [15:0] CMSIS HAL sub version */
    +
    #define __CM0PLUS_CMSIS_VERSION ((__CM0P_CMSIS_VERSION_MAIN << 16) | \
    +
    __CM0P_CMSIS_VERSION_SUB ) /* CMSIS HAL version number */
    +
    ...
    +
    #define __CORTEX_M (0x00) /* Cortex-M Core */
    +

    core_cm3.h

    +
    #define __CM3_CMSIS_VERSION_MAIN (0x03) /* [31:16] CMSIS HAL main version */
    +
    #define __CM3_CMSIS_VERSION_SUB (0x00) /* [15:0] CMSIS HAL sub version */
    +
    #define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | \
    +
    __CM3_CMSIS_VERSION_SUB ) /* CMSIS HAL version number */
    +
    ...
    +
    #define __CORTEX_M (0x03) /* Cortex-M Core */
    +

    core_cm4.h

    +
    #define __CM4_CMSIS_VERSION_MAIN (0x03) /* [31:16] CMSIS HAL main version */
    +
    #define __CM4_CMSIS_VERSION_SUB (0x00) /* [15:0] CMSIS HAL sub version */
    +
    #define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16) | \
    +
    __CM4_CMSIS_VERSION_SUB ) /* CMSIS HAL version number */
    +
    ...
    +
    #define __CORTEX_M (0x04) /* Cortex-M Core */
    +

    core_sc000.h

    +
    #define __SC000_CMSIS_VERSION_MAIN (0x03) /* [31:16] CMSIS HAL main version */
    +
    #define __SC000_CMSIS_VERSION_SUB (0x00) /* [15:0] CMSIS HAL sub version */
    +
    #define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16) | \
    +
    __SC000_CMSIS_VERSION_SUB ) /* CMSIS HAL version number */
    +
    ...
    +
    #define __CORTEX_SC (0) /* Cortex secure core */
    +

    core_sc300.h

    +
    #define __SC300_CMSIS_VERSION_MAIN (0x03) /* [31:16] CMSIS HAL main version */
    +
    #define __SC300_CMSIS_VERSION_SUB (0x00) /* [15:0] CMSIS HAL sub version */
    +
    #define __SC300_CMSIS_VERSION ((__SC300_CMSIS_VERSION_MAIN << 16) | \
    +
    __SC300_CMSIS_VERSION_SUB ) /* CMSIS HAL version number */
    +
    ...
    +
    #define __CORTEX_SC (300) /* Cortex secure core */
    +

    +Device Peripheral Access Layer

    +

    The Device Header File <device.h> contains for each peripheral:

    +
      +
    • Register Layout Typedef
    • +
    • Base Address
    • +
    • Access Definitions
    • +
    +

    The section Peripheral Access shows examples for peripheral definitions.

    +

    +Device.h Template File

    +

    The silicon vendor needs to extend the Device.h template file with the CMSIS features described above. In addition the Device Header File <device.h> may contain functions to access device-specific peripherals. The system_Device.h Template File which is provided as part of the CMSIS specification is shown below.

    +
    /**************************************************************************//**
    + * @file     <Device>.h
    + * @brief    CMSIS Cortex-M# Core Peripheral Access Layer Header File for
    + *           Device <Device>
    + * @version  V3.10
    + * @date     23. November 2012
    + *
    + * @note
    + *
    + ******************************************************************************/
    +/* Copyright (c) 2012 ARM LIMITED
    +
    +   All rights reserved.
    +   Redistribution and use in source and binary forms, with or without
    +   modification, are permitted provided that the following conditions are met:
    +   - Redistributions of source code must retain the above copyright
    +     notice, this list of conditions and the following disclaimer.
    +   - Redistributions in binary form must reproduce the above copyright
    +     notice, this list of conditions and the following disclaimer in the
    +     documentation and/or other materials provided with the distribution.
    +   - Neither the name of ARM nor the names of its contributors may be used
    +     to endorse or promote products derived from this software without
    +     specific prior written permission.
    +   *
    +   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +   ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
    +   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +   POSSIBILITY OF SUCH DAMAGE.
    +   ---------------------------------------------------------------------------*/
    +
    +
    +#ifndef <Device>_H      /* ToDo: replace '<Device>' with your device name */
    +#define <Device>_H
    +
    +#ifdef __cplusplus
    + extern "C" {
    +#endif
    +
    +/* ToDo: replace '<Device>' with your device name; add your doxyGen comment   */
    +/** @addtogroup <Device>_Definitions <Device> Definitions
    +  This file defines all structures and symbols for <Device>:
    +    - registers and bitfields
    +    - peripheral base address
    +    - peripheral ID
    +    - Peripheral definitions
    +  @{
    +*/
    +
    +
    +/******************************************************************************/
    +/*                Processor and Core Peripherals                              */
    +/******************************************************************************/
    +/** @addtogroup <Device>_CMSIS Device CMSIS Definitions
    +  Configuration of the Cortex-M# Processor and Core Peripherals
    +  @{
    +*/
    +
    +/*
    + * ==========================================================================
    + * ---------- Interrupt Number Definition -----------------------------------
    + * ==========================================================================
    + */
    +
    +typedef enum IRQn
    +{
    +/******  Cortex-M# Processor Exceptions Numbers ***************************************************/
    +
    +/* ToDo: use this Cortex interrupt numbers if your device is a CORTEX-M0 device                   */
    +  NonMaskableInt_IRQn           = -14,      /*!<  2 Non Maskable Interrupt                        */
    +  HardFault_IRQn                = -13,      /*!<  3 Hard Fault Interrupt                          */
    +  SVCall_IRQn                   = -5,       /*!< 11 SV Call Interrupt                             */
    +  PendSV_IRQn                   = -2,       /*!< 14 Pend SV Interrupt                             */
    +  SysTick_IRQn                  = -1,       /*!< 15 System Tick Interrupt                         */
    +
    +/* ToDo: use this Cortex interrupt numbers if your device is a CORTEX-M3 / Cortex-M4 device       */
    +  NonMaskableInt_IRQn           = -14,      /*!<  2 Non Maskable Interrupt                        */
    +  MemoryManagement_IRQn         = -12,      /*!<  4 Memory Management Interrupt                   */
    +  BusFault_IRQn                 = -11,      /*!<  5 Bus Fault Interrupt                           */
    +  UsageFault_IRQn               = -10,      /*!<  6 Usage Fault Interrupt                         */
    +  SVCall_IRQn                   = -5,       /*!< 11 SV Call Interrupt                             */
    +  DebugMonitor_IRQn             = -4,       /*!< 12 Debug Monitor Interrupt                       */
    +  PendSV_IRQn                   = -2,       /*!< 14 Pend SV Interrupt                             */
    +  SysTick_IRQn                  = -1,       /*!< 15 System Tick Interrupt                         */
    +
    +/******  Device Specific Interrupt Numbers ********************************************************/
    +/* ToDo: add here your device specific external interrupt numbers
    +         according the interrupt handlers defined in startup_Device.s
    +         eg.: Interrupt for Timer#1       TIM1_IRQHandler   ->   TIM1_IRQn                        */
    +  <DeviceInterrupt>_IRQn        = 0,        /*!< Device Interrupt                                 */
    +} IRQn_Type;
    +
    +
    +/*
    + * ==========================================================================
    + * ----------- Processor and Core Peripheral Section ------------------------
    + * ==========================================================================
    + */
    +
    +/* Configuration of the Cortex-M# Processor and Core Peripherals */
    +/* ToDo: set the defines according your Device                                                    */
    +/* ToDo: define the correct core revision
    +         __CM0_REV if your device is a CORTEX-M0 device
    +         __CM3_REV if your device is a CORTEX-M3 device
    +         __CM4_REV if your device is a CORTEX-M4 device                                           */
    +#define __CM#_REV                 0x0201    /*!< Core Revision r2p1                               */
    +#define __NVIC_PRIO_BITS          2         /*!< Number of Bits used for Priority Levels          */
    +#define __Vendor_SysTickConfig    0         /*!< Set to 1 if different SysTick Config is used     */
    +#define __MPU_PRESENT             0         /*!< MPU present or not                               */
    +/* ToDo: define __FPU_PRESENT if your devise is a CORTEX-M4                                       */
    +#define __FPU_PRESENT             0        /*!< FPU present or not                                */
    +
    +/*@}*/ /* end of group <Device>_CMSIS */
    +
    +
    +/* ToDo: include the correct core_cm#.h file
    +         core_cm0.h if your device is a CORTEX-M0 device
    +         core_cm3.h if your device is a CORTEX-M3 device
    +         core_cm4.h if your device is a CORTEX-M4 device                                          */
    +#include <core_cm#.h>                       /* Cortex-M# processor and core peripherals           */
    +/* ToDo: include your system_<Device>.h file
    +         replace '<Device>' with your device name                                                 */
    +#include "system_<Device>.h"                /* <Device> System  include file                      */
    +
    +
    +/******************************************************************************/
    +/*                Device Specific Peripheral registers structures             */
    +/******************************************************************************/
    +/** @addtogroup <Device>_Peripherals <Device> Peripherals
    +  <Device> Device Specific Peripheral registers structures
    +  @{
    +*/
    +
    +#if defined ( __CC_ARM   )
    +#pragma anon_unions
    +#endif
    +
    +/* ToDo: add here your device specific peripheral access structure typedefs
    +         following is an example for a timer                                  */
    +
    +/*------------- 16-bit Timer/Event Counter (TMR) -----------------------------*/
    +/** @addtogroup <Device>_TMR <Device> 16-bit Timer/Event Counter (TMR)
    +  @{
    +*/
    +typedef struct
    +{
    +  __IO uint32_t EN;                         /*!< Offset: 0x0000   Timer Enable Register           */
    +  __IO uint32_t RUN;                        /*!< Offset: 0x0004   Timer RUN Register              */
    +  __IO uint32_t CR;                         /*!< Offset: 0x0008   Timer Control Register          */
    +  __IO uint32_t MOD;                        /*!< Offset: 0x000C   Timer Mode Register             */
    +       uint32_t RESERVED0[1];
    +  __IO uint32_t ST;                         /*!< Offset: 0x0014   Timer Status Register           */
    +  __IO uint32_t IM;                         /*!< Offset: 0x0018   Interrupt Mask Register         */
    +  __IO uint32_t UC;                         /*!< Offset: 0x001C   Timer Up Counter Register       */
    +  __IO uint32_t RG0                         /*!< Offset: 0x0020   Timer Register                  */
    +       uint32_t RESERVED1[2];
    +  __IO uint32_t CP;                         /*!< Offset: 0x002C   Capture register                */
    +} <DeviceAbbreviation>_TMR_TypeDef;
    +/*@}*/ /* end of group <Device>_TMR */
    +
    +
    +#if defined ( __CC_ARM   )
    +#pragma no_anon_unions
    +#endif
    +
    +/*@}*/ /* end of group <Device>_Peripherals */
    +
    +
    +/******************************************************************************/
    +/*                         Peripheral memory map                              */
    +/******************************************************************************/
    +/* ToDo: add here your device peripherals base addresses
    +         following is an example for timer                                    */
    +/** @addtogroup <Device>_MemoryMap <Device> Memory Mapping
    +  @{
    +*/
    +
    +/* Peripheral and SRAM base address */
    +#define <DeviceAbbreviation>_FLASH_BASE       (0x00000000UL)                              /*!< (FLASH     ) Base Address */
    +#define <DeviceAbbreviation>_SRAM_BASE        (0x20000000UL)                              /*!< (SRAM      ) Base Address */
    +#define <DeviceAbbreviation>_PERIPH_BASE      (0x40000000UL)                              /*!< (Peripheral) Base Address */
    +
    +/* Peripheral memory map */
    +#define <DeviceAbbreviation>TIM0_BASE         (<DeviceAbbreviation>_PERIPH_BASE)          /*!< (Timer0    ) Base Address */
    +#define <DeviceAbbreviation>TIM1_BASE         (<DeviceAbbreviation>_PERIPH_BASE + 0x0800) /*!< (Timer1    ) Base Address */
    +#define <DeviceAbbreviation>TIM2_BASE         (<DeviceAbbreviation>_PERIPH_BASE + 0x1000) /*!< (Timer2    ) Base Address */
    +/*@}*/ /* end of group <Device>_MemoryMap */
    +
    +
    +/******************************************************************************/
    +/*                         Peripheral declaration                             */
    +/******************************************************************************/
    +/* ToDo: add here your device peripherals pointer definitions
    +         following is an example for timer                                    */
    +
    +/** @addtogroup <Device>_PeripheralDecl <Device> Peripheral Declaration
    +  @{
    +*/
    +
    +#define <DeviceAbbreviation>_TIM0        ((<DeviceAbbreviation>_TMR_TypeDef *) <DeviceAbbreviation>TIM0_BASE)
    +#define <DeviceAbbreviation>_TIM1        ((<DeviceAbbreviation>_TMR_TypeDef *) <DeviceAbbreviation>TIM0_BASE)
    +#define <DeviceAbbreviation>_TIM2        ((<DeviceAbbreviation>_TMR_TypeDef *) <DeviceAbbreviation>TIM0_BASE)
    +/*@}*/ /* end of group <Device>_PeripheralDecl */
    +
    +/*@}*/ /* end of group <Device>_Definitions */
    +
    +#ifdef __cplusplus
    +}
    +#endif
    +
    +#endif  /* <Device>_H */
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/doxygen.png b/Libraries/CMSIS/Documentation/Core/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..7765a3381c4a7fec6a69636b1fa314173b242ea0 GIT binary patch literal 3835 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 diff --git a/Libraries/CMSIS/Documentation/Core/html/dynsections.js b/Libraries/CMSIS/Documentation/Core/html/dynsections.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (ldjv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2cl.png b/Libraries/CMSIS/Documentation/Core/html/ftv2cl.png new file mode 100644 index 0000000000000000000000000000000000000000..edd2ddcf4051f2787ce6acb23bb64551ca84e673 GIT binary patch literal 449 zc$@*j0Y3hTP)#tg9aq`TVLr}b*g3zQb7s%Bo^#|0H}~B5V=l>=9Mco rvN`}8v{E diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2doc.png b/Libraries/CMSIS/Documentation/Core/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..57fab0971b8a096900f3357e2a23333215e56182 GIT binary patch literal 761 zc$@+G0tWqwP)&L_<_JzCKr|d69P|?o31nT{EYcVYl4^_cd}ft^-^w<{LVp0b!BryL_F-8*Y=KYe z3j{12Avz_5?X6MfmkVYcIM<@ZF#BQCGbx@P_?1LZbmF&V)$c+Q4A?|PsxuNQeCZ%4e&3)d7?eNg@XpIt*| z@y6wLp1oS(lO(G-9>gz_^`_%&OZ9pbONWUAj(m=h=urFbuXY$SLqVI-D;sJq6&uuU{y~4-c zeezqMWWXGHWaDZ1eJQ`ggP$%K`2gJD*+GLuQa$KQIt=$GxSKi4_*g%8Zg$bv)o9Lt z{rRHlQfCIh4W1nwCdm>H7Mad%a5fz?16J#SuDHv8dLOsxGZwf2F2cJe$z0vC1W!S2b)_VYI;VO|{Jov-!EamXEsYP2WI~z-jRMr+}4S;E4>H;$WlX%wq zn7(}T4H(zer3J39oelu@gIWQRFQ1zqjRQyf>g{(40PG9FWRf30*-Afr?z2(|1dd(5 z*?jjSkEt6cZmhOk^sRM#mOD2)m5H$1?E>Ta^!fYl?Hfz9PRw%3EjW4XaMr)nUSRp` zJS*pqW^H?Mjtgg+S=(N0(sAEtF~ z;)H_-LI4k*fEI7>L|JQOCL}VID9&4b(|j%-19+%)AR<9KFB2)wHgCC;rW?5qfDbRp z_a61qYgbyM5SS~KSi~Y5iIgr>BjCmBPdr#(t0dWTpoQDJd5BEhh~&VWnX9ru5kX*F zeF68Q-9em(sSq(jwXsX6g{~5cEMLBYC!o;$`W+QJwZ(oe%J)Fy&^fT=@0nzY2;z{C z?Axibkckke)W33|vg2}4K8gU7FwqfFSpQ7b+=G;jt*>LE;%O+4Ei98y$J~)a02O!w zcW+&MXh%{vG1gh5dO|*$1(EH*_SgQ5=DvQ{E$FI5Dj!`cmaw$0tF4>1&#+Gsd)$*3VI3<(n>Ul zD2M_lO%x~&a1k!#yv(d`iTCborAP`SR{LpYceV4)H#?_mEh!}cTo`fyaFO`;3Gx7t zg}sBW{M7l5s3!?MoJ11ssT!7B4GRFyilGD?{IXj@am+>`-xvDs!y(@9ep6k+ym|6(I6SgWrHER24CPV*K{v$e{KQiL zNWx0C>GKyKW$-fuRYnbc&X&u?ggkn*?$Mf$+2=9YEaTyWWkX3y!OPbj|3=$YSvDJ` zzjnfj5v!lFT>w6`rWt>RR*Q>{$h8-S;W;*k@5%4FF@N z2>8NL7$I->2`swJmvvbp>Ly(twHI5R003iV5*+`Is4Xp3Z(UzDT0x)eG`Lov-)$rT z2MLcO)tXF}RH65hcXR>(jG5}9C);o3759?r?ZGb6StkQCxh~b$;0Vti-!-}@MXr{&XU?BCO z(TC-&EqUT*+Z8LVhM1pr#Nv!2=B8?*MVP%-RsPaUU0k27i8UT#M9}mtEQ+_!QF#rGn07*qoM6N<$f)k?<3jhEB diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2lastnode.png b/Libraries/CMSIS/Documentation/Core/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2link.png b/Libraries/CMSIS/Documentation/Core/html/ftv2link.png new file mode 100644 index 0000000000000000000000000000000000000000..57fab0971b8a096900f3357e2a23333215e56182 GIT binary patch literal 761 zc$@+G0tWqwP)&L_<_JzCKr|d69P|?o31nT{EYcVYl4^_cd}ft^-^w<{LVp0b!BryL_F-8*Y=KYe z3j{12Avz_5?X6MfmkVYcIM<@ZF#BQCGbx@P_?1LZbmF&V)$c+Q4A?|PsxuNQeCZ%4e&3)d7?eNg@XpIt*| z@y6wLp1oS(lO(G-9>gz_^`_%&OZ9pbONWUAj(m=h=urFbuXY$SLqVI-D;sJq6&uuU{y~4-c zeezqMWWXGHWaDZ1eJQ`ggP$%K`2gJD*+GLuQa$KQIt=$GxSKi4_*g%8Zg$bv)o9Lt z{rRHlQfCIh4W1nwCdm>H7Mad%a5fz?16J#SuDHv8dLOsxGZwf2F2cJe$z0vC1W!S2b)_VYI;VO|{Jov-!Eam(P1^nb!Kz4bKU0|%!jDOt^6jZyA#pkh??{by;3TpJ)I13-)2wF4) svg>{9Aijha-G`Kq@1V!@Gi^e^C$vu@44BtX761SM07*qoM6N<$g8Fr0B>(^b diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2mnode.png b/Libraries/CMSIS/Documentation/Core/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..40be5aeb1d8e67267e841b8c39716a1e2ff4e646 GIT binary patch literal 242 zc$@+901f|%P)(P1^nb!Kz4bKU0|%!jDOt^6jZyA#pkh??{by;3TpJ)I13-)2wF4) svg>{9Aijha-G`Kq@1V!@Gi^e^C$vu@44BtX761SM07*qoM6N<$g8Fr0B>(^b diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2mo.png b/Libraries/CMSIS/Documentation/Core/html/ftv2mo.png new file mode 100644 index 0000000000000000000000000000000000000000..7df39ae8a196ea0f1edaadd58f63104e212025e7 GIT binary patch literal 403 zc$@)~0c`$>P)nD<|qh`egemWuAKxwfS*HfauA$EK}w6D zZi-ebD8%=!xlkeLd4&uPfnVOs<Lq{;?LZ#BDdk+)1(qzRYcAxT4FDS^qB4L3S>X`Ch7p)lJFy+HwN}z62Ksw` z_3v*ln0u!IY$OhHVJxrfd}$P*YhndHKEIir8qsZkd?@Mza3xmYw*ErCFNZ%d%$(nH zp!xt@i4~|nzD4mA3xnK0HF$4+0XP#Ya9w@Yb$z+0>rJh74B$$vK<(jGXRcz>$Dtzt zR}#OX_RNhV09O(P%s8n0GZ_z{D?GJa%e1flb>g&bcQWy206JkDQ~(?~0lcp002ovPDHLkV1iAqt7rfK diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2node.png b/Libraries/CMSIS/Documentation/Core/html/ftv2node.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2ns.png b/Libraries/CMSIS/Documentation/Core/html/ftv2ns.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2e4847702248a5e8ef04f1a826e0ad56b30d95 GIT binary patch literal 385 zc$@)&0e=38P)U>HrB0iUR-_6QHPm=86+Y>e}w+QZ%W$ zHXGenbHe5WxWpEDW-3o*bsC^A)?HLCO;X5@0HkIOFgEH@tIPwW7Hw0Y=X!qa>SbE+ z3jnFbX3&-Z_w9}z_Y)*G1JzE>AK2en#v4|<5+FHi4LaQ)TDNZisaZ2n?d;+SUuvQ1 z0g#jl@FB(@Uq02b0nnpyd;{>;JAjK>q9#B>4FDINfgAx%dGoLEAoBn$zQfb>6u>3- f|3w3^$vnU>WZp&)K(fWC00000NkvXXu0mjfutTFb diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2plastnode.png b/Libraries/CMSIS/Documentation/Core/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..687a9e16018b7fabd50cdad1047bad9e76214313 GIT binary patch literal 228 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QmZ{(978G?-_Et=V+<5=O9Q|3A9I9745UGuPgTe~DWM4f3!6@s diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2pnode.png b/Libraries/CMSIS/Documentation/Core/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..687a9e16018b7fabd50cdad1047bad9e76214313 GIT binary patch literal 228 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QmZ{(978G?-_Et=V+<5=O9Q|3A9I9745UGuPgTe~DWM4f3!6@s diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2splitbar.png b/Libraries/CMSIS/Documentation/Core/html/ftv2splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..5e210e7c33d22fb3f3511a137cc65f6cad204ce6 GIT binary patch literal 315 zc%17D@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6dOr9=|Ar*{o?=JLmPLyf; z_&mdacbcgLPgCGD*27(I8}!z8b~K%R{efxQ)~&5?nZ(#mC%@%jYj*s6AjN84<5S&j zTiNHm=e6JWZGYq6gIlEfv!oCooWC z`rO6cpAVP4ez49)o9*(d>$Wq`-1qOloi9K8?*CgsvDeS)U5`J@m%d)kmr2Q!bo5gG a7wd#9J2uX)4T-=&VeoYIb6Mw<&;$T4dTnI@ diff --git a/Libraries/CMSIS/Documentation/Core/html/ftv2vertline.png b/Libraries/CMSIS/Documentation/Core/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/Core/html/functions.html b/Libraries/CMSIS/Documentation/Core/html/functions.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/functions.html @@ -0,0 +1,626 @@ + + + + + +CMSIS-CORE: Data Fields + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    Here is a list of all struct and union fields with links to the structures/unions they belong to:
    + +

    - _ -

    + + +

    - a -

    + + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - h -

    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

    + + +

    - q -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - u -

    + + +

    - v -

    + + +

    - w -

    + + +

    - z -

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/functions_vars.html b/Libraries/CMSIS/Documentation/Core/html/functions_vars.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/functions_vars.html @@ -0,0 +1,626 @@ + + + + + +CMSIS-CORE: Data Fields - Variables + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +  + +

    - _ -

    + + +

    - a -

    + + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - h -

    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

    + + +

    - q -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - u -

    + + +

    - v -

    + + +

    - w -

    + + +

    - z -

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/globals.html b/Libraries/CMSIS/Documentation/Core/html/globals.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/globals.html @@ -0,0 +1,608 @@ + + + + + +CMSIS-CORE: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
    + +

    - _ -

    + + +

    - b -

    + + +

    - d -

    + + +

    - h -

    + + +

    - i -

    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

    + + +

    - s -

    + + +

    - u -

    + + +

    - w -

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/globals_enum.html b/Libraries/CMSIS/Documentation/Core/html/globals_enum.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/globals_enum.html @@ -0,0 +1,137 @@ + + + + + +CMSIS-CORE: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/globals_eval.html b/Libraries/CMSIS/Documentation/Core/html/globals_eval.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/globals_eval.html @@ -0,0 +1,167 @@ + + + + + +CMSIS-CORE: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/globals_func.html b/Libraries/CMSIS/Documentation/Core/html/globals_func.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/globals_func.html @@ -0,0 +1,531 @@ + + + + + +CMSIS-CORE: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +  + +

    - _ -

    + + +

    - i -

    + + +

    - n -

    + + +

    - s -

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/globals_vars.html b/Libraries/CMSIS/Documentation/Core/html/globals_vars.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/globals_vars.html @@ -0,0 +1,140 @@ + + + + + +CMSIS-CORE: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group___core___register__gr.html b/Libraries/CMSIS/Documentation/Core/html/group___core___register__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___core___register__gr.html @@ -0,0 +1,1143 @@ + + + + + +CMSIS-CORE: Core Register Access + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Core Register Access
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    uint32_t __get_CONTROL (void)
     Read the CONTROL register. More...
     
    void __set_CONTROL (uint32_t control)
     Set the CONTROL Register. More...
     
    uint32_t __get_IPSR (void)
     Read the IPSR register. More...
     
    uint32_t __get_APSR (void)
     Read the APSR register. More...
     
    uint32_t __get_xPSR (void)
     Read the xPSR register. More...
     
    uint32_t __get_PSP (void)
     Read the PSP register. More...
     
    void __set_PSP (uint32_t topOfProcStack)
     Set the PSP register. More...
     
    uint32_t __get_MSP (void)
     Read the MSP register. More...
     
    void __set_MSP (uint32_t topOfMainStack)
     Set the MSP register. More...
     
    uint32_t __get_PRIMASK (void)
     Read the PRIMASK register bit. More...
     
    void __set_PRIMASK (uint32_t priMask)
     Set the Priority Mask bit. More...
     
    uint32_t __get_BASEPRI (void)
     Read the BASEPRI register [not for Cortex-M0 variants]. More...
     
    void __set_BASEPRI (uint32_t basePri)
     Set the BASEPRI register [not for Cortex-M0 variants]. More...
     
    uint32_t __get_FAULTMASK (void)
     Read the FAULTMASK register [not for Cortex-M0 variants]. More...
     
    void __set_FAULTMASK (uint32_t faultMask)
     Set the FAULTMASK register [not for Cortex-M0 variants]. More...
     
    uint32_t __get_FPSCR (void)
     Read the FPSCR register [only for Cortex-M4]. More...
     
    void __set_FPSCR (uint32_t fpscr)
     Set the FPSC register [only for Cortex-M4]. More...
     
    void __enable_irq (void)
     Globally enables interrupts and configurable fault handlers. More...
     
    void __disable_irq (void)
     Globally disables interrupts and configurable fault handlers. More...
     
    void __enable_fault_irq (void)
     Enables interrupts and all fault handlers [not for Cortex-M0 variants]. More...
     
    void __disable_fault_irq (void)
     Disables interrupts and all fault handlers [not for Cortex-M0 variants]. More...
     
    +

    Description

    +

    The following functions provide access to Cortex-M core registers.

    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    void __disable_fault_irq (void )
    +
    +

    The function disables interrupts and all fault handlers by setting FAULTMASK. The function uses the instruction CPSID f.

    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • Can be executed in privileged mode only.
    • +
    • An interrupt can enter pending state even if it is disabled. Disabling an interrupt only prevents the processor from taking that interrupt.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __disable_irq (void )
    +
    +

    The function disables interrupts and all configurable fault handlers by setting PRIMASK. The function uses the instruction CPSID i.

    +
    Remarks
      +
    • Can be executed in privileged mode only.
    • +
    • An interrupt can enter pending state even if it is disabled. Disabling an interrupt only prevents the processor from taking that interrupt.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __enable_fault_irq (void )
    +
    +

    The function enables interrupts and all fault handlers by clearing FAULTMASK. The function uses the instruction CPSIE f.

    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • Can be executed in privileged mode only.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __enable_irq (void )
    +
    +

    The function enables interrupts and all configurable fault handlers by clearing PRIMASK. The function uses the instruction CPSIE i.

    +
    Remarks
      +
    • Can be executed in privileged mode only.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_APSR (void )
    +
    +

    The function reads the Application Program Status Register (APSR) using the instruction MRS.
    +
    + The APSR contains the current state of the condition flags from instructions executed previously. The APSR is essential for controlling conditional branches. The following flags are used:

    +
      +
    • N (APSR[31]) (Negative flag)
        +
      • =1 The instruction result has a negative value (when interpreted as signed integer).
      • +
      • =0 The instruction result has a positive value or equal zero.
        +
        +
      • +
      +
    • +
    • Z (APSR[30]) (Zero flag)
        +
      • =1 The instruction result is zero. Or, after a compare instruction, when the two values are the same.
        +
        +
      • +
      +
    • +
    • C (APSR[29]) (Carry or borrow flag)
        +
      • =1 For unsigned additions, if an unsigned overflow occurred.
      • +
      • =inverse of borrow output status For unsigned subtract operations.
        +
        +
      • +
      +
    • +
    • V (APSR[28]) (Overflow flag)
        +
      • =1 A signed overflow occurred (for signed additions or subtractions).
        +
        +
      • +
      +
    • +
    • Q (APSR[27]) (DSP overflow or saturation flag) [not Cortex-M0]
        +
      • This flag is a sticky flag. Saturating and certain mutliplying instructions can set the flag, but cannot clear it.
      • +
      • =1 When saturation or an overflow occurred.
        +
        +
      • +
      +
    • +
    • GE (APSR[19:16]) (Greater than or Equal flags) [not Cortex-M0]
        +
      • Can be set by the parallel add and subtract instructions.
      • +
      • Are used by the SEL instruction to perform byte-based selection from two registers.
      • +
      +
    • +
    +
    Returns
    APSR register value
    +
    Remarks
      +
    • Some instructions update all flags; some instructions update a subset of the flags.
    • +
    • If a flag is not updated, the original value is preserved.
    • +
    • Conditional instructions that are not executed have no effect on the flags.
    • +
    • The CMSIS does not provide a function to update this register.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_BASEPRI (void )
    +
    +

    The function returns the Base Priority Mask register (BASEPRI) using the instruction MRS.
    +
    + BASEPRI defines the minimum priority for exception processing. When BASEPRI is set to a non-zero value, it prevents the activation of all exceptions with the same or lower priority level as the BASEPRI value.

    +
    Returns
    BASEPRI register value
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_CONTROL (void )
    +
    +

    The function reads the CONTROL register value using the instruction MRS.
    +
    + The CONTROL register controls the stack used and the privilege level for software execution when the processor is in thread mode and, if implemented, indicates whether the FPU state is active. This register uses the following bits:
    +

    +
      +
    • CONTROL[2] [only Cortex-M4]
        +
      • =0 FPU not active
      • +
      • =1 FPU active
        +
        +
      • +
      +
    • +
    • CONTROL[1]
        +
      • =0 In handler mode - MSP is selected. No alternate stack possible for handler mode.
      • +
      • =0 In thread mode - Default stack pointer MSP is used.
      • +
      • =1 In thread mode - Alternate stack pointer PSP is used.
        +
        +
      • +
      +
    • +
    • CONTROL[0] [not Cortex-M0]
        +
      • =0 In thread mode and privileged state.
      • +
      • =1 In thread mode and user state.
      • +
      +
    • +
    +
    Returns
    CONTROL register value
    +
    Remarks
      +
    • The processor can be in user state or privileged state when running in thread mode.
    • +
    • Exception handlers always run in privileged state.
    • +
    • On reset, the processor is in thread mode with privileged access rights.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_FAULTMASK (void )
    +
    +

    The function reads the Fault Mask register (FAULTMASK) value using the instruction MRS.
    +
    + FAULTMASK prevents activation of all exceptions except for the Non-Maskable Interrupt (NMI).

    +
    Returns
    FAULTMASK register value
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • Is cleared automatically upon exiting the exception handler, except when returning from the NMI handler.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_FPSCR (void )
    +
    +

    The function reads the Floating-Point Status Control Register (FPSCR) value.
    +
    + FPSCR provides all necessary User level controls of the floating-point system.

    +
    Returns
      +
    • FPSCR register value, when __FPU_PRESENT=1
    • +
    • =0, when __FPU_PRESENT=0
    • +
    +
    +
    Remarks
      +
    • Only for Cortex-M4.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_IPSR (void )
    +
    +

    The function reads the Interrupt Program Status Register (IPSR) using the instruction MRS.
    +
    + The ISPR contains the exception type number of the current Interrupt Service Routine (ISR). Each exception has an assocciated unique IRQn number. The following bits are used:

    +
      +
    • ISR_NUMBER (IPSR[8:0])
        +
      • =0 Thread mode
      • +
      • =1 Reserved
      • +
      • =2 NMI
      • +
      • =3 HardFault
      • +
      • =4 MemManage
      • +
      • =5 BusFault
      • +
      • =6 UsageFault
      • +
      • =7-10 Reserved
      • +
      • =11 SVCall
      • +
      • =12 Reserved for Debug
      • +
      • =13 Reserved
      • +
      • =14 PendSV
      • +
      • =15 SysTick
      • +
      • =16 IRQ0
      • +
      • ...
      • +
      • =n+15 IRQ(n-1)
      • +
      +
    • +
    +
    Returns
    ISPR register value
    +
    Remarks
      +
    • This register is read-only.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_MSP (void )
    +
    +

    The function reads the Main Status Pointer (MSP) value using the instruction MRS.
    +
    + Physically two different stack pointers (SP) exist:

    +
      +
    • The Main Stack Pointer (MSP) is the default stack pointer after reset. It is also used when running exception handlers (handler mode).
    • +
    • The Process Stack Pointer (PSP), which can be used only in thread mode.
    • +
    +

    Register R13 banks the SP. The SP selection is determined by the bit[1] of the CONTROL register:

    +
      +
    • =0 MSP is the current stack pointer. This is also the default SP. The initial value is loaded from the first 32-bit word of the vector table from the program memory.
    • +
    • =1 PSP is the current stack pointer. The initial value is undefined.
    • +
    +
    Returns
    MSP Register value
    +
    Remarks
      +
    • Only one of the two SPs is visible at a time.
    • +
    • For many applications, the system can completely rely on the MSP.
    • +
    • The PSP is normally used in designs with an OS where the stack memory for OS Kernel must be separated from the application code.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_PRIMASK (void )
    +
    +

    The function reads the Priority Mask register (PRIMASK) value using the instruction MRS.
    +
    + PRIMASK is a 1-bit-wide interrupt mask register. When set, it blocks all interrupts apart from the non-maskable interrupt (NMI) and the hard fault exception. The PRIMASK prevents activation of all exceptions with configurable priority.

    +
    Returns
    PRIMASK register value
      +
    • =0 no effect
    • +
    • =1 prevents the activation of all exceptions with configurable priority
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_PSP (void )
    +
    +

    The function reads the Program Status Pointer (PSP) value using the instruction MRS.
    +
    + Physically two different stack pointers (SP) exist:

    +
      +
    • The Main Stack Pointer (MSP) is the default stack pointer after reset. It is also used when running exception handlers (handler mode).
    • +
    • The Process Stack Pointer (PSP), which can be used only in thread mode.
    • +
    +

    Register R13 banks the SP. The SP selection is determined by the bit[1] of the CONTROL register:

    +
      +
    • =0 MSP is the current stack pointer. This is also the default SP. The initial value is loaded from the first 32-bit word of the vector table from the program memory.
    • +
    • =1 PSP is the current stack pointer. The initial value is undefined.
    • +
    +
    Returns
    PSP register value
    +
    Remarks
      +
    • Only one of the two SPs is visible at a time.
    • +
    • For many applications, the system can completely rely on the MSP.
    • +
    • The PSP is normally used in designs with an OS where the stack memory for OS Kernel must be separated from the application code.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __get_xPSR (void )
    +
    +

    The function reads the combined Program Status Register (xPSR) using the instruction MRS.
    +
    + xPSR provides information about program execution and the APSR flags. It consists of the following PSRs:

    +
      +
    • Application Program Status Register (APSR)
    • +
    • Interrupt Program Status Register (IPSR)
    • +
    • Execution Program Status Register (EPSR)
    • +
    +

    In addition to the flags described in __get_APSR and __get_IPSR, the register provides the following flags:

    +
      +
    • IT (xPSR[26:25]) (If-Then condition instruction)
        +
      • Contains up to four instructions following an IT instruction.
      • +
      • Each instruction in the block is conditional.
      • +
      • The conditions for the instructions are either all the same, or some can be the inverse of others.
        +
        +
      • +
      +
    • +
    • T (xPSR[24]) (Thumb bit)
        +
      • =1 Indicates that that the processor is in Thumb state.
      • +
      • =0 Attempting to execute instructions when the T bit is 0 results in a fault or lockup.
      • +
      • The conditions for the instructions are either all the same, or some can be the inverse of others.
      • +
      +
    • +
    +
    Returns
    xPSR register value
    +
    Remarks
      +
    • The CMSIS does not provide functions that access EPSR.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __set_BASEPRI (uint32_t basePri)
    +
    +

    The function sets the Base Priority Mask register (BASEPRI) value using the instruction MSR.
    +
    + BASEPRI defines the minimum priority for exception processing. When BASEPRI is set to a non-zero value, it prevents the activation of all exceptions with the same or lower priority level as the BASEPRI value.

    +
    Parameters
    + + +
    [in]basePriBASEPRI value to set
    +
    +
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • Cannot be set in user state.
    • +
    • Useful for changing the masking level or disabling the masking.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __set_CONTROL (uint32_t control)
    +
    +

    The function sets the CONTROL register value using the instruction MSR.
    +
    + The CONTROL register controls the stack used and the privilege level for software execution when the processor is in thread mode and, if implemented, indicates whether the FPU state is active. This register uses the following bits:
    +

    +
      +
    • CONTROL[2] [only Cortex-M4]
        +
      • =0 FPU not active
      • +
      • =1 FPU active
        +
        +
      • +
      +
    • +
    • CONTROL[1]
        +
      • Writeable only when the processor is in thread mode and privileged state (CONTROL[0]=0).
      • +
      • =0 In handler mode - MSP is selected. No alternate stack pointer possible for handler mode.
      • +
      • =0 In thread mode - Default stack pointer MSP is used.
      • +
      • =1 In thread mode - Alternate stack pointer PSP is used.
        +
        +
      • +
      +
    • +
    • CONTROL[0] [not writeable for Cortex-M0]
        +
      • Writeable only when the processor is in privileged state.
      • +
      • Can be used to switch the processor to user state (thread mode).
      • +
      • Once in user state, trigger an interrupt and change the state to privileged in the exception handler (the only way).
      • +
      • =0 In thread mode and privileged state.
      • +
      • =1 In thread mode and user state.
      • +
      +
    • +
    +
    Parameters
    + + +
    [in]controlCONTROL register value to set
    +
    +
    +
    Remarks
      +
    • The processor can be in user state or privileged state when running in thread mode.
    • +
    • Exception handlers always run in privileged state.
    • +
    • On reset, the processor is in thread mode with privileged access rights.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __set_FAULTMASK (uint32_t faultMask)
    +
    +

    The function sets the Fault Mask register (FAULTMASK) value using the instruction MSR.
    +
    + FAULTMASK prevents activation of all exceptions except for Non-Maskable Interrupt (NMI). FAULTMASK can be used to escalate a configurable fault handler (BusFault, usage fault, or memory management fault) to hard fault level without invoking a hard fault. This allows the fault handler to pretend to be the hard fault handler, whith the ability to:

    +
      +
    1. Mask BusFault by setting the BFHFNMIGN in the Configuration Control register. It can be used to test the bus system without causing a lockup.
    2. +
    3. Bypass the MPU, allowing accessing the MPU protected memory location without reprogramming the MPU to just carry out a few transfers for fixing faults.
    4. +
    +
    Parameters
    + + +
    [in]faultMaskFAULTMASK register value to set
    +
    +
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • Is cleared automatically upon exiting the exception handler, except when returning from the NMI handler.
    • +
    • When set, it changes the effective current priority level to -1, so that even the hard fault handler is blocked.
    • +
    • Can be used by fault handlers to change their priority to -1 to have access to some features for hard fault exceptions (see above).
    • +
    • When set, lockups can still be caused by incorrect or undefined instructions, or by using SVC in the wrong priority level.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __set_FPSCR (uint32_t fpscr)
    +
    +

    The function sets the Floating-Point Status Control Register (FPSCR) value.
    +
    + FPSCR provides all necessary User level control of the floating-point system.
    +

    +
      +
    • N (FPSC[31]) (Negative flag)
        +
      • =1 The instruction result has a negative value (when interpreted as signed integer).
      • +
      • =0 The instruction result has a positive value or equal zero.
        +
        +
      • +
      +
    • +
    • Z (FPSC[30]) (Zero flag)
        +
      • =1 The instruction result is zero. Or, after a compare instruction, when the two values are the same.
        +
        +
      • +
      +
    • +
    • C (FPSC[29]) (Carry or borrow flag)
        +
      • =1 For unsigned additions, if an unsigned overflow occurred.
      • +
      • =inverse of borrow output status For unsigned subtract operations.
        +
        +
      • +
      +
    • +
    • V (FPSC[28]) (Overflow flag)
        +
      • =1 A signed overflow occurred (for signed additions or subtractions).
        +
        +
      • +
      +
    • +
    • AHP (FPSC[26]) (Alternative half-precision flag)
        +
      • =1 Alternative half-precision format selected.
      • +
      • =0 IEEE half-precision format selected.
        +
        +
      • +
      +
    • +
    • DN (FPSC[25]) (Default NaN mode control flag)
        +
      • =1 Any operation involving one or more NaNs returns the Default NaN.
      • +
      • =0 NaN operands propagate through to the output of a floating-point operation.
        +
        +
      • +
      +
    • +
    • FZ (FPSC[24]) (Flush-to-zero mode control flag)
        +
      • =1 Flush-to-zero mode enabled.
      • +
      • =0 Flush-to-zero mode disabled. Behavior of the floating-point system is fully compliant with the IEEE 754 standard.
        +
        +
      • +
      +
    • +
    • RMode (FPSC[23:22]) (Rounding Mode control flags)
        +
      • =0b00 Round to Nearest (RN) mode.
      • +
      • =0b01 Round towards Plus Infinity (RP) mode.
      • +
      • =0b10 Round towards Minus Infinity (RM) mode.
      • +
      • =0b11 Round towards Zero (RZ) mode.
      • +
      • The specified rounding mode is used by almost all floating-point instructions.
        +
        +
      • +
      +
    • +
    • IDC (FPSC[7]) (Input Denormal cumulative exception flags)
        +
      • See Cumulative exception bits (FPSC[4:0]).
        +
        +
      • +
      +
    • +
    • IXC (FPSC[4]) (Inexact cumulative exception flag)
        +
      • =1 Exception occurred.
      • +
      • =0 Value has to be set explicitly.
      • +
      • Flag is not cleared automatically.
        +
        +
      • +
      +
    • +
    • UFC (FPSC[3]) (Underflow cumulative exception flag)
        +
      • =1 Exception occurred.
      • +
      • =0 Value has to be set explicitly.
      • +
      • Flag is not cleared automatically.
        +
        +
      • +
      +
    • +
    • OFC (FPSC[2]) (Overflow cumulative exception flag)
        +
      • =1 Exception occurred.
      • +
      • =0 Value has to be set explicitly.
      • +
      • Flag is not cleared automatically.
        +
        +
      • +
      +
    • +
    • DZC (FPSC[1]) (Division by Zero cumulative exception flag)
        +
      • =1 Exception occurred.
      • +
      • =0 Value has to be set explicitly.
      • +
      • Flag is not cleared automatically.
        +
        +
      • +
      +
    • +
    • IOC (FPSC[0]) (Invalid Operation cumulative exception flag)
        +
      • =1 Exception occurred.
      • +
      • =0 Value has to be set explicitly.
      • +
      • Flag is not cleared automatically.
      • +
      +
    • +
    +
    Parameters
    + + +
    [in]fpscrFPSCR value to set
    +
    +
    +
    Remarks
      +
    • Only for Cortex-M4.
    • +
    • The variable __FPU_PRESENT has to be set to 1.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __set_MSP (uint32_t topOfMainStack)
    +
    +

    The function sets the Main Status Pointer (MSP) value using the instruction MSR.
    +
    + Physically two different stack pointers (SP) exist:

    +
      +
    • The Main Stack Pointer (MSP) is the default stack pointer after reset. It is also used when running exception handlers (handler mode).
    • +
    • The Process Stack Pointer (PSP), which can be used only in thread mode.
    • +
    +

    Register R13 banks the SP. The SP selection is determined by the bit[1] of the CONTROL register:

    +
      +
    • =0 MSP is the current stack pointer. This is also the default SP. The initial value is loaded from the first 32-bit word of the vector table from the program memory.
    • +
    • =1 PSP is the current stack pointer. The initial value is undefined.
    • +
    +
    Parameters
    + + +
    [in]topOfMainStackMSP value to set
    +
    +
    +
    Remarks
      +
    • Only one of the two SPs is visible at a time.
    • +
    • For many applications, the system can completely rely on the MSP.
    • +
    • The PSP is normally used in designs with an OS where the stack memory for OS Kernel must be separated from the application code.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __set_PRIMASK (uint32_t priMask)
    +
    +

    The function sets the Priority Mask register (PRIMASK) value using the instruction MSR.
    +
    + PRIMASK is a 1-bit-wide interrupt mask register. When set, it blocks all interrupts apart from the non-maskable interrupt (NMI) and the hard fault exception. The PRIMASK prevents activation of all exceptions with configurable priority.

    +
    Parameters
    + + +
    [in]priMaskPriority Mask
      +
    • =0 no effect
    • +
    • =1 prevents the activation of all exceptions with configurable priority
    • +
    +
    +
    +
    +
    Remarks
      +
    • When set, PRIMASK effectively changes the current priority level to 0. This is the highest programmable level.
    • +
    • When set and a fault occurs, the hard fault handler will be executed.
    • +
    • Useful for temprorarily disabling all interrupts for timing critical tasks.
    • +
    • Does not have the ability to mask BusFault or bypass MPU.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __set_PSP (uint32_t topOfProcStack)
    +
    +

    The function sets the Program Status Pointer (PSP) value using the instruction MSR.
    +
    + Physically two different stack pointers (SP) exist:

    +
      +
    • The Main Stack Pointer (MSP) is the default stack pointer after reset. It is also used when running exception handlers (handler mode).
    • +
    • The Process Stack Pointer (PSP), which can be used only in thread mode.
    • +
    +

    Register R13 banks the SP. The SP selection is determined by the bit[1] of the CONTROL register:

    +
      +
    • =0 MSP is the current stack pointer. This is also the default SP. The initial value is loaded from the first 32-bit word of the vector table from the program memory.
    • +
    • =1 PSP is the current stack pointer. The initial value is undefined.
    • +
    +
    Parameters
    + + +
    [in]topOfProcStackPSP value to set
    +
    +
    +
    Remarks
      +
    • Only one of the two SPs is visible at a time.
    • +
    • For many applications, the system can completely rely on the MSP.
    • +
    • The PSP is normally used in designs with an OS where the stack memory for OS Kernel must be separated from the application code.
    • +
    +
    +
    See Also
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group___core___register__gr.js b/Libraries/CMSIS/Documentation/Core/html/group___core___register__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___core___register__gr.js @@ -0,0 +1,24 @@ +var group___core___register__gr = +[ + [ "__disable_fault_irq", "group___core___register__gr.html#ga9d174f979b2f76fdb3228a9b338fd939", null ], + [ "__disable_irq", "group___core___register__gr.html#gaeb8e5f7564a8ea23678fe3c987b04013", null ], + [ "__enable_fault_irq", "group___core___register__gr.html#ga6575d37863cec5d334864f93b5b783bf", null ], + [ "__enable_irq", "group___core___register__gr.html#ga0f98dfbd252b89d12564472dbeba9c27", null ], + [ "__get_APSR", "group___core___register__gr.html#ga811c0012221ee918a75111ca84c4d5e7", null ], + [ "__get_BASEPRI", "group___core___register__gr.html#ga32da759f46e52c95bcfbde5012260667", null ], + [ "__get_CONTROL", "group___core___register__gr.html#ga963cf236b73219ce78e965deb01b81a7", null ], + [ "__get_FAULTMASK", "group___core___register__gr.html#gaa78e4e6bf619a65e9f01b4af13fed3a8", null ], + [ "__get_FPSCR", "group___core___register__gr.html#gad6d7eca9ddd1d9072dd7b020cfe64905", null ], + [ "__get_IPSR", "group___core___register__gr.html#ga2c32fc5c7f8f07fb3d436c6f6fe4e8c8", null ], + [ "__get_MSP", "group___core___register__gr.html#gab898559392ba027814e5bbb5a98b38d2", null ], + [ "__get_PRIMASK", "group___core___register__gr.html#ga799b5d9a2ae75e459264c8512c7c0e02", null ], + [ "__get_PSP", "group___core___register__gr.html#ga914dfa8eff7ca53380dd54cf1d8bebd9", null ], + [ "__get_xPSR", "group___core___register__gr.html#ga732e08184154f44a617963cc65ff95bd", null ], + [ "__set_BASEPRI", "group___core___register__gr.html#ga360c73eb7ffb16088556f9278953b882", null ], + [ "__set_CONTROL", "group___core___register__gr.html#gac64d37e7ff9de06437f9fb94bbab8b6c", null ], + [ "__set_FAULTMASK", "group___core___register__gr.html#gaa5587cc09031053a40a35c14ec36078a", null ], + [ "__set_FPSCR", "group___core___register__gr.html#ga6f26bd75ca7e3247f27b272acc10536b", null ], + [ "__set_MSP", "group___core___register__gr.html#ga0bf9564ebc1613a8faba014275dac2a4", null ], + [ "__set_PRIMASK", "group___core___register__gr.html#ga70b4e1a6c1c86eb913fb9d6e8400156f", null ], + [ "__set_PSP", "group___core___register__gr.html#ga48e5853f417e17a8a65080f6a605b743", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/group___i_t_m___debug__gr.html b/Libraries/CMSIS/Documentation/Core/html/group___i_t_m___debug__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___i_t_m___debug__gr.html @@ -0,0 +1,276 @@ + + + + + +CMSIS-CORE: Debug Access + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Debug Access
    +
    +
    + + + + + + + + + + + +

    +Functions

    uint32_t ITM_SendChar (uint32_t ch)
     Transmits a character via channel 0. More...
     
    int32_t ITM_ReceiveChar (void)
     ITM Receive Character. More...
     
    int32_t ITM_CheckChar (void)
     ITM Check Character. More...
     
    + + + + +

    +Variables

    volatile int32_t ITM_RxBuffer
     external variable to receive characters More...
     
    +

    Description

    +

    CMSIS provides additional debug functions to enlarge the Debug Access. Data can be transmitted via a certain global buffer variable towards the target system.

    +

    The Cortex-M3 / Cortex-M4 incorporates the Instrumented Trace Macrocell (ITM) that provides together with the Serial Viewer Output (SVO) trace capabilities for the microcontroller system. The ITM has 32 communication channels; two ITM communication channels are used by CMSIS to output the following information:

    +
      +
    • ITM Channel 0: implements the ITM_SendChar function which can be used for printf-style output via the debug interface.
    • +
    +
      +
    • ITM Channel 31: is reserved for the RTOS kernel and can be used for kernel awareness debugging.
    • +
    +
    Remarks
      +
    • ITM channels have 4 groups with 8 channels each, whereby each group can be configured for access rights in the Unprivileged level.
    • +
    • The ITM channel 0 can be enabled for the user task.
    • +
    • ITM channel 31 can be accessed only in Privileged mode from the RTOS kernel itself. The ITM channel 31 has been selected for the RTOS kernel because some kernels may use the Privileged level for program execution.
    • +
    +
    +
    +

    +ITM Debug Support in uVision

    +

    In a debug session, uVision uses the Debug (printf) Viewer window to display data.

    +

    Direction: Microcontroller –> uVision:

    +
      +
    • Characters received via ITM communication channel 0 are written in a printf-style to the Debug (printf) Viewer window.
    • +
    +

    Direction: uVision –> Microcontroller:

    +
      +
    • Check if ITM_RxBuffer variable is available (only performed once).
    • +
    • Read the character from the Debug (printf) Viewer window.
    • +
    • If ITM_RxBuffer is empty, write character to ITM_RxBuffer.
    • +
    +
    Note
    The current solution does not use a buffer mechanism for transmitting the characters.
    +
    +

    +Example:

    +

    Example for the usage of the ITM Channel 31 for RTOS Kernels:

    +
    // check if debugger connected and ITM channel enabled for tracing
    +
    if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA) &&
    +
    (ITM->TCR & ITM_TCR_ITMENA) &&
    +
    (ITM->TER & (1UL >> 31))) {
    +
    +
    // transmit trace data
    +
    while (ITM->PORT31_U32 == 0);
    +
    ITM->PORT[31].u8 = task_id; // id of next task
    +
    while (ITM->PORT[31].u32 == 0);
    +
    ITM->PORT[31].u32 = task_status; // status information
    +
    }
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    int32_t ITM_CheckChar (void )
    +
    +

    This function reads the external variable ITM_RxBuffer and checks whether a character is available or not.

    +
    Returns
      +
    • =0 - No character available
    • +
    • =1 - Character available
    • +
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    int32_t ITM_ReceiveChar (void )
    +
    +

    This function inputs a character via the external variable ITM_RxBuffer. It returns when no debugger is connected that has booked the output. It is blocking when a debugger is connected, but the previously sent character has not been transmitted.

    +
    Returns
      +
    • Received character
    • +
    • =1 - No character received
    • +
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t ITM_SendChar (uint32_t ch)
    +
    +

    This function transmits a character via the ITM channel 0. It returns when no debugger is connected that has booked the output. It is blocking when a debugger is connected, but the previously sent character has not been transmitted.

    +
    Parameters
    + + +
    [in]chCharacter to transmit
    +
    +
    +
    Returns
    Character to transmit
    + +
    +
    +

    Variable Documentation

    + +
    +
    + + + + +
    volatile int32_t ITM_RxBuffer
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group___i_t_m___debug__gr.js b/Libraries/CMSIS/Documentation/Core/html/group___i_t_m___debug__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___i_t_m___debug__gr.js @@ -0,0 +1,7 @@ +var group___i_t_m___debug__gr = +[ + [ "ITM_CheckChar", "group___i_t_m___debug__gr.html#ga7f9bbabd9756d1a7eafb2d9bf27e0535", null ], + [ "ITM_ReceiveChar", "group___i_t_m___debug__gr.html#ga37b8f41cae703b5ff6947e271065558c", null ], + [ "ITM_SendChar", "group___i_t_m___debug__gr.html#gaaa7c716331f74d644bf6bf25cd3392d1", null ], + [ "ITM_RxBuffer", "group___i_t_m___debug__gr.html#ga12e68e55a7badc271b948d6c7230b2a8", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/group___n_v_i_c__gr.html b/Libraries/CMSIS/Documentation/Core/html/group___n_v_i_c__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___n_v_i_c__gr.html @@ -0,0 +1,1031 @@ + + + + + +CMSIS-CORE: Interrupts and Exceptions (NVIC) + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Interrupts and Exceptions (NVIC)
    +
    +
    + +

    Describes programming of interrupts and exception functions. +More...

    + + + + + +

    +Enumerations

    enum  IRQn_Type {
    +  NonMaskableInt_IRQn = -14, +
    +  HardFault_IRQn = -13, +
    +  MemoryManagement_IRQn = -12, +
    +  BusFault_IRQn = -11, +
    +  UsageFault_IRQn = -10, +
    +  SVCall_IRQn = -5, +
    +  DebugMonitor_IRQn = -4, +
    +  PendSV_IRQn = -2, +
    +  SysTick_IRQn = -1, +
    +  WWDG_STM_IRQn = 0, +
    +  PVD_STM_IRQn = 1 +
    + }
     Definition of IRQn numbers. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void NVIC_SetPriorityGrouping (uint32_t PriorityGroup)
     Set priority grouping [not for Cortex-M0 variants]. More...
     
    uint32_t NVIC_GetPriorityGrouping (void)
     Read the priority grouping [not for Cortex-M0 variants]. More...
     
    void NVIC_EnableIRQ (IRQn_Type IRQn)
     Enable an external interrupt. More...
     
    void NVIC_DisableIRQ (IRQn_Type IRQn)
     Disable an external interrupt. More...
     
    uint32_t NVIC_GetPendingIRQ (IRQn_Type IRQn)
     Get the pending interrupt. More...
     
    void NVIC_SetPendingIRQ (IRQn_Type IRQn)
     Set an interrupt to pending. More...
     
    void NVIC_ClearPendingIRQ (IRQn_Type IRQn)
     Clear an interrupt from pending. More...
     
    uint32_t NVIC_GetActive (IRQn_Type IRQn)
     Get the interrupt active status [not for Cortex-M0 variants]. More...
     
    void NVIC_SetPriority (IRQn_Type IRQn, uint32_t priority)
     Set the priority for an interrupt. More...
     
    uint32_t NVIC_GetPriority (IRQn_Type IRQn)
     Get the priority of an interrupt. More...
     
    uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
     Encodes Priority [not for Cortex-M0 variants]. More...
     
    void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t *pPreemptPriority, uint32_t *pSubPriority)
     Decode the interrupt priority [not for Cortex-M0 variants]. More...
     
    void NVIC_SystemReset (void)
     Reset the system. More...
     
    +

    Description

    +

    ARM provides a template file startup_device for each supported compiler. The file must be adapted by the silicon vendor to include interrupt vectors for all device-specific interrupt handlers. Each interrupt handler is defined as a weak function to an dummy handler. These interrupt handlers can be used directly in application software without being adapted by the programmer.

    +

    The table below describes the core exception names and their availability in various Cortex-M cores.

    + + + + + + + + + + + + + + + + + + + + + +
    Core Exception Name IRQn Value M0 M0p M3 M4 SC000 SC300 Description
    NonMaskableInt_IRQn -14
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    Non Maskable Interrupt
    HardFault_IRQn -13
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    Hard Fault Interrupt
    MemoryManagement_IRQn -12    
    +available +
    +
    +available +
    +
     
    +available +
    +
    Memory Management Interrupt
    BusFault_IRQn -11    
    +available +
    +
    +available +
    +
     
    +available +
    +
    Bus Fault Interrupt
    UsageFault_IRQn -10    
    +available +
    +
    +available +
    +
     
    +available +
    +
    Usage Fault Interrupt
    SVCall_IRQn -5
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    SV Call Interrupt
    DebugMonitor_IRQn -4    
    +available +
    +
    +available +
    +
     
    +available +
    +
    Debug Monitor Interrupt
    PendSV_IRQn -2
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    Pend SV Interrupt
    SysTick_IRQn -1
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    +available +
    +
    System Tick Interrupt
    +

    +For Cortex-M0 and Cortex-M0+

    +

    The following exception names are fixed and define the start of the vector table for Cortex-M0 variants:

    +
    __Vectors DCD __initial_sp ; Top of Stack
    +
    DCD Reset_Handler ; Reset Handler
    +
    DCD NMI_Handler ; NMI Handler
    +
    DCD HardFault_Handler ; Hard Fault Handler
    +
    DCD 0 ; Reserved
    +
    DCD 0 ; Reserved
    +
    DCD 0 ; Reserved
    +
    DCD 0 ; Reserved
    +
    DCD 0 ; Reserved
    +
    DCD 0 ; Reserved
    +
    DCD 0 ; Reserved
    +
    DCD SVC_Handler ; SVCall Handler
    +
    DCD 0 ; Reserved
    +
    DCD 0 ; Reserved
    +
    DCD PendSV_Handler ; PendSV Handler
    +
    DCD SysTick_Handler ; SysTick Handler
    +

    +For Cortex-M3

    +

    The following exception names are fixed and define the start of the vector table for a Cortex-M3:

    +
    __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
    +

    +Example

    +

    The following is an examples for device-specific interrupts:

    +
    ; External Interrupts
    +
    DCD WWDG_IRQHandler ; Window Watchdog
    +
    DCD PVD_IRQHandler ; PVD through EXTI Line detect
    +
    DCD TAMPER_IRQHandler ; Tamper
    +

    Device-specific interrupts must have a dummy function that can be overwritten in user code. Below is an example for this dummy function.

    +
    Default_Handler PROC
    +
    EXPORT WWDG_IRQHandler [WEAK]
    +
    EXPORT PVD_IRQHandler [WEAK]
    +
    EXPORT TAMPER_IRQHandler [WEAK]
    +
    :
    +
    :
    +
    WWDG_IRQHandler
    +
    PVD_IRQHandler
    +
    TAMPER_IRQHandler
    +
    :
    +
    :
    +
    B .
    +
    ENDP
    +

    The user application may simply define an interrupt handler function by using the handler name as shown below.

    +
    void WWDG_IRQHandler(void)
    +
    {
    +
    ...
    +
    }
    +

    +Code Example 1

    +

    The code below shows the usage of the CMSIS NVIC functions NVIC_SetPriorityGrouping(), NVIC_GetPriorityGrouping(), NVIC_SetPriority(), NVIC_GetPriority(), NVIC_EncodePriority(), and NVIC_DecodePriority() with an LPC1700.

    +
    #include "LPC17xx.h"
    +
    +
    uint32_t priorityGroup; /* Variables to store priority group and priority */
    +
    uint32_t priority;
    +
    uint32_t preemptPriority;
    +
    uint32_t subPriority;
    +
    +
    +
    int main (void) {
    +
    +
    NVIC_SetPriorityGrouping(5); /* Set priority group to 5:
    +
    Bit[7..6] preempt priority Bits,
    +
    Bit[5..3] subpriority Bits
    +
    (valid for five priority bits) */
    +
    +
    priorityGroup = NVIC_GetPriorityGrouping(); /* Get used priority grouping */
    +
    +
    priority = NVIC_EncodePriority(priorityGroup, 1, 6); /* Encode priority with 6 for subpriority and 1 for preempt priority
    +
    Note: priority depends on the used priority grouping */
    +
    +
    NVIC_SetPriority(UART0_IRQn, priority); /* Set new priority */
    +
    +
    priority = NVIC_GetPriority(UART0_IRQn); /* Retrieve priority again */
    +
    +
    NVIC_DecodePriority(priority, priorityGroup, &preemptPriority, &subPriority);
    +
    +
    while(1);
    +
    }
    +

    +Code Example 2

    +

    The code below shows the usage of the CMSIS NVIC functions NVIC_EnableIRQ(), NVIC_GetActive() with an LPC1700.

    +
    #include "LPC17xx.h"
    +
    +
    uint32_t active; /* Variable to store interrupt active state */
    +
    +
    +
    void TIMER0_IRQHandler(void) { /* Timer 0 interrupt handler */
    +
    +
    if (LPC_TIM0->IR & (1 << 0)) { /* Check if interrupt for match channel 0 occured */
    +
    LPC_TIM0->IR |= (1 << 0); /* Acknowledge interrupt for match channel 0 occured */
    +
    }
    +
    active = NVIC_GetActive(TIMER0_IRQn); /* Get interrupt active state of timer 0 */
    +
    }
    +
    +
    +
    int main (void) {
    +
    /* Set match channel register MR0 to 1 millisecond */
    +
    LPC_TIM0->MR0 = (((SystemCoreClock / 1000) / 4) - 1); /* 1 ms? */
    +
    +
    LPC_TIM0->MCR = (3 << 0); /* Enable interrupt and reset for match channel MR0 */
    +
    +
    NVIC_EnableIRQ(TIMER0_IRQn); /* Enable NVIC interrupt for timer 0 */
    +
    +
    LPC_TIM0->TCR = (1 << 0); /* Enable timer 0 */
    +
    +
    while(1);
    +
    }
    +

    Enumeration Type Documentation

    + +
    +
    + + + + +
    enum IRQn_Type
    +
    +

    The core exception enumeration names for IRQn values are defined in the file device.h.

    +
    Negative IRQn values represent processor core exceptions (internal interrupts).
    +Positive IRQn values represent device-specific exceptions (external interrupts). 
    +The first device-specific interrupt has the IRQn value 0.
    +

    The table below describes the core exception names and their availability in various Cortex-M cores.

    + + + + + + + + + + + + +
    Enumerator
    NonMaskableInt_IRQn  +

    Exception 2: Non Maskable Interrupt.

    +
    HardFault_IRQn  +

    Exception 3: Hard Fault Interrupt.

    +
    MemoryManagement_IRQn  +

    Exception 4: Memory Management Interrupt [not on Cortex-M0 variants].

    +
    BusFault_IRQn  +

    Exception 5: Bus Fault Interrupt [not on Cortex-M0 variants].

    +
    UsageFault_IRQn  +

    Exception 6: Usage Fault Interrupt [not on Cortex-M0 variants].

    +
    SVCall_IRQn  +

    Exception 11: SV Call Interrupt.

    +
    DebugMonitor_IRQn  +

    Exception 12: Debug Monitor Interrupt [not on Cortex-M0 variants].

    +
    PendSV_IRQn  +

    Exception 14: Pend SV Interrupt [not on Cortex-M0 variants].

    +
    SysTick_IRQn  +

    Exception 15: System Tick Interrupt.

    +
    WWDG_STM_IRQn  +

    Device Interrupt 0: Window WatchDog Interrupt.

    +
    PVD_STM_IRQn  +

    Device Interrupt 1: PVD through EXTI Line detection Interrupt.

    +
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    void NVIC_ClearPendingIRQ (IRQn_Type IRQn)
    +
    +

    This function removes the pending state of the specified interrupt IRQn. IRQn cannot be a negative number.

    +
    Parameters
    + + +
    [in]IRQnInterrupt number
    +
    +
    +
    Remarks
      +
    • The registers that control the status of interrupts are called SETPEND and CLRPEND.
    • +
    • An interrupt can have the status pending though it is not active.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void NVIC_DecodePriority (uint32_t Priority,
    uint32_t PriorityGroup,
    uint32_t * pPreemptPriority,
    uint32_t * pSubPriority 
    )
    +
    +

    This function decodes an interrupt priority value with the priority group PriorityGroup to preemptive priority value pPreemptPriority and subpriority value pSubPriority. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.

    +
    Parameters
    + + + + + +
    [in]PriorityPriority
    [in]PriorityGroupPriority group
    [out]*pPreemptPriorityPreemptive priority value (starting from 0)
    [out]*pSubPrioritySubpriority value (starting from 0)
    +
    +
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void NVIC_DisableIRQ (IRQn_Type IRQn)
    +
    +

    This function disables the specified device-specific interrupt IRQn. IRQn cannot be a negative value.

    +
    Parameters
    + + +
    [in]IRQnNumber of the external interrupt to disable
    +
    +
    +
    Remarks
      +
    • The registers that control the enabling and disabling of interrupts are called SETENA and CLRENA.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void NVIC_EnableIRQ (IRQn_Type IRQn)
    +
    +

    This function enables the specified device-specific interrupt IRQn. IRQn cannot be a negative value.

    +
    Parameters
    + + +
    [in]IRQnInterrupt number
    +
    +
    +
    Remarks
      +
    • The registers that control the enabling and disabling of interrupts are called SETENA and CLRENA.
    • +
    • The number of supported interrupts depends on the implementation of the chip designer and can be read form the Interrupt Controller Type Register (ICTR) in granularities of 32:
      + ICTR[4:0]
        +
      • =0 - 32 interrupts supported
      • +
      • =1 - 64 interrupts supported
      • +
      • ...
      • +
      +
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t NVIC_EncodePriority (uint32_t PriorityGroup,
    uint32_t PreemptPriority,
    uint32_t SubPriority 
    )
    +
    +

    This function encodes the priority for an interrupt with the priority group PriorityGroup, preemptive priority value PreemptPriority, and subpriority value SubPriority. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.

    +
    Parameters
    + + + + +
    [in]PriorityGroupPriority group
    [in]PreemptPriorityPreemptive priority value (starting from 0)
    [in]SubPrioritySubpriority value (starting from 0)
    +
    +
    +
    Returns
    Encoded priority for the interrupt
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t NVIC_GetActive (IRQn_Type IRQn)
    +
    +

    This function reads the Interrupt Active Register (NVIC_IABR0-NVIC_IABR7) in NVIC and returns the active bit of the interrupt IRQn.

    +
    Parameters
    + + +
    [in]IRQnInterrupt number
    +
    +
    +
    Returns
      +
    • =0 Interrupt is not active
    • +
    • =1 Interrupt is active, or active and pending
    • +
    +
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • Each external interrupt has an active status bit. When the processor starts the interrupt handler the bit is set to 1 and cleared when the interrupt return is executed.
    • +
    • When an ISR is preempted and the processor executes anohter interrupt handler, the previous interrupt is still defined as active.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t NVIC_GetPendingIRQ (IRQn_Type IRQn)
    +
    +

    This function returns the pending status of the specified interrupt IRQn.

    +
    Parameters
    + + +
    [in]IRQnInterrupt number
    +
    +
    +
    Returns
      +
    • =0 Interrupt is not pending
    • +
    • =1 Interrupt is pending
    • +
    +
    +
    Remarks
      +
    • The registers that control the status of interrupts are called SETPEND and CLRPEND.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t NVIC_GetPriority (IRQn_Type IRQn)
    +
    +

    This function reads the priority for the specified interrupt IRQn. IRQn can can specify any device-specific (external) interrupt, or core (internal) interrupt.

    +

    The returned priority value is automatically aligned to the implemented priority bits of the microcontroller.

    +
    Parameters
    + + +
    [in]IRQnInterrupt number
    +
    +
    +
    Returns
    Interrupt priority
    +
    Remarks
      +
    • Each external interrupt has an associated priority-level register.
    • +
    • Unimplemented bits are read as zero.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t NVIC_GetPriorityGrouping (void )
    +
    +

    This functuion returns the priority grouping (flag PRIGROUP in AIRCR[10:8]).

    +
    Returns
    Priority grouping field
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • By default, priority group setting is zero.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void NVIC_SetPendingIRQ (IRQn_Type IRQn)
    +
    +

    This function sets the pending bit for the specified interrupt IRQn. IRQn cannot be a negative value.

    +
    Parameters
    + + +
    [in]IRQnInterrupt number
    +
    +
    +
    Remarks
      +
    • The registers that control the status of interrupts are called SETPEND and CLRPEND.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void NVIC_SetPriority (IRQn_Type IRQn,
    uint32_t priority 
    )
    +
    +

    Sets the priority for the interrupt specified by IRQn.IRQn can can specify any device-specific (external) interrupt, or core (internal) interrupt. The priority specifies the interrupt priority value, whereby lower values indicate a higher priority. The default priority is 0 for every interrupt. This is the highest possible priority.

    +

    The priority cannot be set for every core interrupt. HardFault and NMI have a fixed (negative) priority that is higher than any configurable exception or interrupt.

    +
    Parameters
    + + + +
    [in]IRQnInterrupt Number
    [in]priorityPriority to set
    +
    +
    +
    Remarks
      +
    • The number of priority levels is configurable and depends on the implementation of the chip designer. To determine the number of bits implemented for interrupt priority-level registers, write 0xFF to one of the priority-level register, then read back the value. For example, if the minimum number of 3 bits have been implemented, the read-back value is 0xE0.
    • +
    • Writes to unimplemented bits are ignored.
    • +
    • For Cortex-M0:
        +
      • Dynamic switching of interrupt priority levels is not supported. The priority level of an interrupt should not be changed after it has been enabled.
      • +
      • Supports 0 to 192 priority levels.
      • +
      • Priority-level registers are 2 bit wide, occupying the two MSBs. Each Interrupt Priority Level Register is 1-byte wide.
      • +
      +
    • +
    • For Cortex-M3 and Cortex-M4:
        +
      • Dynamic switching of interrupt priority levels is supported.
      • +
      • Supports 0 to 255 priority levels.
      • +
      • Priority-level registers have a maximum width of 8 bits and a minumum of 3 bits. Each register can be further devided into preempt priority level and subpriority level.
      • +
      +
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void NVIC_SetPriorityGrouping (uint32_t PriorityGroup)
    +
    +

    The function sets the priority grouping PriorityGroup using the required unlock sequence. PriorityGroup is assigned to the field PRIGROUP (register AIRCR[10:8]). This field determines the split of group priority from subpriority. Only values from 0..7 are used. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.

    +
    Parameters
    + + +
    [in]PriorityGroupPriority group
    +
    +
    +
    Remarks
      +
    • not for Cortex-M0 variants.
    • +
    • By default, priority group setting is zero.
    • +
    +
    +
    See Also
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void NVIC_SystemReset (void )
    +
    +

    This function requests a system reset by setting the SYSRESETREQ flag in the AIRCR register.

    +
    Remarks
      +
    • In most microcontroller designs, setting the SYSRESETREQ flag resets the processor and most parts of the system, but should not affect the debug system.
    • +
    +
    +
    See Also
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group___n_v_i_c__gr.js b/Libraries/CMSIS/Documentation/Core/html/group___n_v_i_c__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___n_v_i_c__gr.js @@ -0,0 +1,29 @@ +var group___n_v_i_c__gr = +[ + [ "IRQn_Type", "group___n_v_i_c__gr.html#ga7e1129cd8a196f4284d41db3e82ad5c8", [ + [ "NonMaskableInt_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ade177d9c70c89e084093024b932a4e30", null ], + [ "HardFault_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ab1a222a34a32f0ef5ac65e714efc1f85", null ], + [ "MemoryManagement_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a33ff1cf7098de65d61b6354fee6cd5aa", null ], + [ "BusFault_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8693500eff174f16119e96234fee73af", null ], + [ "UsageFault_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6895237c9443601ac832efa635dd8bbf", null ], + [ "SVCall_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a4ce820b3cc6cf3a796b41aadc0cf1237", null ], + [ "DebugMonitor_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8e033fcef7aed98a31c60a7de206722c", null ], + [ "PendSV_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a03c3cc89984928816d81793fc7bce4a2", null ], + [ "SysTick_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6dbff8f8543325f3474cbae2446776e7", null ], + [ "WWDG_STM_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8aa62e040960b4beb6cba107e4703c12d2", null ], + [ "PVD_STM_IRQn", "group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a853e0f318108110e0527f29733d11f86", null ] + ] ], + [ "NVIC_ClearPendingIRQ", "group___n_v_i_c__gr.html#ga382ad6bedd6eecfdabd1b94dd128a01a", null ], + [ "NVIC_DecodePriority", "group___n_v_i_c__gr.html#gad3cbca1be7a4726afa9448a9acd89377", null ], + [ "NVIC_DisableIRQ", "group___n_v_i_c__gr.html#ga736ba13a76eb37ef6e2c253be8b0331c", null ], + [ "NVIC_EnableIRQ", "group___n_v_i_c__gr.html#ga530ad9fda2ed1c8b70e439ecfe80591f", null ], + [ "NVIC_EncodePriority", "group___n_v_i_c__gr.html#ga0688c59605b119c53c71b2505ab23eb5", null ], + [ "NVIC_GetActive", "group___n_v_i_c__gr.html#gadf4252e600661fd762cfc0d1a9f5b892", null ], + [ "NVIC_GetPendingIRQ", "group___n_v_i_c__gr.html#ga95a8329a680b051ecf3ee8f516acc662", null ], + [ "NVIC_GetPriority", "group___n_v_i_c__gr.html#gab18fb9f6c5f4c70fdd73047f0f7c8395", null ], + [ "NVIC_GetPriorityGrouping", "group___n_v_i_c__gr.html#gaa81b19849367d3cdb95ac108c500fa78", null ], + [ "NVIC_SetPendingIRQ", "group___n_v_i_c__gr.html#ga3b885147ef9965ecede49614de8df9d2", null ], + [ "NVIC_SetPriority", "group___n_v_i_c__gr.html#ga5bb7f43ad92937c039dee3d36c3c2798", null ], + [ "NVIC_SetPriorityGrouping", "group___n_v_i_c__gr.html#gad78f447e891789b4d8f2e5b21eeda354", null ], + [ "NVIC_SystemReset", "group___n_v_i_c__gr.html#ga1b47d17e90b6a03e7bd1ec6a0d549b46", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/group___sys_tick__gr.html b/Libraries/CMSIS/Documentation/Core/html/group___sys_tick__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___sys_tick__gr.html @@ -0,0 +1,196 @@ + + + + + +CMSIS-CORE: Systick Timer (SYSTICK) + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Systick Timer (SYSTICK)
    +
    +
    + +

    Initialize and start the SysTick timer. +More...

    + + + + + +

    +Functions

    uint32_t SysTick_Config (uint32_t ticks)
     System Tick Timer Configuration. More...
     
    +

    Description

    +
    The System Tick Time (SysTick) generates interrupt requests on a regular basis.
    +This allows an OS to carry out context switching to support multiple tasking. For applications
    +that do not require an OS, the SysTick can be used for time keeping, time measurement, or as an 
    +interrupt source for tasks that need to be executed regularly.
    +

    +Code Example

    +

    The code below shows the usage of the function SysTick_Config() with an LPC1700.

    +
    #include "LPC17xx.h"
    +
    +
    uint32_t msTicks = 0; /* Variable to store millisecond ticks */
    +
    +
    +
    void SysTick_Handler(void) { /* SysTick interrupt Handler.
    +
    msTicks++; See startup file startup_LPC17xx.s for SysTick vector */
    +
    }
    +
    +
    +
    int main (void) {
    +
    uint32_t returnCode;
    +
    +
    returnCode = SysTick_Config(SystemCoreClock / 1000); /* Configure SysTick to generate an interrupt every millisecond */
    +
    +
    if (returnCode != 0) { /* Check return code for errors */
    +
    // Error Handling
    +
    }
    +
    +
    while(1);
    +
    }
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    uint32_t SysTick_Config (uint32_t ticks)
    +
    +

    Initialises and starts the System Tick Timer and its interrupt. After this call, the SysTick timer creates interrupts with the specified time interval. Counter is in free running mode to generate periodical interrupts.

    +
    Parameters
    + + +
    [in]ticksNumber of ticks between two interrupts
    +
    +
    +
    Returns
    0 - success
    +
    +1 - failure
    +
    Note
    When #define __Vendor_SysTickConfig is set to 1, the standard function SysTick_Config is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group___sys_tick__gr.js b/Libraries/CMSIS/Documentation/Core/html/group___sys_tick__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group___sys_tick__gr.js @@ -0,0 +1,4 @@ +var group___sys_tick__gr = +[ + [ "SysTick_Config", "group___sys_tick__gr.html#gabe47de40e9b0ad465b752297a9d9f427", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___c_p_u__gr.html b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___c_p_u__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___c_p_u__gr.html @@ -0,0 +1,797 @@ + + + + + +CMSIS-CORE: Intrinsic Functions for CPU Instructions + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Intrinsic Functions for CPU Instructions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void __NOP (void)
     No Operation. More...
     
    void __WFI (void)
     Wait For Interrupt. More...
     
    void __WFE (void)
     Wait For Event. More...
     
    void __SEV (void)
     Send Event. More...
     
    void __BKPT (uint8_t value)
     Set Breakpoint. More...
     
    void __ISB (void)
     Instruction Synchronization Barrier. More...
     
    void __DSB (void)
     Data Synchronization Barrier. More...
     
    void __DMB (void)
     Data Memory Barrier. More...
     
    uint32_t __REV (uint32_t value)
     Reverse byte order (32 bit) More...
     
    uint32_t __REV16 (uint32_t value)
     Reverse byte order (16 bit) More...
     
    int32_t __REVSH (int32_t value)
     Reverse byte order in signed short value. More...
     
    uint32_t __RBIT (uint32_t value)
     Reverse bit order of value [not for Cortex-M0 variants]. More...
     
    uint32_t __ROR (uint32_t value, uint32_t shift)
     Rotate a value right by a number of bits. More...
     
    uint8_t __LDREXB (volatile uint8_t *addr)
     LDR Exclusive (8 bit) [not for Cortex-M0 variants]. More...
     
    uint16_t __LDREXH (volatile uint16_t *addr)
     LDR Exclusive (16 bit) [not for Cortex-M0 variants]. More...
     
    uint32_t __LDREXW (volatile uint32_t *addr)
     LDR Exclusive (32 bit) [not for Cortex-M0 variants]. More...
     
    uint32_t __STREXB (uint8_t value, volatile uint8_t *addr)
     STR Exclusive (8 bit) [not for Cortex-M0 variants]. More...
     
    uint32_t __STREXH (uint16_t value, volatile uint16_t *addr)
     STR Exclusive (16 bit) [not for Cortex-M0 variants]. More...
     
    uint32_t __STREXW (uint32_t value, volatile uint32_t *addr)
     STR Exclusive (32 bit) [not for Cortex-M0 variants]. More...
     
    void __CLREX (void)
     Remove the exclusive lock [not for Cortex-M0 variants]. More...
     
    uint32_t __SSAT (unint32_t value, uint32_t sat)
     Signed Saturate [not for Cortex-M0 variants]. More...
     
    uint32_t __USAT (uint32_t value, uint32_t sat)
     Unsigned Saturate [not for Cortex-M0 variants]. More...
     
    uint8_t __CLZ (uint32_t value)
     Count leading zeros [not for Cortex-M0 variants]. More...
     
    +

    Description

    +

    The following functions generate specific Cortex-M instructions that cannot be directly accessed by the C/C++ Compiler.

    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    void __BKPT (uint8_t value)
    +
    +

    This function causes the processor to enter Debug state. Debug tools can use this to investigate system state when the instruction at a particular address is reached.

    +
    Parameters
    + + +
    [in]valueis ignored by the processor. If required, a debugger can use it to obtain additional information about the breakpoint.
    +
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __CLREX (void )
    +
    +

    This function removes the exclusive lock which is created by LDREX [not for Cortex-M0 variants].

    + +
    +
    + +
    +
    + + + + + + + + +
    uint8_t __CLZ (uint32_t value)
    +
    +

    This function counts the number of leading zeros of a data value [not for Cortex-M0 variants].

    +
    Parameters
    + + +
    [in]valueValue to count the leading zeros
    +
    +
    +
    Returns
    number of leading zeros in value
    + +
    +
    + +
    +
    + + + + + + + + +
    void __DMB (void )
    +
    +

    This function ensures the apparent order of the explicit memory operations before and after the instruction, without ensuring their completion.

    + +
    +
    + +
    +
    + + + + + + + + +
    void __DSB (void )
    +
    +

    This function acts as a special kind of Data Memory Barrier. It completes when all explicit memory accesses before this instruction complete.

    + +
    +
    + +
    +
    + + + + + + + + +
    void __ISB (void )
    +
    +

    Instruction Synchronization Barrier flushes the pipeline in the processor, so that all instructions following the ISB are fetched from cache or memory, after the instruction has been completed.

    + +
    +
    + +
    +
    + + + + + + + + +
    uint8_t __LDREXB (volatile uint8_t * addr)
    +
    +

    This function performs a exclusive LDR command for 8 bit value [not for Cortex-M0 variants].

    +
    Parameters
    + + +
    [in]*addrPointer to data
    +
    +
    +
    Returns
    value of type uint8_t at (*addr)
    + +
    +
    + +
    +
    + + + + + + + + +
    uint16_t __LDREXH (volatile uint16_t * addr)
    +
    +

    This function performs a exclusive LDR command for 16 bit values [not for Cortex-M0 variants].

    +
    Parameters
    + + +
    [in]*addrPointer to data
    +
    +
    +
    Returns
    value of type uint16_t at (*addr)
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __LDREXW (volatile uint32_t * addr)
    +
    +

    This function performs a exclusive LDR command for 32 bit values [not for Cortex-M0 variants].

    +
    Parameters
    + + +
    [in]*addrPointer to data
    +
    +
    +
    Returns
    value of type uint32_t at (*addr)
    + +
    +
    + +
    +
    + + + + + + + + +
    void __NOP (void )
    +
    +

    This function does nothing. This instruction can be used for code alignment purposes.

    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __RBIT (uint32_t value)
    +
    +

    This function reverses the bit order of the given value [not for Cortex-M0 variants].

    +
    Parameters
    + + +
    [in]valueValue to reverse
    +
    +
    +
    Returns
    Reversed value
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __REV (uint32_t value)
    +
    +

    This function reverses the byte order in integer value.

    +
    Parameters
    + + +
    [in]valueValue to reverse
    +
    +
    +
    Returns
    Reversed value
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __REV16 (uint32_t value)
    +
    +
    This function reverses the byte order in two unsigned short values.
    +
    Parameters
    + + +
    [in]valueValue to reverse
    +
    +
    +
    Returns
    Reversed value
    +
    Note
    The function can be disabled by defining the compile time flag __NO_EMBEDDED_ASM. This rule applies to the ARM toolchain. For example:
    #ifndef __NO_EMBEDDED_ASM
    +
    __REV16(0x1);
    +
    #endif
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    int32_t __REVSH (int32_t value)
    +
    +
    This function reverses the byte order in a signed short value with sign extension to integer.
    +
    Parameters
    + + +
    [in]valueValue to reverse
    +
    +
    +
    Returns
    Reversed value
    +
    Note
    The function can be disabled by defining the compile time flag __NO_EMBEDDED_ASM. This rule applies to the ARM toolchain. For example:
    #ifndef __NO_EMBEDDED_ASM
    +
    __REVSH(0x1);
    +
    #endif
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __ROR (uint32_t value,
    uint32_t shift 
    )
    +
    +

    This function rotates a value right by a specified number of bits.

    +
    Parameters
    + + + +
    [in]valueValue to be shifted right
    [in]shiftNumber of bits in the range [1..31]
    +
    +
    +
    Returns
    Rotated value
    + +
    +
    + +
    +
    + + + + + + + + +
    void __SEV (void )
    +
    +

    Send Event is a hint instruction. It causes an event to be signaled to the CPU.

    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SSAT (unint32_t value,
    uint32_t sat 
    )
    +
    +

    This function saturates a signed value [not for Cortex-M0 variants].

    +
    Parameters
    + + + +
    [in]valueValue to be saturated
    [in]satBit position to saturate to [1..32]
    +
    +
    +
    Returns
    Saturated value
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __STREXB (uint8_t value,
    volatile uint8_t * addr 
    )
    +
    +

    This function performs a exclusive STR command for 8 bit values [not for Cortex-M0 variants].

    +
    Parameters
    + + + +
    [in]valueValue to store
    [in]*addrPointer to location
    +
    +
    +
    Returns
    0 Function succeeded
    +
    +1 Function failed
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __STREXH (uint16_t value,
    volatile uint16_t * addr 
    )
    +
    +

    This function performs a exclusive STR command for 16 bit values [not for Cortex-M0 variants].

    +
    Parameters
    + + + +
    [in]valueValue to store
    [in]*addrPointer to location
    +
    +
    +
    Returns
    0 Function succeeded
    +
    +1 Function failed
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __STREXW (uint32_t value,
    volatile uint32_t * addr 
    )
    +
    +

    This function performs a exclusive STR command for 32 bit values [not for Cortex-M0 variants].

    +
    Parameters
    + + + +
    [in]valueValue to store
    [in]*addrPointer to location
    +
    +
    +
    Returns
    0 Function succeeded
    +
    +1 Function failed
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __USAT (uint32_t value,
    uint32_t sat 
    )
    +
    +

    This function saturates an unsigned value [not for Cortex-M0 variants].

    +
    Parameters
    + + + +
    [in]valueValue to be saturated
    [in]satBit position to saturate to [0..31]
    +
    +
    +
    Returns
    Saturated value
    + +
    +
    + +
    +
    + + + + + + + + +
    void __WFE (void )
    +
    +

    Wait For Event is a hint instruction that permits the processor to enter a low-power state until an events occurs:

    +
      +
    • If the event register is 0, then WFE suspends execution until one of the following events occurs:
        +
      • An exception, unless masked by the exception mask registers or the current priority level.
      • +
      • An exception enters the Pending state, if SEVONPEND in the System Control Register is set.
      • +
      • A Debug Entry request, if Debug is enabled.
      • +
      • An event signaled by a peripheral or another processor in a multiprocessor system using the SEV instruction.
      • +
      +
    • +
    +
      +
    • If the event register is 1, then WFE clears it to 0 and returns immediately.
    • +
    + +
    +
    + +
    +
    + + + + + + + + +
    void __WFI (void )
    +
    +

    WFI is a hint instruction that suspends execution until one of the following events occurs:

    +
      +
    • A non-masked interrupt occurs and is taken.
    • +
    • An interrupt masked by PRIMASK becomes pending.
    • +
    • A Debug Entry request.
    • +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___c_p_u__gr.js b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___c_p_u__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___c_p_u__gr.js @@ -0,0 +1,26 @@ +var group__intrinsic___c_p_u__gr = +[ + [ "__BKPT", "group__intrinsic___c_p_u__gr.html#ga92f5621626711931da71eaa8bf301af7", null ], + [ "__CLREX", "group__intrinsic___c_p_u__gr.html#ga354c5ac8870cc3dfb823367af9c4b412", null ], + [ "__CLZ", "group__intrinsic___c_p_u__gr.html#ga90884c591ac5d73d6069334eba9d6c02", null ], + [ "__DMB", "group__intrinsic___c_p_u__gr.html#gab1c9b393641dc2d397b3408fdbe72b96", null ], + [ "__DSB", "group__intrinsic___c_p_u__gr.html#gacb2a8ca6eae1ba4b31161578b720c199", null ], + [ "__ISB", "group__intrinsic___c_p_u__gr.html#ga93c09b4709394d81977300d5f84950e5", null ], + [ "__LDREXB", "group__intrinsic___c_p_u__gr.html#ga9e3ac13d8dcf4331176b624cf6234a7e", null ], + [ "__LDREXH", "group__intrinsic___c_p_u__gr.html#ga9feffc093d6f68b120d592a7a0d45a15", null ], + [ "__LDREXW", "group__intrinsic___c_p_u__gr.html#gabd78840a0f2464905b7cec791ebc6a4c", null ], + [ "__NOP", "group__intrinsic___c_p_u__gr.html#gac71fad9f0a91980fecafcb450ee0a63e", null ], + [ "__RBIT", "group__intrinsic___c_p_u__gr.html#gad6f9f297f6b91a995ee199fbc796b863", null ], + [ "__REV", "group__intrinsic___c_p_u__gr.html#ga4717abc17af5ba29b1e4c055e0a0d9b8", null ], + [ "__REV16", "group__intrinsic___c_p_u__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26", null ], + [ "__REVSH", "group__intrinsic___c_p_u__gr.html#ga1ec006e6d79063363cb0c2a2e0b3adbe", null ], + [ "__ROR", "group__intrinsic___c_p_u__gr.html#gaf66beb577bb9d90424c3d1d7f684c024", null ], + [ "__SEV", "group__intrinsic___c_p_u__gr.html#ga3c34da7eb16496ae2668a5b95fa441e7", null ], + [ "__SSAT", "group__intrinsic___c_p_u__gr.html#ga7d9dddda18805abbf51ac21c639845e1", null ], + [ "__STREXB", "group__intrinsic___c_p_u__gr.html#gaab6482d1f59f59e2b6b7efc1af391c99", null ], + [ "__STREXH", "group__intrinsic___c_p_u__gr.html#ga0a354bdf71caa52f081a4a54e84c8d2a", null ], + [ "__STREXW", "group__intrinsic___c_p_u__gr.html#ga335deaaa7991490e1450cb7d1e4c5197", null ], + [ "__USAT", "group__intrinsic___c_p_u__gr.html#ga76bbe4374a5912362866cdc1ded4064a", null ], + [ "__WFE", "group__intrinsic___c_p_u__gr.html#gad3efec76c3bfa2b8528ded530386c563", null ], + [ "__WFI", "group__intrinsic___c_p_u__gr.html#gaed91dfbf3d7d7b7fba8d912fcbeaad88", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___s_i_m_d__gr.html b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___s_i_m_d__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___s_i_m_d__gr.html @@ -0,0 +1,3125 @@ + + + + + +CMSIS-CORE: Intrinsic Functions for SIMD Instructions [only Cortex-M4] + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Intrinsic Functions for SIMD Instructions [only Cortex-M4]
    +
    +
    + +

    Access to dedicated SIMD instructions. +More...

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

    +Functions

    uint32_t __SADD8 (uint32_t val1, uint32_t val2)
     GE setting quad 8-bit signed addition. More...
     
    uint32_t __QADD8 (uint32_t val1, uint32_t val2)
     Q setting quad 8-bit saturating addition. More...
     
    uint32_t __SHADD8 (uint32_t val1, uint32_t val2)
     Quad 8-bit signed addition with halved results. More...
     
    uint32_t __UADD8 (uint32_t val1, uint32_t val2)
     GE setting quad 8-bit unsigned addition. More...
     
    uint32_t __UQADD8 (uint32_t val1, uint32_t val2)
     Quad 8-bit unsigned saturating addition. More...
     
    uint32_t __UHADD8 (uint32_t val1, uint32_t val2)
     Quad 8-bit unsigned addition with halved results. More...
     
    uint32_t __SSUB8 (uint32_t val1, uint32_t val2)
     GE setting quad 8-bit signed subtraction. More...
     
    uint32_t __QSUB8 (uint32_t val1, uint32_t val2)
     Q setting quad 8-bit saturating subtract. More...
     
    uint32_t __SHSUB8 (uint32_t val1, uint32_t val2)
     Quad 8-bit signed subtraction with halved results. More...
     
    uint32_t __USUB8 (uint32_t val1, uint32_t val2)
     GE setting quad 8-bit unsigned subtract. More...
     
    uint32_t __UQSUB8 (uint32_t val1, uint32_t val2)
     Quad 8-bit unsigned saturating subtraction. More...
     
    uint32_t __UHSUB8 (uint32_t val1, uint32_t val2)
     Quad 8-bit unsigned subtraction with halved results. More...
     
    uint32_t __SADD16 (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit signed addition. More...
     
    uint32_t __QADD16 (uint32_t val1, uint32_t val2)
     Q setting dual 16-bit saturating addition. More...
     
    uint32_t __SHADD16 (uint32_t val1, uint32_t val2)
     Dual 16-bit signed addition with halved results. More...
     
    uint32_t __UADD16 (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit unsigned addition. More...
     
    uint32_t __UQADD16 (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned saturating addition. More...
     
    uint32_t __UHADD16 (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned addition with halved results. More...
     
    uint32_t __SSUB16 (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit signed subtraction. More...
     
    uint32_t __QSUB16 (uint32_t val1, uint32_t val2)
     Q setting dual 16-bit saturating subtract. More...
     
    uint32_t __SHSUB16 (uint32_t val1, uint32_t val2)
     Dual 16-bit signed subtraction with halved results. More...
     
    uint32_t __USUB16 (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit unsigned subtract. More...
     
    uint32_t __UQSUB16 (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned saturating subtraction. More...
     
    uint32_t __UHSUB16 (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned subtraction with halved results. More...
     
    uint32_t __SASX (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit addition and subtraction with exchange. More...
     
    uint32_t __QASX (uint32_t val1, uint32_t val2)
     Q setting dual 16-bit add and subtract with exchange. More...
     
    uint32_t __SHASX (uint32_t val1, uint32_t val2)
     Dual 16-bit signed addition and subtraction with halved results. More...
     
    uint32_t __UASX (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit unsigned addition and subtraction with exchange. More...
     
    uint32_t __UQASX (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned saturating addition and subtraction with exchange. More...
     
    uint32_t __UHASX (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned addition and subtraction with halved results and exchange. More...
     
    uint32_t __SSAX (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit signed subtraction and addition with exchange. More...
     
    uint32_t __QSAX (uint32_t val1, uint32_t val2)
     Q setting dual 16-bit subtract and add with exchange. More...
     
    uint32_t __SHSAX (uint32_t val1, uint32_t val2)
     Dual 16-bit signed subtraction and addition with halved results. More...
     
    uint32_t __USAX (uint32_t val1, uint32_t val2)
     GE setting dual 16-bit unsigned subtract and add with exchange. More...
     
    uint32_t __UQSAX (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned saturating subtraction and addition with exchange. More...
     
    uint32_t __UHSAX (uint32_t val1, uint32_t val2)
     Dual 16-bit unsigned subtraction and addition with halved results and exchange. More...
     
    uint32_t __USAD8 (uint32_t val1, uint32_t val2)
     Unsigned sum of quad 8-bit unsigned absolute difference. More...
     
    uint32_t __USADA8 (uint32_t val1, uint32_t val2, uint32_t val3)
     Unsigned sum of quad 8-bit unsigned absolute difference with 32-bit accumulate. More...
     
    uint32_t __SSAT16 (uint32_t val1, const uint32_t val2)
     Q setting dual 16-bit saturate. More...
     
    uint32_t __USAT16 (uint32_t val1, const uint32_t val2)
     Q setting dual 16-bit unsigned saturate. More...
     
    uint32_t __UXTB16 (uint32_t val)
     Dual extract 8-bits and zero-extend to 16-bits. More...
     
    uint32_t __UXTAB16 (uint32_t val1, uint32_t val2)
     Extracted 16-bit to 32-bit unsigned addition. More...
     
    uint32_t __SXTB16 (uint32_t val)
     Dual extract 8-bits and sign extend each to 16-bits. More...
     
    uint32_t __SXTAB16 (uint32_t val1, uint32_t val2)
     Dual extracted 8-bit to 16-bit signed addition. More...
     
    uint32_t __SMUAD (uint32_t val1, uint32_t val2)
     Q setting sum of dual 16-bit signed multiply. More...
     
    uint32_t __SMUADX (uint32_t val1, uint32_t val2)
     Q setting sum of dual 16-bit signed multiply with exchange. More...
     
    uint32_t __SMMLA (int32_t val1, int32_t val2, int32_t val3)
     32-bit signed multiply with 32-bit truncated accumulator. More...
     
    uint32_t __SMLAD (uint32_t val1, uint32_t val2, uint32_t val3)
     Q setting dual 16-bit signed multiply with single 32-bit accumulator. More...
     
    uint32_t __SMLADX (uint32_t val1, uint32_t val2, uint32_t val3)
     Q setting pre-exchanged dual 16-bit signed multiply with single 32-bit accumulator. More...
     
    uint64_t __SMLALD (uint32_t val1, uint32_t val2, uint64_t val3)
     Dual 16-bit signed multiply with single 64-bit accumulator. More...
     
    unsigned long long __SMLALDX (uint32_t val1, uint32_t val2, unsigned long long val3)
     Dual 16-bit signed multiply with exchange with single 64-bit accumulator. More...
     
    uint32_t __SMUSD (uint32_t val1, uint32_t val2)
     Dual 16-bit signed multiply returning difference. More...
     
    uint32_t __SMUSDX (uint32_t val1, uint32_t val2)
     Dual 16-bit signed multiply with exchange returning difference. More...
     
    uint32_t __SMLSD (uint32_t val1, uint32_t val2, uint32_t val3)
     Q setting dual 16-bit signed multiply subtract with 32-bit accumulate. More...
     
    uint32_t __SMLSDX (uint32_t val1, uint32_t val2, uint32_t val3)
     Q setting dual 16-bit signed multiply with exchange subtract with 32-bit accumulate. More...
     
    uint64_t __SMLSLD (uint32_t val1, uint32_t val2, uint64_t val3)
     Q setting dual 16-bit signed multiply subtract with 64-bit accumulate. More...
     
    unsigned long long __SMLSLDX (uint32_t val1, uint32_t val2, unsigned long long val3)
     Q setting dual 16-bit signed multiply with exchange subtract with 64-bit accumulate. More...
     
    uint32_t __SEL (uint32_t val1, uint32_t val2)
     Select bytes based on GE bits. More...
     
    uint32_t __QADD (uint32_t val1, uint32_t val2)
     Q setting saturating add. More...
     
    uint32_t __QSUB (uint32_t val1, uint32_t val2)
     Q setting saturating subtract. More...
     
    uint32_t __PKHBT (uint32_t val1, uint32_t val2, uint32_t val3)
     Halfword packing instruction. Combines bits[15:0] of val1 with bits[31:16] of val2 levitated with the val3. More...
     
    uint32_t __PKHTB (uint32_t val1, uint32_t val2, uint32_t val3)
     Halfword packing instruction. Combines bits[31:16] of val1 with bits[15:0] of val2 right-shifted with the val3. More...
     
    +

    Description

    +

    Single Instruction Multiple Data (SIMD) extensions are provided only for Cortex-M4 cores to simplify development of application software. SIMD extensions increase the processing capability without materially increasing the power consumption. The SIMD extensions are completely transparent to the operating system (OS), allowing existing OS ports to be used.

    +

    SIMD Features:

    +
      +
    • Simultaneous computation of 2x16-bit or 4x8-bit operands
    • +
    • Fractional arithmetic
    • +
    • User definable saturation modes (arbitrary word-width)
    • +
    • Dual 16x16 multiply-add/subtract 32x32 fractional MAC
    • +
    • Simultaneous 8/16-bit select operations
    • +
    • Performance up to 3.2 GOPS at 800MHz
    • +
    • Performance is achieved with a "near zero" increase in power consumption on a typical implementation
    • +
    +

    Examples:

    +

    Addition: Add two values using SIMD function

    +
    uint32_t add_halfwords(uint32_t val1, uint32_t val2)
    +
    {
    +
    return __SADD16(val1, val2);
    +
    }
    +

    Subtraction: Subtract two values using SIMD function

    +
    uint32_t sub_halfwords(uint32_t val1, uint32_t val2)
    +
    {
    +
    return __SSUB16(val1, val2);
    +
    }
    +

    Multiplication: Performing a multiplication using SIMD function

    +
    uint32_t dual_mul_add_products(uint32_t val1, uint32_t val2)
    +
    {
    +
    return __SMUAD(val1, val2);
    +
    }
    +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __PKHBT (uint32_t val1,
    uint32_t val2,
    uint32_t val3 
    )
    +
    +

    Combine a halfword from one register with a halfword from another register. The second argument can be left-shifted before extraction of the halfword. The registers PC and SP are not allowed as arguments. This instruction does not change the flags.

    +
    Parameters
    + + + + +
    val1first 16-bit operands
    val2second 16-bit operands
    val3value for left-shifting val2. Value range [0..31].
    +
    +
    +
    Returns
    the combination of halfwords.
    +
    Operation:
    res[15:0] = val1[15:0]
    +
    res[31:16] = val2[31:16]<<val3
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __PKHTB (uint32_t val1,
    uint32_t val2,
    uint32_t val3 
    )
    +
    +

    Combines a halfword from one register with a halfword from another register. The second argument can be right-shifted before extraction of the halfword. The registers PC and SP are not allowed as arguments. This instruction does not change the flags.

    +
    Parameters
    + + + + +
    val1second 16-bit operands
    val2first 16-bit operands
    val3value for right-shifting val2. Value range [1..32].
    +
    +
    +
    Returns
    the combination of halfwords.
    +
    Operation:
    res[15:0] = val2[15:0]>>val3
    +
    res[31:16] = val1[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QADD (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to obtain the saturating add of two integers.
    + The Q bit is set if the operation saturates.

    +
    Parameters
    + + + +
    val1first summand of the saturating add operation.
    val2second summand of the saturating add operation.
    +
    +
    +
    Returns
    the saturating addition of val1 and val2.
    +
    Operation:
    res[31:0] = SAT(val1 + SAT(val2 * 2))
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QADD16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit integer arithmetic additions in parallel, saturating the results to the 16-bit signed integer range -215 <= x <= 215 - 1.

    +
    Parameters
    + + + +
    val1first two 16-bit summands.
    val2second two 16-bit summands.
    +
    +
    +
    Returns
      +
    • the saturated addition of the low halfwords, in the low halfword of the return value.
    • +
    • the saturated addition of the high halfwords, in the high halfword of the return value.
    • +
    +
    +
    The returned results are saturated to the 16-bit signed integer range -215 <= x <= 215 - 1
    +
    Operation:
    res[15:0] = val1[15:0] + val2[15:0]
    +
    res[31:16] = val1[31:16] + val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QADD8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four 8-bit integer additions, saturating the results to the 8-bit signed integer range -27 <= x <= 27 - 1.

    +
    Parameters
    + + + +
    val1first four 8-bit summands.
    val2second four 8-bit summands.
    +
    +
    +
    Returns
      +
    • the saturated addition of the first byte of each operand in the first byte of the return value.
    • +
    • the saturated addition of the second byte of each operand in the second byte of the return value.
    • +
    • the saturated addition of the third byte of each operand in the third byte of the return value.
    • +
    • the saturated addition of the fourth byte of each operand in the fourth byte of the return value.
    • +
    +
    +
    The returned results are saturated to the 16-bit signed integer range -27 <= x <= 27 - 1.
    +
    Operation:
    res[7:0] = val1[7:0] + val2[7:0]
    +
    res[15:8] = val1[15:8] + val2[15:8]
    +
    res[23:16] = val1[23:16] + val2[23:16]
    +
    res[31:24] = val1[31:24] + val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QASX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the halfwords of the one operand, then add the high halfwords and subtract the low halfwords, saturating the results to the 16-bit signed integer range -215 <= x <= 215 - 1.

    +
    Parameters
    + + + +
    val1first operand for the subtraction in the low halfword, and the first operand for the addition in the high halfword.
    val2second operand for the subtraction in the high halfword, and the second operand for the addition in the low halfword.
    +
    +
    +
    Returns
      +
    • the saturated subtraction of the high halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the saturated addition of the high halfword in the first operand and the low halfword in the second operand, in the high halfword of the return value.
    • +
    +
    +
    The returned results are saturated to the 16-bit signed integer range -215 <= x <= 215 - 1.
    +
    Operation:
    res[15:0] = val1[15:0] - val2[31:16]
    +
    res[31:16] = val1[31:16] + val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QSAX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the halfwords of one operand, then subtract the high halfwords and add the low halfwords, saturating the results to the 16-bit signed integer range -215 <= x <= 215 - 1.

    +
    Parameters
    + + + +
    val1first operand for the addition in the low halfword, and the first operand for the subtraction in the high halfword.
    val2second operand for the addition in the high halfword, and the second operand for the subtraction in the low halfword.
    +
    +
    +
    Returns
      +
    • the saturated addition of the low halfword of the first operand and the high halfword of the second operand, in the low halfword of the return value.
    • +
    • the saturated subtraction of the low halfword of the second operand from the high halfword of the first operand, in the high halfword of the return value.
    • +
    +
    +
    The returned results are saturated to the 16-bit signed integer range -215 <= x <= 215 - 1.
    +
    Operation:
    res[15:0] = val1[15:0] + val2[31:16]
    +
    res[31:16] = val1[31:16] - val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QSUB (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to obtain the saturating subtraction of two integers.
    + The Q bit is set if the operation saturates.

    +
    Parameters
    + + + +
    val1minuend of the saturating subtraction operation.
    val2subtrahend of the saturating subtraction operation.
    +
    +
    +
    Returns
    the saturating subtraction of val1 and val2.
    +
    Operation:
    res[31:0] = SAT(val1 - SAT(val2 * 2))
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QSUB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit integer subtractions, saturating the results to the 16-bit signed integer range -215 <= x <= 215 - 1.

    +
    Parameters
    + + + +
    val1first two 16-bit operands.
    val2second two 16-bit operands.
    +
    +
    +
    Returns
      +
    • the saturated subtraction of the low halfword in the second operand from the low halfword in the first operand, in the low halfword of the returned result.
    • +
    • the saturated subtraction of the high halfword in the second operand from the high halfword in the first operand, in the high halfword of the returned result.
    • +
    +
    +
    The returned results are saturated to the 16-bit signed integer range -215 <= x <= 215 - 1.
    +
    Operation:
    res[15:0] = val1[15:0] - val2[15:0]
    +
    res[31:16] = val1[31:16] - val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __QSUB8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four 8-bit integer subtractions, saturating the results to the 8-bit signed integer range -27 <= x <= 27 - 1.

    +
    Parameters
    + + + +
    val1first four 8-bit operands.
    val2second four 8-bit operands.
    +
    +
    +
    Returns
      +
    • the subtraction of the first byte in the second operand from the first byte in the first operand, in the first bytes of the return value.
    • +
    • the subtraction of the second byte in the second operand from the second byte in the first operand, in the second byte of the return value.
    • +
    • the subtraction of the third byte in the second operand from the third byte in the first operand, in the third byte of the return value.
    • +
    • the subtraction of the fourth byte in the second operand from the fourth byte in the first operand, in the fourth byte of the return value.
    • +
    +
    +
    The returned results are saturated to the 8-bit signed integer range -27 <= x <= 27 - 1.
    +
    Operation:
    res[7:0] = val1[7:0] - val2[7:0]
    +
    res[15:8] = val1[15:8] - val2[15:8]
    +
    res[23:16] = val1[23:16] - val2[23:16]
    +
    res[31:24] = val1[31:24] - val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SADD16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit signed integer additions.
    + The GE bits in the APSR are set according to the results of the additions.

    +
    Parameters
    + + + +
    val1first two 16-bit summands.
    val2second two 16-bit summands.
    +
    +
    +
    Returns
      +
    • the addition of the low halfwords in the low halfword of the return value.
    • +
    • the addition of the high halfwords in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[15:0] >= 0 then APSR.GE[1:0] = 11 else 00
    • +
    • if res[31:16] >= 0 then APSR.GE[3:2] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] + val2[15:0]
    +
    res[31:16] = val1[31:16] + val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SADD8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function performs four 8-bit signed integer additions. The GE bits of the APSR are set according to the results of the additions.

    +
    Parameters
    + + + +
    val1first four 8-bit summands.
    val2second four 8-bit summands.
    +
    +
    +
    Returns
      +
    • the addition of the first bytes from each operand, in the first byte of the return value.
    • +
    • the addition of the second bytes of each operand, in the second byte of the return value.
    • +
    • the addition of the third bytes of each operand, in the third byte of the return value.
    • +
    • the addition of the fourth bytes of each operand, in the fourth byte of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[7:0] >= 0 then APSR.GE[0] = 1 else 0
    • +
    • if res[15:8] >= 0 then APSR.GE[1] = 1 else 0
    • +
    • if res[23:16] >= 0 then APSR.GE[2] = 1 else 0
    • +
    • if res[31:24] >= 0 then APSR.GE[3] = 1 else 0
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] + val2[7:0]
    +
    res[15:8] = val1[15:8] + val2[15:8]
    +
    res[23:16] = val1[23:16] + val2[23:16]
    +
    res[31:24] = val1[31:24] + val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SASX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function inserts an SASX instruction into the instruction stream generated by the compiler. It enables you to exchange the halfwords of the second operand, add the high halfwords and subtract the low halfwords.
    + The GE bits in the APRS are set according to the results.

    +
    Parameters
    + + + +
    val1first operand for the subtraction in the low halfword, and the first operand for the addition in the high halfword.
    val2second operand for the subtraction in the high halfword, and the second operand for the addition in the low halfword.
    +
    +
    +
    Returns
      +
    • the subtraction of the high halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the addition of the high halfword in the first operand and the low halfword in the second operand, in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[15:0] >= 0 then APSR.GE[1:0] = 11 else 00
    • +
    • if res[31:16] >= 0 then APSR.GE[3:2] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] - val2[31:16]
    +
    res[31:16] = val1[31:16] + val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SEL (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function inserts a SEL instruction into the instruction stream generated by the compiler. It enables you to select bytes from the input parameters, whereby the bytes that are selected depend upon the results of previous SIMD instruction function. The results of previous SIMD instruction function are represented by the Greater than or Equal flags in the Application Program Status Register (APSR). The __SEL function works equally well on both halfword and byte operand function results. This is because halfword operand operations set two (duplicate) GE bits per value.

    +
    Parameters
    + + + +
    val1four selectable 8-bit values.
    val2four selectable 8-bit values.
    +
    +
    +
    Returns
    The function selects bytes from the input parameters and returns them in the return value, res, according to the following criteria:
      +
    • if APSR.GE[0] == 1 then res[7:0] = val1[7:0] else res[7:0] = val2[7:0]
    • +
    • if APSR.GE[1] == 1 then res[15:8] = val1[15:8] else res[15:8] = val2[15:8]
    • +
    • if APSR.GE[2] == 1 then res[23:16] = val1[23:16] else res[23:16] = val2[23:16]
    • +
    • if APSR.GE[3] == 1 then res[31;24] = val1[31:24] else res = val2[31:24]
    • +
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SHADD16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two signed 16-bit integer additions, halving the results.

    +
    Parameters
    + + + +
    val1first two 16-bit summands.
    val2second two 16-bit summands.
    +
    +
    +
    Returns
      +
    • the halved addition of the low halfwords, in the low halfword of the return value.
    • +
    • the halved addition of the high halfwords, in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] + val2[15:0] >> 1
    +
    res[31:16] = val1[31:16] + val2[31:16] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SHADD8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four signed 8-bit integer additions, halving the results.

    +
    Parameters
    + + + +
    val1first four 8-bit summands.
    val2second four 8-bit summands.
    +
    +
    +
    Returns
      +
    • the halved addition of the first bytes from each operand, in the first byte of the return value.
    • +
    • the halved addition of the second bytes from each operand, in the second byte of the return value.
    • +
    • the halved addition of the third bytes from each operand, in the third byte of the return value.
    • +
    • the halved addition of the fourth bytes from each operand, in the fourth byte of the return value.
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] + val2[7:0] >> 1
    +
    res[15:8] = val1[15:8] + val2[15:8] >> 1
    +
    res[23:16] = val1[23:16] + val2[23:16] >> 1
    +
    res[31:24] = val1[31:24] + val2[31:24] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SHASX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the two halfwords of one operand, perform one signed 16-bit integer addition and one signed 16-bit subtraction, and halve the results.

    +
    Parameters
    + + + +
    val1first 16-bit operands.
    val2second 16-bit operands.
    +
    +
    +
    Returns
      +
    • the halved subtraction of the high halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the halved subtraction of the low halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = (val1[15:0] - val2[31:16]) >> 1
    +
    res[31:16] = (val1[31:16] - val2[15:0] ) >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SHSAX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the two halfwords of one operand, perform one signed 16-bit integer subtraction and one signed 16-bit addition, and halve the results.

    +
    Parameters
    + + + +
    val1first 16-bit operands.
    val2second 16-bit operands.
    +
    +
    +
    Returns
      +
    • the halved addition of the low halfword in the first operand and the high halfword in the second operand, in the low halfword of the return value.
    • +
    • the halved subtraction of the low halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = (val1[15:0] + val2[31:16]) >> 1
    +
    res[31:16] = (val1[31:16] - val2[15:0] ) >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SHSUB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two signed 16-bit integer subtractions, halving the results.

    +
    Parameters
    + + + +
    val1first two 16-bit operands.
    val2second two 16-bit operands.
    +
    +
    +
    Returns
      +
    • the halved subtraction of the low halfword in the second operand from the low halfword in the first operand, in the low halfword of the returned result.
    • +
    • the halved subtraction of the high halfword in the second operand from the high halfword in the first operand, in the high halfword of the returned result.
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] - val2[15:0] >> 1
    +
    res[31:16] = val1[31:16] - val2[31:16] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SHSUB8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four signed 8-bit integer subtractions, halving the results.

    +
    Parameters
    + + + +
    val1first four 8-bit operands.
    val2second four 8-bit operands.
    +
    +
    +
    Returns
      +
    • the halved subtraction of the first byte in the second operand from the first byte in the first operand, in the first bytes of the return value.
    • +
    • the halved subtraction of the second byte in the second operand from the second byte in the first operand, in the second byte of the return value.
    • +
    • the halved subtraction of the third byte in the second operand from the third byte in the first operand, in the third byte of the return value.
    • +
    • the halved subtraction of the fourth byte in the second operand from the fourth byte in the first operand, in the fourth byte of the return value.
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] - val2[7:0] >> 1
    +
    res[15:8] = val1[15:8] - val2[15:8] >> 1
    +
    res[23:16] = val1[23:16] - val2[23:16] >> 1
    +
    res[31:24] = val1[31:24] - val2[31:24] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __SMLAD (uint32_t val1,
    uint32_t val2,
    uint32_t val3 
    )
    +
    +

    This function enables you to perform two signed 16-bit multiplications, adding both results to a 32-bit accumulate operand.
    + The Q bit is set if the addition overflows. Overflow cannot occur during the multiplications.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the product of each multiplication added to the accumulate value, as a 32-bit integer.
    +
    Operation:
    p1 = val1[15:0] * val2[15:0]
    +
    p2 = val1[31:16] * val2[31:16]
    +
    res[31:0] = p1 + p2 + val3[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __SMLADX (uint32_t val1,
    uint32_t val2,
    uint32_t val3 
    )
    +
    +

    This function enables you to perform two signed 16-bit multiplications with exchanged halfwords of the second operand, adding both results to a 32-bit accumulate operand.
    + The Q bit is set if the addition overflows. Overflow cannot occur during the multiplications.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the product of each multiplication with exchanged halfwords of the second operand added to the accumulate value, as a 32-bit integer.
    +
    Operation:
    p1 = val1[15:0] * val2[31:16]
    +
    p2 = val1[31:16] * val2[15:0]
    +
    res[31:0] = p1 + p2 + val3[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint64_t __SMLALD (uint32_t val1,
    uint32_t val2,
    uint64_t val3 
    )
    +
    +

    This function enables you to perform two signed 16-bit multiplications, adding both results to a 64-bit accumulate operand. Overflow is only possible as a result of the 64-bit addition. This overflow is not detected if it occurs. Instead, the result wraps around modulo264.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the product of each multiplication added to the accumulate value.
    +
    Operation:
    p1 = val1[15:0] * val2[15:0]
    +
    p2 = val1[31:16] * val2[31:16]
    +
    sum = p1 + p2 + val3[63:32][31:0]
    +
    res[63:32] = sum[63:32]
    +
    res[31:0] = sum[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    unsigned long long __SMLALDX (uint32_t val1,
    uint32_t val2,
    unsigned long long val3 
    )
    +
    +

    This function enables you to exchange the halfwords of the second operand, and perform two signed 16-bit multiplications, adding both results to a 64-bit accumulate operand. Overflow is only possible as a result of the 64-bit addition. This overflow is not detected if it occurs. Instead, the result wraps around modulo264.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the product of each multiplication added to the accumulate value.
    +
    Operation:
    p1 = val1[15:0] * val2[31:16]
    +
    p2 = val1[31:16] * val2[15:0]
    +
    sum = p1 + p2 + val3[63:32][31:0]
    +
    res[63:32] = sum[63:32]
    +
    res[31:0] = sum[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __SMLSD (uint32_t val1,
    uint32_t val2,
    uint32_t val3 
    )
    +
    +

    This function enables you to perform two 16-bit signed multiplications, take the difference of the products, subtracting the high halfword product from the low halfword product, and add the difference to a 32-bit accumulate operand.
    + The Q bit is set if the accumulation overflows. Overflow cannot occur during the multiplications or the subtraction.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the difference of the product of each multiplication, added to the accumulate value.
    +
    Operation:
    p1 = val1[15:0] * val2[15:0]
    +
    p2 = val1[31:16] * val2[31:16]
    +
    res[31:0] = p1 - p2 + val3[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __SMLSDX (uint32_t val1,
    uint32_t val2,
    uint32_t val3 
    )
    +
    +

    This function enables you to exchange the halfwords in the second operand, then perform two 16-bit signed multiplications. The difference of the products is added to a 32-bit accumulate operand.
    + The Q bit is set if the addition overflows. Overflow cannot occur during the multiplications or the subtraction.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the difference of the product of each multiplication, added to the accumulate value.
    +
    Operation:
    p1 = val1[15:0] * val2[31:16]
    +
    p2 = val1[31:16] * val2[15:0]
    +
    res[31:0] = p1 - p2 + val3[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint64_t __SMLSLD (uint32_t val1,
    uint32_t val2,
    uint64_t val3 
    )
    +
    +

    This function It enables you to perform two 16-bit signed multiplications, take the difference of the products, subtracting the high halfword product from the low halfword product, and add the difference to a 64-bit accumulate operand. Overflow cannot occur during the multiplications or the subtraction. Overflow can occur as a result of the 64-bit addition, and this overflow is not detected. Instead, the result wraps round to modulo264.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the difference of the product of each multiplication, added to the accumulate value.
    +
    Operation:
    p1 = val1[15:0] * val2[15:0]
    +
    p2 = val1[31:16] * val2[31:16]
    +
    res[63:0] = p1 - p2 + val3[63:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    unsigned long long __SMLSLDX (uint32_t val1,
    uint32_t val2,
    unsigned long long val3 
    )
    +
    +

    This function enables you to exchange the halfwords of the second operand, perform two 16-bit multiplications, adding the difference of the products to a 64-bit accumulate operand. Overflow cannot occur during the multiplications or the subtraction. Overflow can occur as a result of the 64-bit addition, and this overflow is not detected. Instead, the result wraps round to modulo264.

    +
    Parameters
    + + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the difference of the product of each multiplication, added to the accumulate value.
    +
    Operation:
    p1 = val1[15:0] * val2[31:16]
    +
    p2 = val1[31:16] * val2[15:0]
    +
    res[63:0] = p1 - p2 + val3[63:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __SMMLA (int32_t val1,
    int32_t val2,
    int32_t val3 
    )
    +
    +

    This function enables you to perform a signed 32-bit multiplications, adding the most significant 32 bits of the 64-bit result to a 32-bit accumulate operand.
    +

    +
    Parameters
    + + + + +
    val1first operand for multiplication.
    val2second operand for multiplication.
    val3accumulate value.
    +
    +
    +
    Returns
    the product of multiplication (most significant 32 bits) is added to the accumulate value, as a 32-bit integer.
    +
    Operation:
    p = val1 * val2
    +
    res[31:0] = p[61:32] + val3[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SMUAD (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit signed multiplications, adding the products together.
    + The Q bit is set if the addition overflows.

    +
    Parameters
    + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    +
    +
    +
    Returns
    the sum of the products of the two 16-bit signed multiplications.
    +
    Operation:
    p1 = val1[15:0] * val2[15:0]
    +
    p2 = val1[31:16] * val2[31:16]
    +
    res[31:0] = p1 + p2
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SMUADX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit signed multiplications with exchanged halfwords of the second operand, adding the products together.
    + The Q bit is set if the addition overflows.

    +
    Parameters
    + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    +
    +
    +
    Returns
    the sum of the products of the two 16-bit signed multiplications with exchanged halfwords of the second operand.
    +
    Operation:
    p1 = val1[15:0] * val2[31:16]
    +
    p2 = val1[31:16] * val2[15:0]
    +
    res[31:0] = p1 + p2
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SMUSD (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit signed multiplications, taking the difference of the products by subtracting the high halfword product from the low halfword product.

    +
    Parameters
    + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    +
    +
    +
    Returns
    the difference of the products of the two 16-bit signed multiplications.
    +
    Operation:
    p1 = val1[15:0] * val2[15:0]
    +
    p2 = val1[31:16] * val2[31:16]
    +
    res[31:0] = p1 - p2
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SMUSDX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit signed multiplications, subtracting one of the products from the other. The halfwords of the second operand are exchanged before performing the arithmetic. This produces top * bottom and bottom * top multiplication.

    +
    Parameters
    + + + +
    val1first 16-bit operands for each multiplication.
    val2second 16-bit operands for each multiplication.
    +
    +
    +
    Returns
    the difference of the products of the two 16-bit signed multiplications.
    +
    Operation:
    p1 = val1[15:0] * val2[31:16]
    +
    p2 = val1[31:16] * val2[15:0]
    +
    res[31:0] = p1 - p2
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SSAT16 (uint32_t val1,
    const uint32_t val2 
    )
    +
    +

    This function enables you to saturate two signed 16-bit values to a selected signed range.
    + The Q bit is set if either operation saturates.

    +
    Parameters
    + + + +
    val1two signed 16-bit values to be saturated.
    val2bit position for saturation, an integral constant expression in the range 1 to 16.
    +
    +
    +
    Returns
    the sum of the absolute differences of the following bytes, added to the accumulation value:
      +
    • the signed saturation of the low halfword in val1, saturated to the bit position specified in val2 and returned in the low halfword of the return value.
    • +
    • the signed saturation of the high halfword in val1, saturated to the bit position specified in val2 and returned in the high halfword of the return value.
    • +
    +
    +
    Operation:
    Saturate halfwords in val1 to the signed range specified by the bit position in val2
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SSAX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the two halfwords of one operand and perform one 16-bit integer subtraction and one 16-bit addition.
    + The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first operand for the addition in the low halfword, and the first operand for the subtraction in the high halfword.
    val2second operand for the addition in the high halfword, and the second operand for the subtraction in the low halfword.
    +
    +
    +
    Returns
      +
    • the addition of the low halfword in the first operand and the high halfword in the second operand, in the low halfword of the return value.
    • +
    • the subtraction of the low halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[15:0] >= 0 then APSR.GE[1:0] = 11 else 00
    • +
    • if res[31:16] >= 0 then APSR.GE[3:2] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] + val2[31:16]
    +
    res[31:16] = val1[31:16] - val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SSUB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit signed integer subtractions.
    + The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first two 16-bit operands of each subtraction.
    val2second two 16-bit operands of each subtraction.
    +
    +
    +
    Returns
      +
    • the subtraction of the low halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the subtraction of the high halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If
      +
    • res is the return value, then:
    • +
    • if res[15:0] >= 0 then APSR.GE[1:0] = 11 else 00
    • +
    • if res[31:16] >= 0 then APSR.GE[3:2] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] - val2[15:0]
    +
    res[31:16] = val1[31:16] - val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SSUB8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four 8-bit signed integer subtractions.
    + The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first four 8-bit operands of each subtraction.
    val2second four 8-bit operands of each subtraction.
    +
    +
    +
    Returns
      +
    • the subtraction of the first byte in the second operand from the first byte in the first operand, in the first bytes of the return value.
    • +
    • the subtraction of the second byte in the second operand from the second byte in the first operand, in the second byte of the return value.
    • +
    • the subtraction of the third byte in the second operand from the third byte in the first operand, in the third byte of the return value.
    • +
    • the subtraction of the fourth byte in the second operand from the fourth byte in the first operand, in the fourth byte of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on
    the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[8:0] >= 0 then APSR.GE[0] = 1 else 0
    • +
    • if res[15:8] >= 0 then APSR.GE[1] = 1 else 0
    • +
    • if res[23:16] >= 0 then APSR.GE[2] = 1 else 0
    • +
    • if res[31:24] >= 0 then APSR.GE[3] = 1 else 0
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] - val2[7:0]
    +
    res[15:8] = val1[15:8] - val2[15:8]
    +
    res[23:16] = val1[23:16] - val2[23:16]
    +
    res[31:24] = val1[31:24] - val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __SXTAB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to extract two 8-bit values from the second operand (at bit positions [7:0] and [23:16]), sign-extend them to 16-bits each, and add the results to the first operand.

    +
    Parameters
    + + + +
    val1values added to the zero-extended to 16-bit values.
    val2two 8-bit values to be extracted and zero-extended.
    +
    +
    +
    Returns
    the addition of val1 and val2, where the 8-bit values in val2[7:0] and val2[23:16] have been extracted and sign-extended prior to the addition.
    +
    Operation:
    res[15:0] = val1[15:0] + SignExtended(val2[7:0])
    +
    res[31:16] = val1[31:16] + SignExtended(val2[23:16])
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __SXTB16 (uint32_t val)
    +
    +

    This function enables you to extract two 8-bit values from an operand and sign-extend them to 16 bits each.

    +
    Parameters
    + + +
    valtwo 8-bit values in val[7:0] and val[23:16] to be sign-extended.
    +
    +
    +
    Returns
    the 8-bit values sign-extended to 16-bit values.
      +
    • sign-extended value of val[7:0] in the low halfword of the return value.
    • +
    • sign-extended value of val[23:16] in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = SignExtended(val[7:0]
    +
    res[31:16] = SignExtended(val[23:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UADD16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit unsigned integer additions.
    + The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first two 16-bit summands for each addition.
    val2second two 16-bit summands for each addition.
    +
    +
    +
    Returns
      +
    • the addition of the low halfwords in each operand, in the low halfword of the return value.
    • +
    • the addition of the high halfwords in each operand, in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[15:0] >= 0x10000 then APSR.GE[0] = 11 else 00
    • +
    • if res[31:16] >= 0x10000 then APSR.GE[1] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] + val2[15:0]
    +
    res[31:16] = val1[31:16] + val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UADD8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four unsigned 8-bit integer additions. The GE bits of the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first four 8-bit summands for each addition.
    val2second four 8-bit summands for each addition.
    +
    +
    +
    Returns
      +
    • the halved addition of the first bytes from each operand, in the first byte of the return value.
    • +
    • the halved addition of the second bytes from each operand, in the second byte of the return value.
    • +
    • the halved addition of the third bytes from each operand, in the third byte of the return value.
    • +
    • the halved addition of the fourth bytes from each operand, in the fourth byte of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[7:0] >= 0x100 then APSR.GE[0] = 1 else 0
    • +
    • if res[15:8] >= 0x100 then APSR.GE[1] = 1 else 0
    • +
    • if res[23:16] >= 0x100 then APSR.GE[2] = 1 else 0
    • +
    • if res[31:24] >= 0x100 then APSR.GE[3] = 1 else 0
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] + val2[7:0]
    +
    res[15:8] = val1[15:8] + val2[15:8]
    +
    res[23:16] = val1[23:16] + val2[23:16]
    +
    res[31:24] = val1[31:24] + val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UASX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the two halfwords of the second operand, add the high halfwords and subtract the low halfwords.
    + The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first operand for the subtraction in the low halfword, and the first operand for the addition in the high halfword.
    val2second operand for the subtraction in the high halfword and the second operand for the addition in the low halfword.
    +
    +
    +
    Returns
      +
    • the subtraction of the high halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the addition of the high halfword in the first operand and the low halfword in the second operand, in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[15:0] >= 0 then APSR.GE[1:0] = 11 else 00
    • +
    • if res[31:16] >= 0x10000 then APSR.GE[3:2] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] - val2[31:16]
    +
    res[31:16] = val1[31:16] + val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UHADD16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two unsigned 16-bit integer additions, halving the results.

    +
    Parameters
    + + + +
    val1first two 16-bit summands.
    val2second two 16-bit summands.
    +
    +
    +
    Returns
      +
    • the halved addition of the low halfwords in each operand, in the low halfword of the return value.
    • +
    • the halved addition of the high halfwords in each operand, in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] + val2[15:0] >> 1
    +
    res[31:16] = val1[31:16] + val2[31:16] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UHADD8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four unsigned 8-bit integer additions, halving the results.

    +
    Parameters
    + + + +
    val1first four 8-bit summands.
    val2second four 8-bit summands.
    +
    +
    +
    Returns
      +
    • the halved addition of the first bytes in each operand, in the first byte of the return value.
    • +
    • the halved addition of the second bytes in each operand, in the second byte of the return value.
    • +
    • the halved addition of the third bytes in each operand, in the third byte of the return value.
    • +
    • the halved addition of the fourth bytes in each operand, in the fourth byte of the return value.
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] + val2[7:0] >> 1
    +
    res[15:8] = val1[15:8] + val2[15:8] >> 1
    +
    res[23:16] = val1[23:16] + val2[23:16] >> 1
    +
    res[31:24] = val1[31:24] + val2[31:24] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UHASX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the halfwords of the second operand, add the high halfwords and subtract the low halfwords, halving the results.

    +
    Parameters
    + + + +
    val1first operand for the subtraction in the low halfword, and the first operand for the addition in the high halfword.
    val2second operand for the subtraction in the high halfword, and the second operand for the addition in the low halfword.
    +
    +
    +
    Returns
      +
    • the halved subtraction of the high halfword in the second operand from the low halfword in the first operand.
    • +
    • the halved addition of the high halfword in the first operand and the low halfword in the second operand.
    • +
    +
    +
    Operation:
    res[15:0] = (val1[15:0] - val2[31:16]) >> 1
    +
    res[31:16] = (val1[31:16] + val2[15:0] ) >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UHSAX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the halfwords of the second operand, subtract the high halfwords and add the low halfwords, halving the results.

    +
    Parameters
    + + + +
    val1first operand for the addition in the low halfword, and the first operand for the subtraction in the high halfword.
    val2second operand for the addition in the high halfword, and the second operand for the subtraction in the low halfword.
    +
    +
    +
    Returns
      +
    • the halved addition of the high halfword in the second operand and the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the halved subtraction of the low halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = (val1[15:0] + val2[31:16]) >> 1
    +
    res[31:16] = (val1[31:16] - val2[15:0] ) >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UHSUB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two unsigned 16-bit integer subtractions, halving the results.

    +
    Parameters
    + + + +
    val1first two 16-bit operands.
    val2second two 16-bit operands.
    +
    +
    +
    Returns
      +
    • the halved subtraction of the low halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the halved subtraction of the high halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] - val2[15:0] >> 1
    +
    res[31:16] = val1[31:16] - val2[31:16] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UHSUB8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four unsigned 8-bit integer subtractions, halving the results.

    +
    Parameters
    + + + +
    val1first four 8-bit operands.
    val2second four 8-bit operands.
    +
    +
    +
    Returns
      +
    • the halved subtraction of the first byte in the second operand from the first byte in the first operand, in the first bytes of the return value.
    • +
    • the halved subtraction of the second byte in the second operand from the second byte in the first operand, in the second byte of the return value.
    • +
    • the halved subtraction of the third byte in the second operand from the third byte in the first operand, in the third byte of the return value.
    • +
    • the halved subtraction of the fourth byte in the second operand from the fourth byte in the first operand, in the fourth byte of the return value.
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] - val2[7:0] >> 1
    +
    res[15:8] = val1[15:8] - val2[15:8] >> 1
    +
    res[23:16] = val1[23:16] - val2[23:16] >> 1
    +
    res[31:24] = val1[31:24] - val2[31:24] >> 1
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UQADD16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two unsigned 16-bit integer additions, saturating the results to the 16-bit unsigned integer range 0 < x < 216 - 1.

    +
    Parameters
    + + + +
    val1first two 16-bit summands.
    val2second two 16-bit summands.
    +
    +
    +
    Returns
      +
    • the addition of the low halfword in the first operand and the low halfword in the second operand, in the low halfword of the return value.
    • +
    • the addition of the high halfword in the first operand and the high halfword in the second operand, in the high halfword of the return value.
    • +
    +
    +
    The results are saturated to the 16-bit unsigned integer range 0 < x < 216 - 1.
    +
    Operation:
    res[15:0] = val1[15:0] + val2[15:0]
    +
    res[31:16] = val1[31:16] + val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UQADD8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four unsigned 8-bit integer additions, saturating the results to the 8-bit unsigned integer range 0 < x < 28 - 1.

    +
    Parameters
    + + + +
    val1first four 8-bit summands.
    val2second four 8-bit summands.
    +
    +
    +
    Returns
      +
    • the halved addition of the first bytes in each operand, in the first byte of the return value.
    • +
    • the halved addition of the second bytes in each operand, in the second byte of the return value.
    • +
    • the halved addition of the third bytes in each operand, in the third byte of the return value.
    • +
    • the halved addition of the fourth bytes in each operand, in the fourth byte of the return value.
    • +
    +
    +
    The results are saturated to the 8-bit unsigned integer range 0 < x < 28 - 1.
    +
    Operation:
    res[7:0] = val1[7:0] + val2[7:0]
    +
    res[15:8] = val1[15:8] + val2[15:8]
    +
    res[23:16] = val1[23:16] + val2[23:16]
    +
    res[31:24] = val1[31:24] + val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UQASX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the halfwords of the second operand and perform one unsigned 16-bit integer addition and one unsigned 16-bit subtraction, saturating the results to the 16-bit unsigned integer range 0 <= x <= 216 - 1.

    +
    Parameters
    + + + +
    val1first two 16-bit operands.
    val2second two 16-bit operands.
    +
    +
    +
    Returns
      +
    • the subtraction of the high halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the subtraction of the low halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    The results are saturated to the 16-bit unsigned integer range 0 <= x <= 216 - 1.
    +
    Operation:
    res[15:0] = val1[15:0] - val2[31:16]
    +
    res[31:16] = val1[31:16] + val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UQSAX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the halfwords of the second operand and perform one unsigned 16-bit integer subtraction and one unsigned 16-bit addition, saturating the results to the 16-bit unsigned integer range 0 <= x <= 216 - 1.

    +
    Parameters
    + + + +
    val1first 16-bit operand for the addition in the low halfword, and the first 16-bit operand for the subtraction in the high halfword.
    val2second 16-bit halfword for the addition in the high halfword, and the second 16-bit halfword for the subtraction in the low halfword.
    +
    +
    +
    Returns
      +
    • the addition of the low halfword in the first operand and the high halfword in the second operand, in the low halfword of the return value.
    • +
    • the subtraction of the low halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    The results are saturated to the 16-bit unsigned integer range 0 <= x <= 216 - 1.
    +
    Operation:
    res[15:0] = val1[15:0] + val2[31:16]
    +
    res[31:16] = val1[31:16] - val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UQSUB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two unsigned 16-bit integer subtractions, saturating the results to the 16-bit unsigned integer range 0 < x < 216 - 1.

    +
    Parameters
    + + + +
    val1first two 16-bit operands for each subtraction.
    val2second two 16-bit operands for each subtraction.
    +
    +
    +
    Returns
      +
    • the subtraction of the low halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the subtraction of the high halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    The results are saturated to the 16-bit unsigned integer range 0 < x < 216 - 1.
    +
    Operation:
    res[15:0] = val1[15:0] - val2[15:0]
    +
    res[31:16] = val1[31:16] - val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UQSUB8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four unsigned 8-bit integer subtractions, saturating the results to the 8-bit unsigned integer range 0 < x < 28 - 1.

    +
    Parameters
    + + + +
    val1first four 8-bit operands.
    val2second four 8-bit operands.
    +
    +
    +
    Returns
      +
    • the subtraction of the first byte in the second operand from the first byte in the first operand, in the first bytes of the return value.
    • +
    • the subtraction of the second byte in the second operand from the second byte in the first operand, in the second byte of the return value.
    • +
    • the subtraction of the third byte in the second operand from the third byte in the first operand, in the third byte of the return value.
    • +
    • the subtraction of the fourth byte in the second operand from the fourth byte in the first operand, in the fourth byte of the return value.
    • +
    +
    +
    The results are saturated to the 8-bit unsigned integer range 0 < x < 28 - 1.
    +
    Operation:
    res[7:0] = val1[7:0] - val2[7:0]
    +
    res[15:8] = val1[15:8] - val2[15:8]
    +
    res[23:16] = val1[23:16] - val2[23:16]
    +
    res[31:24] = val1[31:24] - val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __USAD8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four unsigned 8-bit subtractions, and add the absolute values of the differences together, returning the result as a single unsigned integer.

    +
    Parameters
    + + + +
    val1first four 8-bit operands for the subtractions.
    val2second four 8-bit operands for the subtractions.
    +
    +
    +
    Returns
      +
    • the subtraction of the first byte in the second operand from the first byte in the first operand.
    • +
    • the subtraction of the second byte in the second operand from the second byte in the first operand.
    • +
    • the subtraction of the third byte in the second operand from the third byte in the first operand.
    • +
    • the subtraction of the fourth byte in the second operand from the fourth byte in the first operand.
    • +
    +
    +
    The sum is returned as a single unsigned integer.
    +
    Operation:
    absdiff1 = val1[7:0] - val2[7:0]
    +
    absdiff2 = val1[15:8] - val2[15:8]
    +
    absdiff3 = val1[23:16] - val2[23:16]
    +
    absdiff4 = val1[31:24] - val2[31:24]
    +
    res[31:0] = absdiff1 + absdiff2 + absdiff3 + absdiff4
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    uint32_t __USADA8 (uint32_t val1,
    uint32_t val2,
    uint32_t val3 
    )
    +
    +

    This function enables you to perform four unsigned 8-bit subtractions, and add the absolute values of the differences to a 32-bit accumulate operand.

    +
    Parameters
    + + + + +
    val1first four 8-bit operands for the subtractions.
    val2second four 8-bit operands for the subtractions.
    val3accumulation value.
    +
    +
    +
    Returns
    the sum of the absolute differences of the following bytes, added to the accumulation value:
      +
    • the subtraction of the first byte in the second operand from the first byte in the first operand.
    • +
    • the subtraction of the second byte in the second operand from the second byte in the first operand.
    • +
    • the subtraction of the third byte in the second operand from the third byte in the first operand.
    • +
    • the subtraction of the fourth byte in the second operand from the fourth byte in the first operand.
    • +
    +
    +
    Operation:
    absdiff1 = val1[7:0] - val2[7:0]
    +
    absdiff2 = val1[15:8] - val2[15:8]
    +
    absdiff3 = val1[23:16] - val2[23:16]
    +
    absdiff4 = val1[31:24] - val2[31:24]
    +
    sum = absdiff1 + absdiff2 + absdiff3 + absdiff4
    +
    res[31:0] = sum[31:0] + val3[31:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __USAT16 (uint32_t val1,
    const uint32_t val2 
    )
    +
    +

    This function enables you to saturate two signed 16-bit values to a selected unsigned range.
    + The Q bit is set if either operation saturates.

    +
    Parameters
    + + + +
    val1two 16-bit values that are to be saturated.
    val2bit position for saturation, and must be an integral constant expression in the range 0 to 15.
    +
    +
    +
    Returns
    the saturation of the two signed 16-bit values, as non-negative values.
      +
    • the saturation of the low halfword in val1, saturated to the bit position specified in val2 and returned in the low halfword of the return value.
    • +
    • the saturation of the high halfword in val1, saturated to the bit position specified in val2 and returned in the high halfword of the return value.
    • +
    +
    +
    Operation:
    Saturate halfwords in val1 to the unsigned range specified by the bit position in val2
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __USAX (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to exchange the halfwords of the second operand, subtract the high halfwords and add the low halfwords.
    + The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first operand for the addition in the low halfword, and the first operand for the subtraction in the high halfword.
    val2second operand for the addition in the high halfword, and the second operand for the subtraction in the low halfword.
    +
    +
    +
    Returns
      +
    • the addition of the low halfword in the first operand and the high halfword in the second operand, in the low halfword of the return value.
    • +
    • the subtraction of the low halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[15:0] >= 0x10000 then APSR.GE[1:0] = 11 else 00
    • +
    • if res[31:16] >= 0 then APSR.GE[3:2] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] + val2[31:16]
    +
    res[31:16] = val1[31:16] - val2[15:0]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __USUB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform two 16-bit unsigned integer subtractions.
    + The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first two 16-bit operands.
    val2second two 16-bit operands.
    +
    +
    +
    Returns
      +
    • the subtraction of the low halfword in the second operand from the low halfword in the first operand, in the low halfword of the return value.
    • +
    • the subtraction of the high halfword in the second operand from the high halfword in the first operand, in the high halfword of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[15:0] >= 0 then APSR.GE[1:0] = 11 else 00
    • +
    • if res[31:16] >= 0 then APSR.GE[3:2] = 11 else 00
    • +
    +
    +
    Operation:
    res[15:0] = val1[15:0] - val2[15:0]
    +
    res[31:16] = val1[31:16] - val2[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __USUB8 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to perform four 8-bit unsigned integer subtractions. The GE bits in the APSR are set according to the results.

    +
    Parameters
    + + + +
    val1first four 8-bit operands.
    val2second four 8-bit operands.
    +
    +
    +
    Returns
      +
    • the subtraction of the first byte in the second operand from the first byte in the first operand, in the first bytes of the return value.
    • +
    • the subtraction of the second byte in the second operand from the second byte in the first operand, in the second byte of the return value.
    • +
    • the subtraction of the third byte in the second operand from the third byte in the first operand, in the third byte of the return value.
    • +
    • the subtraction of the fourth byte in the second operand from the fourth byte in the first operand, in the fourth byte of the return value.
    • +
    +
    +
    Each bit in APSR.GE is set or cleared for each byte in the return value, depending on the results of the operation.
    +
    If res is the return value, then:
      +
    • if res[8:0] >= 0 then APSR.GE[0] = 1 else 0
    • +
    • if res[15:8] >= 0 then APSR.GE[1] = 1 else 0
    • +
    • if res[23:16] >= 0 then APSR.GE[2] = 1 else 0
    • +
    • if res[31:24] >= 0 then APSR.GE[3] = 1 else 0
    • +
    +
    +
    Operation:
    res[7:0] = val1[7:0] - val2[7:0]
    +
    res[15:8] = val1[15:8] - val2[15:8]
    +
    res[23:16] = val1[23:16] - val2[23:16]
    +
    res[31:24] = val1[31:24] - val2[31:24]
    +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint32_t __UXTAB16 (uint32_t val1,
    uint32_t val2 
    )
    +
    +

    This function enables you to extract two 8-bit values from one operand, zero-extend them to 16 bits each, and add the results to two 16-bit values from another operand.

    +
    Parameters
    + + + +
    val1value added to the zero-extended to 16-bit values.
    val2two 8-bit values to be extracted and zero-extended.
    +
    +
    +
    Returns
    the 8-bit values in val2, zero-extended to 16-bit values and added to val1.
    +
    Operation:
    res[15:0] = ZeroExt(val2[7:0] to 16 bits) + val1[15:0]
    +
    res[31:16] = ZeroExt(val2[31:16] to 16 bits) + val1[31:16]
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    uint32_t __UXTB16 (uint32_t val)
    +
    +

    This function enables you to extract two 8-bit values from an operand and zero-extend them to 16 bits each.

    +
    Parameters
    + + +
    valtwo 8-bit values in val[7:0] and val[23:16] to be sign-extended.
    +
    +
    +
    Returns
    the 8-bit values zero-extended to 16-bit values.
      +
    • zero-extended value of val[7:0] in the low halfword of the return value.
    • +
    • zero-extended value of val[23:16] in the high halfword of the return value.
    • +
    +
    +
    Operation:
    res[15:0] = ZeroExtended(val[7:0] )
    +
    res[31:16] = ZeroExtended(val[23:16])
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___s_i_m_d__gr.js b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___s_i_m_d__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group__intrinsic___s_i_m_d__gr.js @@ -0,0 +1,65 @@ +var group__intrinsic___s_i_m_d__gr = +[ + [ "__PKHBT", "group__intrinsic___s_i_m_d__gr.html#gaefb8ebf3a54e197464da1ff69a44f4b5", null ], + [ "__PKHTB", "group__intrinsic___s_i_m_d__gr.html#gafd8fe4a6d87e947caa81a69ec36c1666", null ], + [ "__QADD", "group__intrinsic___s_i_m_d__gr.html#ga17b873f246c9f5e9355760ffef3dad4a", null ], + [ "__QADD16", "group__intrinsic___s_i_m_d__gr.html#gae83a53ec04b496304bed6d9fe8f7461b", null ], + [ "__QADD8", "group__intrinsic___s_i_m_d__gr.html#gaf2f5a9132dcfc6d01d34cd971c425713", null ], + [ "__QASX", "group__intrinsic___s_i_m_d__gr.html#ga87618799672e1511e33964bc71467eb3", null ], + [ "__QSAX", "group__intrinsic___s_i_m_d__gr.html#gab41eb2b17512ab01d476fc9d5bd19520", null ], + [ "__QSUB", "group__intrinsic___s_i_m_d__gr.html#ga3ba259f8f05a36f7b88b469a71ffc096", null ], + [ "__QSUB16", "group__intrinsic___s_i_m_d__gr.html#gad089605c16df9823a2c8aaa37777aae5", null ], + [ "__QSUB8", "group__intrinsic___s_i_m_d__gr.html#ga753493a65493880c28baa82c151a0d61", null ], + [ "__SADD16", "group__intrinsic___s_i_m_d__gr.html#gad0bf46373a1c05aabf64517e84be5984", null ], + [ "__SADD8", "group__intrinsic___s_i_m_d__gr.html#gac20aa0f741d0a1494d58c531e38d5785", null ], + [ "__SASX", "group__intrinsic___s_i_m_d__gr.html#ga5845084fd99c872e98cf5553d554de2a", null ], + [ "__SEL", "group__intrinsic___s_i_m_d__gr.html#gaf5448e591fe49161b6759b48aecb08fe", null ], + [ "__SHADD16", "group__intrinsic___s_i_m_d__gr.html#ga15d8899a173effb8ad8c7268da32b60e", null ], + [ "__SHADD8", "group__intrinsic___s_i_m_d__gr.html#ga524575b442ea01aec10c762bf4d85fea", null ], + [ "__SHASX", "group__intrinsic___s_i_m_d__gr.html#gae0a649035f67627464fd80e7218c89d5", null ], + [ "__SHSAX", "group__intrinsic___s_i_m_d__gr.html#gafadbd89c36b5addcf1ca10dd392db3e9", null ], + [ "__SHSUB16", "group__intrinsic___s_i_m_d__gr.html#ga31328467f0f91b8ff9ae9a01682ad3bf", null ], + [ "__SHSUB8", "group__intrinsic___s_i_m_d__gr.html#gac3ec7215b354d925a239f3b31df2b77b", null ], + [ "__SMLAD", "group__intrinsic___s_i_m_d__gr.html#gae0c86f3298532183f3a29f5bb454d354", null ], + [ "__SMLADX", "group__intrinsic___s_i_m_d__gr.html#ga9c286d330f4fb29b256335add91eec9f", null ], + [ "__SMLALD", "group__intrinsic___s_i_m_d__gr.html#gad80e9b20c1736fd798f897362273a146", null ], + [ "__SMLALDX", "group__intrinsic___s_i_m_d__gr.html#gad1adad1b3f2667328cc0db6c6b4f41cf", null ], + [ "__SMLSD", "group__intrinsic___s_i_m_d__gr.html#gaf4350af7f2030c36f43b2c104a9d16cd", null ], + [ "__SMLSDX", "group__intrinsic___s_i_m_d__gr.html#ga5290ce5564770ad124910d2583dc0a9e", null ], + [ "__SMLSLD", "group__intrinsic___s_i_m_d__gr.html#ga5611f7314e0c8f53da377918dfbf42ee", null ], + [ "__SMLSLDX", "group__intrinsic___s_i_m_d__gr.html#ga83e69ef81057d3cbd06863d729385187", null ], + [ "__SMMLA", "group__intrinsic___s_i_m_d__gr.html#gaea60757232f740ec6b09980eebb614ff", null ], + [ "__SMUAD", "group__intrinsic___s_i_m_d__gr.html#gae326e368a1624d2dfb4b97c626939257", null ], + [ "__SMUADX", "group__intrinsic___s_i_m_d__gr.html#gaee6390f86965cb662500f690b0012092", null ], + [ "__SMUSD", "group__intrinsic___s_i_m_d__gr.html#ga039142a5368840683cf329cb55b73f84", null ], + [ "__SMUSDX", "group__intrinsic___s_i_m_d__gr.html#gabb5bcba694bf17b141c32e6a8474f60e", null ], + [ "__SSAT16", "group__intrinsic___s_i_m_d__gr.html#ga95e666b82216066bf6064d1244e6883c", null ], + [ "__SSAX", "group__intrinsic___s_i_m_d__gr.html#ga9d3bc5c539f9bd50f7d59ffa37ac6a65", null ], + [ "__SSUB16", "group__intrinsic___s_i_m_d__gr.html#ga4262f73be75efbac6b46ab7c71aa6cbc", null ], + [ "__SSUB8", "group__intrinsic___s_i_m_d__gr.html#gaba63bb52e1e93fb527e26f3d474da12e", null ], + [ "__SXTAB16", "group__intrinsic___s_i_m_d__gr.html#gac540b4fc41d30778ba102d2a65db5589", null ], + [ "__SXTB16", "group__intrinsic___s_i_m_d__gr.html#ga38dce3dd13ba212e80ec3cff4abeb11a", null ], + [ "__UADD16", "group__intrinsic___s_i_m_d__gr.html#gaa1160f0cf76d6aa292fbad54a1aa6b74", null ], + [ "__UADD8", "group__intrinsic___s_i_m_d__gr.html#gab3d7fd00d113b20fb3741a17394da762", null ], + [ "__UASX", "group__intrinsic___s_i_m_d__gr.html#ga980353d2c72ebb879282e49f592fddc0", null ], + [ "__UHADD16", "group__intrinsic___s_i_m_d__gr.html#gabd0b0e2da2e6364e176d051687702b86", null ], + [ "__UHADD8", "group__intrinsic___s_i_m_d__gr.html#ga3a14e5485e59bf0f23595b7c2a94eb0b", null ], + [ "__UHASX", "group__intrinsic___s_i_m_d__gr.html#ga028f0732b961fb6e5209326fb3855261", null ], + [ "__UHSAX", "group__intrinsic___s_i_m_d__gr.html#ga09e129e6613329aab87c89f1108b7ed7", null ], + [ "__UHSUB16", "group__intrinsic___s_i_m_d__gr.html#ga1f7545b8dc33bb97982731cb9d427a69", null ], + [ "__UHSUB8", "group__intrinsic___s_i_m_d__gr.html#ga48a55df1c3e73923b73819d7c19b392d", null ], + [ "__UQADD16", "group__intrinsic___s_i_m_d__gr.html#ga9e2cc5117e79578a08b25f1e89022966", null ], + [ "__UQADD8", "group__intrinsic___s_i_m_d__gr.html#gafa9af218db3934a692fb06fa728d8031", null ], + [ "__UQASX", "group__intrinsic___s_i_m_d__gr.html#ga5eff3ae5eabcd73f3049996ca391becb", null ], + [ "__UQSAX", "group__intrinsic___s_i_m_d__gr.html#gadecfdfabc328d8939d49d996f2fd4482", null ], + [ "__UQSUB16", "group__intrinsic___s_i_m_d__gr.html#ga5ec4e2e231d15e5c692233feb3806187", null ], + [ "__UQSUB8", "group__intrinsic___s_i_m_d__gr.html#ga9736fe816aec74fe886e7fb949734eab", null ], + [ "__USAD8", "group__intrinsic___s_i_m_d__gr.html#gac8855c07044239ea775c8128013204f0", null ], + [ "__USADA8", "group__intrinsic___s_i_m_d__gr.html#gad032bd21f013c5d29f5fcb6b0f02bc3f", null ], + [ "__USAT16", "group__intrinsic___s_i_m_d__gr.html#ga967f516afff5900cf30f1a81907cdd89", null ], + [ "__USAX", "group__intrinsic___s_i_m_d__gr.html#ga578a082747436772c482c96d7a58e45e", null ], + [ "__USUB16", "group__intrinsic___s_i_m_d__gr.html#ga9f2b77e11fc4a77b26c36c423ed45b4e", null ], + [ "__USUB8", "group__intrinsic___s_i_m_d__gr.html#gacb7257dc3b8e9acbd0ef0e31ff87d4b8", null ], + [ "__UXTAB16", "group__intrinsic___s_i_m_d__gr.html#gad25ce96db0f17096bbd815f4817faf09", null ], + [ "__UXTB16", "group__intrinsic___s_i_m_d__gr.html#gab41d713653b16f8d9fef44d14e397228", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/group__peripheral__gr.html b/Libraries/CMSIS/Documentation/Core/html/group__peripheral__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group__peripheral__gr.html @@ -0,0 +1,228 @@ + + + + + +CMSIS-CORE: Peripheral Access + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Peripheral Access
    +
    +
    + +

    Describes naming conventions, requirements, and optional features for accessing peripherals. +More...

    +

    Each peripheral provides a data type definition with a name that is composed of a prefix <device abbreviation>_ and the <peripheral name>_, for example LPC_UART for the device LPC and the peripheral UART. The intention is to avoid name collisions caused by short names. If more peripherals exist of the same type, identifiers have a postfix consisting of a digit or letter, for example LPC_UART0, LPC_UART1.

    +
      +
    • The data type definition uses the standard C data types from the ANSI C header file <stdint.h>. IO Type Qualifiers are used to specify the access to peripheral variables. IO Type Qualifiers are indented to be used for automatic generation of debug information of peripheral registers and are defined as shown below:
      +
      #define __I volatile const
      +
      #define __O volatile
      +
      #define __IO volatile
      +
    • +
    +
      +
    • The following typedef is an example for a UART. <device abbreviation>_UART_TypeDef: defines the generic register layout for all UART channels in a device.
      +
      typedef struct
      +
      {
      +
      union {
      +
      __I uint8_t RBR; /* Offset: 0x000 (R/ ) Receiver Buffer Register */
      +
      __O uint8_t THR; /* Offset: 0x000 ( /W) Transmit Holding Register */
      +
      __IO uint8_t DLL; /* Offset: 0x000 (R/W) Divisor Latch LSB */
      +
      uint32_t RESERVED0;
      +
      };
      +
      union {
      +
      __IO uint8_t DLM; /* Offset: 0x004 (R/W) Divisor Latch MSB */
      +
      __IO uint32_t IER; /* Offset: 0x004 (R/W) Interrupt Enable Register */
      +
      };
      +
      union {
      +
      __I uint32_t IIR; /* Offset: 0x008 (R/ ) Interrupt ID Register */
      +
      __O uint8_t FCR; /* Offset: 0x008 ( /W) FIFO Control Register */
      +
      };
      +
      __IO uint8_t LCR; /* Offset: 0x00C (R/W) Line Control Register */
      +
      uint8_t RESERVED1[7];
      +
      __I uint8_t LSR; /* Offset: 0x014 (R/ ) Line Status Register */
      +
      uint8_t RESERVED2[7];
      +
      __IO uint8_t SCR; /* Offset: 0x01C (R/W) Scratch Pad Register */
      +
      uint8_t RESERVED3[3];
      +
      __IO uint32_t ACR; /* Offset: 0x020 (R/W) Autobaud Control Register */
      +
      __IO uint8_t ICR; /* Offset: 0x024 (R/W) IrDA Control Register */
      +
      uint8_t RESERVED4[3];
      +
      __IO uint8_t FDR; /* Offset: 0x028 (R/W) Fractional Divider Register */
      +
      uint8_t RESERVED5[7];
      +
      __IO uint8_t TER; /* Offset: 0x030 (R/W) Transmit Enable Register */
      +
      uint8_t RESERVED6[39];
      +
      __I uint8_t FIFOLVL; /* Offset: 0x058 (R/ ) FIFO Level Register */
      +
      } LPC_UART_TypeDef;
      +
    • +
    +
      +
    • To access the registers of the UART defined above, pointers to a register structure are defined. In this example <device abbreviation>_UART# are two pointers to UARTs defined with above register structure.
      +
      #define LPC_UART2 ((LPC_UART_TypeDef *) LPC_UART2_BASE )
      +
      #define LPC_UART3 ((LPC_UART_TypeDef *) LPC_UART3_BASE )
      +
    • +
    +
      +
    • The registers in the various UARTs can now be referred in the user code as shown below:
      +
      LPC_UART1->DR // is the data register of UART1.
      +
    • +
    +
    +

    +Minimal Requirements

    +

    To access the peripheral registers and related function in a device, the files device.h and core_cm#.h define as a minimum:
    +
    +

    +
      +
    • The Register Layout Typedef for each peripheral that defines all register names. RESERVED is used to introduce space into the structure for adjusting the addresses of the peripheral registers.
      +
      + Example:
      typedef struct
      +
      {
      +
      __IO uint32_t CTRL; /* Offset: 0x000 (R/W) SysTick Control and Status Register */
      +
      __IO uint32_t LOAD; /* Offset: 0x004 (R/W) SysTick Reload Value Register */
      +
      __IO uint32_t VAL; /* Offset: 0x008 (R/W) SysTick Current Value Register */
      +
      __I uint32_t CALIB; /* Offset: 0x00C (R/ ) SysTick Calibration Register */
      + +
    • +
    +
      +
    • Base Address for each peripheral (in case of multiple peripherals that use the same register layout typedef multiple base addresses are defined).
      +
      + Example:
      #define SysTick_BASE (SCS_BASE + 0x0010) /* SysTick Base Address */
      +
    • +
    +
      +
    • Access Definitions for each peripheral. In case of multiple peripherals that are using the same register layout typdef, multiple access definitions exist (LPC_UART0, LPC_UART2).
      +
      + Example:
      #define SysTick ((SysTick_Type *) Systick_BASE) /* SysTick access definition */
      +
    • +
    +

    These definitions allow accessing peripheral registers with simple assignments.

    +

    Example:
    +

    +
    SysTick->CTRL = 0;
    +

    +

    +Optional Features

    +

    Optionally, the file device.h may define:

    +
      +
    • #define constants, which simplify access to peripheral registers. These constants define bit-positions or other specific patterns that are required for programming peripheral registers. The identifiers start with <device abbreviation>_ and <peripheral name>_. It is recommended to use CAPITAL letters for such #define constants.
    • +
    +
      +
    • More complex functions (i.e. status query before a sending register is accessed). Again, these functions start with <device abbreviation>_ and <peripheral name>_.
    • +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group__system__init__gr.html b/Libraries/CMSIS/Documentation/Core/html/group__system__init__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group__system__init__gr.html @@ -0,0 +1,229 @@ + + + + + +CMSIS-CORE: System and Clock Configuration + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    System and Clock Configuration
    +
    +
    + + + + + + + + +

    +Functions

    void SystemInit (void)
     Function to Initialize the system. More...
     
    void SystemCoreClockUpdate (void)
     Function to update the variable SystemCoreClock. More...
     
    + + + + +

    +Variables

    uint32_t SystemCoreClock
     Variable to hold the system core clock value. More...
     
    +

    Description

    +
    ARM provides a template file <b>system_<i>device</i>.c</b> that must be adapted by 
    +the silicon vendor to match their actual device. As a <b>minimum requirement</b>, 
    +this file must provide:
    +-  A device-specific system configuration function, \ref SystemInit().
    +-  A global variable that contains the system frequency, \ref SystemCoreClock. 
    +
    +The file configures the device and, typically, initializes the oscillator (PLL) that is part 
    +of the microcontroller device. This file might export other functions or variables that provide 
    +a more flexible configuration of the microcontroller system.
    +

    +Code Example

    +

    The code below shows the usage of the variable SystemCoreClock and the functions SystemInit() and SystemCoreClockUpdate() with an LPC1700.

    +
    #include "LPC17xx.h"
    +
    +
    uint32_t coreClock_1 = 0; /* Variables to store core clock values */
    +
    uint32_t coreClock_2 = 0;
    +
    +
    +
    int main (void) {
    +
    +
    coreClock_1 = SystemCoreClock; /* Store value of predefined SystemCoreClock */
    +
    +
    SystemCoreClockUpdate(); /* Update SystemCoreClock according to register settings */
    +
    +
    coreClock_2 = SystemCoreClock; /* Store value of calculated SystemCoreClock */
    +
    +
    if (coreClock_2 != coreClock_1) { /* Without changing the clock setting both core clock values should be the same */
    +
    // Error Handling
    +
    }
    +
    +
    while(1);
    +
    }
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    void SystemCoreClockUpdate (void )
    +
    +

    Updates the variable SystemCoreClock and must be called whenever the core clock is changed during program execution. The function evaluates the clock register settings and calculates the current core clock.

    + +
    +
    + +
    +
    + + + + + + + + +
    void SystemInit (void )
    +
    +

    Initializes the microcontroller system. Typically, this function configures the oscillator (PLL) that is part of the microcontroller device. For systems with a variable clock speed, it updates the variable SystemCoreClock. SystemInit is called from the file startup_device.

    + +
    +
    +

    Variable Documentation

    + +
    +
    + + + + +
    uint32_t SystemCoreClock
    +
    +

    Holds the system core clock, which is the system clock frequency supplied to the SysTick timer and the processor core clock. This variable can be used by debuggers to query the frequency of the debug timer or to configure the trace clock speed.

    +
    Attention
    Compilers must be configured to avoid removing this variable in case the application program is not using it. Debugging systems require the variable to be physically present in memory so that it can be examined to configure the debugger.
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/group__system__init__gr.js b/Libraries/CMSIS/Documentation/Core/html/group__system__init__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/group__system__init__gr.js @@ -0,0 +1,6 @@ +var group__system__init__gr = +[ + [ "SystemCoreClockUpdate", "group__system__init__gr.html#gae0c36a9591fe6e9c45ecb21a794f0f0f", null ], + [ "SystemInit", "group__system__init__gr.html#ga93f514700ccf00d08dbdcff7f1224eb2", null ], + [ "SystemCoreClock", "group__system__init__gr.html#gaa3cd3e43291e81e795d642b79b6088e6", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/index.html b/Libraries/CMSIS/Documentation/Core/html/index.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/index.html @@ -0,0 +1,210 @@ + + + + + +CMSIS-CORE: Overview + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Overview
    +
    +
    +

    CMSIS-CORE implements the basic run-time system for a Cortex-M device and gives the user access to the processor core and the device peripherals. In detail it defines:

    +
      +
    • Hardware Abstraction Layer (HAL) for Cortex-M processor registers with standardized definitions for the SysTick, NVIC, System Control Block registers, MPU registers, FPU registers, and core access functions.
    • +
    • System exception names to interface to system exceptions without having compatibility issues.
    • +
    • Methods to organize header files that makes it easy to learn new Cortex-M microcontroller products and improve software portability. This includes naming conventions for device-specific interrupts.
    • +
    • Methods for system initialization to be used by each MCU vendor. For example, the standardized SystemInit() function is essential for configuring the clock system of the device.
    • +
    • Intrinsic functions used to generate CPU instructions that are not supported by standard C functions.
    • +
    • A variable to determine the system clock frequency which simplifies the setup the SysTick timer.
    • +
    +
    +

    This chapter provides details about the CMSIS-CORE and contains the following sections:

    + +
    +

    +Cortex-M Reference Manuals

    +

    The Cortex-M Reference Manuals are generic user guides for devices that implement the various ARM Cortex-M processors. These manuals contain the programmers model and detailed information about the core peripherals.

    + +
    +

    +Tested and Verified Toolchains

    +

    The CMSIS-CORE Template Files supplied by ARM have been tested and verified with the following toolchains:

    +
      +
    • ARM: MDK-ARM Version 4.70 (or greater)
    • +
    • GNU: GNU Tools ARM Embedded 4.7 2012.q4 (or greater)
    • +
    • GNU: Sourcery G++ Lite Edition for ARM 2011.03-42 (or greater)
    • +
    • IAR: IAR Embedded Workbench Kickstart Edition V6.10 (or greater)
    • +
    +
    +

    Revision History of CMSIS-CORE

    + + + + + + + + + + + + + + + + + + + + + +
    Version Description
    V3.20 Added: __BKPT instruction intrinsic.
    + Added: __SMMLA instruction intrinsic for Cortex-M4.
    + Corrected: ITM_SendChar.
    + Corrected: __enable_irq, __disable_irq and inline assembly for GCC Compiler.
    + Corrected: NVIC_GetPriority and VTOR_TBLOFF for Cortex-M0/M0+, SC000. Corrected: rework of in-line assembly functions to remove potential compiler warnings.
    +
    V3.01 Added support for Cortex-M0+ processor.
    + Integration of CMSIS DSP Library version 1.1.0
    +
    V3.00 Added support for GNU GCC ARM Embedded Compiler.
    + Added function __ROR.
    + Added Register Mapping for TPIU, DWT.
    + Added support for SC000 and SC300 processors.
    + Corrected ITM_SendChar function.
    + Corrected the functions __STREXB, __STREXH, __STREXW for the GNU GCC compiler section.
    + Documentation restructured.
    V2.10 Updated documentation.
    + Updated CMSIS core include files.
    + Changed CMSIS/Device folder structure.
    + Added support for Cortex-M0, Cortex-M4 w/o FPU to CMSIS DSP library.
    + Reworked CMSIS DSP library examples.
    V2.00 Added support for Cortex-M4 processor.
    V1.30 Reworked Startup Concept.
    + Added additional Debug Functionality.
    + Changed folder structure.
    + Added doxygen comments.
    + Added definitions for bit.
    V1.01 Added support for Cortex-M0 processor.
    V1.01 Added intrinsic functions for __LDREXB, __LDREXH, __LDREXW, __STREXB, __STREXH, __STREXW, and __CLREX
    V1.00 Initial Release for Cortex-M3 processor.
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/jquery.js b/Libraries/CMSIS/Documentation/Core/html/jquery.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/jquery.js @@ -0,0 +1,77 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")), +f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c) +{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery); +/* + * jQuery UI Resizable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e
    ');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p +&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery); +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
    +
    +
    Reference
    +
    +
    +
    Here is a list of all modules:
    +
    + + + + + + + + +
    oPeripheral AccessDescribes naming conventions, requirements, and optional features for accessing peripherals
    oSystem and Clock Configuration
    oInterrupts and Exceptions (NVIC)Describes programming of interrupts and exception functions
    oCore Register Access
    oIntrinsic Functions for CPU Instructions
    oIntrinsic Functions for SIMD Instructions [only Cortex-M4]Access to dedicated SIMD instructions
    oSystick Timer (SYSTICK)Initialize and start the SysTick timer
    \Debug Access
    + + + + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/modules.js b/Libraries/CMSIS/Documentation/Core/html/modules.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/modules.js @@ -0,0 +1,11 @@ +var modules = +[ + [ "Peripheral Access", "group__peripheral__gr.html", null ], + [ "System and Clock Configuration", "group__system__init__gr.html", "group__system__init__gr" ], + [ "Interrupts and Exceptions (NVIC)", "group___n_v_i_c__gr.html", "group___n_v_i_c__gr" ], + [ "Core Register Access", "group___core___register__gr.html", "group___core___register__gr" ], + [ "Intrinsic Functions for CPU Instructions", "group__intrinsic___c_p_u__gr.html", "group__intrinsic___c_p_u__gr" ], + [ "Intrinsic Functions for SIMD Instructions [only Cortex-M4]", "group__intrinsic___s_i_m_d__gr.html", "group__intrinsic___s_i_m_d__gr" ], + [ "Systick Timer (SYSTICK)", "group___sys_tick__gr.html", "group___sys_tick__gr" ], + [ "Debug Access", "group___i_t_m___debug__gr.html", "group___i_t_m___debug__gr" ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/nav_f.png b/Libraries/CMSIS/Documentation/Core/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f400a259d9982502dcebcfab42039b85b630e8 GIT binary patch literal 154 zc%17D@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQi+}}jv*C{Z||PwZ86|s2~fYR z%Rc4*alYH%)@>1&@jJj6c<6G*pO=mM_S;9;WjR03T#&iVE+8~>5nItzXDwmnG{+M? z6C~_Pf1D_orB|ktz0u`Mm*KN(Cxv3?=D(|!wfXzbtw7F$B+ufw{ti0G8k|iX8Lox wvGaX1dzHJ=>3vSyUVlw-Gbmi~*z)0Tren!0?M|C`*MoF=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + if (node.childrenData) { + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"ftv2pnode.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"ftv2pnode.png"; + } else { + imgNode.src = node.relpath+"ftv2node.png"; + domNode.appendChild(imgNode); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + if (anchor.parent().attr('class')=='memItemLeft' || + anchor.parent().attr('class')=='fieldtype' || + anchor.parent().is(':header')) + { + pos = anchor.parent().position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath($(location).attr('pathname')); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = $(location).attr('hash'); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+ + window.location.hash.substring(1)+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parents().slice(2).prop('tagName')=='TR') { + glowEffect(anchor.parents('div.memitem'),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).show(); + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1]; + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + //root=root.replace(/_source\./,'.'); // source link to doc link + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash')); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"ftv2pnode.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + navTo(o,toroot,window.location.hash,relpath); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath($(location).attr('pathname'))+':'+ + $(location).attr('hash').substring(1); + a=$('.item a[class$="'+clslink+'"]'); + } + if (a==null || !$(a).parent().parent().hasClass('selected')){ + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + var link=stripPath2($(location).attr('pathname')); + navTo(o,link,$(location).attr('hash'),relpath); + } else if (!animationInProgress) { + $('#doc-content').scrollTop(0); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + navTo(o,toroot,window.location.hash,relpath); + } + }) + + $(window).load(showRoot); +} + diff --git a/Libraries/CMSIS/Documentation/Core/html/navtreeindex0.js b/Libraries/CMSIS/Documentation/Core/html/navtreeindex0.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/navtreeindex0.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX0 = +{ +"_c_o_r_e__m_i_s_r_a__exceptions_pg.html":[3], +"_reg_map_pg.html":[4], +"_templates_pg.html":[2], +"_templates_pg.html#adapt_template_files_sec":[2,1], +"_templates_pg.html#template_files_sec":[2,0], +"_using__a_r_m_pg.html":[1,0], +"_using__a_r_m_pg.html#Using_ARM_Lib_sec":[1,0,0], +"_using_pg.html":[1], +"annotated.html":[6], +"device_h_pg.html":[2,4], +"device_h_pg.html#core_config_sect":[2,4,1], +"device_h_pg.html#core_version_sect":[2,4,2], +"device_h_pg.html#device_access":[2,4,3], +"device_h_pg.html#device_h_sec":[2,4,4], +"device_h_pg.html#interrupt_number_sec":[2,4,0], +"functions.html":[7,0], +"functions_vars.html":[7,1], +"group___core___register__gr.html":[5,3], +"group___core___register__gr.html#ga0bf9564ebc1613a8faba014275dac2a4":[5,3,18], +"group___core___register__gr.html#ga0f98dfbd252b89d12564472dbeba9c27":[5,3,3], +"group___core___register__gr.html#ga2c32fc5c7f8f07fb3d436c6f6fe4e8c8":[5,3,9], +"group___core___register__gr.html#ga32da759f46e52c95bcfbde5012260667":[5,3,5], +"group___core___register__gr.html#ga360c73eb7ffb16088556f9278953b882":[5,3,14], +"group___core___register__gr.html#ga48e5853f417e17a8a65080f6a605b743":[5,3,20], +"group___core___register__gr.html#ga6575d37863cec5d334864f93b5b783bf":[5,3,2], +"group___core___register__gr.html#ga6f26bd75ca7e3247f27b272acc10536b":[5,3,17], +"group___core___register__gr.html#ga70b4e1a6c1c86eb913fb9d6e8400156f":[5,3,19], +"group___core___register__gr.html#ga732e08184154f44a617963cc65ff95bd":[5,3,13], +"group___core___register__gr.html#ga799b5d9a2ae75e459264c8512c7c0e02":[5,3,11], +"group___core___register__gr.html#ga811c0012221ee918a75111ca84c4d5e7":[5,3,4], +"group___core___register__gr.html#ga914dfa8eff7ca53380dd54cf1d8bebd9":[5,3,12], +"group___core___register__gr.html#ga963cf236b73219ce78e965deb01b81a7":[5,3,6], +"group___core___register__gr.html#ga9d174f979b2f76fdb3228a9b338fd939":[5,3,0], +"group___core___register__gr.html#gaa5587cc09031053a40a35c14ec36078a":[5,3,16], +"group___core___register__gr.html#gaa78e4e6bf619a65e9f01b4af13fed3a8":[5,3,7], +"group___core___register__gr.html#gab898559392ba027814e5bbb5a98b38d2":[5,3,10], +"group___core___register__gr.html#gac64d37e7ff9de06437f9fb94bbab8b6c":[5,3,15], +"group___core___register__gr.html#gad6d7eca9ddd1d9072dd7b020cfe64905":[5,3,8], +"group___core___register__gr.html#gaeb8e5f7564a8ea23678fe3c987b04013":[5,3,1], +"group___i_t_m___debug__gr.html":[5,7], +"group___i_t_m___debug__gr.html#ga12e68e55a7badc271b948d6c7230b2a8":[5,7,3], +"group___i_t_m___debug__gr.html#ga37b8f41cae703b5ff6947e271065558c":[5,7,1], +"group___i_t_m___debug__gr.html#ga7f9bbabd9756d1a7eafb2d9bf27e0535":[5,7,0], +"group___i_t_m___debug__gr.html#gaaa7c716331f74d644bf6bf25cd3392d1":[5,7,2], +"group___n_v_i_c__gr.html":[5,2], +"group___n_v_i_c__gr.html#ga0688c59605b119c53c71b2505ab23eb5":[5,2,5], +"group___n_v_i_c__gr.html#ga1b47d17e90b6a03e7bd1ec6a0d549b46":[5,2,13], +"group___n_v_i_c__gr.html#ga382ad6bedd6eecfdabd1b94dd128a01a":[5,2,1], +"group___n_v_i_c__gr.html#ga3b885147ef9965ecede49614de8df9d2":[5,2,10], +"group___n_v_i_c__gr.html#ga530ad9fda2ed1c8b70e439ecfe80591f":[5,2,4], +"group___n_v_i_c__gr.html#ga5bb7f43ad92937c039dee3d36c3c2798":[5,2,11], +"group___n_v_i_c__gr.html#ga736ba13a76eb37ef6e2c253be8b0331c":[5,2,3], +"group___n_v_i_c__gr.html#ga7e1129cd8a196f4284d41db3e82ad5c8":[5,2,0], +"group___n_v_i_c__gr.html#ga95a8329a680b051ecf3ee8f516acc662":[5,2,7], +"group___n_v_i_c__gr.html#gaa81b19849367d3cdb95ac108c500fa78":[5,2,9], +"group___n_v_i_c__gr.html#gab18fb9f6c5f4c70fdd73047f0f7c8395":[5,2,8], +"group___n_v_i_c__gr.html#gad3cbca1be7a4726afa9448a9acd89377":[5,2,2], +"group___n_v_i_c__gr.html#gad78f447e891789b4d8f2e5b21eeda354":[5,2,12], +"group___n_v_i_c__gr.html#gadf4252e600661fd762cfc0d1a9f5b892":[5,2,6], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a03c3cc89984928816d81793fc7bce4a2":[5,2,0,7], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a33ff1cf7098de65d61b6354fee6cd5aa":[5,2,0,2], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a4ce820b3cc6cf3a796b41aadc0cf1237":[5,2,0,5], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6895237c9443601ac832efa635dd8bbf":[5,2,0,4], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6dbff8f8543325f3474cbae2446776e7":[5,2,0,8], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a853e0f318108110e0527f29733d11f86":[5,2,0,10], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8693500eff174f16119e96234fee73af":[5,2,0,3], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8e033fcef7aed98a31c60a7de206722c":[5,2,0,6], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8aa62e040960b4beb6cba107e4703c12d2":[5,2,0,9], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ab1a222a34a32f0ef5ac65e714efc1f85":[5,2,0,1], +"group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ade177d9c70c89e084093024b932a4e30":[5,2,0,0], +"group___sys_tick__gr.html":[5,6], +"group___sys_tick__gr.html#gabe47de40e9b0ad465b752297a9d9f427":[5,6,0], +"group__intrinsic___c_p_u__gr.html":[5,4], +"group__intrinsic___c_p_u__gr.html#ga0a354bdf71caa52f081a4a54e84c8d2a":[5,4,18], +"group__intrinsic___c_p_u__gr.html#ga1ec006e6d79063363cb0c2a2e0b3adbe":[5,4,13], +"group__intrinsic___c_p_u__gr.html#ga335deaaa7991490e1450cb7d1e4c5197":[5,4,19], +"group__intrinsic___c_p_u__gr.html#ga354c5ac8870cc3dfb823367af9c4b412":[5,4,1], +"group__intrinsic___c_p_u__gr.html#ga3c34da7eb16496ae2668a5b95fa441e7":[5,4,15], +"group__intrinsic___c_p_u__gr.html#ga4717abc17af5ba29b1e4c055e0a0d9b8":[5,4,11], +"group__intrinsic___c_p_u__gr.html#ga76bbe4374a5912362866cdc1ded4064a":[5,4,20], +"group__intrinsic___c_p_u__gr.html#ga7d9dddda18805abbf51ac21c639845e1":[5,4,16], +"group__intrinsic___c_p_u__gr.html#ga90884c591ac5d73d6069334eba9d6c02":[5,4,2], +"group__intrinsic___c_p_u__gr.html#ga92f5621626711931da71eaa8bf301af7":[5,4,0], +"group__intrinsic___c_p_u__gr.html#ga93c09b4709394d81977300d5f84950e5":[5,4,5], +"group__intrinsic___c_p_u__gr.html#ga9e3ac13d8dcf4331176b624cf6234a7e":[5,4,6], +"group__intrinsic___c_p_u__gr.html#ga9feffc093d6f68b120d592a7a0d45a15":[5,4,7], +"group__intrinsic___c_p_u__gr.html#gaab6482d1f59f59e2b6b7efc1af391c99":[5,4,17], +"group__intrinsic___c_p_u__gr.html#gab1c9b393641dc2d397b3408fdbe72b96":[5,4,3], +"group__intrinsic___c_p_u__gr.html#gabd78840a0f2464905b7cec791ebc6a4c":[5,4,8], +"group__intrinsic___c_p_u__gr.html#gac71fad9f0a91980fecafcb450ee0a63e":[5,4,9], +"group__intrinsic___c_p_u__gr.html#gacb2a8ca6eae1ba4b31161578b720c199":[5,4,4], +"group__intrinsic___c_p_u__gr.html#gad3efec76c3bfa2b8528ded530386c563":[5,4,21], +"group__intrinsic___c_p_u__gr.html#gad6f9f297f6b91a995ee199fbc796b863":[5,4,10], +"group__intrinsic___c_p_u__gr.html#gaed91dfbf3d7d7b7fba8d912fcbeaad88":[5,4,22], +"group__intrinsic___c_p_u__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26":[5,4,12], +"group__intrinsic___c_p_u__gr.html#gaf66beb577bb9d90424c3d1d7f684c024":[5,4,14], +"group__intrinsic___s_i_m_d__gr.html":[5,5], +"group__intrinsic___s_i_m_d__gr.html#ga028f0732b961fb6e5209326fb3855261":[5,5,44], +"group__intrinsic___s_i_m_d__gr.html#ga039142a5368840683cf329cb55b73f84":[5,5,31], +"group__intrinsic___s_i_m_d__gr.html#ga09e129e6613329aab87c89f1108b7ed7":[5,5,45], +"group__intrinsic___s_i_m_d__gr.html#ga15d8899a173effb8ad8c7268da32b60e":[5,5,14], +"group__intrinsic___s_i_m_d__gr.html#ga17b873f246c9f5e9355760ffef3dad4a":[5,5,2], +"group__intrinsic___s_i_m_d__gr.html#ga1f7545b8dc33bb97982731cb9d427a69":[5,5,46], +"group__intrinsic___s_i_m_d__gr.html#ga31328467f0f91b8ff9ae9a01682ad3bf":[5,5,18], +"group__intrinsic___s_i_m_d__gr.html#ga38dce3dd13ba212e80ec3cff4abeb11a":[5,5,38], +"group__intrinsic___s_i_m_d__gr.html#ga3a14e5485e59bf0f23595b7c2a94eb0b":[5,5,43], +"group__intrinsic___s_i_m_d__gr.html#ga3ba259f8f05a36f7b88b469a71ffc096":[5,5,7], +"group__intrinsic___s_i_m_d__gr.html#ga4262f73be75efbac6b46ab7c71aa6cbc":[5,5,35], +"group__intrinsic___s_i_m_d__gr.html#ga48a55df1c3e73923b73819d7c19b392d":[5,5,47], +"group__intrinsic___s_i_m_d__gr.html#ga524575b442ea01aec10c762bf4d85fea":[5,5,15], +"group__intrinsic___s_i_m_d__gr.html#ga5290ce5564770ad124910d2583dc0a9e":[5,5,25], +"group__intrinsic___s_i_m_d__gr.html#ga5611f7314e0c8f53da377918dfbf42ee":[5,5,26], +"group__intrinsic___s_i_m_d__gr.html#ga578a082747436772c482c96d7a58e45e":[5,5,57], +"group__intrinsic___s_i_m_d__gr.html#ga5845084fd99c872e98cf5553d554de2a":[5,5,12], +"group__intrinsic___s_i_m_d__gr.html#ga5ec4e2e231d15e5c692233feb3806187":[5,5,52], +"group__intrinsic___s_i_m_d__gr.html#ga5eff3ae5eabcd73f3049996ca391becb":[5,5,50], +"group__intrinsic___s_i_m_d__gr.html#ga753493a65493880c28baa82c151a0d61":[5,5,9], +"group__intrinsic___s_i_m_d__gr.html#ga83e69ef81057d3cbd06863d729385187":[5,5,27], +"group__intrinsic___s_i_m_d__gr.html#ga87618799672e1511e33964bc71467eb3":[5,5,5], +"group__intrinsic___s_i_m_d__gr.html#ga95e666b82216066bf6064d1244e6883c":[5,5,33], +"group__intrinsic___s_i_m_d__gr.html#ga967f516afff5900cf30f1a81907cdd89":[5,5,56], +"group__intrinsic___s_i_m_d__gr.html#ga9736fe816aec74fe886e7fb949734eab":[5,5,53], +"group__intrinsic___s_i_m_d__gr.html#ga980353d2c72ebb879282e49f592fddc0":[5,5,41], +"group__intrinsic___s_i_m_d__gr.html#ga9c286d330f4fb29b256335add91eec9f":[5,5,21], +"group__intrinsic___s_i_m_d__gr.html#ga9d3bc5c539f9bd50f7d59ffa37ac6a65":[5,5,34], +"group__intrinsic___s_i_m_d__gr.html#ga9e2cc5117e79578a08b25f1e89022966":[5,5,48], +"group__intrinsic___s_i_m_d__gr.html#ga9f2b77e11fc4a77b26c36c423ed45b4e":[5,5,58], +"group__intrinsic___s_i_m_d__gr.html#gaa1160f0cf76d6aa292fbad54a1aa6b74":[5,5,39], +"group__intrinsic___s_i_m_d__gr.html#gab3d7fd00d113b20fb3741a17394da762":[5,5,40], +"group__intrinsic___s_i_m_d__gr.html#gab41d713653b16f8d9fef44d14e397228":[5,5,61], +"group__intrinsic___s_i_m_d__gr.html#gab41eb2b17512ab01d476fc9d5bd19520":[5,5,6], +"group__intrinsic___s_i_m_d__gr.html#gaba63bb52e1e93fb527e26f3d474da12e":[5,5,36], +"group__intrinsic___s_i_m_d__gr.html#gabb5bcba694bf17b141c32e6a8474f60e":[5,5,32], +"group__intrinsic___s_i_m_d__gr.html#gabd0b0e2da2e6364e176d051687702b86":[5,5,42], +"group__intrinsic___s_i_m_d__gr.html#gac20aa0f741d0a1494d58c531e38d5785":[5,5,11], +"group__intrinsic___s_i_m_d__gr.html#gac3ec7215b354d925a239f3b31df2b77b":[5,5,19], +"group__intrinsic___s_i_m_d__gr.html#gac540b4fc41d30778ba102d2a65db5589":[5,5,37], +"group__intrinsic___s_i_m_d__gr.html#gac8855c07044239ea775c8128013204f0":[5,5,54], +"group__intrinsic___s_i_m_d__gr.html#gacb7257dc3b8e9acbd0ef0e31ff87d4b8":[5,5,59], +"group__intrinsic___s_i_m_d__gr.html#gad032bd21f013c5d29f5fcb6b0f02bc3f":[5,5,55], +"group__intrinsic___s_i_m_d__gr.html#gad089605c16df9823a2c8aaa37777aae5":[5,5,8], +"group__intrinsic___s_i_m_d__gr.html#gad0bf46373a1c05aabf64517e84be5984":[5,5,10], +"group__intrinsic___s_i_m_d__gr.html#gad1adad1b3f2667328cc0db6c6b4f41cf":[5,5,23], +"group__intrinsic___s_i_m_d__gr.html#gad25ce96db0f17096bbd815f4817faf09":[5,5,60], +"group__intrinsic___s_i_m_d__gr.html#gad80e9b20c1736fd798f897362273a146":[5,5,22], +"group__intrinsic___s_i_m_d__gr.html#gadecfdfabc328d8939d49d996f2fd4482":[5,5,51], +"group__intrinsic___s_i_m_d__gr.html#gae0a649035f67627464fd80e7218c89d5":[5,5,16], +"group__intrinsic___s_i_m_d__gr.html#gae0c86f3298532183f3a29f5bb454d354":[5,5,20], +"group__intrinsic___s_i_m_d__gr.html#gae326e368a1624d2dfb4b97c626939257":[5,5,29], +"group__intrinsic___s_i_m_d__gr.html#gae83a53ec04b496304bed6d9fe8f7461b":[5,5,3], +"group__intrinsic___s_i_m_d__gr.html#gaea60757232f740ec6b09980eebb614ff":[5,5,28], +"group__intrinsic___s_i_m_d__gr.html#gaee6390f86965cb662500f690b0012092":[5,5,30], +"group__intrinsic___s_i_m_d__gr.html#gaefb8ebf3a54e197464da1ff69a44f4b5":[5,5,0], +"group__intrinsic___s_i_m_d__gr.html#gaf2f5a9132dcfc6d01d34cd971c425713":[5,5,4], +"group__intrinsic___s_i_m_d__gr.html#gaf4350af7f2030c36f43b2c104a9d16cd":[5,5,24], +"group__intrinsic___s_i_m_d__gr.html#gaf5448e591fe49161b6759b48aecb08fe":[5,5,13], +"group__intrinsic___s_i_m_d__gr.html#gafa9af218db3934a692fb06fa728d8031":[5,5,49], +"group__intrinsic___s_i_m_d__gr.html#gafadbd89c36b5addcf1ca10dd392db3e9":[5,5,17], +"group__intrinsic___s_i_m_d__gr.html#gafd8fe4a6d87e947caa81a69ec36c1666":[5,5,1], +"group__peripheral__gr.html":[5,0], +"group__system__init__gr.html":[5,1], +"group__system__init__gr.html#ga93f514700ccf00d08dbdcff7f1224eb2":[5,1,1], +"group__system__init__gr.html#gaa3cd3e43291e81e795d642b79b6088e6":[5,1,2], +"group__system__init__gr.html#gae0c36a9591fe6e9c45ecb21a794f0f0f":[5,1,0], +"index.html":[0], +"index.html":[], +"index.html#ref_man_sec":[0,0], +"index.html#tested_tools_sec":[0,1], +"modules.html":[5], +"pages.html":[], +"startup_s_pg.html":[2,2], +"startup_s_pg.html#startup_s_sec":[2,2,0], +"struct_core_debug___type.html":[6,2], +"struct_core_debug___type.html#a25c14c022c73a725a1736e903431095d":[6,2,3], +"struct_core_debug___type.html#a5cdd51dbe3ebb7041880714430edd52d":[6,2,2], +"struct_core_debug___type.html#ab8f4bb076402b61f7be6308075a789c9":[6,2,0], +"struct_core_debug___type.html#afefa84bce7497652353a1b76d405d983":[6,2,1], +"struct_d_w_t___type.html":[6,3], +"struct_d_w_t___type.html#a069871233a8c1df03521e6d7094f1de4":[6,3,20], +"struct_d_w_t___type.html#a0c684438a24f8c927e6e01c0e0a605ef":[6,3,15], +"struct_d_w_t___type.html#a3345a33476ee58e165447a3212e6d747":[6,3,10], +"struct_d_w_t___type.html#a35f2315f870a574e3e6958face6584ab":[6,3,8], +"struct_d_w_t___type.html#a37964d64a58551b69ce4c8097210d37d":[6,3,5], +"struct_d_w_t___type.html#a3df15697eec279dbbb4b4e9d9ae8b62f":[6,3,3], +"struct_d_w_t___type.html#a4a5bb70a5ce3752bd628d5ce5658cb0c":[6,3,1], +"struct_d_w_t___type.html#a5bb1c17fc754180cc197b874d3d8673f":[6,3,14], +"struct_d_w_t___type.html#a5fbd9947d110cc168941f6acadc4a729":[6,3,9], +"struct_d_w_t___type.html#a71680298e85e96e57002f87e7ab78fd4":[6,3,6], +"struct_d_w_t___type.html#a7cf71ff4b30a8362690fddd520763904":[6,3,0], +"struct_d_w_t___type.html#a80bd242fc05ca80f9db681ce4d82e890":[6,3,12], +"struct_d_w_t___type.html#a8556ca1c32590517602d92fe0cd55738":[6,3,21], +"struct_d_w_t___type.html#a88cca2ab8eb1b5b507817656ceed89fc":[6,3,4], +"struct_d_w_t___type.html#a8927aedbe9fd6bdae8983088efc83332":[6,3,2], +"struct_d_w_t___type.html#a8afd5a4bf994011748bc012fa442c74d":[6,3,22], +"struct_d_w_t___type.html#a8ecdc8f0d917dac86b0373532a1c0e2e":[6,3,16], +"struct_d_w_t___type.html#abc5ae11d98da0ad5531a5e979a3c2ab5":[6,3,18], +"struct_d_w_t___type.html#ac0801a2328f3431e4706fed91c828f82":[6,3,7], +"struct_d_w_t___type.html#acba1654190641a3617fcc558b5e3f87b":[6,3,11], +"struct_d_w_t___type.html#addd893d655ed90d40705b20170daac59":[6,3,19], +"struct_d_w_t___type.html#ae3f01137a8d28c905ddefe7333547fba":[6,3,17], +"struct_d_w_t___type.html#aeba92e6c7fd3de4ba06bfd94f47f5b35":[6,3,13], +"struct_f_p_u___type.html":[6,4], +"struct_f_p_u___type.html#a135577b0a76bd3164be2a02f29ca46f1":[6,4,3], +"struct_f_p_u___type.html#a22054423086a3daf2077fb2f3fe2a8b8":[6,4,1], +"struct_f_p_u___type.html#a4d58ef3ebea69a5ec5acd8c90a9941b6":[6,4,2], +"struct_f_p_u___type.html#a776e8625853e1413c4e8330ec85c256d":[6,4,4], +"struct_f_p_u___type.html#a7b2967b069046c8544adbbc1db143a36":[6,4,5], +"struct_f_p_u___type.html#aa48253f088dc524de80c42fbc995f66b":[6,4,0], +"struct_i_t_m___type.html":[6,6], +"struct_i_t_m___type.html#a12aa4eb4d9dcb589a5d953c836f4e8f4":[6,6,7], +"struct_i_t_m___type.html#a2c5ae30385b5f370d023468ea9914c0e":[6,6,1], +"struct_i_t_m___type.html#a58f169e1aa40a9b8afb6296677c3bb45":[6,6,4], +"struct_i_t_m___type.html#a6882fa5af67ef5c5dfb433b3b68939df":[6,6,8], +"struct_i_t_m___type.html#a91a040e1b162e1128ac1e852b4a0e589":[6,6,5], +"struct_i_t_m___type.html#a93b480aac6da620bbb611212186d47fa":[6,6,6], +"struct_i_t_m___type.html#abea77b06775d325e5f6f46203f582433":[6,6,9], +"struct_i_t_m___type.html#af56b2f07bc6b42cd3e4d17e1b27cff7b":[6,6,3], +"struct_i_t_m___type.html#afe056e8c8f8c5519d9b47611fa3a4c46":[6,6,0], +"struct_i_t_m___type.html#afffce5b93bbfedbaee85357d0b07ebce":[6,6,2], +"struct_m_p_u___type.html":[6,7], +"struct_m_p_u___type.html#a0aac7727a6225c6aa00627c36d51d014":[6,7,3], +"struct_m_p_u___type.html#a3f2e2448a77aadacd9f394f6c4c708d9":[6,7,5], +"struct_m_p_u___type.html#a4dbcffa0a71c31e521b645b34b40e639":[6,7,6], +"struct_m_p_u___type.html#a6ae8a8c3a4909ae41447168d793608f7":[6,7,10], +"struct_m_p_u___type.html#a8703a00626dba046b841c0db6c78c395":[6,7,7], +"struct_m_p_u___type.html#a94222f9a8637b5329016e18f08af7185":[6,7,2], +"struct_m_p_u___type.html#a9fda17c37b85ef317c7c8688ff8c5804":[6,7,8], +"struct_m_p_u___type.html#aab33593671948b93b1c0908d78779328":[6,7,0], +"struct_m_p_u___type.html#aced0b908173b9a4bae4f59452f0cdb0d":[6,7,4], +"struct_m_p_u___type.html#adc65d266d15ce9ba57b3d127e8267f03":[6,7,1], +"struct_m_p_u___type.html#afd8de96a5d574c3953e2106e782f9833":[6,7,9], +"struct_n_v_i_c___type.html":[6,8], +"struct_n_v_i_c___type.html#a0953af43af8ec7fd5869a1d826ce5b72":[6,8,7], +"struct_n_v_i_c___type.html#a0b0d7f3131da89c659a2580249432749":[6,8,12], +"struct_n_v_i_c___type.html#a1965a2e68b61d2e2009621f6949211a5":[6,8,1], +"struct_n_v_i_c___type.html#a2de17698945ea49abd58a2d45bdc9c80":[6,8,6], +"struct_n_v_i_c___type.html#a33e917b381e08dabe4aa5eb2881a7c11":[6,8,0], +"struct_n_v_i_c___type.html#a46241be64208436d35c9a4f8552575c5":[6,8,2], +"struct_n_v_i_c___type.html#a4f753b4f824270175af045ac99bc12e8":[6,8,10], +"struct_n_v_i_c___type.html#a5c0e5d507ac3c1bd5cdaaf9bbd177790":[6,8,9], +"struct_n_v_i_c___type.html#a6524789fedb94623822c3e0a47f3d06c":[6,8,3], +"struct_n_v_i_c___type.html#a6d1daf7ab6f2ba83f57ff67ae6f571fe":[6,8,11], +"struct_n_v_i_c___type.html#a9dd330835dbf21471e7b5be8692d77ab":[6,8,8], +"struct_n_v_i_c___type.html#acf8e38fc2e97316242ddeb7ea959ab90":[6,8,5], +"struct_n_v_i_c___type.html#af90c80b7c2b48e248780b3781e0df80f":[6,8,4], +"struct_s_c_b___type.html":[6,9], +"struct_s_c_b___type.html#a0faf96f964931cadfb71cfa54e051f6f":[6,9,20], +"struct_s_c_b___type.html#a2f94bf549b16fdeb172352e22309e3c4":[6,9,5], +"struct_s_c_b___type.html#a31f79afe86c949c9862e7d5fce077c3a":[6,9,3], +"struct_s_c_b___type.html#a3e66570ab689d28aebefa7e84e85dc4a":[6,9,11] +}; diff --git a/Libraries/CMSIS/Documentation/Core/html/navtreeindex1.js b/Libraries/CMSIS/Documentation/Core/html/navtreeindex1.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/navtreeindex1.js @@ -0,0 +1,90 @@ +var NAVTREEINDEX1 = +{ +"struct_s_c_b___type.html#a3f51c43f952f3799951d0c54e76b0cb7":[6,9,15], +"struct_s_c_b___type.html#a586a5225467262b378c0f231ccc77f86":[6,9,8], +"struct_s_c_b___type.html#a6d273c6b90bad15c91dfbbad0f6e92d8":[6,9,4], +"struct_s_c_b___type.html#a6ed3c9064013343ea9fd0a73a734f29d":[6,9,2], +"struct_s_c_b___type.html#a7bed53391da4f66d8a2a236a839d4c3d":[6,9,10], +"struct_s_c_b___type.html#aaedf846e435ed05c68784b40d3db2bf2":[6,9,0], +"struct_s_c_b___type.html#abfad14e7b4534d73d329819625d77a16":[6,9,17], +"struct_s_c_b___type.html#ac49b24b3f222508464f111772f2c44dd":[6,9,13], +"struct_s_c_b___type.html#ac89a5d9901e3748d22a7090bfca2bee6":[6,9,16], +"struct_s_c_b___type.html#acee8e458f054aac964268f4fe647ea4f":[6,9,12], +"struct_s_c_b___type.html#ad7d61d9525fa9162579c3da0b87bff8d":[6,9,9], +"struct_s_c_b___type.html#ae9891a59abbe51b0b2067ca507ca212f":[6,9,18], +"struct_s_c_b___type.html#aeb77053c84f49c261ab5b8374e8958ef":[6,9,1], +"struct_s_c_b___type.html#aec2f8283d2737c6897188568a4214976":[6,9,14], +"struct_s_c_b___type.html#af460b56ce524a8e3534173f0aee78e85":[6,9,6], +"struct_s_c_b___type.html#af6336103f8be0cab29de51daed5a65f4":[6,9,19], +"struct_s_c_b___type.html#afa7a9ee34dfa1da0b60b4525da285032":[6,9,7], +"struct_s_cn_s_c_b___type.html":[6,10], +"struct_s_cn_s_c_b___type.html#aacadedade30422fed705e8dfc8e6cd8d":[6,10,0], +"struct_s_cn_s_c_b___type.html#ad99a25f5d4c163d9005ca607c24f6a98":[6,10,1], +"struct_s_cn_s_c_b___type.html#afe1d5fd2966d5062716613b05c8d0ae1":[6,10,2], +"struct_sys_tick___type.html":[6,11], +"struct_sys_tick___type.html#a0997ff20f11817f8246e8f0edac6f4e4":[6,11,3], +"struct_sys_tick___type.html#a9c9eda0ea6f6a7c904d2d75a6963e238":[6,11,0], +"struct_sys_tick___type.html#ae7bc9d3eac1147f3bba8d73a8395644f":[6,11,2], +"struct_sys_tick___type.html#af2ad94ac83e5d40fc6e34884bc1bec5f":[6,11,1], +"struct_t_p_i___type.html":[6,12], +"struct_t_p_i___type.html#a158e9d784f6ee6398f4bdcb2e4ca0912":[6,12,22], +"struct_t_p_i___type.html#a16d12c5b1e12f764fa3ec4a51c5f0f35":[6,12,5], +"struct_t_p_i___type.html#a176d991adb4c022bd5b982a9f8fa6a1d":[6,12,12], +"struct_t_p_i___type.html#a20ca7fad4d4009c242f20a7b4a44b7d0":[6,12,11], +"struct_t_p_i___type.html#a2e4d5a07fabd771fa942a171230a0a84":[6,12,2], +"struct_t_p_i___type.html#a31700c8cdd26e4c094db72af33d9f24c":[6,12,17], +"struct_t_p_i___type.html#a377b78fe804f327e6f8b3d0f37e7bfef":[6,12,10], +"struct_t_p_i___type.html#a3eb42d69922e340037692424a69da880":[6,12,6], +"struct_t_p_i___type.html#a3eb655f2e45d7af358775025c1a50c8e":[6,12,21], +"struct_t_p_i___type.html#a3f80dd93f6bab6524603a7aa58de9a30":[6,12,19], +"struct_t_p_i___type.html#a44efa6045512c8d4da64b0623f7a43ad":[6,12,1], +"struct_t_p_i___type.html#a476ca23fbc9480f1697fbec871130550":[6,12,20], +"struct_t_p_i___type.html#a4b2e0d680cf7e26728ca8966363a938d":[6,12,4], +"struct_t_p_i___type.html#a684071216fafee4e80be6aaa932cec46":[6,12,18], +"struct_t_p_i___type.html#aa4b603c71768dbda553da571eccba1fe":[6,12,23], +"struct_t_p_i___type.html#aa723ef3d38237aa2465779b3cc73a94a":[6,12,3], +"struct_t_p_i___type.html#ab49c2cb6b5fe082746a444e07548c198":[6,12,13], +"struct_t_p_i___type.html#ac3956fe93987b725d89d3be32738da12":[6,12,15], +"struct_t_p_i___type.html#ac7bbb92e6231b9b38ac483f7d161a096":[6,12,16], +"struct_t_p_i___type.html#ad75832a669eb121f6fce3c28d36b7fab":[6,12,0], +"struct_t_p_i___type.html#ae67849b2c1016fe6ef9095827d16cddd":[6,12,7], +"struct_t_p_i___type.html#ae91ff529e87d8e234343ed31bcdc4f10":[6,12,8], +"struct_t_p_i___type.html#aebaa9b8dd27f8017dd4f92ecf32bac8e":[6,12,9], +"struct_t_p_i___type.html#af143c5e8fc9a3b2be2878e9c1f331aa9":[6,12,14], +"system_c_pg.html":[2,3], +"system_c_pg.html#system_Device_h_sec":[2,3,1], +"system_c_pg.html#system_Device_sec":[2,3,0], +"union_a_p_s_r___type.html":[6,0], +"union_a_p_s_r___type.html#a22d10913489d24ab08bd83457daa88de":[6,0,4], +"union_a_p_s_r___type.html#a3b04d58738b66a28ff13f23d8b0ba7e5":[6,0,7], +"union_a_p_s_r___type.html#a7dbc79a057ded4b11ca5323fc2d5ab14":[6,0,1], +"union_a_p_s_r___type.html#a7e7bbba9b00b0bb3283dc07f1abe37e0":[6,0,3], +"union_a_p_s_r___type.html#a8004d224aacb78ca37774c35f9156e7e":[6,0,5], +"union_a_p_s_r___type.html#a86e2c5b891ecef1ab55b1edac0da79a6":[6,0,2], +"union_a_p_s_r___type.html#ae4c2ef8c9430d7b7bef5cbfbbaed3a94":[6,0,6], +"union_a_p_s_r___type.html#afbce95646fd514c10aa85ec0a33db728":[6,0,0], +"union_c_o_n_t_r_o_l___type.html":[6,1], +"union_c_o_n_t_r_o_l___type.html#a35c1732cf153b7b5c4bd321cf1de9605":[6,1,3], +"union_c_o_n_t_r_o_l___type.html#a6b642cca3d96da660b1198c133ca2a1f":[6,1,5], +"union_c_o_n_t_r_o_l___type.html#a8cc085fea1c50a8bd9adea63931ee8e2":[6,1,4], +"union_c_o_n_t_r_o_l___type.html#ac62cfff08e6f055e0101785bad7094cd":[6,1,2], +"union_c_o_n_t_r_o_l___type.html#adc6a38ab2980d0e9577b5a871da14eb9":[6,1,1], +"union_c_o_n_t_r_o_l___type.html#af8c314273a1e4970a5671bd7f8184f50":[6,1,0], +"union_i_p_s_r___type.html":[6,5], +"union_i_p_s_r___type.html#a4adca999d3a0bc1ae682d73ea7cfa879":[6,5,3], +"union_i_p_s_r___type.html#ab46e5f1b2f4d17cfb9aca4fffcbb2fa5":[6,5,2], +"union_i_p_s_r___type.html#ad2eb0a06de4f03f58874a727716aa9aa":[6,5,0], +"union_i_p_s_r___type.html#add0d6497bd50c25569ea22b48a03ec50":[6,5,1], +"unionx_p_s_r___type.html":[6,13], +"unionx_p_s_r___type.html#a1a47176768f45f79076c4f5b1b534bc2":[6,13,9], +"unionx_p_s_r___type.html#a1e5d9801013d5146f2e02d9b7b3da562":[6,13,10], +"unionx_p_s_r___type.html#a2db9a52f6d42809627d1a7a607c5dbc5":[6,13,5], +"unionx_p_s_r___type.html#a3200966922a194d84425e2807a7f1328":[6,13,4], +"unionx_p_s_r___type.html#a3b1063bb5cdad67e037cba993b693b70":[6,13,1], +"unionx_p_s_r___type.html#a3e9120dcf1a829fc8d2302b4d0673970":[6,13,3], +"unionx_p_s_r___type.html#a40213a6b5620410cac83b0d89564609d":[6,13,2], +"unionx_p_s_r___type.html#a7eed9fe24ae8d354cd76ae1c1110a658":[6,13,7], +"unionx_p_s_r___type.html#add7cbd2b0abd8954d62cd7831796ac7c":[6,13,6], +"unionx_p_s_r___type.html#af14df16ea0690070c45b95f2116b7a0a":[6,13,8], +"unionx_p_s_r___type.html#af438e0f407357e914a70b5bd4d6a97c5":[6,13,0] +}; diff --git a/Libraries/CMSIS/Documentation/Core/html/open.png b/Libraries/CMSIS/Documentation/Core/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..3c4e2e0f30b6baebfaf3cdbab9e187d6a3ba62d8 GIT binary patch literal 122 zc%17D@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vj-D=#Ar*{o?{4I6FyLW1(7pXs z(3Ue3rY)7=c2P0c*s;v!W$ONveunzX-yZK-Ae8)?cc0Dg6Aby5^OuHh+_T}=N485A WJZD;E9&Q5~#^CAd=d#Wzp$Pz#A1k5& diff --git a/Libraries/CMSIS/Documentation/Core/html/pages.html b/Libraries/CMSIS/Documentation/Core/html/pages.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/pages.html @@ -0,0 +1,139 @@ + + + + + +CMSIS-CORE: Usage and Description + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/resize.js b/Libraries/CMSIS/Documentation/Core/html/resize.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/resize.js @@ -0,0 +1,93 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + }); +} + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search.css b/Libraries/CMSIS/Documentation/Core/html/search.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search.css @@ -0,0 +1,240 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#searchli { + float: right; + display: block; + width: 170px; + height: 24px; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 3px; + right: 0px; + width: 170px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:116px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_5f.html b/Libraries/CMSIS/Documentation/Core/html/search/all_5f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_5f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_5f.js b/Libraries/CMSIS/Documentation/Core/html/search/all_5f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_5f.js @@ -0,0 +1,110 @@ +var searchData= +[ + ['_5f_5fbkpt',['__BKPT',['../group__intrinsic___c_p_u__gr.html#ga92f5621626711931da71eaa8bf301af7',1,'Ref_cmInstr.txt']]], + ['_5f_5fclrex',['__CLREX',['../group__intrinsic___c_p_u__gr.html#ga354c5ac8870cc3dfb823367af9c4b412',1,'Ref_cmInstr.txt']]], + ['_5f_5fclz',['__CLZ',['../group__intrinsic___c_p_u__gr.html#ga90884c591ac5d73d6069334eba9d6c02',1,'Ref_cmInstr.txt']]], + ['_5f_5fdisable_5ffault_5firq',['__disable_fault_irq',['../group___core___register__gr.html#ga9d174f979b2f76fdb3228a9b338fd939',1,'Ref_CoreReg.txt']]], + ['_5f_5fdisable_5firq',['__disable_irq',['../group___core___register__gr.html#gaeb8e5f7564a8ea23678fe3c987b04013',1,'Ref_CoreReg.txt']]], + ['_5f_5fdmb',['__DMB',['../group__intrinsic___c_p_u__gr.html#gab1c9b393641dc2d397b3408fdbe72b96',1,'Ref_cmInstr.txt']]], + ['_5f_5fdsb',['__DSB',['../group__intrinsic___c_p_u__gr.html#gacb2a8ca6eae1ba4b31161578b720c199',1,'Ref_cmInstr.txt']]], + ['_5f_5fenable_5ffault_5firq',['__enable_fault_irq',['../group___core___register__gr.html#ga6575d37863cec5d334864f93b5b783bf',1,'Ref_CoreReg.txt']]], + ['_5f_5fenable_5firq',['__enable_irq',['../group___core___register__gr.html#ga0f98dfbd252b89d12564472dbeba9c27',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fapsr',['__get_APSR',['../group___core___register__gr.html#ga811c0012221ee918a75111ca84c4d5e7',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fbasepri',['__get_BASEPRI',['../group___core___register__gr.html#ga32da759f46e52c95bcfbde5012260667',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fcontrol',['__get_CONTROL',['../group___core___register__gr.html#ga963cf236b73219ce78e965deb01b81a7',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5ffaultmask',['__get_FAULTMASK',['../group___core___register__gr.html#gaa78e4e6bf619a65e9f01b4af13fed3a8',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5ffpscr',['__get_FPSCR',['../group___core___register__gr.html#gad6d7eca9ddd1d9072dd7b020cfe64905',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fipsr',['__get_IPSR',['../group___core___register__gr.html#ga2c32fc5c7f8f07fb3d436c6f6fe4e8c8',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fmsp',['__get_MSP',['../group___core___register__gr.html#gab898559392ba027814e5bbb5a98b38d2',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fprimask',['__get_PRIMASK',['../group___core___register__gr.html#ga799b5d9a2ae75e459264c8512c7c0e02',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fpsp',['__get_PSP',['../group___core___register__gr.html#ga914dfa8eff7ca53380dd54cf1d8bebd9',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fxpsr',['__get_xPSR',['../group___core___register__gr.html#ga732e08184154f44a617963cc65ff95bd',1,'Ref_CoreReg.txt']]], + ['_5f_5fisb',['__ISB',['../group__intrinsic___c_p_u__gr.html#ga93c09b4709394d81977300d5f84950e5',1,'Ref_cmInstr.txt']]], + ['_5f_5fldrexb',['__LDREXB',['../group__intrinsic___c_p_u__gr.html#ga9e3ac13d8dcf4331176b624cf6234a7e',1,'Ref_cmInstr.txt']]], + ['_5f_5fldrexh',['__LDREXH',['../group__intrinsic___c_p_u__gr.html#ga9feffc093d6f68b120d592a7a0d45a15',1,'Ref_cmInstr.txt']]], + ['_5f_5fldrexw',['__LDREXW',['../group__intrinsic___c_p_u__gr.html#gabd78840a0f2464905b7cec791ebc6a4c',1,'Ref_cmInstr.txt']]], + ['_5f_5fnop',['__NOP',['../group__intrinsic___c_p_u__gr.html#gac71fad9f0a91980fecafcb450ee0a63e',1,'Ref_cmInstr.txt']]], + ['_5f_5fpkhbt',['__PKHBT',['../group__intrinsic___s_i_m_d__gr.html#gaefb8ebf3a54e197464da1ff69a44f4b5',1,'Ref_cm4_simd.txt']]], + ['_5f_5fpkhtb',['__PKHTB',['../group__intrinsic___s_i_m_d__gr.html#gafd8fe4a6d87e947caa81a69ec36c1666',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqadd',['__QADD',['../group__intrinsic___s_i_m_d__gr.html#ga17b873f246c9f5e9355760ffef3dad4a',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqadd16',['__QADD16',['../group__intrinsic___s_i_m_d__gr.html#gae83a53ec04b496304bed6d9fe8f7461b',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqadd8',['__QADD8',['../group__intrinsic___s_i_m_d__gr.html#gaf2f5a9132dcfc6d01d34cd971c425713',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqasx',['__QASX',['../group__intrinsic___s_i_m_d__gr.html#ga87618799672e1511e33964bc71467eb3',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsax',['__QSAX',['../group__intrinsic___s_i_m_d__gr.html#gab41eb2b17512ab01d476fc9d5bd19520',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsub',['__QSUB',['../group__intrinsic___s_i_m_d__gr.html#ga3ba259f8f05a36f7b88b469a71ffc096',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsub16',['__QSUB16',['../group__intrinsic___s_i_m_d__gr.html#gad089605c16df9823a2c8aaa37777aae5',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsub8',['__QSUB8',['../group__intrinsic___s_i_m_d__gr.html#ga753493a65493880c28baa82c151a0d61',1,'Ref_cm4_simd.txt']]], + ['_5f_5frbit',['__RBIT',['../group__intrinsic___c_p_u__gr.html#gad6f9f297f6b91a995ee199fbc796b863',1,'Ref_cmInstr.txt']]], + ['_5f_5frev',['__REV',['../group__intrinsic___c_p_u__gr.html#ga4717abc17af5ba29b1e4c055e0a0d9b8',1,'Ref_cmInstr.txt']]], + ['_5f_5frev16',['__REV16',['../group__intrinsic___c_p_u__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26',1,'Ref_cmInstr.txt']]], + ['_5f_5frevsh',['__REVSH',['../group__intrinsic___c_p_u__gr.html#ga1ec006e6d79063363cb0c2a2e0b3adbe',1,'Ref_cmInstr.txt']]], + ['_5f_5fror',['__ROR',['../group__intrinsic___c_p_u__gr.html#gaf66beb577bb9d90424c3d1d7f684c024',1,'Ref_cmInstr.txt']]], + ['_5f_5fsadd16',['__SADD16',['../group__intrinsic___s_i_m_d__gr.html#gad0bf46373a1c05aabf64517e84be5984',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsadd8',['__SADD8',['../group__intrinsic___s_i_m_d__gr.html#gac20aa0f741d0a1494d58c531e38d5785',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsasx',['__SASX',['../group__intrinsic___s_i_m_d__gr.html#ga5845084fd99c872e98cf5553d554de2a',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsel',['__SEL',['../group__intrinsic___s_i_m_d__gr.html#gaf5448e591fe49161b6759b48aecb08fe',1,'Ref_cm4_simd.txt']]], + ['_5f_5fset_5fbasepri',['__set_BASEPRI',['../group___core___register__gr.html#ga360c73eb7ffb16088556f9278953b882',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fcontrol',['__set_CONTROL',['../group___core___register__gr.html#gac64d37e7ff9de06437f9fb94bbab8b6c',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5ffaultmask',['__set_FAULTMASK',['../group___core___register__gr.html#gaa5587cc09031053a40a35c14ec36078a',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5ffpscr',['__set_FPSCR',['../group___core___register__gr.html#ga6f26bd75ca7e3247f27b272acc10536b',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fmsp',['__set_MSP',['../group___core___register__gr.html#ga0bf9564ebc1613a8faba014275dac2a4',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fprimask',['__set_PRIMASK',['../group___core___register__gr.html#ga70b4e1a6c1c86eb913fb9d6e8400156f',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fpsp',['__set_PSP',['../group___core___register__gr.html#ga48e5853f417e17a8a65080f6a605b743',1,'Ref_CoreReg.txt']]], + ['_5f_5fsev',['__SEV',['../group__intrinsic___c_p_u__gr.html#ga3c34da7eb16496ae2668a5b95fa441e7',1,'Ref_cmInstr.txt']]], + ['_5f_5fshadd16',['__SHADD16',['../group__intrinsic___s_i_m_d__gr.html#ga15d8899a173effb8ad8c7268da32b60e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshadd8',['__SHADD8',['../group__intrinsic___s_i_m_d__gr.html#ga524575b442ea01aec10c762bf4d85fea',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshasx',['__SHASX',['../group__intrinsic___s_i_m_d__gr.html#gae0a649035f67627464fd80e7218c89d5',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshsax',['__SHSAX',['../group__intrinsic___s_i_m_d__gr.html#gafadbd89c36b5addcf1ca10dd392db3e9',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshsub16',['__SHSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga31328467f0f91b8ff9ae9a01682ad3bf',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshsub8',['__SHSUB8',['../group__intrinsic___s_i_m_d__gr.html#gac3ec7215b354d925a239f3b31df2b77b',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlad',['__SMLAD',['../group__intrinsic___s_i_m_d__gr.html#gae0c86f3298532183f3a29f5bb454d354',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmladx',['__SMLADX',['../group__intrinsic___s_i_m_d__gr.html#ga9c286d330f4fb29b256335add91eec9f',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlald',['__SMLALD',['../group__intrinsic___s_i_m_d__gr.html#gad80e9b20c1736fd798f897362273a146',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlaldx',['__SMLALDX',['../group__intrinsic___s_i_m_d__gr.html#gad1adad1b3f2667328cc0db6c6b4f41cf',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsd',['__SMLSD',['../group__intrinsic___s_i_m_d__gr.html#gaf4350af7f2030c36f43b2c104a9d16cd',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsdx',['__SMLSDX',['../group__intrinsic___s_i_m_d__gr.html#ga5290ce5564770ad124910d2583dc0a9e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsld',['__SMLSLD',['../group__intrinsic___s_i_m_d__gr.html#ga5611f7314e0c8f53da377918dfbf42ee',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsldx',['__SMLSLDX',['../group__intrinsic___s_i_m_d__gr.html#ga83e69ef81057d3cbd06863d729385187',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmmla',['__SMMLA',['../group__intrinsic___s_i_m_d__gr.html#gaea60757232f740ec6b09980eebb614ff',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmuad',['__SMUAD',['../group__intrinsic___s_i_m_d__gr.html#gae326e368a1624d2dfb4b97c626939257',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmuadx',['__SMUADX',['../group__intrinsic___s_i_m_d__gr.html#gaee6390f86965cb662500f690b0012092',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmusd',['__SMUSD',['../group__intrinsic___s_i_m_d__gr.html#ga039142a5368840683cf329cb55b73f84',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmusdx',['__SMUSDX',['../group__intrinsic___s_i_m_d__gr.html#gabb5bcba694bf17b141c32e6a8474f60e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssat',['__SSAT',['../group__intrinsic___c_p_u__gr.html#ga7d9dddda18805abbf51ac21c639845e1',1,'Ref_cmInstr.txt']]], + ['_5f_5fssat16',['__SSAT16',['../group__intrinsic___s_i_m_d__gr.html#ga95e666b82216066bf6064d1244e6883c',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssax',['__SSAX',['../group__intrinsic___s_i_m_d__gr.html#ga9d3bc5c539f9bd50f7d59ffa37ac6a65',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssub16',['__SSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga4262f73be75efbac6b46ab7c71aa6cbc',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssub8',['__SSUB8',['../group__intrinsic___s_i_m_d__gr.html#gaba63bb52e1e93fb527e26f3d474da12e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fstrexb',['__STREXB',['../group__intrinsic___c_p_u__gr.html#gaab6482d1f59f59e2b6b7efc1af391c99',1,'Ref_cmInstr.txt']]], + ['_5f_5fstrexh',['__STREXH',['../group__intrinsic___c_p_u__gr.html#ga0a354bdf71caa52f081a4a54e84c8d2a',1,'Ref_cmInstr.txt']]], + ['_5f_5fstrexw',['__STREXW',['../group__intrinsic___c_p_u__gr.html#ga335deaaa7991490e1450cb7d1e4c5197',1,'Ref_cmInstr.txt']]], + ['_5f_5fsxtab16',['__SXTAB16',['../group__intrinsic___s_i_m_d__gr.html#gac540b4fc41d30778ba102d2a65db5589',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsxtb16',['__SXTB16',['../group__intrinsic___s_i_m_d__gr.html#ga38dce3dd13ba212e80ec3cff4abeb11a',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuadd16',['__UADD16',['../group__intrinsic___s_i_m_d__gr.html#gaa1160f0cf76d6aa292fbad54a1aa6b74',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuadd8',['__UADD8',['../group__intrinsic___s_i_m_d__gr.html#gab3d7fd00d113b20fb3741a17394da762',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuasx',['__UASX',['../group__intrinsic___s_i_m_d__gr.html#ga980353d2c72ebb879282e49f592fddc0',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhadd16',['__UHADD16',['../group__intrinsic___s_i_m_d__gr.html#gabd0b0e2da2e6364e176d051687702b86',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhadd8',['__UHADD8',['../group__intrinsic___s_i_m_d__gr.html#ga3a14e5485e59bf0f23595b7c2a94eb0b',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhasx',['__UHASX',['../group__intrinsic___s_i_m_d__gr.html#ga028f0732b961fb6e5209326fb3855261',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhsax',['__UHSAX',['../group__intrinsic___s_i_m_d__gr.html#ga09e129e6613329aab87c89f1108b7ed7',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhsub16',['__UHSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga1f7545b8dc33bb97982731cb9d427a69',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhsub8',['__UHSUB8',['../group__intrinsic___s_i_m_d__gr.html#ga48a55df1c3e73923b73819d7c19b392d',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqadd16',['__UQADD16',['../group__intrinsic___s_i_m_d__gr.html#ga9e2cc5117e79578a08b25f1e89022966',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqadd8',['__UQADD8',['../group__intrinsic___s_i_m_d__gr.html#gafa9af218db3934a692fb06fa728d8031',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqasx',['__UQASX',['../group__intrinsic___s_i_m_d__gr.html#ga5eff3ae5eabcd73f3049996ca391becb',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqsax',['__UQSAX',['../group__intrinsic___s_i_m_d__gr.html#gadecfdfabc328d8939d49d996f2fd4482',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqsub16',['__UQSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga5ec4e2e231d15e5c692233feb3806187',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqsub8',['__UQSUB8',['../group__intrinsic___s_i_m_d__gr.html#ga9736fe816aec74fe886e7fb949734eab',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusad8',['__USAD8',['../group__intrinsic___s_i_m_d__gr.html#gac8855c07044239ea775c8128013204f0',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusada8',['__USADA8',['../group__intrinsic___s_i_m_d__gr.html#gad032bd21f013c5d29f5fcb6b0f02bc3f',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusat',['__USAT',['../group__intrinsic___c_p_u__gr.html#ga76bbe4374a5912362866cdc1ded4064a',1,'Ref_cmInstr.txt']]], + ['_5f_5fusat16',['__USAT16',['../group__intrinsic___s_i_m_d__gr.html#ga967f516afff5900cf30f1a81907cdd89',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusax',['__USAX',['../group__intrinsic___s_i_m_d__gr.html#ga578a082747436772c482c96d7a58e45e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusub16',['__USUB16',['../group__intrinsic___s_i_m_d__gr.html#ga9f2b77e11fc4a77b26c36c423ed45b4e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusub8',['__USUB8',['../group__intrinsic___s_i_m_d__gr.html#gacb7257dc3b8e9acbd0ef0e31ff87d4b8',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuxtab16',['__UXTAB16',['../group__intrinsic___s_i_m_d__gr.html#gad25ce96db0f17096bbd815f4817faf09',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuxtb16',['__UXTB16',['../group__intrinsic___s_i_m_d__gr.html#gab41d713653b16f8d9fef44d14e397228',1,'Ref_cm4_simd.txt']]], + ['_5f_5fwfe',['__WFE',['../group__intrinsic___c_p_u__gr.html#gad3efec76c3bfa2b8528ded530386c563',1,'Ref_cmInstr.txt']]], + ['_5f_5fwfi',['__WFI',['../group__intrinsic___c_p_u__gr.html#gaed91dfbf3d7d7b7fba8d912fcbeaad88',1,'Ref_cmInstr.txt']]], + ['_5freserved0',['_reserved0',['../union_a_p_s_r___type.html#afbce95646fd514c10aa85ec0a33db728',1,'APSR_Type::_reserved0()'],['../union_i_p_s_r___type.html#ad2eb0a06de4f03f58874a727716aa9aa',1,'IPSR_Type::_reserved0()'],['../unionx_p_s_r___type.html#af438e0f407357e914a70b5bd4d6a97c5',1,'xPSR_Type::_reserved0()'],['../union_c_o_n_t_r_o_l___type.html#af8c314273a1e4970a5671bd7f8184f50',1,'CONTROL_Type::_reserved0()']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_61.html b/Libraries/CMSIS/Documentation/Core/html/search/all_61.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_61.js b/Libraries/CMSIS/Documentation/Core/html/search/all_61.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_61.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['acpr',['ACPR',['../struct_t_p_i___type.html#ad75832a669eb121f6fce3c28d36b7fab',1,'TPI_Type']]], + ['actlr',['ACTLR',['../struct_s_cn_s_c_b___type.html#aacadedade30422fed705e8dfc8e6cd8d',1,'SCnSCB_Type']]], + ['adr',['ADR',['../struct_s_c_b___type.html#aaedf846e435ed05c68784b40d3db2bf2',1,'SCB_Type']]], + ['afsr',['AFSR',['../struct_s_c_b___type.html#aeb77053c84f49c261ab5b8374e8958ef',1,'SCB_Type']]], + ['aircr',['AIRCR',['../struct_s_c_b___type.html#a6ed3c9064013343ea9fd0a73a734f29d',1,'SCB_Type']]], + ['apsr_5ftype',['APSR_Type',['../union_a_p_s_r___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_62.html b/Libraries/CMSIS/Documentation/Core/html/search/all_62.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_62.js b/Libraries/CMSIS/Documentation/Core/html/search/all_62.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_62.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['b',['b',['../union_a_p_s_r___type.html#a7dbc79a057ded4b11ca5323fc2d5ab14',1,'APSR_Type::b()'],['../union_i_p_s_r___type.html#add0d6497bd50c25569ea22b48a03ec50',1,'IPSR_Type::b()'],['../unionx_p_s_r___type.html#a3b1063bb5cdad67e037cba993b693b70',1,'xPSR_Type::b()'],['../union_c_o_n_t_r_o_l___type.html#adc6a38ab2980d0e9577b5a871da14eb9',1,'CONTROL_Type::b()']]], + ['bfar',['BFAR',['../struct_s_c_b___type.html#a31f79afe86c949c9862e7d5fce077c3a',1,'SCB_Type']]], + ['busfault_5firqn',['BusFault_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8693500eff174f16119e96234fee73af',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_63.html b/Libraries/CMSIS/Documentation/Core/html/search/all_63.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_63.js b/Libraries/CMSIS/Documentation/Core/html/search/all_63.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_63.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['c',['C',['../union_a_p_s_r___type.html#a86e2c5b891ecef1ab55b1edac0da79a6',1,'APSR_Type::C()'],['../unionx_p_s_r___type.html#a40213a6b5620410cac83b0d89564609d',1,'xPSR_Type::C()']]], + ['calib',['CALIB',['../struct_sys_tick___type.html#a9c9eda0ea6f6a7c904d2d75a6963e238',1,'SysTick_Type']]], + ['ccr',['CCR',['../struct_s_c_b___type.html#a6d273c6b90bad15c91dfbbad0f6e92d8',1,'SCB_Type']]], + ['cfsr',['CFSR',['../struct_s_c_b___type.html#a2f94bf549b16fdeb172352e22309e3c4',1,'SCB_Type']]], + ['claimclr',['CLAIMCLR',['../struct_t_p_i___type.html#a44efa6045512c8d4da64b0623f7a43ad',1,'TPI_Type']]], + ['claimset',['CLAIMSET',['../struct_t_p_i___type.html#a2e4d5a07fabd771fa942a171230a0a84',1,'TPI_Type']]], + ['comp0',['COMP0',['../struct_d_w_t___type.html#a7cf71ff4b30a8362690fddd520763904',1,'DWT_Type']]], + ['comp1',['COMP1',['../struct_d_w_t___type.html#a4a5bb70a5ce3752bd628d5ce5658cb0c',1,'DWT_Type']]], + ['comp2',['COMP2',['../struct_d_w_t___type.html#a8927aedbe9fd6bdae8983088efc83332',1,'DWT_Type']]], + ['comp3',['COMP3',['../struct_d_w_t___type.html#a3df15697eec279dbbb4b4e9d9ae8b62f',1,'DWT_Type']]], + ['control_5ftype',['CONTROL_Type',['../union_c_o_n_t_r_o_l___type.html',1,'']]], + ['core_20register_20access',['Core Register Access',['../group___core___register__gr.html',1,'']]], + ['coredebug_5ftype',['CoreDebug_Type',['../struct_core_debug___type.html',1,'']]], + ['cpacr',['CPACR',['../struct_s_c_b___type.html#af460b56ce524a8e3534173f0aee78e85',1,'SCB_Type']]], + ['cpicnt',['CPICNT',['../struct_d_w_t___type.html#a88cca2ab8eb1b5b507817656ceed89fc',1,'DWT_Type']]], + ['cpuid',['CPUID',['../struct_s_c_b___type.html#afa7a9ee34dfa1da0b60b4525da285032',1,'SCB_Type']]], + ['cspsr',['CSPSR',['../struct_t_p_i___type.html#aa723ef3d38237aa2465779b3cc73a94a',1,'TPI_Type']]], + ['ctrl',['CTRL',['../struct_sys_tick___type.html#af2ad94ac83e5d40fc6e34884bc1bec5f',1,'SysTick_Type::CTRL()'],['../struct_m_p_u___type.html#aab33593671948b93b1c0908d78779328',1,'MPU_Type::CTRL()'],['../struct_d_w_t___type.html#a37964d64a58551b69ce4c8097210d37d',1,'DWT_Type::CTRL()']]], + ['cyccnt',['CYCCNT',['../struct_d_w_t___type.html#a71680298e85e96e57002f87e7ab78fd4',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_64.html b/Libraries/CMSIS/Documentation/Core/html/search/all_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_64.js b/Libraries/CMSIS/Documentation/Core/html/search/all_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_64.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['dcrdr',['DCRDR',['../struct_core_debug___type.html#ab8f4bb076402b61f7be6308075a789c9',1,'CoreDebug_Type']]], + ['dcrsr',['DCRSR',['../struct_core_debug___type.html#afefa84bce7497652353a1b76d405d983',1,'CoreDebug_Type']]], + ['debugmonitor_5firqn',['DebugMonitor_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8e033fcef7aed98a31c60a7de206722c',1,'Ref_NVIC.txt']]], + ['demcr',['DEMCR',['../struct_core_debug___type.html#a5cdd51dbe3ebb7041880714430edd52d',1,'CoreDebug_Type']]], + ['device_20header_20file_20_3cdevice_2eh_3e',['Device Header File <device.h>',['../device_h_pg.html',1,'Templates_pg']]], + ['devid',['DEVID',['../struct_t_p_i___type.html#a4b2e0d680cf7e26728ca8966363a938d',1,'TPI_Type']]], + ['devtype',['DEVTYPE',['../struct_t_p_i___type.html#a16d12c5b1e12f764fa3ec4a51c5f0f35',1,'TPI_Type']]], + ['dfr',['DFR',['../struct_s_c_b___type.html#a586a5225467262b378c0f231ccc77f86',1,'SCB_Type']]], + ['dfsr',['DFSR',['../struct_s_c_b___type.html#ad7d61d9525fa9162579c3da0b87bff8d',1,'SCB_Type']]], + ['dhcsr',['DHCSR',['../struct_core_debug___type.html#a25c14c022c73a725a1736e903431095d',1,'CoreDebug_Type']]], + ['dwt_5ftype',['DWT_Type',['../struct_d_w_t___type.html',1,'']]], + ['debug_20access',['Debug Access',['../group___i_t_m___debug__gr.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_65.html b/Libraries/CMSIS/Documentation/Core/html/search/all_65.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_65.js b/Libraries/CMSIS/Documentation/Core/html/search/all_65.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_65.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['exccnt',['EXCCNT',['../struct_d_w_t___type.html#ac0801a2328f3431e4706fed91c828f82',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_66.html b/Libraries/CMSIS/Documentation/Core/html/search/all_66.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_66.js b/Libraries/CMSIS/Documentation/Core/html/search/all_66.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_66.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['ffcr',['FFCR',['../struct_t_p_i___type.html#a3eb42d69922e340037692424a69da880',1,'TPI_Type']]], + ['ffsr',['FFSR',['../struct_t_p_i___type.html#ae67849b2c1016fe6ef9095827d16cddd',1,'TPI_Type']]], + ['fifo0',['FIFO0',['../struct_t_p_i___type.html#ae91ff529e87d8e234343ed31bcdc4f10',1,'TPI_Type']]], + ['fifo1',['FIFO1',['../struct_t_p_i___type.html#aebaa9b8dd27f8017dd4f92ecf32bac8e',1,'TPI_Type']]], + ['foldcnt',['FOLDCNT',['../struct_d_w_t___type.html#a35f2315f870a574e3e6958face6584ab',1,'DWT_Type']]], + ['fpca',['FPCA',['../union_c_o_n_t_r_o_l___type.html#ac62cfff08e6f055e0101785bad7094cd',1,'CONTROL_Type']]], + ['fpcar',['FPCAR',['../struct_f_p_u___type.html#aa48253f088dc524de80c42fbc995f66b',1,'FPU_Type']]], + ['fpccr',['FPCCR',['../struct_f_p_u___type.html#a22054423086a3daf2077fb2f3fe2a8b8',1,'FPU_Type']]], + ['fpdscr',['FPDSCR',['../struct_f_p_u___type.html#a4d58ef3ebea69a5ec5acd8c90a9941b6',1,'FPU_Type']]], + ['fpu_5ftype',['FPU_Type',['../struct_f_p_u___type.html',1,'']]], + ['fscr',['FSCR',['../struct_t_p_i___type.html#a377b78fe804f327e6f8b3d0f37e7bfef',1,'TPI_Type']]], + ['function0',['FUNCTION0',['../struct_d_w_t___type.html#a5fbd9947d110cc168941f6acadc4a729',1,'DWT_Type']]], + ['function1',['FUNCTION1',['../struct_d_w_t___type.html#a3345a33476ee58e165447a3212e6d747',1,'DWT_Type']]], + ['function2',['FUNCTION2',['../struct_d_w_t___type.html#acba1654190641a3617fcc558b5e3f87b',1,'DWT_Type']]], + ['function3',['FUNCTION3',['../struct_d_w_t___type.html#a80bd242fc05ca80f9db681ce4d82e890',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_68.html b/Libraries/CMSIS/Documentation/Core/html/search/all_68.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_68.js b/Libraries/CMSIS/Documentation/Core/html/search/all_68.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_68.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hardfault_5firqn',['HardFault_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ab1a222a34a32f0ef5ac65e714efc1f85',1,'Ref_NVIC.txt']]], + ['hfsr',['HFSR',['../struct_s_c_b___type.html#a7bed53391da4f66d8a2a236a839d4c3d',1,'SCB_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_69.html b/Libraries/CMSIS/Documentation/Core/html/search/all_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_69.js b/Libraries/CMSIS/Documentation/Core/html/search/all_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_69.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['iabr',['IABR',['../struct_n_v_i_c___type.html#a33e917b381e08dabe4aa5eb2881a7c11',1,'NVIC_Type']]], + ['icer',['ICER',['../struct_n_v_i_c___type.html#a1965a2e68b61d2e2009621f6949211a5',1,'NVIC_Type']]], + ['icpr',['ICPR',['../struct_n_v_i_c___type.html#a46241be64208436d35c9a4f8552575c5',1,'NVIC_Type']]], + ['icsr',['ICSR',['../struct_s_c_b___type.html#a3e66570ab689d28aebefa7e84e85dc4a',1,'SCB_Type']]], + ['ictr',['ICTR',['../struct_s_cn_s_c_b___type.html#ad99a25f5d4c163d9005ca607c24f6a98',1,'SCnSCB_Type']]], + ['intrinsic_20functions_20for_20cpu_20instructions',['Intrinsic Functions for CPU Instructions',['../group__intrinsic___c_p_u__gr.html',1,'']]], + ['intrinsic_20functions_20for_20simd_20instructions_20_5bonly_20cortex_2dm4_5d',['Intrinsic Functions for SIMD Instructions [only Cortex-M4]',['../group__intrinsic___s_i_m_d__gr.html',1,'']]], + ['ip',['IP',['../struct_n_v_i_c___type.html#a6524789fedb94623822c3e0a47f3d06c',1,'NVIC_Type']]], + ['ipsr_5ftype',['IPSR_Type',['../union_i_p_s_r___type.html',1,'']]], + ['irqn_5ftype',['IRQn_Type',['../group___n_v_i_c__gr.html#ga7e1129cd8a196f4284d41db3e82ad5c8',1,'Ref_NVIC.txt']]], + ['isar',['ISAR',['../struct_s_c_b___type.html#acee8e458f054aac964268f4fe647ea4f',1,'SCB_Type']]], + ['iser',['ISER',['../struct_n_v_i_c___type.html#af90c80b7c2b48e248780b3781e0df80f',1,'NVIC_Type']]], + ['ispr',['ISPR',['../struct_n_v_i_c___type.html#acf8e38fc2e97316242ddeb7ea959ab90',1,'NVIC_Type']]], + ['isr',['ISR',['../union_i_p_s_r___type.html#ab46e5f1b2f4d17cfb9aca4fffcbb2fa5',1,'IPSR_Type::ISR()'],['../unionx_p_s_r___type.html#a3e9120dcf1a829fc8d2302b4d0673970',1,'xPSR_Type::ISR()']]], + ['it',['IT',['../unionx_p_s_r___type.html#a3200966922a194d84425e2807a7f1328',1,'xPSR_Type']]], + ['itatbctr0',['ITATBCTR0',['../struct_t_p_i___type.html#a20ca7fad4d4009c242f20a7b4a44b7d0',1,'TPI_Type']]], + ['itatbctr2',['ITATBCTR2',['../struct_t_p_i___type.html#a176d991adb4c022bd5b982a9f8fa6a1d',1,'TPI_Type']]], + ['itctrl',['ITCTRL',['../struct_t_p_i___type.html#ab49c2cb6b5fe082746a444e07548c198',1,'TPI_Type']]], + ['itm_5fcheckchar',['ITM_CheckChar',['../group___i_t_m___debug__gr.html#ga7f9bbabd9756d1a7eafb2d9bf27e0535',1,'Ref_Debug.txt']]], + ['itm_5freceivechar',['ITM_ReceiveChar',['../group___i_t_m___debug__gr.html#ga37b8f41cae703b5ff6947e271065558c',1,'Ref_Debug.txt']]], + ['itm_5frxbuffer',['ITM_RxBuffer',['../group___i_t_m___debug__gr.html#ga12e68e55a7badc271b948d6c7230b2a8',1,'Ref_Debug.txt']]], + ['itm_5fsendchar',['ITM_SendChar',['../group___i_t_m___debug__gr.html#gaaa7c716331f74d644bf6bf25cd3392d1',1,'Ref_Debug.txt']]], + ['itm_5ftype',['ITM_Type',['../struct_i_t_m___type.html',1,'']]], + ['interrupts_20and_20exceptions_20_28nvic_29',['Interrupts and Exceptions (NVIC)',['../group___n_v_i_c__gr.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6c.html b/Libraries/CMSIS/Documentation/Core/html/search/all_6c.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6c.js b/Libraries/CMSIS/Documentation/Core/html/search/all_6c.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['load',['LOAD',['../struct_sys_tick___type.html#ae7bc9d3eac1147f3bba8d73a8395644f',1,'SysTick_Type']]], + ['lsucnt',['LSUCNT',['../struct_d_w_t___type.html#aeba92e6c7fd3de4ba06bfd94f47f5b35',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6d.html b/Libraries/CMSIS/Documentation/Core/html/search/all_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6d.js b/Libraries/CMSIS/Documentation/Core/html/search/all_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['misra_2dc_3a2004_20compliance_20exceptions',['MISRA-C:2004 Compliance Exceptions',['../_c_o_r_e__m_i_s_r_a__exceptions_pg.html',1,'']]], + ['mask0',['MASK0',['../struct_d_w_t___type.html#a5bb1c17fc754180cc197b874d3d8673f',1,'DWT_Type']]], + ['mask1',['MASK1',['../struct_d_w_t___type.html#a0c684438a24f8c927e6e01c0e0a605ef',1,'DWT_Type']]], + ['mask2',['MASK2',['../struct_d_w_t___type.html#a8ecdc8f0d917dac86b0373532a1c0e2e',1,'DWT_Type']]], + ['mask3',['MASK3',['../struct_d_w_t___type.html#ae3f01137a8d28c905ddefe7333547fba',1,'DWT_Type']]], + ['memorymanagement_5firqn',['MemoryManagement_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a33ff1cf7098de65d61b6354fee6cd5aa',1,'Ref_NVIC.txt']]], + ['misra_2etxt',['MISRA.txt',['../_m_i_s_r_a_8txt.html',1,'']]], + ['mmfar',['MMFAR',['../struct_s_c_b___type.html#ac49b24b3f222508464f111772f2c44dd',1,'SCB_Type']]], + ['mmfr',['MMFR',['../struct_s_c_b___type.html#aec2f8283d2737c6897188568a4214976',1,'SCB_Type']]], + ['mpu_5ftype',['MPU_Type',['../struct_m_p_u___type.html',1,'']]], + ['mvfr0',['MVFR0',['../struct_f_p_u___type.html#a135577b0a76bd3164be2a02f29ca46f1',1,'FPU_Type']]], + ['mvfr1',['MVFR1',['../struct_f_p_u___type.html#a776e8625853e1413c4e8330ec85c256d',1,'FPU_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6e.html b/Libraries/CMSIS/Documentation/Core/html/search/all_6e.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6e.js b/Libraries/CMSIS/Documentation/Core/html/search/all_6e.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6e.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['n',['N',['../union_a_p_s_r___type.html#a7e7bbba9b00b0bb3283dc07f1abe37e0',1,'APSR_Type::N()'],['../unionx_p_s_r___type.html#a2db9a52f6d42809627d1a7a607c5dbc5',1,'xPSR_Type::N()']]], + ['nonmaskableint_5firqn',['NonMaskableInt_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ade177d9c70c89e084093024b932a4e30',1,'Ref_NVIC.txt']]], + ['npriv',['nPRIV',['../union_c_o_n_t_r_o_l___type.html#a35c1732cf153b7b5c4bd321cf1de9605',1,'CONTROL_Type']]], + ['nvic_5fclearpendingirq',['NVIC_ClearPendingIRQ',['../group___n_v_i_c__gr.html#ga382ad6bedd6eecfdabd1b94dd128a01a',1,'Ref_NVIC.txt']]], + ['nvic_5fdecodepriority',['NVIC_DecodePriority',['../group___n_v_i_c__gr.html#gad3cbca1be7a4726afa9448a9acd89377',1,'Ref_NVIC.txt']]], + ['nvic_5fdisableirq',['NVIC_DisableIRQ',['../group___n_v_i_c__gr.html#ga736ba13a76eb37ef6e2c253be8b0331c',1,'Ref_NVIC.txt']]], + ['nvic_5fenableirq',['NVIC_EnableIRQ',['../group___n_v_i_c__gr.html#ga530ad9fda2ed1c8b70e439ecfe80591f',1,'Ref_NVIC.txt']]], + ['nvic_5fencodepriority',['NVIC_EncodePriority',['../group___n_v_i_c__gr.html#ga0688c59605b119c53c71b2505ab23eb5',1,'Ref_NVIC.txt']]], + ['nvic_5fgetactive',['NVIC_GetActive',['../group___n_v_i_c__gr.html#gadf4252e600661fd762cfc0d1a9f5b892',1,'Ref_NVIC.txt']]], + ['nvic_5fgetpendingirq',['NVIC_GetPendingIRQ',['../group___n_v_i_c__gr.html#ga95a8329a680b051ecf3ee8f516acc662',1,'Ref_NVIC.txt']]], + ['nvic_5fgetpriority',['NVIC_GetPriority',['../group___n_v_i_c__gr.html#gab18fb9f6c5f4c70fdd73047f0f7c8395',1,'Ref_NVIC.txt']]], + ['nvic_5fgetprioritygrouping',['NVIC_GetPriorityGrouping',['../group___n_v_i_c__gr.html#gaa81b19849367d3cdb95ac108c500fa78',1,'Ref_NVIC.txt']]], + ['nvic_5fsetpendingirq',['NVIC_SetPendingIRQ',['../group___n_v_i_c__gr.html#ga3b885147ef9965ecede49614de8df9d2',1,'Ref_NVIC.txt']]], + ['nvic_5fsetpriority',['NVIC_SetPriority',['../group___n_v_i_c__gr.html#ga5bb7f43ad92937c039dee3d36c3c2798',1,'Ref_NVIC.txt']]], + ['nvic_5fsetprioritygrouping',['NVIC_SetPriorityGrouping',['../group___n_v_i_c__gr.html#gad78f447e891789b4d8f2e5b21eeda354',1,'Ref_NVIC.txt']]], + ['nvic_5fsystemreset',['NVIC_SystemReset',['../group___n_v_i_c__gr.html#ga1b47d17e90b6a03e7bd1ec6a0d549b46',1,'Ref_NVIC.txt']]], + ['nvic_5ftype',['NVIC_Type',['../struct_n_v_i_c___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6f.html b/Libraries/CMSIS/Documentation/Core/html/search/all_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_6f.js b/Libraries/CMSIS/Documentation/Core/html/search/all_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_6f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['overview',['Overview',['../index.html',1,'']]], + ['overview_2etxt',['Overview.txt',['../_overview_8txt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_70.html b/Libraries/CMSIS/Documentation/Core/html/search/all_70.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_70.js b/Libraries/CMSIS/Documentation/Core/html/search/all_70.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_70.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['pcsr',['PCSR',['../struct_d_w_t___type.html#abc5ae11d98da0ad5531a5e979a3c2ab5',1,'DWT_Type']]], + ['pendsv_5firqn',['PendSV_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a03c3cc89984928816d81793fc7bce4a2',1,'Ref_NVIC.txt']]], + ['peripheral_20access',['Peripheral Access',['../group__peripheral__gr.html',1,'']]], + ['pfr',['PFR',['../struct_s_c_b___type.html#a3f51c43f952f3799951d0c54e76b0cb7',1,'SCB_Type']]], + ['port',['PORT',['../struct_i_t_m___type.html#afe056e8c8f8c5519d9b47611fa3a4c46',1,'ITM_Type']]], + ['pvd_5fstm_5firqn',['PVD_STM_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a853e0f318108110e0527f29733d11f86',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_71.html b/Libraries/CMSIS/Documentation/Core/html/search/all_71.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_71.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_71.js b/Libraries/CMSIS/Documentation/Core/html/search/all_71.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_71.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['q',['Q',['../union_a_p_s_r___type.html#a22d10913489d24ab08bd83457daa88de',1,'APSR_Type::Q()'],['../unionx_p_s_r___type.html#add7cbd2b0abd8954d62cd7831796ac7c',1,'xPSR_Type::Q()']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_72.html b/Libraries/CMSIS/Documentation/Core/html/search/all_72.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_72.js b/Libraries/CMSIS/Documentation/Core/html/search/all_72.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_72.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['rasr',['RASR',['../struct_m_p_u___type.html#adc65d266d15ce9ba57b3d127e8267f03',1,'MPU_Type']]], + ['rasr_5fa1',['RASR_A1',['../struct_m_p_u___type.html#a94222f9a8637b5329016e18f08af7185',1,'MPU_Type']]], + ['rasr_5fa2',['RASR_A2',['../struct_m_p_u___type.html#a0aac7727a6225c6aa00627c36d51d014',1,'MPU_Type']]], + ['rasr_5fa3',['RASR_A3',['../struct_m_p_u___type.html#aced0b908173b9a4bae4f59452f0cdb0d',1,'MPU_Type']]], + ['rbar',['RBAR',['../struct_m_p_u___type.html#a3f2e2448a77aadacd9f394f6c4c708d9',1,'MPU_Type']]], + ['rbar_5fa1',['RBAR_A1',['../struct_m_p_u___type.html#a4dbcffa0a71c31e521b645b34b40e639',1,'MPU_Type']]], + ['rbar_5fa2',['RBAR_A2',['../struct_m_p_u___type.html#a8703a00626dba046b841c0db6c78c395',1,'MPU_Type']]], + ['rbar_5fa3',['RBAR_A3',['../struct_m_p_u___type.html#a9fda17c37b85ef317c7c8688ff8c5804',1,'MPU_Type']]], + ['ref_5fcm4_5fsimd_2etxt',['Ref_cm4_simd.txt',['../_ref__cm4__simd_8txt.html',1,'']]], + ['ref_5fcminstr_2etxt',['Ref_cmInstr.txt',['../_ref__cm_instr_8txt.html',1,'']]], + ['ref_5fcorereg_2etxt',['Ref_CoreReg.txt',['../_ref___core_reg_8txt.html',1,'']]], + ['ref_5fdatastructs_2etxt',['Ref_DataStructs.txt',['../_ref___data_structs_8txt.html',1,'']]], + ['ref_5fdebug_2etxt',['Ref_Debug.txt',['../_ref___debug_8txt.html',1,'']]], + ['ref_5fnvic_2etxt',['Ref_NVIC.txt',['../_ref___n_v_i_c_8txt.html',1,'']]], + ['ref_5fperipheral_2etxt',['Ref_Peripheral.txt',['../_ref___peripheral_8txt.html',1,'']]], + ['ref_5fsystemandclock_2etxt',['Ref_SystemAndClock.txt',['../_ref___system_and_clock_8txt.html',1,'']]], + ['ref_5fsystick_2etxt',['Ref_Systick.txt',['../_ref___systick_8txt.html',1,'']]], + ['regmap_5fcmsis2arm_5fdoc_2etxt',['RegMap_CMSIS2ARM_Doc.txt',['../_reg_map___c_m_s_i_s2_a_r_m___doc_8txt.html',1,'']]], + ['register_20mapping',['Register Mapping',['../_reg_map_pg.html',1,'']]], + ['reserved0',['RESERVED0',['../struct_n_v_i_c___type.html#a2de17698945ea49abd58a2d45bdc9c80',1,'NVIC_Type::RESERVED0()'],['../struct_s_c_b___type.html#ac89a5d9901e3748d22a7090bfca2bee6',1,'SCB_Type::RESERVED0()'],['../struct_s_cn_s_c_b___type.html#afe1d5fd2966d5062716613b05c8d0ae1',1,'SCnSCB_Type::RESERVED0()'],['../struct_i_t_m___type.html#a2c5ae30385b5f370d023468ea9914c0e',1,'ITM_Type::RESERVED0()'],['../struct_f_p_u___type.html#a7b2967b069046c8544adbbc1db143a36',1,'FPU_Type::RESERVED0()'],['../struct_d_w_t___type.html#addd893d655ed90d40705b20170daac59',1,'DWT_Type::RESERVED0()'],['../struct_t_p_i___type.html#af143c5e8fc9a3b2be2878e9c1f331aa9',1,'TPI_Type::RESERVED0()']]], + ['reserved1',['RESERVED1',['../struct_i_t_m___type.html#afffce5b93bbfedbaee85357d0b07ebce',1,'ITM_Type::RESERVED1()'],['../struct_d_w_t___type.html#a069871233a8c1df03521e6d7094f1de4',1,'DWT_Type::RESERVED1()'],['../struct_t_p_i___type.html#ac3956fe93987b725d89d3be32738da12',1,'TPI_Type::RESERVED1()']]], + ['reserved2',['RESERVED2',['../struct_n_v_i_c___type.html#a0953af43af8ec7fd5869a1d826ce5b72',1,'NVIC_Type::RESERVED2()'],['../struct_i_t_m___type.html#af56b2f07bc6b42cd3e4d17e1b27cff7b',1,'ITM_Type::RESERVED2()'],['../struct_d_w_t___type.html#a8556ca1c32590517602d92fe0cd55738',1,'DWT_Type::RESERVED2()'],['../struct_t_p_i___type.html#ac7bbb92e6231b9b38ac483f7d161a096',1,'TPI_Type::RESERVED2()']]], + ['reserved3',['RESERVED3',['../struct_n_v_i_c___type.html#a9dd330835dbf21471e7b5be8692d77ab',1,'NVIC_Type::RESERVED3()'],['../struct_t_p_i___type.html#a31700c8cdd26e4c094db72af33d9f24c',1,'TPI_Type::RESERVED3()']]], + ['reserved4',['RESERVED4',['../struct_n_v_i_c___type.html#a5c0e5d507ac3c1bd5cdaaf9bbd177790',1,'NVIC_Type::RESERVED4()'],['../struct_t_p_i___type.html#a684071216fafee4e80be6aaa932cec46',1,'TPI_Type::RESERVED4()']]], + ['reserved5',['RESERVED5',['../struct_n_v_i_c___type.html#a4f753b4f824270175af045ac99bc12e8',1,'NVIC_Type::RESERVED5()'],['../struct_t_p_i___type.html#a3f80dd93f6bab6524603a7aa58de9a30',1,'TPI_Type::RESERVED5()']]], + ['reserved7',['RESERVED7',['../struct_t_p_i___type.html#a476ca23fbc9480f1697fbec871130550',1,'TPI_Type']]], + ['rnr',['RNR',['../struct_m_p_u___type.html#afd8de96a5d574c3953e2106e782f9833',1,'MPU_Type']]], + ['rserved1',['RSERVED1',['../struct_n_v_i_c___type.html#a6d1daf7ab6f2ba83f57ff67ae6f571fe',1,'NVIC_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_73.html b/Libraries/CMSIS/Documentation/Core/html/search/all_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_73.js b/Libraries/CMSIS/Documentation/Core/html/search/all_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_73.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['scb_5ftype',['SCB_Type',['../struct_s_c_b___type.html',1,'']]], + ['scnscb_5ftype',['SCnSCB_Type',['../struct_s_cn_s_c_b___type.html',1,'']]], + ['scr',['SCR',['../struct_s_c_b___type.html#abfad14e7b4534d73d329819625d77a16',1,'SCB_Type']]], + ['shcsr',['SHCSR',['../struct_s_c_b___type.html#ae9891a59abbe51b0b2067ca507ca212f',1,'SCB_Type']]], + ['shp',['SHP',['../struct_s_c_b___type.html#af6336103f8be0cab29de51daed5a65f4',1,'SCB_Type']]], + ['sleepcnt',['SLEEPCNT',['../struct_d_w_t___type.html#a8afd5a4bf994011748bc012fa442c74d',1,'DWT_Type']]], + ['sppr',['SPPR',['../struct_t_p_i___type.html#a3eb655f2e45d7af358775025c1a50c8e',1,'TPI_Type']]], + ['spsel',['SPSEL',['../union_c_o_n_t_r_o_l___type.html#a8cc085fea1c50a8bd9adea63931ee8e2',1,'CONTROL_Type']]], + ['sspsr',['SSPSR',['../struct_t_p_i___type.html#a158e9d784f6ee6398f4bdcb2e4ca0912',1,'TPI_Type']]], + ['startup_20file_20startup_5f_3cdevice_3e_2es',['Startup File startup_<device>.s',['../startup_s_pg.html',1,'Templates_pg']]], + ['stir',['STIR',['../struct_n_v_i_c___type.html#a0b0d7f3131da89c659a2580249432749',1,'NVIC_Type']]], + ['svcall_5firqn',['SVCall_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a4ce820b3cc6cf3a796b41aadc0cf1237',1,'Ref_NVIC.txt']]], + ['system_20configuration_20files_20system_5f_3cdevice_3e_2ec_20and_20system_5f_3cdevice_3e_2eh',['System Configuration Files system_<device>.c and system_<device>.h',['../system_c_pg.html',1,'Templates_pg']]], + ['system_20and_20clock_20configuration',['System and Clock Configuration',['../group__system__init__gr.html',1,'']]], + ['systemcoreclock',['SystemCoreClock',['../group__system__init__gr.html#gaa3cd3e43291e81e795d642b79b6088e6',1,'Ref_SystemAndClock.txt']]], + ['systemcoreclockupdate',['SystemCoreClockUpdate',['../group__system__init__gr.html#gae0c36a9591fe6e9c45ecb21a794f0f0f',1,'Ref_SystemAndClock.txt']]], + ['systeminit',['SystemInit',['../group__system__init__gr.html#ga93f514700ccf00d08dbdcff7f1224eb2',1,'Ref_SystemAndClock.txt']]], + ['systick_5fconfig',['SysTick_Config',['../group___sys_tick__gr.html#gabe47de40e9b0ad465b752297a9d9f427',1,'Ref_Systick.txt']]], + ['systick_20timer_20_28systick_29',['Systick Timer (SYSTICK)',['../group___sys_tick__gr.html',1,'']]], + ['systick_5firqn',['SysTick_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6dbff8f8543325f3474cbae2446776e7',1,'Ref_NVIC.txt']]], + ['systick_5ftype',['SysTick_Type',['../struct_sys_tick___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_74.html b/Libraries/CMSIS/Documentation/Core/html/search/all_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_74.js b/Libraries/CMSIS/Documentation/Core/html/search/all_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_74.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['t',['T',['../unionx_p_s_r___type.html#a7eed9fe24ae8d354cd76ae1c1110a658',1,'xPSR_Type']]], + ['tcr',['TCR',['../struct_i_t_m___type.html#a58f169e1aa40a9b8afb6296677c3bb45',1,'ITM_Type']]], + ['template_2etxt',['Template.txt',['../_template_8txt.html',1,'']]], + ['template_20files',['Template Files',['../_templates_pg.html',1,'']]], + ['ter',['TER',['../struct_i_t_m___type.html#a91a040e1b162e1128ac1e852b4a0e589',1,'ITM_Type']]], + ['tpi_5ftype',['TPI_Type',['../struct_t_p_i___type.html',1,'']]], + ['tpr',['TPR',['../struct_i_t_m___type.html#a93b480aac6da620bbb611212186d47fa',1,'ITM_Type']]], + ['trigger',['TRIGGER',['../struct_t_p_i___type.html#aa4b603c71768dbda553da571eccba1fe',1,'TPI_Type']]], + ['type',['TYPE',['../struct_m_p_u___type.html#a6ae8a8c3a4909ae41447168d793608f7',1,'MPU_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_75.html b/Libraries/CMSIS/Documentation/Core/html/search/all_75.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_75.js b/Libraries/CMSIS/Documentation/Core/html/search/all_75.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_75.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['u16',['u16',['../struct_i_t_m___type.html#a12aa4eb4d9dcb589a5d953c836f4e8f4',1,'ITM_Type']]], + ['u32',['u32',['../struct_i_t_m___type.html#a6882fa5af67ef5c5dfb433b3b68939df',1,'ITM_Type']]], + ['u8',['u8',['../struct_i_t_m___type.html#abea77b06775d325e5f6f46203f582433',1,'ITM_Type']]], + ['usagefault_5firqn',['UsageFault_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6895237c9443601ac832efa635dd8bbf',1,'Ref_NVIC.txt']]], + ['using_2etxt',['Using.txt',['../_using_8txt.html',1,'']]], + ['using_20cmsis_20with_20generic_20arm_20processors',['Using CMSIS with generic ARM Processors',['../_using__a_r_m_pg.html',1,'Using_pg']]], + ['using_20cmsis_20in_20embedded_20applications',['Using CMSIS in Embedded Applications',['../_using_pg.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_76.html b/Libraries/CMSIS/Documentation/Core/html/search/all_76.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_76.js b/Libraries/CMSIS/Documentation/Core/html/search/all_76.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_76.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['v',['V',['../union_a_p_s_r___type.html#a8004d224aacb78ca37774c35f9156e7e',1,'APSR_Type::V()'],['../unionx_p_s_r___type.html#af14df16ea0690070c45b95f2116b7a0a',1,'xPSR_Type::V()']]], + ['val',['VAL',['../struct_sys_tick___type.html#a0997ff20f11817f8246e8f0edac6f4e4',1,'SysTick_Type']]], + ['vtor',['VTOR',['../struct_s_c_b___type.html#a0faf96f964931cadfb71cfa54e051f6f',1,'SCB_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_77.html b/Libraries/CMSIS/Documentation/Core/html/search/all_77.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_77.js b/Libraries/CMSIS/Documentation/Core/html/search/all_77.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_77.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['w',['w',['../union_a_p_s_r___type.html#ae4c2ef8c9430d7b7bef5cbfbbaed3a94',1,'APSR_Type::w()'],['../union_i_p_s_r___type.html#a4adca999d3a0bc1ae682d73ea7cfa879',1,'IPSR_Type::w()'],['../unionx_p_s_r___type.html#a1a47176768f45f79076c4f5b1b534bc2',1,'xPSR_Type::w()'],['../union_c_o_n_t_r_o_l___type.html#a6b642cca3d96da660b1198c133ca2a1f',1,'CONTROL_Type::w()']]], + ['wwdg_5fstm_5firqn',['WWDG_STM_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8aa62e040960b4beb6cba107e4703c12d2',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_78.html b/Libraries/CMSIS/Documentation/Core/html/search/all_78.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_78.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_78.js b/Libraries/CMSIS/Documentation/Core/html/search/all_78.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_78.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xpsr_5ftype',['xPSR_Type',['../unionx_p_s_r___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_7a.html b/Libraries/CMSIS/Documentation/Core/html/search/all_7a.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_7a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/all_7a.js b/Libraries/CMSIS/Documentation/Core/html/search/all_7a.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/all_7a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['z',['Z',['../union_a_p_s_r___type.html#a3b04d58738b66a28ff13f23d8b0ba7e5',1,'APSR_Type::Z()'],['../unionx_p_s_r___type.html#a1e5d9801013d5146f2e02d9b7b3da562',1,'xPSR_Type::Z()']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_61.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_61.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_61.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_61.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_61.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['apsr_5ftype',['APSR_Type',['../union_a_p_s_r___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_63.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_63.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_63.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_63.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_63.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['control_5ftype',['CONTROL_Type',['../union_c_o_n_t_r_o_l___type.html',1,'']]], + ['coredebug_5ftype',['CoreDebug_Type',['../struct_core_debug___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_64.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_64.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dwt_5ftype',['DWT_Type',['../struct_d_w_t___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_66.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_66.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_66.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_66.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fpu_5ftype',['FPU_Type',['../struct_f_p_u___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_69.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_69.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_69.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ipsr_5ftype',['IPSR_Type',['../union_i_p_s_r___type.html',1,'']]], + ['itm_5ftype',['ITM_Type',['../struct_i_t_m___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_6d.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_6d.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_6d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mpu_5ftype',['MPU_Type',['../struct_m_p_u___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_6e.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_6e.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_6e.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_6e.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_6e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nvic_5ftype',['NVIC_Type',['../struct_n_v_i_c___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_73.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_73.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_73.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['scb_5ftype',['SCB_Type',['../struct_s_c_b___type.html',1,'']]], + ['scnscb_5ftype',['SCnSCB_Type',['../struct_s_cn_s_c_b___type.html',1,'']]], + ['systick_5ftype',['SysTick_Type',['../struct_sys_tick___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_74.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_74.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tpi_5ftype',['TPI_Type',['../struct_t_p_i___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_78.html b/Libraries/CMSIS/Documentation/Core/html/search/classes_78.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_78.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/classes_78.js b/Libraries/CMSIS/Documentation/Core/html/search/classes_78.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/classes_78.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xpsr_5ftype',['xPSR_Type',['../unionx_p_s_r___type.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/close.png b/Libraries/CMSIS/Documentation/Core/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zc$@(d0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enums_69.html b/Libraries/CMSIS/Documentation/Core/html/search/enums_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enums_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enums_69.js b/Libraries/CMSIS/Documentation/Core/html/search/enums_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enums_69.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['irqn_5ftype',['IRQn_Type',['../group___n_v_i_c__gr.html#ga7e1129cd8a196f4284d41db3e82ad5c8',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_62.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_62.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_62.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_62.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_62.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['busfault_5firqn',['BusFault_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8693500eff174f16119e96234fee73af',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_64.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_64.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['debugmonitor_5firqn',['DebugMonitor_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a8e033fcef7aed98a31c60a7de206722c',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_68.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_68.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_68.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_68.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_68.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hardfault_5firqn',['HardFault_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ab1a222a34a32f0ef5ac65e714efc1f85',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6d.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6d.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['memorymanagement_5firqn',['MemoryManagement_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a33ff1cf7098de65d61b6354fee6cd5aa',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6e.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6e.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6e.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6e.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_6e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nonmaskableint_5firqn',['NonMaskableInt_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8ade177d9c70c89e084093024b932a4e30',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_70.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_70.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_70.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_70.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_70.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pendsv_5firqn',['PendSV_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a03c3cc89984928816d81793fc7bce4a2',1,'Ref_NVIC.txt']]], + ['pvd_5fstm_5firqn',['PVD_STM_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a853e0f318108110e0527f29733d11f86',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_73.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_73.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_73.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['svcall_5firqn',['SVCall_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a4ce820b3cc6cf3a796b41aadc0cf1237',1,'Ref_NVIC.txt']]], + ['systick_5firqn',['SysTick_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6dbff8f8543325f3474cbae2446776e7',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_75.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_75.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_75.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_75.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_75.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['usagefault_5firqn',['UsageFault_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8a6895237c9443601ac832efa635dd8bbf',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_77.html b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_77.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_77.js b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_77.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/enumvalues_77.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wwdg_5fstm_5firqn',['WWDG_STM_IRQn',['../group___n_v_i_c__gr.html#gga7e1129cd8a196f4284d41db3e82ad5c8aa62e040960b4beb6cba107e4703c12d2',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_6d.html b/Libraries/CMSIS/Documentation/Core/html/search/files_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_6d.js b/Libraries/CMSIS/Documentation/Core/html/search/files_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_6d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['misra_2etxt',['MISRA.txt',['../_m_i_s_r_a_8txt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_6f.html b/Libraries/CMSIS/Documentation/Core/html/search/files_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_6f.js b/Libraries/CMSIS/Documentation/Core/html/search/files_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_6f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['overview_2etxt',['Overview.txt',['../_overview_8txt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_72.html b/Libraries/CMSIS/Documentation/Core/html/search/files_72.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_72.js b/Libraries/CMSIS/Documentation/Core/html/search/files_72.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_72.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['ref_5fcm4_5fsimd_2etxt',['Ref_cm4_simd.txt',['../_ref__cm4__simd_8txt.html',1,'']]], + ['ref_5fcminstr_2etxt',['Ref_cmInstr.txt',['../_ref__cm_instr_8txt.html',1,'']]], + ['ref_5fcorereg_2etxt',['Ref_CoreReg.txt',['../_ref___core_reg_8txt.html',1,'']]], + ['ref_5fdatastructs_2etxt',['Ref_DataStructs.txt',['../_ref___data_structs_8txt.html',1,'']]], + ['ref_5fdebug_2etxt',['Ref_Debug.txt',['../_ref___debug_8txt.html',1,'']]], + ['ref_5fnvic_2etxt',['Ref_NVIC.txt',['../_ref___n_v_i_c_8txt.html',1,'']]], + ['ref_5fperipheral_2etxt',['Ref_Peripheral.txt',['../_ref___peripheral_8txt.html',1,'']]], + ['ref_5fsystemandclock_2etxt',['Ref_SystemAndClock.txt',['../_ref___system_and_clock_8txt.html',1,'']]], + ['ref_5fsystick_2etxt',['Ref_Systick.txt',['../_ref___systick_8txt.html',1,'']]], + ['regmap_5fcmsis2arm_5fdoc_2etxt',['RegMap_CMSIS2ARM_Doc.txt',['../_reg_map___c_m_s_i_s2_a_r_m___doc_8txt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_74.html b/Libraries/CMSIS/Documentation/Core/html/search/files_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_74.js b/Libraries/CMSIS/Documentation/Core/html/search/files_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['template_2etxt',['Template.txt',['../_template_8txt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_75.html b/Libraries/CMSIS/Documentation/Core/html/search/files_75.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/files_75.js b/Libraries/CMSIS/Documentation/Core/html/search/files_75.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/files_75.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['using_2etxt',['Using.txt',['../_using_8txt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_5f.html b/Libraries/CMSIS/Documentation/Core/html/search/functions_5f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_5f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_5f.js b/Libraries/CMSIS/Documentation/Core/html/search/functions_5f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_5f.js @@ -0,0 +1,109 @@ +var searchData= +[ + ['_5f_5fbkpt',['__BKPT',['../group__intrinsic___c_p_u__gr.html#ga92f5621626711931da71eaa8bf301af7',1,'Ref_cmInstr.txt']]], + ['_5f_5fclrex',['__CLREX',['../group__intrinsic___c_p_u__gr.html#ga354c5ac8870cc3dfb823367af9c4b412',1,'Ref_cmInstr.txt']]], + ['_5f_5fclz',['__CLZ',['../group__intrinsic___c_p_u__gr.html#ga90884c591ac5d73d6069334eba9d6c02',1,'Ref_cmInstr.txt']]], + ['_5f_5fdisable_5ffault_5firq',['__disable_fault_irq',['../group___core___register__gr.html#ga9d174f979b2f76fdb3228a9b338fd939',1,'Ref_CoreReg.txt']]], + ['_5f_5fdisable_5firq',['__disable_irq',['../group___core___register__gr.html#gaeb8e5f7564a8ea23678fe3c987b04013',1,'Ref_CoreReg.txt']]], + ['_5f_5fdmb',['__DMB',['../group__intrinsic___c_p_u__gr.html#gab1c9b393641dc2d397b3408fdbe72b96',1,'Ref_cmInstr.txt']]], + ['_5f_5fdsb',['__DSB',['../group__intrinsic___c_p_u__gr.html#gacb2a8ca6eae1ba4b31161578b720c199',1,'Ref_cmInstr.txt']]], + ['_5f_5fenable_5ffault_5firq',['__enable_fault_irq',['../group___core___register__gr.html#ga6575d37863cec5d334864f93b5b783bf',1,'Ref_CoreReg.txt']]], + ['_5f_5fenable_5firq',['__enable_irq',['../group___core___register__gr.html#ga0f98dfbd252b89d12564472dbeba9c27',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fapsr',['__get_APSR',['../group___core___register__gr.html#ga811c0012221ee918a75111ca84c4d5e7',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fbasepri',['__get_BASEPRI',['../group___core___register__gr.html#ga32da759f46e52c95bcfbde5012260667',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fcontrol',['__get_CONTROL',['../group___core___register__gr.html#ga963cf236b73219ce78e965deb01b81a7',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5ffaultmask',['__get_FAULTMASK',['../group___core___register__gr.html#gaa78e4e6bf619a65e9f01b4af13fed3a8',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5ffpscr',['__get_FPSCR',['../group___core___register__gr.html#gad6d7eca9ddd1d9072dd7b020cfe64905',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fipsr',['__get_IPSR',['../group___core___register__gr.html#ga2c32fc5c7f8f07fb3d436c6f6fe4e8c8',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fmsp',['__get_MSP',['../group___core___register__gr.html#gab898559392ba027814e5bbb5a98b38d2',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fprimask',['__get_PRIMASK',['../group___core___register__gr.html#ga799b5d9a2ae75e459264c8512c7c0e02',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fpsp',['__get_PSP',['../group___core___register__gr.html#ga914dfa8eff7ca53380dd54cf1d8bebd9',1,'Ref_CoreReg.txt']]], + ['_5f_5fget_5fxpsr',['__get_xPSR',['../group___core___register__gr.html#ga732e08184154f44a617963cc65ff95bd',1,'Ref_CoreReg.txt']]], + ['_5f_5fisb',['__ISB',['../group__intrinsic___c_p_u__gr.html#ga93c09b4709394d81977300d5f84950e5',1,'Ref_cmInstr.txt']]], + ['_5f_5fldrexb',['__LDREXB',['../group__intrinsic___c_p_u__gr.html#ga9e3ac13d8dcf4331176b624cf6234a7e',1,'Ref_cmInstr.txt']]], + ['_5f_5fldrexh',['__LDREXH',['../group__intrinsic___c_p_u__gr.html#ga9feffc093d6f68b120d592a7a0d45a15',1,'Ref_cmInstr.txt']]], + ['_5f_5fldrexw',['__LDREXW',['../group__intrinsic___c_p_u__gr.html#gabd78840a0f2464905b7cec791ebc6a4c',1,'Ref_cmInstr.txt']]], + ['_5f_5fnop',['__NOP',['../group__intrinsic___c_p_u__gr.html#gac71fad9f0a91980fecafcb450ee0a63e',1,'Ref_cmInstr.txt']]], + ['_5f_5fpkhbt',['__PKHBT',['../group__intrinsic___s_i_m_d__gr.html#gaefb8ebf3a54e197464da1ff69a44f4b5',1,'Ref_cm4_simd.txt']]], + ['_5f_5fpkhtb',['__PKHTB',['../group__intrinsic___s_i_m_d__gr.html#gafd8fe4a6d87e947caa81a69ec36c1666',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqadd',['__QADD',['../group__intrinsic___s_i_m_d__gr.html#ga17b873f246c9f5e9355760ffef3dad4a',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqadd16',['__QADD16',['../group__intrinsic___s_i_m_d__gr.html#gae83a53ec04b496304bed6d9fe8f7461b',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqadd8',['__QADD8',['../group__intrinsic___s_i_m_d__gr.html#gaf2f5a9132dcfc6d01d34cd971c425713',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqasx',['__QASX',['../group__intrinsic___s_i_m_d__gr.html#ga87618799672e1511e33964bc71467eb3',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsax',['__QSAX',['../group__intrinsic___s_i_m_d__gr.html#gab41eb2b17512ab01d476fc9d5bd19520',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsub',['__QSUB',['../group__intrinsic___s_i_m_d__gr.html#ga3ba259f8f05a36f7b88b469a71ffc096',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsub16',['__QSUB16',['../group__intrinsic___s_i_m_d__gr.html#gad089605c16df9823a2c8aaa37777aae5',1,'Ref_cm4_simd.txt']]], + ['_5f_5fqsub8',['__QSUB8',['../group__intrinsic___s_i_m_d__gr.html#ga753493a65493880c28baa82c151a0d61',1,'Ref_cm4_simd.txt']]], + ['_5f_5frbit',['__RBIT',['../group__intrinsic___c_p_u__gr.html#gad6f9f297f6b91a995ee199fbc796b863',1,'Ref_cmInstr.txt']]], + ['_5f_5frev',['__REV',['../group__intrinsic___c_p_u__gr.html#ga4717abc17af5ba29b1e4c055e0a0d9b8',1,'Ref_cmInstr.txt']]], + ['_5f_5frev16',['__REV16',['../group__intrinsic___c_p_u__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26',1,'Ref_cmInstr.txt']]], + ['_5f_5frevsh',['__REVSH',['../group__intrinsic___c_p_u__gr.html#ga1ec006e6d79063363cb0c2a2e0b3adbe',1,'Ref_cmInstr.txt']]], + ['_5f_5fror',['__ROR',['../group__intrinsic___c_p_u__gr.html#gaf66beb577bb9d90424c3d1d7f684c024',1,'Ref_cmInstr.txt']]], + ['_5f_5fsadd16',['__SADD16',['../group__intrinsic___s_i_m_d__gr.html#gad0bf46373a1c05aabf64517e84be5984',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsadd8',['__SADD8',['../group__intrinsic___s_i_m_d__gr.html#gac20aa0f741d0a1494d58c531e38d5785',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsasx',['__SASX',['../group__intrinsic___s_i_m_d__gr.html#ga5845084fd99c872e98cf5553d554de2a',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsel',['__SEL',['../group__intrinsic___s_i_m_d__gr.html#gaf5448e591fe49161b6759b48aecb08fe',1,'Ref_cm4_simd.txt']]], + ['_5f_5fset_5fbasepri',['__set_BASEPRI',['../group___core___register__gr.html#ga360c73eb7ffb16088556f9278953b882',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fcontrol',['__set_CONTROL',['../group___core___register__gr.html#gac64d37e7ff9de06437f9fb94bbab8b6c',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5ffaultmask',['__set_FAULTMASK',['../group___core___register__gr.html#gaa5587cc09031053a40a35c14ec36078a',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5ffpscr',['__set_FPSCR',['../group___core___register__gr.html#ga6f26bd75ca7e3247f27b272acc10536b',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fmsp',['__set_MSP',['../group___core___register__gr.html#ga0bf9564ebc1613a8faba014275dac2a4',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fprimask',['__set_PRIMASK',['../group___core___register__gr.html#ga70b4e1a6c1c86eb913fb9d6e8400156f',1,'Ref_CoreReg.txt']]], + ['_5f_5fset_5fpsp',['__set_PSP',['../group___core___register__gr.html#ga48e5853f417e17a8a65080f6a605b743',1,'Ref_CoreReg.txt']]], + ['_5f_5fsev',['__SEV',['../group__intrinsic___c_p_u__gr.html#ga3c34da7eb16496ae2668a5b95fa441e7',1,'Ref_cmInstr.txt']]], + ['_5f_5fshadd16',['__SHADD16',['../group__intrinsic___s_i_m_d__gr.html#ga15d8899a173effb8ad8c7268da32b60e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshadd8',['__SHADD8',['../group__intrinsic___s_i_m_d__gr.html#ga524575b442ea01aec10c762bf4d85fea',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshasx',['__SHASX',['../group__intrinsic___s_i_m_d__gr.html#gae0a649035f67627464fd80e7218c89d5',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshsax',['__SHSAX',['../group__intrinsic___s_i_m_d__gr.html#gafadbd89c36b5addcf1ca10dd392db3e9',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshsub16',['__SHSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga31328467f0f91b8ff9ae9a01682ad3bf',1,'Ref_cm4_simd.txt']]], + ['_5f_5fshsub8',['__SHSUB8',['../group__intrinsic___s_i_m_d__gr.html#gac3ec7215b354d925a239f3b31df2b77b',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlad',['__SMLAD',['../group__intrinsic___s_i_m_d__gr.html#gae0c86f3298532183f3a29f5bb454d354',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmladx',['__SMLADX',['../group__intrinsic___s_i_m_d__gr.html#ga9c286d330f4fb29b256335add91eec9f',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlald',['__SMLALD',['../group__intrinsic___s_i_m_d__gr.html#gad80e9b20c1736fd798f897362273a146',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlaldx',['__SMLALDX',['../group__intrinsic___s_i_m_d__gr.html#gad1adad1b3f2667328cc0db6c6b4f41cf',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsd',['__SMLSD',['../group__intrinsic___s_i_m_d__gr.html#gaf4350af7f2030c36f43b2c104a9d16cd',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsdx',['__SMLSDX',['../group__intrinsic___s_i_m_d__gr.html#ga5290ce5564770ad124910d2583dc0a9e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsld',['__SMLSLD',['../group__intrinsic___s_i_m_d__gr.html#ga5611f7314e0c8f53da377918dfbf42ee',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmlsldx',['__SMLSLDX',['../group__intrinsic___s_i_m_d__gr.html#ga83e69ef81057d3cbd06863d729385187',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmmla',['__SMMLA',['../group__intrinsic___s_i_m_d__gr.html#gaea60757232f740ec6b09980eebb614ff',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmuad',['__SMUAD',['../group__intrinsic___s_i_m_d__gr.html#gae326e368a1624d2dfb4b97c626939257',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmuadx',['__SMUADX',['../group__intrinsic___s_i_m_d__gr.html#gaee6390f86965cb662500f690b0012092',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmusd',['__SMUSD',['../group__intrinsic___s_i_m_d__gr.html#ga039142a5368840683cf329cb55b73f84',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsmusdx',['__SMUSDX',['../group__intrinsic___s_i_m_d__gr.html#gabb5bcba694bf17b141c32e6a8474f60e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssat',['__SSAT',['../group__intrinsic___c_p_u__gr.html#ga7d9dddda18805abbf51ac21c639845e1',1,'Ref_cmInstr.txt']]], + ['_5f_5fssat16',['__SSAT16',['../group__intrinsic___s_i_m_d__gr.html#ga95e666b82216066bf6064d1244e6883c',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssax',['__SSAX',['../group__intrinsic___s_i_m_d__gr.html#ga9d3bc5c539f9bd50f7d59ffa37ac6a65',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssub16',['__SSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga4262f73be75efbac6b46ab7c71aa6cbc',1,'Ref_cm4_simd.txt']]], + ['_5f_5fssub8',['__SSUB8',['../group__intrinsic___s_i_m_d__gr.html#gaba63bb52e1e93fb527e26f3d474da12e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fstrexb',['__STREXB',['../group__intrinsic___c_p_u__gr.html#gaab6482d1f59f59e2b6b7efc1af391c99',1,'Ref_cmInstr.txt']]], + ['_5f_5fstrexh',['__STREXH',['../group__intrinsic___c_p_u__gr.html#ga0a354bdf71caa52f081a4a54e84c8d2a',1,'Ref_cmInstr.txt']]], + ['_5f_5fstrexw',['__STREXW',['../group__intrinsic___c_p_u__gr.html#ga335deaaa7991490e1450cb7d1e4c5197',1,'Ref_cmInstr.txt']]], + ['_5f_5fsxtab16',['__SXTAB16',['../group__intrinsic___s_i_m_d__gr.html#gac540b4fc41d30778ba102d2a65db5589',1,'Ref_cm4_simd.txt']]], + ['_5f_5fsxtb16',['__SXTB16',['../group__intrinsic___s_i_m_d__gr.html#ga38dce3dd13ba212e80ec3cff4abeb11a',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuadd16',['__UADD16',['../group__intrinsic___s_i_m_d__gr.html#gaa1160f0cf76d6aa292fbad54a1aa6b74',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuadd8',['__UADD8',['../group__intrinsic___s_i_m_d__gr.html#gab3d7fd00d113b20fb3741a17394da762',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuasx',['__UASX',['../group__intrinsic___s_i_m_d__gr.html#ga980353d2c72ebb879282e49f592fddc0',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhadd16',['__UHADD16',['../group__intrinsic___s_i_m_d__gr.html#gabd0b0e2da2e6364e176d051687702b86',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhadd8',['__UHADD8',['../group__intrinsic___s_i_m_d__gr.html#ga3a14e5485e59bf0f23595b7c2a94eb0b',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhasx',['__UHASX',['../group__intrinsic___s_i_m_d__gr.html#ga028f0732b961fb6e5209326fb3855261',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhsax',['__UHSAX',['../group__intrinsic___s_i_m_d__gr.html#ga09e129e6613329aab87c89f1108b7ed7',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhsub16',['__UHSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga1f7545b8dc33bb97982731cb9d427a69',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuhsub8',['__UHSUB8',['../group__intrinsic___s_i_m_d__gr.html#ga48a55df1c3e73923b73819d7c19b392d',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqadd16',['__UQADD16',['../group__intrinsic___s_i_m_d__gr.html#ga9e2cc5117e79578a08b25f1e89022966',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqadd8',['__UQADD8',['../group__intrinsic___s_i_m_d__gr.html#gafa9af218db3934a692fb06fa728d8031',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqasx',['__UQASX',['../group__intrinsic___s_i_m_d__gr.html#ga5eff3ae5eabcd73f3049996ca391becb',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqsax',['__UQSAX',['../group__intrinsic___s_i_m_d__gr.html#gadecfdfabc328d8939d49d996f2fd4482',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqsub16',['__UQSUB16',['../group__intrinsic___s_i_m_d__gr.html#ga5ec4e2e231d15e5c692233feb3806187',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuqsub8',['__UQSUB8',['../group__intrinsic___s_i_m_d__gr.html#ga9736fe816aec74fe886e7fb949734eab',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusad8',['__USAD8',['../group__intrinsic___s_i_m_d__gr.html#gac8855c07044239ea775c8128013204f0',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusada8',['__USADA8',['../group__intrinsic___s_i_m_d__gr.html#gad032bd21f013c5d29f5fcb6b0f02bc3f',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusat',['__USAT',['../group__intrinsic___c_p_u__gr.html#ga76bbe4374a5912362866cdc1ded4064a',1,'Ref_cmInstr.txt']]], + ['_5f_5fusat16',['__USAT16',['../group__intrinsic___s_i_m_d__gr.html#ga967f516afff5900cf30f1a81907cdd89',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusax',['__USAX',['../group__intrinsic___s_i_m_d__gr.html#ga578a082747436772c482c96d7a58e45e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusub16',['__USUB16',['../group__intrinsic___s_i_m_d__gr.html#ga9f2b77e11fc4a77b26c36c423ed45b4e',1,'Ref_cm4_simd.txt']]], + ['_5f_5fusub8',['__USUB8',['../group__intrinsic___s_i_m_d__gr.html#gacb7257dc3b8e9acbd0ef0e31ff87d4b8',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuxtab16',['__UXTAB16',['../group__intrinsic___s_i_m_d__gr.html#gad25ce96db0f17096bbd815f4817faf09',1,'Ref_cm4_simd.txt']]], + ['_5f_5fuxtb16',['__UXTB16',['../group__intrinsic___s_i_m_d__gr.html#gab41d713653b16f8d9fef44d14e397228',1,'Ref_cm4_simd.txt']]], + ['_5f_5fwfe',['__WFE',['../group__intrinsic___c_p_u__gr.html#gad3efec76c3bfa2b8528ded530386c563',1,'Ref_cmInstr.txt']]], + ['_5f_5fwfi',['__WFI',['../group__intrinsic___c_p_u__gr.html#gaed91dfbf3d7d7b7fba8d912fcbeaad88',1,'Ref_cmInstr.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_69.html b/Libraries/CMSIS/Documentation/Core/html/search/functions_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_69.js b/Libraries/CMSIS/Documentation/Core/html/search/functions_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_69.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['itm_5fcheckchar',['ITM_CheckChar',['../group___i_t_m___debug__gr.html#ga7f9bbabd9756d1a7eafb2d9bf27e0535',1,'Ref_Debug.txt']]], + ['itm_5freceivechar',['ITM_ReceiveChar',['../group___i_t_m___debug__gr.html#ga37b8f41cae703b5ff6947e271065558c',1,'Ref_Debug.txt']]], + ['itm_5fsendchar',['ITM_SendChar',['../group___i_t_m___debug__gr.html#gaaa7c716331f74d644bf6bf25cd3392d1',1,'Ref_Debug.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_6e.html b/Libraries/CMSIS/Documentation/Core/html/search/functions_6e.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_6e.js b/Libraries/CMSIS/Documentation/Core/html/search/functions_6e.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_6e.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['nvic_5fclearpendingirq',['NVIC_ClearPendingIRQ',['../group___n_v_i_c__gr.html#ga382ad6bedd6eecfdabd1b94dd128a01a',1,'Ref_NVIC.txt']]], + ['nvic_5fdecodepriority',['NVIC_DecodePriority',['../group___n_v_i_c__gr.html#gad3cbca1be7a4726afa9448a9acd89377',1,'Ref_NVIC.txt']]], + ['nvic_5fdisableirq',['NVIC_DisableIRQ',['../group___n_v_i_c__gr.html#ga736ba13a76eb37ef6e2c253be8b0331c',1,'Ref_NVIC.txt']]], + ['nvic_5fenableirq',['NVIC_EnableIRQ',['../group___n_v_i_c__gr.html#ga530ad9fda2ed1c8b70e439ecfe80591f',1,'Ref_NVIC.txt']]], + ['nvic_5fencodepriority',['NVIC_EncodePriority',['../group___n_v_i_c__gr.html#ga0688c59605b119c53c71b2505ab23eb5',1,'Ref_NVIC.txt']]], + ['nvic_5fgetactive',['NVIC_GetActive',['../group___n_v_i_c__gr.html#gadf4252e600661fd762cfc0d1a9f5b892',1,'Ref_NVIC.txt']]], + ['nvic_5fgetpendingirq',['NVIC_GetPendingIRQ',['../group___n_v_i_c__gr.html#ga95a8329a680b051ecf3ee8f516acc662',1,'Ref_NVIC.txt']]], + ['nvic_5fgetpriority',['NVIC_GetPriority',['../group___n_v_i_c__gr.html#gab18fb9f6c5f4c70fdd73047f0f7c8395',1,'Ref_NVIC.txt']]], + ['nvic_5fgetprioritygrouping',['NVIC_GetPriorityGrouping',['../group___n_v_i_c__gr.html#gaa81b19849367d3cdb95ac108c500fa78',1,'Ref_NVIC.txt']]], + ['nvic_5fsetpendingirq',['NVIC_SetPendingIRQ',['../group___n_v_i_c__gr.html#ga3b885147ef9965ecede49614de8df9d2',1,'Ref_NVIC.txt']]], + ['nvic_5fsetpriority',['NVIC_SetPriority',['../group___n_v_i_c__gr.html#ga5bb7f43ad92937c039dee3d36c3c2798',1,'Ref_NVIC.txt']]], + ['nvic_5fsetprioritygrouping',['NVIC_SetPriorityGrouping',['../group___n_v_i_c__gr.html#gad78f447e891789b4d8f2e5b21eeda354',1,'Ref_NVIC.txt']]], + ['nvic_5fsystemreset',['NVIC_SystemReset',['../group___n_v_i_c__gr.html#ga1b47d17e90b6a03e7bd1ec6a0d549b46',1,'Ref_NVIC.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_73.html b/Libraries/CMSIS/Documentation/Core/html/search/functions_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/functions_73.js b/Libraries/CMSIS/Documentation/Core/html/search/functions_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/functions_73.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['systemcoreclockupdate',['SystemCoreClockUpdate',['../group__system__init__gr.html#gae0c36a9591fe6e9c45ecb21a794f0f0f',1,'Ref_SystemAndClock.txt']]], + ['systeminit',['SystemInit',['../group__system__init__gr.html#ga93f514700ccf00d08dbdcff7f1224eb2',1,'Ref_SystemAndClock.txt']]], + ['systick_5fconfig',['SysTick_Config',['../group___sys_tick__gr.html#gabe47de40e9b0ad465b752297a9d9f427',1,'Ref_Systick.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_63.html b/Libraries/CMSIS/Documentation/Core/html/search/groups_63.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_63.js b/Libraries/CMSIS/Documentation/Core/html/search/groups_63.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_63.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['core_20register_20access',['Core Register Access',['../group___core___register__gr.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_64.html b/Libraries/CMSIS/Documentation/Core/html/search/groups_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_64.js b/Libraries/CMSIS/Documentation/Core/html/search/groups_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['debug_20access',['Debug Access',['../group___i_t_m___debug__gr.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_69.html b/Libraries/CMSIS/Documentation/Core/html/search/groups_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_69.js b/Libraries/CMSIS/Documentation/Core/html/search/groups_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_69.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['intrinsic_20functions_20for_20cpu_20instructions',['Intrinsic Functions for CPU Instructions',['../group__intrinsic___c_p_u__gr.html',1,'']]], + ['intrinsic_20functions_20for_20simd_20instructions_20_5bonly_20cortex_2dm4_5d',['Intrinsic Functions for SIMD Instructions [only Cortex-M4]',['../group__intrinsic___s_i_m_d__gr.html',1,'']]], + ['interrupts_20and_20exceptions_20_28nvic_29',['Interrupts and Exceptions (NVIC)',['../group___n_v_i_c__gr.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_70.html b/Libraries/CMSIS/Documentation/Core/html/search/groups_70.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_70.js b/Libraries/CMSIS/Documentation/Core/html/search/groups_70.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_70.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['peripheral_20access',['Peripheral Access',['../group__peripheral__gr.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_73.html b/Libraries/CMSIS/Documentation/Core/html/search/groups_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/groups_73.js b/Libraries/CMSIS/Documentation/Core/html/search/groups_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/groups_73.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['system_20and_20clock_20configuration',['System and Clock Configuration',['../group__system__init__gr.html',1,'']]], + ['systick_20timer_20_28systick_29',['Systick Timer (SYSTICK)',['../group___sys_tick__gr.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/mag_sel.png b/Libraries/CMSIS/Documentation/Core/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zc$@(<0?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn diff --git a/Libraries/CMSIS/Documentation/Core/html/search/nomatches.html b/Libraries/CMSIS/Documentation/Core/html/search/nomatches.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_64.html b/Libraries/CMSIS/Documentation/Core/html/search/pages_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_64.js b/Libraries/CMSIS/Documentation/Core/html/search/pages_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_64.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['device_20header_20file_20_3cdevice_2eh_3e',['Device Header File <device.h>',['../device_h_pg.html',1,'Templates_pg']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_6d.html b/Libraries/CMSIS/Documentation/Core/html/search/pages_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_6d.js b/Libraries/CMSIS/Documentation/Core/html/search/pages_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_6d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['misra_2dc_3a2004_20compliance_20exceptions',['MISRA-C:2004 Compliance Exceptions',['../_c_o_r_e__m_i_s_r_a__exceptions_pg.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_6f.html b/Libraries/CMSIS/Documentation/Core/html/search/pages_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_6f.js b/Libraries/CMSIS/Documentation/Core/html/search/pages_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_6f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['overview',['Overview',['../index.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_72.html b/Libraries/CMSIS/Documentation/Core/html/search/pages_72.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_72.js b/Libraries/CMSIS/Documentation/Core/html/search/pages_72.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_72.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['register_20mapping',['Register Mapping',['../_reg_map_pg.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_73.html b/Libraries/CMSIS/Documentation/Core/html/search/pages_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_73.js b/Libraries/CMSIS/Documentation/Core/html/search/pages_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_73.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['startup_20file_20startup_5f_3cdevice_3e_2es',['Startup File startup_<device>.s',['../startup_s_pg.html',1,'Templates_pg']]], + ['system_20configuration_20files_20system_5f_3cdevice_3e_2ec_20and_20system_5f_3cdevice_3e_2eh',['System Configuration Files system_<device>.c and system_<device>.h',['../system_c_pg.html',1,'Templates_pg']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_74.html b/Libraries/CMSIS/Documentation/Core/html/search/pages_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_74.js b/Libraries/CMSIS/Documentation/Core/html/search/pages_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['template_20files',['Template Files',['../_templates_pg.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_75.html b/Libraries/CMSIS/Documentation/Core/html/search/pages_75.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/pages_75.js b/Libraries/CMSIS/Documentation/Core/html/search/pages_75.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/pages_75.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['using_20cmsis_20with_20generic_20arm_20processors',['Using CMSIS with generic ARM Processors',['../_using__a_r_m_pg.html',1,'Using_pg']]], + ['using_20cmsis_20in_20embedded_20applications',['Using CMSIS in Embedded Applications',['../_using_pg.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/search.css b/Libraries/CMSIS/Documentation/Core/html/search/search.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/search.css @@ -0,0 +1,240 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#searchli { + float: right; + display: block; + width: 170px; + height: 24px; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 3px; + right: 0px; + width: 170px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:116px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} diff --git a/Libraries/CMSIS/Documentation/Core/html/search/search.js b/Libraries/CMSIS/Documentation/Core/html/search/search.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/search.js @@ -0,0 +1,811 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111011001111111111111010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101101001000110000110001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101001011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000001000010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010111111011001110111111110010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100010000110100101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100001000000100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 8: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000101001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "enums", + 6: "enumvalues", + 7: "groups", + 8: "pages" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var hexCode; + if (code<16) + { + hexCode="0"+code.toString(16); + } + else + { + hexCode=code.toString(16); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') + { + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W diff --git a/Libraries/CMSIS/Documentation/Core/html/search/search_r.png b/Libraries/CMSIS/Documentation/Core/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zc$@)b0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_5f.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_5f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_5f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5freserved0',['_reserved0',['../union_a_p_s_r___type.html#afbce95646fd514c10aa85ec0a33db728',1,'APSR_Type::_reserved0()'],['../union_i_p_s_r___type.html#ad2eb0a06de4f03f58874a727716aa9aa',1,'IPSR_Type::_reserved0()'],['../unionx_p_s_r___type.html#af438e0f407357e914a70b5bd4d6a97c5',1,'xPSR_Type::_reserved0()'],['../union_c_o_n_t_r_o_l___type.html#af8c314273a1e4970a5671bd7f8184f50',1,'CONTROL_Type::_reserved0()']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_61.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_61.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_61.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_61.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_61.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_61.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['acpr',['ACPR',['../struct_t_p_i___type.html#ad75832a669eb121f6fce3c28d36b7fab',1,'TPI_Type']]], + ['actlr',['ACTLR',['../struct_s_cn_s_c_b___type.html#aacadedade30422fed705e8dfc8e6cd8d',1,'SCnSCB_Type']]], + ['adr',['ADR',['../struct_s_c_b___type.html#aaedf846e435ed05c68784b40d3db2bf2',1,'SCB_Type']]], + ['afsr',['AFSR',['../struct_s_c_b___type.html#aeb77053c84f49c261ab5b8374e8958ef',1,'SCB_Type']]], + ['aircr',['AIRCR',['../struct_s_c_b___type.html#a6ed3c9064013343ea9fd0a73a734f29d',1,'SCB_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_62.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_62.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_62.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_62.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_62.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_62.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['b',['b',['../union_a_p_s_r___type.html#a7dbc79a057ded4b11ca5323fc2d5ab14',1,'APSR_Type::b()'],['../union_i_p_s_r___type.html#add0d6497bd50c25569ea22b48a03ec50',1,'IPSR_Type::b()'],['../unionx_p_s_r___type.html#a3b1063bb5cdad67e037cba993b693b70',1,'xPSR_Type::b()'],['../union_c_o_n_t_r_o_l___type.html#adc6a38ab2980d0e9577b5a871da14eb9',1,'CONTROL_Type::b()']]], + ['bfar',['BFAR',['../struct_s_c_b___type.html#a31f79afe86c949c9862e7d5fce077c3a',1,'SCB_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_63.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_63.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_63.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_63.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_63.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['c',['C',['../union_a_p_s_r___type.html#a86e2c5b891ecef1ab55b1edac0da79a6',1,'APSR_Type::C()'],['../unionx_p_s_r___type.html#a40213a6b5620410cac83b0d89564609d',1,'xPSR_Type::C()']]], + ['calib',['CALIB',['../struct_sys_tick___type.html#a9c9eda0ea6f6a7c904d2d75a6963e238',1,'SysTick_Type']]], + ['ccr',['CCR',['../struct_s_c_b___type.html#a6d273c6b90bad15c91dfbbad0f6e92d8',1,'SCB_Type']]], + ['cfsr',['CFSR',['../struct_s_c_b___type.html#a2f94bf549b16fdeb172352e22309e3c4',1,'SCB_Type']]], + ['claimclr',['CLAIMCLR',['../struct_t_p_i___type.html#a44efa6045512c8d4da64b0623f7a43ad',1,'TPI_Type']]], + ['claimset',['CLAIMSET',['../struct_t_p_i___type.html#a2e4d5a07fabd771fa942a171230a0a84',1,'TPI_Type']]], + ['comp0',['COMP0',['../struct_d_w_t___type.html#a7cf71ff4b30a8362690fddd520763904',1,'DWT_Type']]], + ['comp1',['COMP1',['../struct_d_w_t___type.html#a4a5bb70a5ce3752bd628d5ce5658cb0c',1,'DWT_Type']]], + ['comp2',['COMP2',['../struct_d_w_t___type.html#a8927aedbe9fd6bdae8983088efc83332',1,'DWT_Type']]], + ['comp3',['COMP3',['../struct_d_w_t___type.html#a3df15697eec279dbbb4b4e9d9ae8b62f',1,'DWT_Type']]], + ['cpacr',['CPACR',['../struct_s_c_b___type.html#af460b56ce524a8e3534173f0aee78e85',1,'SCB_Type']]], + ['cpicnt',['CPICNT',['../struct_d_w_t___type.html#a88cca2ab8eb1b5b507817656ceed89fc',1,'DWT_Type']]], + ['cpuid',['CPUID',['../struct_s_c_b___type.html#afa7a9ee34dfa1da0b60b4525da285032',1,'SCB_Type']]], + ['cspsr',['CSPSR',['../struct_t_p_i___type.html#aa723ef3d38237aa2465779b3cc73a94a',1,'TPI_Type']]], + ['ctrl',['CTRL',['../struct_sys_tick___type.html#af2ad94ac83e5d40fc6e34884bc1bec5f',1,'SysTick_Type::CTRL()'],['../struct_m_p_u___type.html#aab33593671948b93b1c0908d78779328',1,'MPU_Type::CTRL()'],['../struct_d_w_t___type.html#a37964d64a58551b69ce4c8097210d37d',1,'DWT_Type::CTRL()']]], + ['cyccnt',['CYCCNT',['../struct_d_w_t___type.html#a71680298e85e96e57002f87e7ab78fd4',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_64.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_64.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_64.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['dcrdr',['DCRDR',['../struct_core_debug___type.html#ab8f4bb076402b61f7be6308075a789c9',1,'CoreDebug_Type']]], + ['dcrsr',['DCRSR',['../struct_core_debug___type.html#afefa84bce7497652353a1b76d405d983',1,'CoreDebug_Type']]], + ['demcr',['DEMCR',['../struct_core_debug___type.html#a5cdd51dbe3ebb7041880714430edd52d',1,'CoreDebug_Type']]], + ['devid',['DEVID',['../struct_t_p_i___type.html#a4b2e0d680cf7e26728ca8966363a938d',1,'TPI_Type']]], + ['devtype',['DEVTYPE',['../struct_t_p_i___type.html#a16d12c5b1e12f764fa3ec4a51c5f0f35',1,'TPI_Type']]], + ['dfr',['DFR',['../struct_s_c_b___type.html#a586a5225467262b378c0f231ccc77f86',1,'SCB_Type']]], + ['dfsr',['DFSR',['../struct_s_c_b___type.html#ad7d61d9525fa9162579c3da0b87bff8d',1,'SCB_Type']]], + ['dhcsr',['DHCSR',['../struct_core_debug___type.html#a25c14c022c73a725a1736e903431095d',1,'CoreDebug_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_65.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_65.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_65.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_65.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_65.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_65.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['exccnt',['EXCCNT',['../struct_d_w_t___type.html#ac0801a2328f3431e4706fed91c828f82',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_66.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_66.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_66.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_66.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_66.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['ffcr',['FFCR',['../struct_t_p_i___type.html#a3eb42d69922e340037692424a69da880',1,'TPI_Type']]], + ['ffsr',['FFSR',['../struct_t_p_i___type.html#ae67849b2c1016fe6ef9095827d16cddd',1,'TPI_Type']]], + ['fifo0',['FIFO0',['../struct_t_p_i___type.html#ae91ff529e87d8e234343ed31bcdc4f10',1,'TPI_Type']]], + ['fifo1',['FIFO1',['../struct_t_p_i___type.html#aebaa9b8dd27f8017dd4f92ecf32bac8e',1,'TPI_Type']]], + ['foldcnt',['FOLDCNT',['../struct_d_w_t___type.html#a35f2315f870a574e3e6958face6584ab',1,'DWT_Type']]], + ['fpca',['FPCA',['../union_c_o_n_t_r_o_l___type.html#ac62cfff08e6f055e0101785bad7094cd',1,'CONTROL_Type']]], + ['fpcar',['FPCAR',['../struct_f_p_u___type.html#aa48253f088dc524de80c42fbc995f66b',1,'FPU_Type']]], + ['fpccr',['FPCCR',['../struct_f_p_u___type.html#a22054423086a3daf2077fb2f3fe2a8b8',1,'FPU_Type']]], + ['fpdscr',['FPDSCR',['../struct_f_p_u___type.html#a4d58ef3ebea69a5ec5acd8c90a9941b6',1,'FPU_Type']]], + ['fscr',['FSCR',['../struct_t_p_i___type.html#a377b78fe804f327e6f8b3d0f37e7bfef',1,'TPI_Type']]], + ['function0',['FUNCTION0',['../struct_d_w_t___type.html#a5fbd9947d110cc168941f6acadc4a729',1,'DWT_Type']]], + ['function1',['FUNCTION1',['../struct_d_w_t___type.html#a3345a33476ee58e165447a3212e6d747',1,'DWT_Type']]], + ['function2',['FUNCTION2',['../struct_d_w_t___type.html#acba1654190641a3617fcc558b5e3f87b',1,'DWT_Type']]], + ['function3',['FUNCTION3',['../struct_d_w_t___type.html#a80bd242fc05ca80f9db681ce4d82e890',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_68.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_68.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_68.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_68.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_68.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hfsr',['HFSR',['../struct_s_c_b___type.html#a7bed53391da4f66d8a2a236a839d4c3d',1,'SCB_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_69.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_69.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_69.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['iabr',['IABR',['../struct_n_v_i_c___type.html#a33e917b381e08dabe4aa5eb2881a7c11',1,'NVIC_Type']]], + ['icer',['ICER',['../struct_n_v_i_c___type.html#a1965a2e68b61d2e2009621f6949211a5',1,'NVIC_Type']]], + ['icpr',['ICPR',['../struct_n_v_i_c___type.html#a46241be64208436d35c9a4f8552575c5',1,'NVIC_Type']]], + ['icsr',['ICSR',['../struct_s_c_b___type.html#a3e66570ab689d28aebefa7e84e85dc4a',1,'SCB_Type']]], + ['ictr',['ICTR',['../struct_s_cn_s_c_b___type.html#ad99a25f5d4c163d9005ca607c24f6a98',1,'SCnSCB_Type']]], + ['ip',['IP',['../struct_n_v_i_c___type.html#a6524789fedb94623822c3e0a47f3d06c',1,'NVIC_Type']]], + ['isar',['ISAR',['../struct_s_c_b___type.html#acee8e458f054aac964268f4fe647ea4f',1,'SCB_Type']]], + ['iser',['ISER',['../struct_n_v_i_c___type.html#af90c80b7c2b48e248780b3781e0df80f',1,'NVIC_Type']]], + ['ispr',['ISPR',['../struct_n_v_i_c___type.html#acf8e38fc2e97316242ddeb7ea959ab90',1,'NVIC_Type']]], + ['isr',['ISR',['../union_i_p_s_r___type.html#ab46e5f1b2f4d17cfb9aca4fffcbb2fa5',1,'IPSR_Type::ISR()'],['../unionx_p_s_r___type.html#a3e9120dcf1a829fc8d2302b4d0673970',1,'xPSR_Type::ISR()']]], + ['it',['IT',['../unionx_p_s_r___type.html#a3200966922a194d84425e2807a7f1328',1,'xPSR_Type']]], + ['itatbctr0',['ITATBCTR0',['../struct_t_p_i___type.html#a20ca7fad4d4009c242f20a7b4a44b7d0',1,'TPI_Type']]], + ['itatbctr2',['ITATBCTR2',['../struct_t_p_i___type.html#a176d991adb4c022bd5b982a9f8fa6a1d',1,'TPI_Type']]], + ['itctrl',['ITCTRL',['../struct_t_p_i___type.html#ab49c2cb6b5fe082746a444e07548c198',1,'TPI_Type']]], + ['itm_5frxbuffer',['ITM_RxBuffer',['../group___i_t_m___debug__gr.html#ga12e68e55a7badc271b948d6c7230b2a8',1,'Ref_Debug.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_6c.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_6c.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_6c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_6c.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_6c.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_6c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['load',['LOAD',['../struct_sys_tick___type.html#ae7bc9d3eac1147f3bba8d73a8395644f',1,'SysTick_Type']]], + ['lsucnt',['LSUCNT',['../struct_d_w_t___type.html#aeba92e6c7fd3de4ba06bfd94f47f5b35',1,'DWT_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_6d.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_6d.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_6d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['mask0',['MASK0',['../struct_d_w_t___type.html#a5bb1c17fc754180cc197b874d3d8673f',1,'DWT_Type']]], + ['mask1',['MASK1',['../struct_d_w_t___type.html#a0c684438a24f8c927e6e01c0e0a605ef',1,'DWT_Type']]], + ['mask2',['MASK2',['../struct_d_w_t___type.html#a8ecdc8f0d917dac86b0373532a1c0e2e',1,'DWT_Type']]], + ['mask3',['MASK3',['../struct_d_w_t___type.html#ae3f01137a8d28c905ddefe7333547fba',1,'DWT_Type']]], + ['mmfar',['MMFAR',['../struct_s_c_b___type.html#ac49b24b3f222508464f111772f2c44dd',1,'SCB_Type']]], + ['mmfr',['MMFR',['../struct_s_c_b___type.html#aec2f8283d2737c6897188568a4214976',1,'SCB_Type']]], + ['mvfr0',['MVFR0',['../struct_f_p_u___type.html#a135577b0a76bd3164be2a02f29ca46f1',1,'FPU_Type']]], + ['mvfr1',['MVFR1',['../struct_f_p_u___type.html#a776e8625853e1413c4e8330ec85c256d',1,'FPU_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_6e.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_6e.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_6e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_6e.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_6e.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_6e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['n',['N',['../union_a_p_s_r___type.html#a7e7bbba9b00b0bb3283dc07f1abe37e0',1,'APSR_Type::N()'],['../unionx_p_s_r___type.html#a2db9a52f6d42809627d1a7a607c5dbc5',1,'xPSR_Type::N()']]], + ['npriv',['nPRIV',['../union_c_o_n_t_r_o_l___type.html#a35c1732cf153b7b5c4bd321cf1de9605',1,'CONTROL_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_70.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_70.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_70.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_70.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_70.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['pcsr',['PCSR',['../struct_d_w_t___type.html#abc5ae11d98da0ad5531a5e979a3c2ab5',1,'DWT_Type']]], + ['pfr',['PFR',['../struct_s_c_b___type.html#a3f51c43f952f3799951d0c54e76b0cb7',1,'SCB_Type']]], + ['port',['PORT',['../struct_i_t_m___type.html#afe056e8c8f8c5519d9b47611fa3a4c46',1,'ITM_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_71.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_71.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_71.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_71.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_71.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_71.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['q',['Q',['../union_a_p_s_r___type.html#a22d10913489d24ab08bd83457daa88de',1,'APSR_Type::Q()'],['../unionx_p_s_r___type.html#add7cbd2b0abd8954d62cd7831796ac7c',1,'xPSR_Type::Q()']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_72.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_72.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_72.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_72.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_72.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_72.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['rasr',['RASR',['../struct_m_p_u___type.html#adc65d266d15ce9ba57b3d127e8267f03',1,'MPU_Type']]], + ['rasr_5fa1',['RASR_A1',['../struct_m_p_u___type.html#a94222f9a8637b5329016e18f08af7185',1,'MPU_Type']]], + ['rasr_5fa2',['RASR_A2',['../struct_m_p_u___type.html#a0aac7727a6225c6aa00627c36d51d014',1,'MPU_Type']]], + ['rasr_5fa3',['RASR_A3',['../struct_m_p_u___type.html#aced0b908173b9a4bae4f59452f0cdb0d',1,'MPU_Type']]], + ['rbar',['RBAR',['../struct_m_p_u___type.html#a3f2e2448a77aadacd9f394f6c4c708d9',1,'MPU_Type']]], + ['rbar_5fa1',['RBAR_A1',['../struct_m_p_u___type.html#a4dbcffa0a71c31e521b645b34b40e639',1,'MPU_Type']]], + ['rbar_5fa2',['RBAR_A2',['../struct_m_p_u___type.html#a8703a00626dba046b841c0db6c78c395',1,'MPU_Type']]], + ['rbar_5fa3',['RBAR_A3',['../struct_m_p_u___type.html#a9fda17c37b85ef317c7c8688ff8c5804',1,'MPU_Type']]], + ['reserved0',['RESERVED0',['../struct_n_v_i_c___type.html#a2de17698945ea49abd58a2d45bdc9c80',1,'NVIC_Type::RESERVED0()'],['../struct_s_c_b___type.html#ac89a5d9901e3748d22a7090bfca2bee6',1,'SCB_Type::RESERVED0()'],['../struct_s_cn_s_c_b___type.html#afe1d5fd2966d5062716613b05c8d0ae1',1,'SCnSCB_Type::RESERVED0()'],['../struct_i_t_m___type.html#a2c5ae30385b5f370d023468ea9914c0e',1,'ITM_Type::RESERVED0()'],['../struct_f_p_u___type.html#a7b2967b069046c8544adbbc1db143a36',1,'FPU_Type::RESERVED0()'],['../struct_d_w_t___type.html#addd893d655ed90d40705b20170daac59',1,'DWT_Type::RESERVED0()'],['../struct_t_p_i___type.html#af143c5e8fc9a3b2be2878e9c1f331aa9',1,'TPI_Type::RESERVED0()']]], + ['reserved1',['RESERVED1',['../struct_i_t_m___type.html#afffce5b93bbfedbaee85357d0b07ebce',1,'ITM_Type::RESERVED1()'],['../struct_d_w_t___type.html#a069871233a8c1df03521e6d7094f1de4',1,'DWT_Type::RESERVED1()'],['../struct_t_p_i___type.html#ac3956fe93987b725d89d3be32738da12',1,'TPI_Type::RESERVED1()']]], + ['reserved2',['RESERVED2',['../struct_n_v_i_c___type.html#a0953af43af8ec7fd5869a1d826ce5b72',1,'NVIC_Type::RESERVED2()'],['../struct_i_t_m___type.html#af56b2f07bc6b42cd3e4d17e1b27cff7b',1,'ITM_Type::RESERVED2()'],['../struct_d_w_t___type.html#a8556ca1c32590517602d92fe0cd55738',1,'DWT_Type::RESERVED2()'],['../struct_t_p_i___type.html#ac7bbb92e6231b9b38ac483f7d161a096',1,'TPI_Type::RESERVED2()']]], + ['reserved3',['RESERVED3',['../struct_n_v_i_c___type.html#a9dd330835dbf21471e7b5be8692d77ab',1,'NVIC_Type::RESERVED3()'],['../struct_t_p_i___type.html#a31700c8cdd26e4c094db72af33d9f24c',1,'TPI_Type::RESERVED3()']]], + ['reserved4',['RESERVED4',['../struct_n_v_i_c___type.html#a5c0e5d507ac3c1bd5cdaaf9bbd177790',1,'NVIC_Type::RESERVED4()'],['../struct_t_p_i___type.html#a684071216fafee4e80be6aaa932cec46',1,'TPI_Type::RESERVED4()']]], + ['reserved5',['RESERVED5',['../struct_n_v_i_c___type.html#a4f753b4f824270175af045ac99bc12e8',1,'NVIC_Type::RESERVED5()'],['../struct_t_p_i___type.html#a3f80dd93f6bab6524603a7aa58de9a30',1,'TPI_Type::RESERVED5()']]], + ['reserved7',['RESERVED7',['../struct_t_p_i___type.html#a476ca23fbc9480f1697fbec871130550',1,'TPI_Type']]], + ['rnr',['RNR',['../struct_m_p_u___type.html#afd8de96a5d574c3953e2106e782f9833',1,'MPU_Type']]], + ['rserved1',['RSERVED1',['../struct_n_v_i_c___type.html#a6d1daf7ab6f2ba83f57ff67ae6f571fe',1,'NVIC_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_73.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_73.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_73.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['scr',['SCR',['../struct_s_c_b___type.html#abfad14e7b4534d73d329819625d77a16',1,'SCB_Type']]], + ['shcsr',['SHCSR',['../struct_s_c_b___type.html#ae9891a59abbe51b0b2067ca507ca212f',1,'SCB_Type']]], + ['shp',['SHP',['../struct_s_c_b___type.html#af6336103f8be0cab29de51daed5a65f4',1,'SCB_Type']]], + ['sleepcnt',['SLEEPCNT',['../struct_d_w_t___type.html#a8afd5a4bf994011748bc012fa442c74d',1,'DWT_Type']]], + ['sppr',['SPPR',['../struct_t_p_i___type.html#a3eb655f2e45d7af358775025c1a50c8e',1,'TPI_Type']]], + ['spsel',['SPSEL',['../union_c_o_n_t_r_o_l___type.html#a8cc085fea1c50a8bd9adea63931ee8e2',1,'CONTROL_Type']]], + ['sspsr',['SSPSR',['../struct_t_p_i___type.html#a158e9d784f6ee6398f4bdcb2e4ca0912',1,'TPI_Type']]], + ['stir',['STIR',['../struct_n_v_i_c___type.html#a0b0d7f3131da89c659a2580249432749',1,'NVIC_Type']]], + ['systemcoreclock',['SystemCoreClock',['../group__system__init__gr.html#gaa3cd3e43291e81e795d642b79b6088e6',1,'Ref_SystemAndClock.txt']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_74.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_74.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_74.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['t',['T',['../unionx_p_s_r___type.html#a7eed9fe24ae8d354cd76ae1c1110a658',1,'xPSR_Type']]], + ['tcr',['TCR',['../struct_i_t_m___type.html#a58f169e1aa40a9b8afb6296677c3bb45',1,'ITM_Type']]], + ['ter',['TER',['../struct_i_t_m___type.html#a91a040e1b162e1128ac1e852b4a0e589',1,'ITM_Type']]], + ['tpr',['TPR',['../struct_i_t_m___type.html#a93b480aac6da620bbb611212186d47fa',1,'ITM_Type']]], + ['trigger',['TRIGGER',['../struct_t_p_i___type.html#aa4b603c71768dbda553da571eccba1fe',1,'TPI_Type']]], + ['type',['TYPE',['../struct_m_p_u___type.html#a6ae8a8c3a4909ae41447168d793608f7',1,'MPU_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_75.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_75.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_75.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_75.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_75.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['u16',['u16',['../struct_i_t_m___type.html#a12aa4eb4d9dcb589a5d953c836f4e8f4',1,'ITM_Type']]], + ['u32',['u32',['../struct_i_t_m___type.html#a6882fa5af67ef5c5dfb433b3b68939df',1,'ITM_Type']]], + ['u8',['u8',['../struct_i_t_m___type.html#abea77b06775d325e5f6f46203f582433',1,'ITM_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_76.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_76.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_76.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_76.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_76.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['v',['V',['../union_a_p_s_r___type.html#a8004d224aacb78ca37774c35f9156e7e',1,'APSR_Type::V()'],['../unionx_p_s_r___type.html#af14df16ea0690070c45b95f2116b7a0a',1,'xPSR_Type::V()']]], + ['val',['VAL',['../struct_sys_tick___type.html#a0997ff20f11817f8246e8f0edac6f4e4',1,'SysTick_Type']]], + ['vtor',['VTOR',['../struct_s_c_b___type.html#a0faf96f964931cadfb71cfa54e051f6f',1,'SCB_Type']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_77.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_77.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_77.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_77.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_77.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_77.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['w',['w',['../union_a_p_s_r___type.html#ae4c2ef8c9430d7b7bef5cbfbbaed3a94',1,'APSR_Type::w()'],['../union_i_p_s_r___type.html#a4adca999d3a0bc1ae682d73ea7cfa879',1,'IPSR_Type::w()'],['../unionx_p_s_r___type.html#a1a47176768f45f79076c4f5b1b534bc2',1,'xPSR_Type::w()'],['../union_c_o_n_t_r_o_l___type.html#a6b642cca3d96da660b1198c133ca2a1f',1,'CONTROL_Type::w()']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_7a.html b/Libraries/CMSIS/Documentation/Core/html/search/variables_7a.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_7a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/Core/html/search/variables_7a.js b/Libraries/CMSIS/Documentation/Core/html/search/variables_7a.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/search/variables_7a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['z',['Z',['../union_a_p_s_r___type.html#a3b04d58738b66a28ff13f23d8b0ba7e5',1,'APSR_Type::Z()'],['../unionx_p_s_r___type.html#a1e5d9801013d5146f2e02d9b7b3da562',1,'xPSR_Type::Z()']]] +]; diff --git a/Libraries/CMSIS/Documentation/Core/html/startup_s_pg.html b/Libraries/CMSIS/Documentation/Core/html/startup_s_pg.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/startup_s_pg.html @@ -0,0 +1,369 @@ + + + + + +CMSIS-CORE: Startup File startup_<device>.s + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Startup File startup_<device>.s
    +
    +
    +

    The Startup File startup_<device>.s contains:

    +
      +
    • The reset handler which is executed after CPU reset and typically calls the SystemInit function.
    • +
    • The setup values for the Main Stack Pointer (MSP).
    • +
    • Exception vectors of the Cortex-M Processor with weak functions that implement default routines.
    • +
    • Interrupt vectors that are device specific with weak functions that implement default routines.
    • +
    +

    The file exists for each supported toolchain and is the only tool-chain specific CMSIS file.

    +

    To adapt the file to a new device only the interrupt vector table needs to be extended with the device-specific interrupt handlers. The naming convention for the interrupt handler names are <interrupt_name>_IRQHandler. This table needs to be consistent with IRQn_Type that defines all the IRQ numbers for each interrupt.

    +

    Example:

    +

    The following example shows the extension of the interrupt vector table for the LPC1100 device family.

    +
    ; External Interrupts
    +
    DCD WAKEUP0_IRQHandler ; 16+ 0: Wakeup PIO0.0
    +
    DCD WAKEUP1_IRQHandler ; 16+ 1: Wakeup PIO0.1
    +
    DCD WAKEUP2_IRQHandler ; 16+ 2: Wakeup PIO0.2
    +
    : :
    +
    : :
    +
    DCD EINT1_IRQHandler ; 16+30: PIO INT1
    +
    DCD EINT0_IRQHandler ; 16+31: PIO INT0
    +
    :
    +
    :
    +
    EXPORT WAKEUP0_IRQHandler [WEAK]
    +
    EXPORT WAKEUP1_IRQHandler [WEAK]
    +
    EXPORT WAKEUP2_IRQHandler [WEAK]
    +
    : :
    +
    : :
    +
    EXPORT EINT1_IRQHandler [WEAK]
    +
    EXPORT EINT0_IRQHandler [WEAK]
    +
    +
    WAKEUP0_IRQHandler
    +
    WAKEUP1_IRQHandler
    +
    WAKEUP1_IRQHandler
    +
    :
    +
    :
    +
    EINT1_IRQHandler
    +
    EINT0_IRQHandler
    +
    B .
    +

    +startup_Device.s Template File

    +

    The startup_Device.s Template File for the Cortex-M3 and the ARMCC compiler is shown below. The files for other compiler vendors differ slightly in the syntax, but not in the overall structure.

    +
    ;/**************************************************************************//**
    +; * @file     startup_<Device>.s
    +; * @brief    CMSIS Cortex-M# Core Device Startup File for
    +; *           Device <Device>
    +; * @version  V3.10
    +; * @date     23. November 2012
    +; *
    +; * @note
    +; *
    +; ******************************************************************************/
    +;/* Copyright (c) 2012 ARM LIMITED
    +;
    +;   All rights reserved.
    +;   Redistribution and use in source and binary forms, with or without
    +;   modification, are permitted provided that the following conditions are met:
    +;   - Redistributions of source code must retain the above copyright
    +;     notice, this list of conditions and the following disclaimer.
    +;   - Redistributions in binary form must reproduce the above copyright
    +;     notice, this list of conditions and the following disclaimer in the
    +;     documentation and/or other materials provided with the distribution.
    +;   - Neither the name of ARM nor the names of its contributors may be used
    +;     to endorse or promote products derived from this software without
    +;     specific prior written permission.
    +;   *
    +;   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +;   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +;   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +;   ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
    +;   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +;   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +;   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +;   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +;   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +;   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +;   POSSIBILITY OF SUCH DAMAGE.
    +;   ---------------------------------------------------------------------------*/
    +;/*
    +;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
    +;*/
    +
    +
    +; <h> Stack Configuration
    +;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
    +; </h>
    +
    +Stack_Size      EQU     0x00000400
    +
    +                AREA    STACK, NOINIT, READWRITE, ALIGN=3
    +Stack_Mem       SPACE   Stack_Size
    +__initial_sp
    +
    +
    +; <h> Heap Configuration
    +;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
    +; </h>
    +
    +Heap_Size       EQU     0x00000100
    +
    +                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
    +; ToDo:  Add here the vectors for the device specific external interrupts handler
    +                DCD     <DeviceInterrupt>_IRQHandler       ;  0: Default
    +__Vectors_End
    +
    +__Vectors_Size  EQU     __Vectors_End - __Vectors
    +
    +                AREA    |.text|, CODE, READONLY
    +
    +
    +; Reset Handler
    +
    +Reset_Handler   PROC
    +                EXPORT  Reset_Handler             [WEAK]
    +                IMPORT  SystemInit
    +                IMPORT  __main
    +                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
    +; ToDo:  Add here the export definition for the device specific external interrupts handler
    +                EXPORT  <DeviceInterrupt>_IRQHandler         [WEAK]
    +
    +; ToDo:  Add here the names for the device specific external interrupts handler
    +<DeviceInterrupt>_IRQHandler
    +                B       .
    +                ENDP
    +
    +
    +                ALIGN
    +
    +
    +; User Initial Stack & Heap
    +
    +                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 PROC
    +                LDR     R0, =  Heap_Mem
    +                LDR     R1, =(Stack_Mem + Stack_Size)
    +                LDR     R2, = (Heap_Mem +  Heap_Size)
    +                LDR     R3, = Stack_Mem
    +                BX      LR
    +                ENDP
    +
    +                ALIGN
    +
    +                ENDIF
    +
    +
    +                END
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_core_debug___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_core_debug___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_core_debug___type.html @@ -0,0 +1,204 @@ + + + + + +CMSIS-CORE: CoreDebug_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    CoreDebug_Type Struct Reference
    +
    +
    + +

    Structure type to access the Core Debug Register (CoreDebug). +

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

    +Data Fields

    __IO uint32_t DHCSR
     Offset: 0x000 (R/W) Debug Halting Control and Status Register. More...
     
    __O uint32_t DCRSR
     Offset: 0x004 ( /W) Debug Core Register Selector Register. More...
     
    __IO uint32_t DCRDR
     Offset: 0x008 (R/W) Debug Core Register Data Register. More...
     
    __IO uint32_t DEMCR
     Offset: 0x00C (R/W) Debug Exception and Monitor Control Register. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __IO uint32_t CoreDebug_Type::DCRDR
    +
    + +
    +
    + +
    +
    + + + + +
    __O uint32_t CoreDebug_Type::DCRSR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t CoreDebug_Type::DEMCR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t CoreDebug_Type::DHCSR
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_core_debug___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_core_debug___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_core_debug___type.js @@ -0,0 +1,7 @@ +var struct_core_debug___type = +[ + [ "DCRDR", "struct_core_debug___type.html#ab8f4bb076402b61f7be6308075a789c9", null ], + [ "DCRSR", "struct_core_debug___type.html#afefa84bce7497652353a1b76d405d983", null ], + [ "DEMCR", "struct_core_debug___type.html#a5cdd51dbe3ebb7041880714430edd52d", null ], + [ "DHCSR", "struct_core_debug___type.html#a25c14c022c73a725a1736e903431095d", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_d_w_t___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_d_w_t___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_d_w_t___type.html @@ -0,0 +1,489 @@ + + + + + +CMSIS-CORE: DWT_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    DWT_Type Struct Reference
    +
    +
    + +

    Structure type to access the Data Watchpoint and Trace Register (DWT). +

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

    +Data Fields

    __IO uint32_t CTRL
     Offset: 0x000 (R/W) Control Register. More...
     
    __IO uint32_t CYCCNT
     Offset: 0x004 (R/W) Cycle Count Register. More...
     
    __IO uint32_t CPICNT
     Offset: 0x008 (R/W) CPI Count Register. More...
     
    __IO uint32_t EXCCNT
     Offset: 0x00C (R/W) Exception Overhead Count Register. More...
     
    __IO uint32_t SLEEPCNT
     Offset: 0x010 (R/W) Sleep Count Register. More...
     
    __IO uint32_t LSUCNT
     Offset: 0x014 (R/W) LSU Count Register. More...
     
    __IO uint32_t FOLDCNT
     Offset: 0x018 (R/W) Folded-instruction Count Register. More...
     
    __I uint32_t PCSR
     Offset: 0x01C (R/ ) Program Counter Sample Register. More...
     
    __IO uint32_t COMP0
     Offset: 0x020 (R/W) Comparator Register 0. More...
     
    __IO uint32_t MASK0
     Offset: 0x024 (R/W) Mask Register 0. More...
     
    __IO uint32_t FUNCTION0
     Offset: 0x028 (R/W) Function Register 0. More...
     
    uint32_t RESERVED0 [1]
     Reserved. More...
     
    __IO uint32_t COMP1
     Offset: 0x030 (R/W) Comparator Register 1. More...
     
    __IO uint32_t MASK1
     Offset: 0x034 (R/W) Mask Register 1. More...
     
    __IO uint32_t FUNCTION1
     Offset: 0x038 (R/W) Function Register 1. More...
     
    uint32_t RESERVED1 [1]
     Reserved. More...
     
    __IO uint32_t COMP2
     Offset: 0x040 (R/W) Comparator Register 2. More...
     
    __IO uint32_t MASK2
     Offset: 0x044 (R/W) Mask Register 2. More...
     
    __IO uint32_t FUNCTION2
     Offset: 0x048 (R/W) Function Register 2. More...
     
    uint32_t RESERVED2 [1]
     Reserved. More...
     
    __IO uint32_t COMP3
     Offset: 0x050 (R/W) Comparator Register 3. More...
     
    __IO uint32_t MASK3
     Offset: 0x054 (R/W) Mask Register 3. More...
     
    __IO uint32_t FUNCTION3
     Offset: 0x058 (R/W) Function Register 3. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::COMP0
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::COMP1
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::COMP2
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::COMP3
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::CPICNT
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::CTRL
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::CYCCNT
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::EXCCNT
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::FOLDCNT
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::FUNCTION0
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::FUNCTION1
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::FUNCTION2
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::FUNCTION3
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::LSUCNT
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::MASK0
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::MASK1
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::MASK2
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::MASK3
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t DWT_Type::PCSR
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t DWT_Type::RESERVED0[1]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t DWT_Type::RESERVED1[1]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t DWT_Type::RESERVED2[1]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t DWT_Type::SLEEPCNT
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_d_w_t___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_d_w_t___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_d_w_t___type.js @@ -0,0 +1,26 @@ +var struct_d_w_t___type = +[ + [ "COMP0", "struct_d_w_t___type.html#a7cf71ff4b30a8362690fddd520763904", null ], + [ "COMP1", "struct_d_w_t___type.html#a4a5bb70a5ce3752bd628d5ce5658cb0c", null ], + [ "COMP2", "struct_d_w_t___type.html#a8927aedbe9fd6bdae8983088efc83332", null ], + [ "COMP3", "struct_d_w_t___type.html#a3df15697eec279dbbb4b4e9d9ae8b62f", null ], + [ "CPICNT", "struct_d_w_t___type.html#a88cca2ab8eb1b5b507817656ceed89fc", null ], + [ "CTRL", "struct_d_w_t___type.html#a37964d64a58551b69ce4c8097210d37d", null ], + [ "CYCCNT", "struct_d_w_t___type.html#a71680298e85e96e57002f87e7ab78fd4", null ], + [ "EXCCNT", "struct_d_w_t___type.html#ac0801a2328f3431e4706fed91c828f82", null ], + [ "FOLDCNT", "struct_d_w_t___type.html#a35f2315f870a574e3e6958face6584ab", null ], + [ "FUNCTION0", "struct_d_w_t___type.html#a5fbd9947d110cc168941f6acadc4a729", null ], + [ "FUNCTION1", "struct_d_w_t___type.html#a3345a33476ee58e165447a3212e6d747", null ], + [ "FUNCTION2", "struct_d_w_t___type.html#acba1654190641a3617fcc558b5e3f87b", null ], + [ "FUNCTION3", "struct_d_w_t___type.html#a80bd242fc05ca80f9db681ce4d82e890", null ], + [ "LSUCNT", "struct_d_w_t___type.html#aeba92e6c7fd3de4ba06bfd94f47f5b35", null ], + [ "MASK0", "struct_d_w_t___type.html#a5bb1c17fc754180cc197b874d3d8673f", null ], + [ "MASK1", "struct_d_w_t___type.html#a0c684438a24f8c927e6e01c0e0a605ef", null ], + [ "MASK2", "struct_d_w_t___type.html#a8ecdc8f0d917dac86b0373532a1c0e2e", null ], + [ "MASK3", "struct_d_w_t___type.html#ae3f01137a8d28c905ddefe7333547fba", null ], + [ "PCSR", "struct_d_w_t___type.html#abc5ae11d98da0ad5531a5e979a3c2ab5", null ], + [ "RESERVED0", "struct_d_w_t___type.html#addd893d655ed90d40705b20170daac59", null ], + [ "RESERVED1", "struct_d_w_t___type.html#a069871233a8c1df03521e6d7094f1de4", null ], + [ "RESERVED2", "struct_d_w_t___type.html#a8556ca1c32590517602d92fe0cd55738", null ], + [ "SLEEPCNT", "struct_d_w_t___type.html#a8afd5a4bf994011748bc012fa442c74d", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_f_p_u___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_f_p_u___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_f_p_u___type.html @@ -0,0 +1,234 @@ + + + + + +CMSIS-CORE: FPU_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    FPU_Type Struct Reference
    +
    +
    + +

    Structure type to access the Floating Point Unit (FPU). +

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

    +Data Fields

    uint32_t RESERVED0 [1]
     Reserved. More...
     
    __IO uint32_t FPCCR
     Offset: 0x004 (R/W) Floating-Point Context Control Register. More...
     
    __IO uint32_t FPCAR
     Offset: 0x008 (R/W) Floating-Point Context Address Register. More...
     
    __IO uint32_t FPDSCR
     Offset: 0x00C (R/W) Floating-Point Default Status Control Register. More...
     
    __I uint32_t MVFR0
     Offset: 0x010 (R/ ) Media and FP Feature Register 0. More...
     
    __I uint32_t MVFR1
     Offset: 0x014 (R/ ) Media and FP Feature Register 1. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __IO uint32_t FPU_Type::FPCAR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t FPU_Type::FPCCR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t FPU_Type::FPDSCR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t FPU_Type::MVFR0
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t FPU_Type::MVFR1
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t FPU_Type::RESERVED0[1]
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_f_p_u___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_f_p_u___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_f_p_u___type.js @@ -0,0 +1,9 @@ +var struct_f_p_u___type = +[ + [ "FPCAR", "struct_f_p_u___type.html#aa48253f088dc524de80c42fbc995f66b", null ], + [ "FPCCR", "struct_f_p_u___type.html#a22054423086a3daf2077fb2f3fe2a8b8", null ], + [ "FPDSCR", "struct_f_p_u___type.html#a4d58ef3ebea69a5ec5acd8c90a9941b6", null ], + [ "MVFR0", "struct_f_p_u___type.html#a135577b0a76bd3164be2a02f29ca46f1", null ], + [ "MVFR1", "struct_f_p_u___type.html#a776e8625853e1413c4e8330ec85c256d", null ], + [ "RESERVED0", "struct_f_p_u___type.html#a7b2967b069046c8544adbbc1db143a36", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_i_t_m___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_i_t_m___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_i_t_m___type.html @@ -0,0 +1,295 @@ + + + + + +CMSIS-CORE: ITM_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    ITM_Type Struct Reference
    +
    +
    + +

    Structure type to access the Instrumentation Trace Macrocell Register (ITM). +

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

    +Data Fields

    union {
       __O uint8_t   u8
     Offset: 0x000 ( /W) ITM Stimulus Port 8-bit. More...
     
       __O uint16_t   u16
     Offset: 0x000 ( /W) ITM Stimulus Port 16-bit. More...
     
       __O uint32_t   u32
     Offset: 0x000 ( /W) ITM Stimulus Port 32-bit. More...
     
    PORT [32]
     Offset: 0x000 ( /W) ITM Stimulus Port Registers. More...
     
    uint32_t RESERVED0 [864]
     Reserved. More...
     
    __IO uint32_t TER
     Offset: 0xE00 (R/W) ITM Trace Enable Register. More...
     
    uint32_t RESERVED1 [15]
     Reserved. More...
     
    __IO uint32_t TPR
     Offset: 0xE40 (R/W) ITM Trace Privilege Register. More...
     
    uint32_t RESERVED2 [15]
     Reserved. More...
     
    __IO uint32_t TCR
     Offset: 0xE80 (R/W) ITM Trace Control Register. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __O { ... } ITM_Type::PORT[32]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t ITM_Type::RESERVED0[864]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t ITM_Type::RESERVED1[15]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t ITM_Type::RESERVED2[15]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t ITM_Type::TCR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t ITM_Type::TER
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t ITM_Type::TPR
    +
    + +
    +
    + +
    +
    + + + + +
    __O uint16_t ITM_Type::u16
    +
    + +
    +
    + +
    +
    + + + + +
    __O uint32_t ITM_Type::u32
    +
    + +
    +
    + +
    +
    + + + + +
    __O uint8_t ITM_Type::u8
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_i_t_m___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_i_t_m___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_i_t_m___type.js @@ -0,0 +1,13 @@ +var struct_i_t_m___type = +[ + [ "PORT", "struct_i_t_m___type.html#afe056e8c8f8c5519d9b47611fa3a4c46", null ], + [ "RESERVED0", "struct_i_t_m___type.html#a2c5ae30385b5f370d023468ea9914c0e", null ], + [ "RESERVED1", "struct_i_t_m___type.html#afffce5b93bbfedbaee85357d0b07ebce", null ], + [ "RESERVED2", "struct_i_t_m___type.html#af56b2f07bc6b42cd3e4d17e1b27cff7b", null ], + [ "TCR", "struct_i_t_m___type.html#a58f169e1aa40a9b8afb6296677c3bb45", null ], + [ "TER", "struct_i_t_m___type.html#a91a040e1b162e1128ac1e852b4a0e589", null ], + [ "TPR", "struct_i_t_m___type.html#a93b480aac6da620bbb611212186d47fa", null ], + [ "u16", "struct_i_t_m___type.html#a12aa4eb4d9dcb589a5d953c836f4e8f4", null ], + [ "u32", "struct_i_t_m___type.html#a6882fa5af67ef5c5dfb433b3b68939df", null ], + [ "u8", "struct_i_t_m___type.html#abea77b06775d325e5f6f46203f582433", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_m_p_u___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_m_p_u___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_m_p_u___type.html @@ -0,0 +1,309 @@ + + + + + +CMSIS-CORE: MPU_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    MPU_Type Struct Reference
    +
    +
    + +

    Structure type to access the Memory Protection Unit (MPU). +

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

    +Data Fields

    __I uint32_t TYPE
     Offset: 0x000 (R/ ) MPU Type Register. More...
     
    __IO uint32_t CTRL
     Offset: 0x004 (R/W) MPU Control Register. More...
     
    __IO uint32_t RNR
     Offset: 0x008 (R/W) MPU Region RNRber Register. More...
     
    __IO uint32_t RBAR
     Offset: 0x00C (R/W) MPU Region Base Address Register. More...
     
    __IO uint32_t RASR
     Offset: 0x010 (R/W) MPU Region Attribute and Size Register. More...
     
    __IO uint32_t RBAR_A1
     Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register. More...
     
    __IO uint32_t RASR_A1
     Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register. More...
     
    __IO uint32_t RBAR_A2
     Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register. More...
     
    __IO uint32_t RASR_A2
     Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register. More...
     
    __IO uint32_t RBAR_A3
     Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register. More...
     
    __IO uint32_t RASR_A3
     Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::CTRL
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RASR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RASR_A1
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RASR_A2
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RASR_A3
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RBAR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RBAR_A1
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RBAR_A2
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RBAR_A3
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t MPU_Type::RNR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t MPU_Type::TYPE
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_m_p_u___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_m_p_u___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_m_p_u___type.js @@ -0,0 +1,14 @@ +var struct_m_p_u___type = +[ + [ "CTRL", "struct_m_p_u___type.html#aab33593671948b93b1c0908d78779328", null ], + [ "RASR", "struct_m_p_u___type.html#adc65d266d15ce9ba57b3d127e8267f03", null ], + [ "RASR_A1", "struct_m_p_u___type.html#a94222f9a8637b5329016e18f08af7185", null ], + [ "RASR_A2", "struct_m_p_u___type.html#a0aac7727a6225c6aa00627c36d51d014", null ], + [ "RASR_A3", "struct_m_p_u___type.html#aced0b908173b9a4bae4f59452f0cdb0d", null ], + [ "RBAR", "struct_m_p_u___type.html#a3f2e2448a77aadacd9f394f6c4c708d9", null ], + [ "RBAR_A1", "struct_m_p_u___type.html#a4dbcffa0a71c31e521b645b34b40e639", null ], + [ "RBAR_A2", "struct_m_p_u___type.html#a8703a00626dba046b841c0db6c78c395", null ], + [ "RBAR_A3", "struct_m_p_u___type.html#a9fda17c37b85ef317c7c8688ff8c5804", null ], + [ "RNR", "struct_m_p_u___type.html#afd8de96a5d574c3953e2106e782f9833", null ], + [ "TYPE", "struct_m_p_u___type.html#a6ae8a8c3a4909ae41447168d793608f7", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_n_v_i_c___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_n_v_i_c___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_n_v_i_c___type.html @@ -0,0 +1,339 @@ + + + + + +CMSIS-CORE: NVIC_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    NVIC_Type Struct Reference
    +
    +
    + +

    Structure type to access the Nested Vectored Interrupt Controller (NVIC). +

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

    +Data Fields

    __IO uint32_t ISER [8]
     Offset: 0x000 (R/W) Interrupt Set Enable Register. More...
     
    uint32_t RESERVED0 [24]
     Reserved. More...
     
    __IO uint32_t ICER [8]
     Offset: 0x080 (R/W) Interrupt Clear Enable Register. More...
     
    uint32_t RSERVED1 [24]
     Reserved. More...
     
    __IO uint32_t ISPR [8]
     Offset: 0x100 (R/W) Interrupt Set Pending Register. More...
     
    uint32_t RESERVED2 [24]
     Reserved. More...
     
    __IO uint32_t ICPR [8]
     Offset: 0x180 (R/W) Interrupt Clear Pending Register. More...
     
    uint32_t RESERVED3 [24]
     Reserved. More...
     
    __IO uint32_t IABR [8]
     Offset: 0x200 (R/W) Interrupt Active bit Register. More...
     
    uint32_t RESERVED4 [56]
     Reserved. More...
     
    __IO uint8_t IP [240]
     Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) More...
     
    uint32_t RESERVED5 [644]
     Reserved. More...
     
    __O uint32_t STIR
     Offset: 0xE00 ( /W) Software Trigger Interrupt Register. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __IO uint32_t NVIC_Type::IABR[8]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t NVIC_Type::ICER[8]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t NVIC_Type::ICPR[8]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint8_t NVIC_Type::IP[240]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t NVIC_Type::ISER[8]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t NVIC_Type::ISPR[8]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t NVIC_Type::RESERVED0[24]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t NVIC_Type::RESERVED2[24]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t NVIC_Type::RESERVED3[24]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t NVIC_Type::RESERVED4[56]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t NVIC_Type::RESERVED5[644]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t NVIC_Type::RSERVED1[24]
    +
    + +
    +
    + +
    +
    + + + + +
    __O uint32_t NVIC_Type::STIR
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_n_v_i_c___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_n_v_i_c___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_n_v_i_c___type.js @@ -0,0 +1,16 @@ +var struct_n_v_i_c___type = +[ + [ "IABR", "struct_n_v_i_c___type.html#a33e917b381e08dabe4aa5eb2881a7c11", null ], + [ "ICER", "struct_n_v_i_c___type.html#a1965a2e68b61d2e2009621f6949211a5", null ], + [ "ICPR", "struct_n_v_i_c___type.html#a46241be64208436d35c9a4f8552575c5", null ], + [ "IP", "struct_n_v_i_c___type.html#a6524789fedb94623822c3e0a47f3d06c", null ], + [ "ISER", "struct_n_v_i_c___type.html#af90c80b7c2b48e248780b3781e0df80f", null ], + [ "ISPR", "struct_n_v_i_c___type.html#acf8e38fc2e97316242ddeb7ea959ab90", null ], + [ "RESERVED0", "struct_n_v_i_c___type.html#a2de17698945ea49abd58a2d45bdc9c80", null ], + [ "RESERVED2", "struct_n_v_i_c___type.html#a0953af43af8ec7fd5869a1d826ce5b72", null ], + [ "RESERVED3", "struct_n_v_i_c___type.html#a9dd330835dbf21471e7b5be8692d77ab", null ], + [ "RESERVED4", "struct_n_v_i_c___type.html#a5c0e5d507ac3c1bd5cdaaf9bbd177790", null ], + [ "RESERVED5", "struct_n_v_i_c___type.html#a4f753b4f824270175af045ac99bc12e8", null ], + [ "RSERVED1", "struct_n_v_i_c___type.html#a6d1daf7ab6f2ba83f57ff67ae6f571fe", null ], + [ "STIR", "struct_n_v_i_c___type.html#a0b0d7f3131da89c659a2580249432749", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_s_c_b___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_s_c_b___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_s_c_b___type.html @@ -0,0 +1,459 @@ + + + + + +CMSIS-CORE: SCB_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    SCB_Type Struct Reference
    +
    +
    + +

    Structure type to access the System Control Block (SCB). +

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

    +Data Fields

    __I uint32_t CPUID
     Offset: 0x000 (R/ ) CPUID Base Register. More...
     
    __IO uint32_t ICSR
     Offset: 0x004 (R/W) Interrupt Control and State Register. More...
     
    __IO uint32_t VTOR
     Offset: 0x008 (R/W) Vector Table Offset Register. More...
     
    __IO uint32_t AIRCR
     Offset: 0x00C (R/W) Application Interrupt and Reset Control Register. More...
     
    __IO uint32_t SCR
     Offset: 0x010 (R/W) System Control Register. More...
     
    __IO uint32_t CCR
     Offset: 0x014 (R/W) Configuration Control Register. More...
     
    __IO uint8_t SHP [12]
     Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) More...
     
    __IO uint32_t SHCSR
     Offset: 0x024 (R/W) System Handler Control and State Register. More...
     
    __IO uint32_t CFSR
     Offset: 0x028 (R/W) Configurable Fault Status Register. More...
     
    __IO uint32_t HFSR
     Offset: 0x02C (R/W) HardFault Status Register. More...
     
    __IO uint32_t DFSR
     Offset: 0x030 (R/W) Debug Fault Status Register. More...
     
    __IO uint32_t MMFAR
     Offset: 0x034 (R/W) MemManage Fault Address Register. More...
     
    __IO uint32_t BFAR
     Offset: 0x038 (R/W) BusFault Address Register. More...
     
    __IO uint32_t AFSR
     Offset: 0x03C (R/W) Auxiliary Fault Status Register. More...
     
    __I uint32_t PFR [2]
     Offset: 0x040 (R/ ) Processor Feature Register. More...
     
    __I uint32_t DFR
     Offset: 0x048 (R/ ) Debug Feature Register. More...
     
    __I uint32_t ADR
     Offset: 0x04C (R/ ) Auxiliary Feature Register. More...
     
    __I uint32_t MMFR [4]
     Offset: 0x050 (R/ ) Memory Model Feature Register. More...
     
    __I uint32_t ISAR [5]
     Offset: 0x060 (R/ ) Instruction Set Attributes Register. More...
     
    uint32_t RESERVED0 [5]
     Reserved. More...
     
    __IO uint32_t CPACR
     Offset: 0x088 (R/W) Coprocessor Access Control Register. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __I uint32_t SCB_Type::ADR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::AFSR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::AIRCR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::BFAR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::CCR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::CFSR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::CPACR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t SCB_Type::CPUID
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t SCB_Type::DFR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::DFSR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::HFSR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::ICSR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t SCB_Type::ISAR[5]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::MMFAR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t SCB_Type::MMFR[4]
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t SCB_Type::PFR[2]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t SCB_Type::RESERVED0[5]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::SCR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::SHCSR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint8_t SCB_Type::SHP[12]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SCB_Type::VTOR
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_s_c_b___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_s_c_b___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_s_c_b___type.js @@ -0,0 +1,24 @@ +var struct_s_c_b___type = +[ + [ "ADR", "struct_s_c_b___type.html#aaedf846e435ed05c68784b40d3db2bf2", null ], + [ "AFSR", "struct_s_c_b___type.html#aeb77053c84f49c261ab5b8374e8958ef", null ], + [ "AIRCR", "struct_s_c_b___type.html#a6ed3c9064013343ea9fd0a73a734f29d", null ], + [ "BFAR", "struct_s_c_b___type.html#a31f79afe86c949c9862e7d5fce077c3a", null ], + [ "CCR", "struct_s_c_b___type.html#a6d273c6b90bad15c91dfbbad0f6e92d8", null ], + [ "CFSR", "struct_s_c_b___type.html#a2f94bf549b16fdeb172352e22309e3c4", null ], + [ "CPACR", "struct_s_c_b___type.html#af460b56ce524a8e3534173f0aee78e85", null ], + [ "CPUID", "struct_s_c_b___type.html#afa7a9ee34dfa1da0b60b4525da285032", null ], + [ "DFR", "struct_s_c_b___type.html#a586a5225467262b378c0f231ccc77f86", null ], + [ "DFSR", "struct_s_c_b___type.html#ad7d61d9525fa9162579c3da0b87bff8d", null ], + [ "HFSR", "struct_s_c_b___type.html#a7bed53391da4f66d8a2a236a839d4c3d", null ], + [ "ICSR", "struct_s_c_b___type.html#a3e66570ab689d28aebefa7e84e85dc4a", null ], + [ "ISAR", "struct_s_c_b___type.html#acee8e458f054aac964268f4fe647ea4f", null ], + [ "MMFAR", "struct_s_c_b___type.html#ac49b24b3f222508464f111772f2c44dd", null ], + [ "MMFR", "struct_s_c_b___type.html#aec2f8283d2737c6897188568a4214976", null ], + [ "PFR", "struct_s_c_b___type.html#a3f51c43f952f3799951d0c54e76b0cb7", null ], + [ "RESERVED0", "struct_s_c_b___type.html#ac89a5d9901e3748d22a7090bfca2bee6", null ], + [ "SCR", "struct_s_c_b___type.html#abfad14e7b4534d73d329819625d77a16", null ], + [ "SHCSR", "struct_s_c_b___type.html#ae9891a59abbe51b0b2067ca507ca212f", null ], + [ "SHP", "struct_s_c_b___type.html#af6336103f8be0cab29de51daed5a65f4", null ], + [ "VTOR", "struct_s_c_b___type.html#a0faf96f964931cadfb71cfa54e051f6f", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_s_cn_s_c_b___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_s_cn_s_c_b___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_s_cn_s_c_b___type.html @@ -0,0 +1,189 @@ + + + + + +CMSIS-CORE: SCnSCB_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    SCnSCB_Type Struct Reference
    +
    +
    + +

    Structure type to access the System Control and ID Register not in the SCB. +

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

    +Data Fields

    uint32_t RESERVED0 [1]
     Reserved. More...
     
    __I uint32_t ICTR
     Offset: 0x004 (R/ ) Interrupt Controller Type Register. More...
     
    __IO uint32_t ACTLR
     Offset: 0x008 (R/W) Auxiliary Control Register. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __IO uint32_t SCnSCB_Type::ACTLR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t SCnSCB_Type::ICTR
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t SCnSCB_Type::RESERVED0[1]
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_s_cn_s_c_b___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_s_cn_s_c_b___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_s_cn_s_c_b___type.js @@ -0,0 +1,6 @@ +var struct_s_cn_s_c_b___type = +[ + [ "ACTLR", "struct_s_cn_s_c_b___type.html#aacadedade30422fed705e8dfc8e6cd8d", null ], + [ "ICTR", "struct_s_cn_s_c_b___type.html#ad99a25f5d4c163d9005ca607c24f6a98", null ], + [ "RESERVED0", "struct_s_cn_s_c_b___type.html#afe1d5fd2966d5062716613b05c8d0ae1", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_sys_tick___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_sys_tick___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_sys_tick___type.html @@ -0,0 +1,204 @@ + + + + + +CMSIS-CORE: SysTick_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    SysTick_Type Struct Reference
    +
    +
    + +

    Structure type to access the System Timer (SysTick). +

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

    +Data Fields

    __IO uint32_t CTRL
     Offset: 0x000 (R/W) SysTick Control and Status Register. More...
     
    __IO uint32_t LOAD
     Offset: 0x004 (R/W) SysTick Reload Value Register. More...
     
    __IO uint32_t VAL
     Offset: 0x008 (R/W) SysTick Current Value Register. More...
     
    __I uint32_t CALIB
     Offset: 0x00C (R/ ) SysTick Calibration Register. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __I uint32_t SysTick_Type::CALIB
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SysTick_Type::CTRL
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SysTick_Type::LOAD
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t SysTick_Type::VAL
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_sys_tick___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_sys_tick___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_sys_tick___type.js @@ -0,0 +1,7 @@ +var struct_sys_tick___type = +[ + [ "CALIB", "struct_sys_tick___type.html#a9c9eda0ea6f6a7c904d2d75a6963e238", null ], + [ "CTRL", "struct_sys_tick___type.html#af2ad94ac83e5d40fc6e34884bc1bec5f", null ], + [ "LOAD", "struct_sys_tick___type.html#ae7bc9d3eac1147f3bba8d73a8395644f", null ], + [ "VAL", "struct_sys_tick___type.html#a0997ff20f11817f8246e8f0edac6f4e4", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_t_p_i___type.html b/Libraries/CMSIS/Documentation/Core/html/struct_t_p_i___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_t_p_i___type.html @@ -0,0 +1,504 @@ + + + + + +CMSIS-CORE: TPI_Type Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    TPI_Type Struct Reference
    +
    +
    + +

    Structure type to access the Trace Port Interface Register (TPI). +

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

    +Data Fields

    __IO uint32_t SSPSR
     Offset: 0x000 (R/ ) Supported Parallel Port Size Register. More...
     
    __IO uint32_t CSPSR
     Offset: 0x004 (R/W) Current Parallel Port Size Register. More...
     
    uint32_t RESERVED0 [2]
     Reserved. More...
     
    __IO uint32_t ACPR
     Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register. More...
     
    uint32_t RESERVED1 [55]
     Reserved. More...
     
    __IO uint32_t SPPR
     Offset: 0x0F0 (R/W) Selected Pin Protocol Register. More...
     
    uint32_t RESERVED2 [131]
     Reserved. More...
     
    __I uint32_t FFSR
     Offset: 0x300 (R/ ) Formatter and Flush Status Register. More...
     
    __IO uint32_t FFCR
     Offset: 0x304 (R/W) Formatter and Flush Control Register. More...
     
    __I uint32_t FSCR
     Offset: 0x308 (R/ ) Formatter Synchronization Counter Register. More...
     
    uint32_t RESERVED3 [759]
     Reserved. More...
     
    __I uint32_t TRIGGER
     Offset: 0xEE8 (R/ ) TRIGGER. More...
     
    __I uint32_t FIFO0
     Offset: 0xEEC (R/ ) Integration ETM Data. More...
     
    __I uint32_t ITATBCTR2
     Offset: 0xEF0 (R/ ) ITATBCTR2. More...
     
    uint32_t RESERVED4 [1]
     Reserved. More...
     
    __I uint32_t ITATBCTR0
     Offset: 0xEF8 (R/ ) ITATBCTR0. More...
     
    __I uint32_t FIFO1
     Offset: 0xEFC (R/ ) Integration ITM Data. More...
     
    __IO uint32_t ITCTRL
     Offset: 0xF00 (R/W) Integration Mode Control. More...
     
    uint32_t RESERVED5 [39]
     Reserved. More...
     
    __IO uint32_t CLAIMSET
     Offset: 0xFA0 (R/W) Claim tag set. More...
     
    __IO uint32_t CLAIMCLR
     Offset: 0xFA4 (R/W) Claim tag clear. More...
     
    uint32_t RESERVED7 [8]
     Reserved. More...
     
    __I uint32_t DEVID
     Offset: 0xFC8 (R/ ) TPIU_DEVID. More...
     
    __I uint32_t DEVTYPE
     Offset: 0xFCC (R/ ) TPIU_DEVTYPE. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::ACPR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::CLAIMCLR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::CLAIMSET
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::CSPSR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::DEVID
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::DEVTYPE
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::FFCR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::FFSR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::FIFO0
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::FIFO1
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::FSCR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::ITATBCTR0
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::ITATBCTR2
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::ITCTRL
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t TPI_Type::RESERVED0[2]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t TPI_Type::RESERVED1[55]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t TPI_Type::RESERVED2[131]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t TPI_Type::RESERVED3[759]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t TPI_Type::RESERVED4[1]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t TPI_Type::RESERVED5[39]
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t TPI_Type::RESERVED7[8]
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::SPPR
    +
    + +
    +
    + +
    +
    + + + + +
    __IO uint32_t TPI_Type::SSPSR
    +
    + +
    +
    + +
    +
    + + + + +
    __I uint32_t TPI_Type::TRIGGER
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/struct_t_p_i___type.js b/Libraries/CMSIS/Documentation/Core/html/struct_t_p_i___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/struct_t_p_i___type.js @@ -0,0 +1,27 @@ +var struct_t_p_i___type = +[ + [ "ACPR", "struct_t_p_i___type.html#ad75832a669eb121f6fce3c28d36b7fab", null ], + [ "CLAIMCLR", "struct_t_p_i___type.html#a44efa6045512c8d4da64b0623f7a43ad", null ], + [ "CLAIMSET", "struct_t_p_i___type.html#a2e4d5a07fabd771fa942a171230a0a84", null ], + [ "CSPSR", "struct_t_p_i___type.html#aa723ef3d38237aa2465779b3cc73a94a", null ], + [ "DEVID", "struct_t_p_i___type.html#a4b2e0d680cf7e26728ca8966363a938d", null ], + [ "DEVTYPE", "struct_t_p_i___type.html#a16d12c5b1e12f764fa3ec4a51c5f0f35", null ], + [ "FFCR", "struct_t_p_i___type.html#a3eb42d69922e340037692424a69da880", null ], + [ "FFSR", "struct_t_p_i___type.html#ae67849b2c1016fe6ef9095827d16cddd", null ], + [ "FIFO0", "struct_t_p_i___type.html#ae91ff529e87d8e234343ed31bcdc4f10", null ], + [ "FIFO1", "struct_t_p_i___type.html#aebaa9b8dd27f8017dd4f92ecf32bac8e", null ], + [ "FSCR", "struct_t_p_i___type.html#a377b78fe804f327e6f8b3d0f37e7bfef", null ], + [ "ITATBCTR0", "struct_t_p_i___type.html#a20ca7fad4d4009c242f20a7b4a44b7d0", null ], + [ "ITATBCTR2", "struct_t_p_i___type.html#a176d991adb4c022bd5b982a9f8fa6a1d", null ], + [ "ITCTRL", "struct_t_p_i___type.html#ab49c2cb6b5fe082746a444e07548c198", null ], + [ "RESERVED0", "struct_t_p_i___type.html#af143c5e8fc9a3b2be2878e9c1f331aa9", null ], + [ "RESERVED1", "struct_t_p_i___type.html#ac3956fe93987b725d89d3be32738da12", null ], + [ "RESERVED2", "struct_t_p_i___type.html#ac7bbb92e6231b9b38ac483f7d161a096", null ], + [ "RESERVED3", "struct_t_p_i___type.html#a31700c8cdd26e4c094db72af33d9f24c", null ], + [ "RESERVED4", "struct_t_p_i___type.html#a684071216fafee4e80be6aaa932cec46", null ], + [ "RESERVED5", "struct_t_p_i___type.html#a3f80dd93f6bab6524603a7aa58de9a30", null ], + [ "RESERVED7", "struct_t_p_i___type.html#a476ca23fbc9480f1697fbec871130550", null ], + [ "SPPR", "struct_t_p_i___type.html#a3eb655f2e45d7af358775025c1a50c8e", null ], + [ "SSPSR", "struct_t_p_i___type.html#a158e9d784f6ee6398f4bdcb2e4ca0912", null ], + [ "TRIGGER", "struct_t_p_i___type.html#aa4b603c71768dbda553da571eccba1fe", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/sync_off.png b/Libraries/CMSIS/Documentation/Core/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e314d6cf2aea02515e8611659bcabe6188b361 GIT binary patch literal 856 zc$@)P1E>6nP)iuB__>-X&x%JB(cz%N3Bh16<=u57;M2J2%1t*u!}&U z2rja5CALaXs0&LG5nF8=7gE}4aFYa^5~P8WG!NhAMZfPdH*@FCO-M?%hw~%%&P>jC z&$-|E&ervD$4!9wr(QA^HKFtN?J3C60-`(Q6>C>t~VZ_fNzH z@um0+i0e)P8pLT)0I&#Y;(+)-91-WOU%CNn-zTmtVQ^~;igTiUz5sRN>;lUMuox#r zt9g^O{%zx0qwABu1h5SBVK0jja|XvnK7gG+%>&>l#iI!YkiaK8gi8a2#YaF~ce`A) zHkHiQR%&JfBr3>F=aX$^tW0rS)$O8G12o!~Cd239(5?v871{2|saXI=PoGb-p)5pu za|Jm;FM!=%4Y0}jNnu_FpS4sGDSR1VQS!6>9Br}n`9m~Cf$A@5YjUR%1ntAjftY^jNRl|c;$e{OBv>2H;Pcih<9c#xhD$#V@Y8R9TYu7{Gw8Mk z_@j52;jw4zf4_wAD?U8Q_HvcD(R7yIeBVdk;5ZQ1yLAS|I814?;Q#8>Eo0u8OJr?r;*{1r zfF;n)^@VkC>w#l!x?T0~323=>I937du0Bb0000}EISuG@7@$Yv|+YBpijTqKI7LN%9Kjns;XqDj+W3yM(C6hT2B0)hxW z_~Mg@im2#=rR1TcH;oUaw5h?DL|RJ-6(pjmx5RZ#{LV0wo!Lx+(Yzkck3BOxoNwk_ zzVoVm)$t3!REk8cSR*P#zHo~NqF3A!Ka0BnPSOAz%om5mPNNOjs=605{(mkmiDTkl zz*e0C)QQs~4Dc4R#BTAK*e@@>p$@HS3}R`bGL zxlV7Z=<3bq0n7sRve(5!^9v4(5P*}MEH8jfx>qeG07u!PLue{MP<#Q9%B5*ztqoDC z%hc)wEHzx1%h#WmGADh?5#1_ERDgP?p~=hkvac!TTD?4<_^UAhn-`-AR+I*4Z(dG; zKNG;oP8HxIz*Zwgd3@VaPAu{Pz_dd7IUHy%W7%TIXX{mf71le|Wd(e*V;KQo#>Bmf zsGn^$i)gBg=o)Jye6l(@Ww|m(d$z^cux8RU`c;5{Icd8-T|&#I;z<*@I5d~qRYk0? z3hHWB2B|EuZ*aFuW6Q^3_BO`I&h$JoCtC&3%m;kA=>YE~C(}ck+x61C)+E{W$#1cF zqhakrowYn19%1-t98G@}7$1iWSv`dTl_iqp#-I1O()Blq#KfW)Q~@qaqsjVUMRdMC zT=J><_0=E$q3gFnAXyg$^ElXAuD9c_UUTiId;I#xe}Jv_szuzL8lb0dh@r>T{ z`L2&g|BnJVsZs${LnXP11Z7(tZY?3pFzxY^iFwmY=A1MVug4rWp;1)FwPt`1#ceSc zU>3xU4g9+~xa#}&0nCyks`Jzn?V>0!@;Sh}Iwg)<_W@w5ZQ`WLcK|b>Ch4fPbL)X) zEq@t@k58prhhr5W)epvtsXYZG>r~17j@T}iibhc=i3<2kZ2@u9=u{tXfK+b) XvOuP_Nxhrx00000NkvXXu0mjfdw!6s diff --git a/Libraries/CMSIS/Documentation/Core/html/system_c_pg.html b/Libraries/CMSIS/Documentation/Core/html/system_c_pg.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/system_c_pg.html @@ -0,0 +1,309 @@ + + + + + +CMSIS-CORE: System Configuration Files system_<device>.c and system_<device>.h + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    System Configuration Files system_<device>.c and system_<device>.h
    +
    +
    +

    The System Configuration Files system_<device>.c and system_<device>.h provides as a minimum the functions described under System and Clock Configuration. These functions are device specific and need adaptations. In addition, the file might have configuration settings for the device such as XTAL frequency or PLL prescaler settings.

    +

    For devices with external memory BUS the system_<device>.c also configures the BUS system.

    +

    The silicon vendor might expose other functions (i.e. for power configuration) in the system_<device>.c file. In case of additional features the function prototypes need to be added to the system_<device>.h header file.

    +

    +system_Device.c Template File

    +

    The system_Device.c Template File for the Cortex-M3 is shown below.

    +
    /**************************************************************************//**
    + * @file     system_<Device>.c
    + * @brief    CMSIS Cortex-M# Device Peripheral Access Layer Source File for
    + *           Device <Device>
    + * @version  V3.10
    + * @date     23. November 2012
    + *
    + * @note
    + *
    + ******************************************************************************/
    +/* Copyright (c) 2012 ARM LIMITED
    +
    +   All rights reserved.
    +   Redistribution and use in source and binary forms, with or without
    +   modification, are permitted provided that the following conditions are met:
    +   - Redistributions of source code must retain the above copyright
    +     notice, this list of conditions and the following disclaimer.
    +   - Redistributions in binary form must reproduce the above copyright
    +     notice, this list of conditions and the following disclaimer in the
    +     documentation and/or other materials provided with the distribution.
    +   - Neither the name of ARM nor the names of its contributors may be used
    +     to endorse or promote products derived from this software without
    +     specific prior written permission.
    +   *
    +   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +   ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
    +   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +   POSSIBILITY OF SUCH DAMAGE.
    +   ---------------------------------------------------------------------------*/
    +
    +
    +#include <stdint.h>
    +#include "<Device>.h"
    +
    +
    +/*----------------------------------------------------------------------------
    +  DEFINES
    + *----------------------------------------------------------------------------*/
    +
    +/*----------------------------------------------------------------------------
    +  Define clocks
    + *----------------------------------------------------------------------------*/
    +/* ToDo: add here your necessary defines for device initialization
    +         following is an example for different system frequencies             */
    +#define __HSI             ( 6000000UL)
    +#define __XTAL            (12000000UL)    /* Oscillator frequency             */
    +#define __SYS_OSC_CLK     (    ___HSI)    /* Main oscillator frequency        */
    +
    +#define __SYSTEM_CLOCK    (4*__XTAL)
    +
    +
    +/*----------------------------------------------------------------------------
    +  Clock Variable definitions
    + *----------------------------------------------------------------------------*/
    +/* ToDo: initialize SystemCoreClock with the system core clock frequency value
    +         achieved after system intitialization.
    +         This means system core clock frequency after call to SystemInit()    */
    +uint32_t SystemCoreClock = __SYSTEM_CLOCK;  /*!< System Clock Frequency (Core Clock)*/
    +
    +
    +/*----------------------------------------------------------------------------
    +  Clock functions
    + *----------------------------------------------------------------------------*/
    +void SystemCoreClockUpdate (void)            /* Get Core Clock Frequency      */
    +{
    +/* ToDo: add code to calculate the system frequency based upon the current
    +         register settings.
    +         This function can be used to retrieve the system core clock frequeny
    +         after user changed register sittings.                                */
    +  SystemCoreClock = __SYSTEM_CLOCK;
    +}
    +
    +/**
    + * Initialize the system
    + *
    + * @param  none
    + * @return none
    + *
    + * @brief  Setup the microcontroller system.
    + *         Initialize the System.
    + */
    +void SystemInit (void)
    +{
    +/* ToDo: add code to initialize the system
    +         do not use global variables because this function is called before
    +         reaching pre-main. RW section maybe overwritten afterwards.          */
    +  SystemCoreClock = __SYSTEM_CLOCK;
    +}
    +

    +system_Device.h Template File

    +

    The system_<device>.h header file contains prototypes to access the public functions in the system_<device>.c file. The system_Device.h Template File is shown below.

    +
    /**************************************************************************//**
    + * @file     system_<Device>.h
    + * @brief    CMSIS Cortex-M# Device Peripheral Access Layer Header File for
    + *           Device <Device>
    + * @version  V3.10
    + * @date     23. November 2012
    + *
    + * @note
    + *
    + ******************************************************************************/
    +/* Copyright (c) 2012 ARM LIMITED
    +
    +   All rights reserved.
    +   Redistribution and use in source and binary forms, with or without
    +   modification, are permitted provided that the following conditions are met:
    +   - Redistributions of source code must retain the above copyright
    +     notice, this list of conditions and the following disclaimer.
    +   - Redistributions in binary form must reproduce the above copyright
    +     notice, this list of conditions and the following disclaimer in the
    +     documentation and/or other materials provided with the distribution.
    +   - Neither the name of ARM nor the names of its contributors may be used
    +     to endorse or promote products derived from this software without
    +     specific prior written permission.
    +   *
    +   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +   ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
    +   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +   POSSIBILITY OF SUCH DAMAGE.
    +   ---------------------------------------------------------------------------*/
    +
    +
    +#ifndef SYSTEM_<Device>_H   /* ToDo: replace '<Device>' with your device name */
    +#define SYSTEM_<Device>_H
    +
    +#ifdef __cplusplus
    +extern "C" {
    +#endif
    +
    +#include <stdint.h>
    +
    +extern uint32_t SystemCoreClock;     /*!< System Clock Frequency (Core Clock)  */
    +
    +
    +/**
    + * Initialize the system
    + *
    + * @param  none
    + * @return none
    + *
    + * @brief  Setup the microcontroller system.
    + *         Initialize the System and update the SystemCoreClock variable.
    + */
    +extern void SystemInit (void);
    +
    +/**
    + * Update SystemCoreClock variable
    + *
    + * @param  none
    + * @return none
    + *
    + * @brief  Updates the SystemCoreClock with current core Clock
    + *         retrieved from cpu registers.
    + */
    +extern void SystemCoreClockUpdate (void);
    +
    +#ifdef __cplusplus
    +}
    +#endif
    +
    +#endif /* SYSTEM_<Device>_H */
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/tab_a.png b/Libraries/CMSIS/Documentation/Core/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..fffadc1ab28bb511901917dfd97056d818be4764 GIT binary patch literal 146 zc%17D@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qjwl6jv*C{Z|5H5Z7|?r&JAC+ z;+I2*e22YI^oOMXogO@|WHN)SpRZ~7yT|lvXzk6A+d5OVf}HHMm>w)juj1P)b3M6t u+hX*havuDE0a+~WZgBOB@CXfelF{r5}E)AZ8S{) diff --git a/Libraries/CMSIS/Documentation/Core/html/tab_b.png b/Libraries/CMSIS/Documentation/Core/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ce1af92f0c39e71a848a6b4d739af32bc6dd28 GIT binary patch literal 166 zc%17D@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qn{Wkjv*C{Z|^$tH5rJsJiKnM zso1i5XB%tb;u{XRUYxCmEMu!!-zU@-9@YH!bCMmdKI;Vst06xh;x&QzG diff --git a/Libraries/CMSIS/Documentation/Core/html/tab_h.png b/Libraries/CMSIS/Documentation/Core/html/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9188f3eebfd427622dbf5ee42ecaf9e56f6739 GIT binary patch literal 179 zc%17D@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QdOQVjv*C{Z}0jF9drKw)FjgogIB985hzZ>gud0)u||1H;B-+Vg~D|e&# ztls*YGTPggcU@hWGIy%Zce^j84{cUzd#p{*;}#WkyS!Q|+38bY{lEVPUK&!~R#Ntl eZ_a(FQqP5eEeU- zZe*OCCX%)F%YqOc*RV^cFUlPBo#UEZ+;`vh$mg$W9#MaOG?r&s^Tu6ykDxwm-5 z#zS1zYYdyY4(l6!Q=JvPV0ZbI*v3b9B5ulRyPFj+@jZ6u#Eh5M*RT9$92k7e>r_T< m;tredEdo4Co~+;BVQ*Ee{PDpX^9w-7FnGH9xvXA!%A O7(8A5T-G@yGywq5PeJzp diff --git a/Libraries/CMSIS/Documentation/Core/html/tabs.css b/Libraries/CMSIS/Documentation/Core/html/tabs.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/tabs.css @@ -0,0 +1,71 @@ +.tabs, .tabs1, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 10px; +} + +.tabs1 { + background-image: url('tab_topnav.png'); + font-size: 12px; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; + line-height: 24px; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + list-style: none; +} + +.tabs1 .tablist li { + float: left; + display: table-cell; + background-image: url('tab_topnav.png'); + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/Libraries/CMSIS/Documentation/Core/html/union_a_p_s_r___type.html b/Libraries/CMSIS/Documentation/Core/html/union_a_p_s_r___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/union_a_p_s_r___type.html @@ -0,0 +1,265 @@ + + + + + +CMSIS-CORE: APSR_Type Union Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    APSR_Type Union Reference
    +
    +
    + +

    Union type to access the Application Program Status Register (APSR). +

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

    +Data Fields

    struct {
       uint32_t   _reserved0:27
     bit: 0..26 Reserved More...
     
       uint32_t   Q:1
     bit: 27 Saturation condition flag More...
     
       uint32_t   V:1
     bit: 28 Overflow condition code flag More...
     
       uint32_t   C:1
     bit: 29 Carry condition code flag More...
     
       uint32_t   Z:1
     bit: 30 Zero condition code flag More...
     
       uint32_t   N:1
     bit: 31 Negative condition code flag More...
     
    b
     Structure used for bit access. More...
     
    uint32_t w
     Type used for word access. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t APSR_Type::_reserved0
    +
    + +
    +
    + +
    +
    + + + + +
    struct { ... } APSR_Type::b
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t APSR_Type::C
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t APSR_Type::N
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t APSR_Type::Q
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t APSR_Type::V
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t APSR_Type::w
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t APSR_Type::Z
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/union_a_p_s_r___type.js b/Libraries/CMSIS/Documentation/Core/html/union_a_p_s_r___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/union_a_p_s_r___type.js @@ -0,0 +1,11 @@ +var union_a_p_s_r___type = +[ + [ "_reserved0", "union_a_p_s_r___type.html#afbce95646fd514c10aa85ec0a33db728", null ], + [ "b", "union_a_p_s_r___type.html#a7dbc79a057ded4b11ca5323fc2d5ab14", null ], + [ "C", "union_a_p_s_r___type.html#a86e2c5b891ecef1ab55b1edac0da79a6", null ], + [ "N", "union_a_p_s_r___type.html#a7e7bbba9b00b0bb3283dc07f1abe37e0", null ], + [ "Q", "union_a_p_s_r___type.html#a22d10913489d24ab08bd83457daa88de", null ], + [ "V", "union_a_p_s_r___type.html#a8004d224aacb78ca37774c35f9156e7e", null ], + [ "w", "union_a_p_s_r___type.html#ae4c2ef8c9430d7b7bef5cbfbbaed3a94", null ], + [ "Z", "union_a_p_s_r___type.html#a3b04d58738b66a28ff13f23d8b0ba7e5", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/union_c_o_n_t_r_o_l___type.html b/Libraries/CMSIS/Documentation/Core/html/union_c_o_n_t_r_o_l___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/union_c_o_n_t_r_o_l___type.html @@ -0,0 +1,235 @@ + + + + + +CMSIS-CORE: CONTROL_Type Union Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    CONTROL_Type Union Reference
    +
    +
    + +

    Union type to access the Control Registers (CONTROL). +

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

    +Data Fields

    struct {
       uint32_t   nPRIV:1
     bit: 0 Execution privilege in Thread mode More...
     
       uint32_t   SPSEL:1
     bit: 1 Stack to be used More...
     
       uint32_t   FPCA:1
     bit: 2 FP extension active flag More...
     
       uint32_t   _reserved0:29
     bit: 3..31 Reserved More...
     
    b
     Structure used for bit access. More...
     
    uint32_t w
     Type used for word access. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t CONTROL_Type::_reserved0
    +
    + +
    +
    + +
    +
    + + + + +
    struct { ... } CONTROL_Type::b
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t CONTROL_Type::FPCA
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t CONTROL_Type::nPRIV
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t CONTROL_Type::SPSEL
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t CONTROL_Type::w
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/union_c_o_n_t_r_o_l___type.js b/Libraries/CMSIS/Documentation/Core/html/union_c_o_n_t_r_o_l___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/union_c_o_n_t_r_o_l___type.js @@ -0,0 +1,9 @@ +var union_c_o_n_t_r_o_l___type = +[ + [ "_reserved0", "union_c_o_n_t_r_o_l___type.html#af8c314273a1e4970a5671bd7f8184f50", null ], + [ "b", "union_c_o_n_t_r_o_l___type.html#adc6a38ab2980d0e9577b5a871da14eb9", null ], + [ "FPCA", "union_c_o_n_t_r_o_l___type.html#ac62cfff08e6f055e0101785bad7094cd", null ], + [ "nPRIV", "union_c_o_n_t_r_o_l___type.html#a35c1732cf153b7b5c4bd321cf1de9605", null ], + [ "SPSEL", "union_c_o_n_t_r_o_l___type.html#a8cc085fea1c50a8bd9adea63931ee8e2", null ], + [ "w", "union_c_o_n_t_r_o_l___type.html#a6b642cca3d96da660b1198c133ca2a1f", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/union_i_p_s_r___type.html b/Libraries/CMSIS/Documentation/Core/html/union_i_p_s_r___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/union_i_p_s_r___type.html @@ -0,0 +1,205 @@ + + + + + +CMSIS-CORE: IPSR_Type Union Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    IPSR_Type Union Reference
    +
    +
    + +

    Union type to access the Interrupt Program Status Register (IPSR). +

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

    +Data Fields

    struct {
       uint32_t   ISR:9
     bit: 0.. 8 Exception number More...
     
       uint32_t   _reserved0:23
     bit: 9..31 Reserved More...
     
    b
     Structure used for bit access. More...
     
    uint32_t w
     Type used for word access. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t IPSR_Type::_reserved0
    +
    + +
    +
    + +
    +
    + + + + +
    struct { ... } IPSR_Type::b
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t IPSR_Type::ISR
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t IPSR_Type::w
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/union_i_p_s_r___type.js b/Libraries/CMSIS/Documentation/Core/html/union_i_p_s_r___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/union_i_p_s_r___type.js @@ -0,0 +1,7 @@ +var union_i_p_s_r___type = +[ + [ "_reserved0", "union_i_p_s_r___type.html#ad2eb0a06de4f03f58874a727716aa9aa", null ], + [ "b", "union_i_p_s_r___type.html#add0d6497bd50c25569ea22b48a03ec50", null ], + [ "ISR", "union_i_p_s_r___type.html#ab46e5f1b2f4d17cfb9aca4fffcbb2fa5", null ], + [ "w", "union_i_p_s_r___type.html#a4adca999d3a0bc1ae682d73ea7cfa879", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/Core/html/unionx_p_s_r___type.html b/Libraries/CMSIS/Documentation/Core/html/unionx_p_s_r___type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/unionx_p_s_r___type.html @@ -0,0 +1,310 @@ + + + + + +CMSIS-CORE: xPSR_Type Union Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-CORE +  Version 3.20 +
    +
    CMSIS-CORE support for Cortex-M processor-based devices
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    xPSR_Type Union Reference
    +
    +
    + +

    Union type to access the Special-Purpose Program Status Registers (xPSR). +

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

    +Data Fields

    struct {
       uint32_t   ISR:9
     bit: 0.. 8 Exception number More...
     
       uint32_t   _reserved0:15
     bit: 9..23 Reserved More...
     
       uint32_t   T:1
     bit: 24 Thumb bit (read 0) More...
     
       uint32_t   IT:2
     bit: 25..26 saved IT state (read 0) More...
     
       uint32_t   Q:1
     bit: 27 Saturation condition flag More...
     
       uint32_t   V:1
     bit: 28 Overflow condition code flag More...
     
       uint32_t   C:1
     bit: 29 Carry condition code flag More...
     
       uint32_t   Z:1
     bit: 30 Zero condition code flag More...
     
       uint32_t   N:1
     bit: 31 Negative condition code flag More...
     
    b
     Structure used for bit access. More...
     
    uint32_t w
     Type used for word access. More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t xPSR_Type::_reserved0
    +
    + +
    +
    + +
    +
    + + + + +
    struct { ... } xPSR_Type::b
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::C
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::ISR
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::IT
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::N
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::Q
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::T
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::V
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::w
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t xPSR_Type::Z
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/Core/html/unionx_p_s_r___type.js b/Libraries/CMSIS/Documentation/Core/html/unionx_p_s_r___type.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/Core/html/unionx_p_s_r___type.js @@ -0,0 +1,14 @@ +var unionx_p_s_r___type = +[ + [ "_reserved0", "unionx_p_s_r___type.html#af438e0f407357e914a70b5bd4d6a97c5", null ], + [ "b", "unionx_p_s_r___type.html#a3b1063bb5cdad67e037cba993b693b70", null ], + [ "C", "unionx_p_s_r___type.html#a40213a6b5620410cac83b0d89564609d", null ], + [ "ISR", "unionx_p_s_r___type.html#a3e9120dcf1a829fc8d2302b4d0673970", null ], + [ "IT", "unionx_p_s_r___type.html#a3200966922a194d84425e2807a7f1328", null ], + [ "N", "unionx_p_s_r___type.html#a2db9a52f6d42809627d1a7a607c5dbc5", null ], + [ "Q", "unionx_p_s_r___type.html#add7cbd2b0abd8954d62cd7831796ac7c", null ], + [ "T", "unionx_p_s_r___type.html#a7eed9fe24ae8d354cd76ae1c1110a658", null ], + [ "V", "unionx_p_s_r___type.html#af14df16ea0690070c45b95f2116b7a0a", null ], + [ "w", "unionx_p_s_r___type.html#a1a47176768f45f79076c4f5b1b534bc2", null ], + [ "Z", "unionx_p_s_r___type.html#a1e5d9801013d5146f2e02d9b7b3da562", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/General/html/CMSIS_Logo_Final.png b/Libraries/CMSIS/Documentation/General/html/CMSIS_Logo_Final.png new file mode 100644 index 0000000000000000000000000000000000000000..2056b7e747bf58f53e03ad845cde816fea03a4bc GIT binary patch literal 12402 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 diff --git a/Libraries/CMSIS/Documentation/General/html/bc_s.png b/Libraries/CMSIS/Documentation/General/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zc$@*G0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/Libraries/CMSIS/Documentation/General/html/bdwn.png b/Libraries/CMSIS/Documentation/General/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zc%17D@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/Libraries/CMSIS/Documentation/General/html/cmsis.css b/Libraries/CMSIS/Documentation/General/html/cmsis.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/General/html/cmsis.css @@ -0,0 +1,1256 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 13px; + line-height: 1.3; +} + +/* CMSIS styles */ + +.style1 { + text-align: center; +} +.style2 { + color: #0000FF; + font-weight: normal; +} +.style3 { + text-align: left; +} +.style4 { + color: #008000; +} +.style5 { + color: #0000FF; +} +.style6 { + color: #000000; + font-style:italic; +} +.mand { + color: #0000FF; +} +.opt { + color: #008000; +} +.cond { + color: #990000; +} + +.choice +{ + background-color:#F7F9D0; +} +.seq +{ + background-color:#C9DECB; +} +.group1 +{ + background-color:#F8F1F1; +} +.group2 +{ + background-color:#DCEDEA; +} + + +ul ul { + list-style-type: disc; +} + +ul ul ul { + list-style-type: disc; +} + +ul.hierarchy { + color: green; +} + +em { + color: #000000; + font-style:italic; +} + + + +/* CMSIS Tables */ +table.cmtab1 { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; + text-align: justify; + width:70%; +} + +th.cmtab1 { + background: #EBEFF6; + font-weight: bold; + height: 28px; +} + +td.cmtab1 { + padding:1px; + text-align: left; +} + +table.cmtable { + border-collapse:collapse; + text-align: justify; +} + +table.cmtable td, table.cmtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.cmtable th { + background-color: #EBEFF6; + border: 1px solid #2D4068; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + height: 28px; +} + +td.MonoTxt { + font-family:"Arial monospaced for SAP"; +} + +span.XML-Token +{ + azimuth: 180; + font-style:italic; + color:Maroon; + z-index:20; + +} + + + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3A568E; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4464A5; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9AAED5; + color: #ffffff; + border: 1px double #849CCC; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FBFCFD; + border: 1px solid #C3CFE6; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; +} + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C3CFE6; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C3CFE6; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EDF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9AAED5; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A2B4D8; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4769AD; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C3CFE6; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4464A5; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4464A5; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 0px 6px 0px; + color: #233456; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #708CC4; + border-top:1px solid #5072B7; + border-left:1px solid #5072B7; + border-right:1px solid #C3CFE6; + border-bottom:1px solid #C3CFE6; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3A568E; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #293C63; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2B4069; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #354E81; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A7B8DA; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A7B8DA; + border-bottom: 1px solid #A7B8DA; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A7B8DA; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + font-size: 90%; + color: #233456; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A7B8DA; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#889FCE; + border:solid 1px #C1CDE5; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#344D7E; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6583BF; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#344D7E; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C3CFE6; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5072B7; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #8EA4D0; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#314877; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D7DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4464A5; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/Libraries/CMSIS/Documentation/General/html/doxygen.png b/Libraries/CMSIS/Documentation/General/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 diff --git a/Libraries/CMSIS/Documentation/General/html/dynsections.js b/Libraries/CMSIS/Documentation/General/html/dynsections.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/General/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (ldjv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2cl.png b/Libraries/CMSIS/Documentation/General/html/ftv2cl.png new file mode 100644 index 0000000000000000000000000000000000000000..132f6577bf7f085344904602815a260d29f55d9b GIT binary patch literal 453 zc$@*n0XqJPP)VBF;ev;toEj8_OB0EQg5eYilIj#JZG_m^33l3^k4mtzx!TVD?g)Y$ zrvwRDSqT!wLIM$dWCIa$vtxE|mzbTzu-y&$FvF6WA2a{Wr1g}`WdPT-0JzEZ0IxAv z-Z+ejZc&H;I5-pb_SUB}04j0^V)3t{`z<7asDl2Tw3w3sP%)0^8$bhEg)IOTBcRXv zFfq~3&gvJ$F-U7mpBW8z1GY~HK&7h4^YI~Orv~wLnC0PP_dAkv;nzX{9Q|8Gv=2ca z@v)c9T;D#h`TZ2X&&$ff2wedmot995de~-s3I)yauahg;7qn*?1n?F$e+PwP37}~; z1NKUk7reVK^7A;$QRW7qAx40HHUZ<|k3U%nz(Ec`#i+q9K!dgcROAlCS?`L= v>#=f?wF5ZND!1uAfQsk;KN^4&*8~0npJiJ%2dj9(00000NkvXXu0mjfWVFf_ diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2doc.png b/Libraries/CMSIS/Documentation/General/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zc$@+10u}v7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2folderclosed.png b/Libraries/CMSIS/Documentation/General/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zc$@)f0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2lastnode.png b/Libraries/CMSIS/Documentation/General/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2link.png b/Libraries/CMSIS/Documentation/General/html/ftv2link.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zc$@+10u}v7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2mlastnode.png b/Libraries/CMSIS/Documentation/General/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zc$@+D015wzP)kw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2mnode.png b/Libraries/CMSIS/Documentation/General/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zc$@+D015wzP)kw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2mo.png b/Libraries/CMSIS/Documentation/General/html/ftv2mo.png new file mode 100644 index 0000000000000000000000000000000000000000..4bfb80f76e65815989a9350ad79d8ce45380e2b1 GIT binary patch literal 403 zc$@)~0c`$>P)${!fXv7NWJ%@%u4(KapRY>T6_x;E zxE7kt!}Tiw8@d9Sd`rTGum>z#Q14vIm`wm1#-byD1muMi02@YNO5LRF0o!Y{`a!Ya z{^&p0Su|s705&2QxmqdexG+-zNKL3f@8gTQSJrKByfo+oNJ^-{|Mn||Q5SDwjQVsS zr1}7o5-QMs>gYIMD>GRw@$lT`z4r-_m{5U#cR{urD_)TOeY)(UD|qZ^&y`IVijqk~ xs(9-kWFr7E^!lgi8GsFK5kOY_{Xbgf0^etEU%fLevs?fG002ovPDHLkV1nB&vX1}& diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2node.png b/Libraries/CMSIS/Documentation/General/html/ftv2node.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2ns.png b/Libraries/CMSIS/Documentation/General/html/ftv2ns.png new file mode 100644 index 0000000000000000000000000000000000000000..72e3d71c2892d6f00e259facebc88b45f6db2e35 GIT binary patch literal 388 zc$@)*0ek+5P)f+++#cT|!CkD&4pnIkeMEUEM*>`*9>+Juji$!h-mW%M^8s9957{3nvbrz^&=u<~TAUrFROkmt%^F~Ez+-c53Lv%iH3d38!Rv?K zrb&MYAhp;Gf<}wS;9ZZq2@;!uYG;=Z>~GKE^{HD4keu}lnyqhc>kWX^tQn|warJ~h zT+rtMkdz6aHoN%z(o|&wpu@@OpJnF_z{PA)6(FHw02iHslz^(N{4*+K9)QJHR87wT iTyp>aXaF{u2lxRou|^4tux6eB0000^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2pnode.png b/Libraries/CMSIS/Documentation/General/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zc$@*{02=>^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2splitbar.png b/Libraries/CMSIS/Documentation/General/html/ftv2splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zc%17D@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/Libraries/CMSIS/Documentation/General/html/ftv2vertline.png b/Libraries/CMSIS/Documentation/General/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/General/html/index.html b/Libraries/CMSIS/Documentation/General/html/index.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/General/html/index.html @@ -0,0 +1,158 @@ + + + + + +CMSIS: Introduction + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS +  Version 3.20 +
    +
    Cortex Microcontroller Software Interface Standard
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Introduction
    +
    +
    +

    The Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series. The CMSIS enables consistent and simple software interfaces to the processor and the peripherals, simplifying software re-use, reducing the learning curve for microcontroller developers, and reducing the time to market for new devices.

    +

    The CMSIS is defined in close cooperation with various silicon and software vendors and provides a common approach to interface to peripherals, real-time operating systems, and middleware components. The CMSIS is intended to enable the combination of software components from multiple middleware vendors.

    +

    The CMSIS components are:

    +
      +
    • CMSIS-CORE: API for the Cortex-M processor core and peripherals. It provides at standardized interface for Cortex-M0, Cortex-M3, Cortex-M4, SC000, and SC300. Included are also SIMD intrinsic functions for Cortex-M4 SIMD instructions.
    • +
    +
      +
    • CMSIS-DSP: DSP Library Collection with over 60 Functions for various data types: fix-point (fractional q7, q15, q31) and single precision floating-point (32-bit). The library is available for Cortex-M0, Cortex-M3, and Cortex-M4. The Cortex-M4 implementation is optimized for the SIMD instruction set.
    • +
    +
      +
    • CMSIS-RTOS API: Common API for Real-Time operating systems. It provides a standardized programming interface that is portable to many RTOS and enables therefore software templates, middleware, libraries, and other components that can work acrosss supported the RTOS systems.
    • +
    +
      +
    • CMSIS-SVD: System View Description for Peripherals. Describes the peripherals of a device in an XML file and can be used to create peripheral awareness in debuggers or header files with peripheral register and interrupt definitions.
    • +
    +
      +
    • CMSIS-DAP: Debug Access Port. Standardized firmware for a Debug Unit that connects to the CoreSight Debug Access Port. CMSIS-DAP is distributed as separate package and well suited for integration on evaluation boards.
    • +
    +
    +CMSIS_V3_small.png +
    +CMSIS Structure
    +

    +Motivation

    +

    CMSIS has been created to help the industry in standardization. It is not a huge software layer that introduces overhead and does not define standard peripherals. The silicon industry can therefore support the wide variations of Cortex-M processor-based devices with this common standard. In detail the benefits of the CMSIS are:

    +
      +
    • Consistent software interfaces improve the software portability and re-usability. Generic software libraries can interface with device libraries from various silicon vendors.
    • +
    • Reduces the learning curve, development costs, and time-to-market. Developers can write software quicker through an easy to use and standardized software interface.
    • +
    • Provides a compiler independent layer that allows using different compilers. CMSIS is supported by all mainstream compilers (ARMCC, IAR, and GNU).
    • +
    • Enhances program debugging with peripheral information for debuggers and ITM channels for printf-style output and RTOS kernel awareness.
    • +
    +

    +Coding Rules

    +

    The CMSIS uses the following essential coding rules and conventions:

    +
      +
    • Compliant with ANSI C and C++.
    • +
    • Uses ANSI C standard data types defined in <stdint.h>.
    • +
    • Variables and parameters have a complete data type.
    • +
    • Expressions for #define constants are enclosed in parenthesis.
    • +
    • Conforms to MISRA 2004. MIRSA rule violations are documented.
    • +
    +

    In addition, the CMSIS recommends the following conventions for identifiers:

    +
      +
    • CAPITAL names to identify Core Registers, Peripheral Registers, and CPU Instructions.
    • +
    • CamelCase names to identify function names and interrupt functions.
    • +
    • Namespace_ prefixes avoid clashes with user identifiers and provide functional groups (i.e. for peripherals, RTOS, or DSP Library).
    • +
    +

    The CMSIS is documented within the source files with:

    +
      +
    • Comments that use the C or C++ style.
    • +
    • Doxygen compliant function comments that provide:
        +
      • brief function overview.
      • +
      • detailed description of the function.
      • +
      • detailed parameter explanation.
      • +
      • detailed information about return values.
      • +
      +
    • +
    +

    Doxygen comment example:

    +
    /** 
    + * @brief  Enable Interrupt in NVIC Interrupt Controller
    + * @param  IRQn  interrupt number that specifies the interrupt
    + * @return none.
    + * Enable the specified interrupt in the NVIC Interrupt Controller.
    + * Other settings of the interrupt such as priority are not affected.
    + */
    +

    +Licence

    +

    The CMSIS is provided free of charge by ARM and can be used for all Cortex-M based devices.

    +

    The software portions that are deployed in the application program are under a BSD license which allows usage of CMSIS in any commercial or open source projects.

    +

    View the LICENCE AGREEMENT for CMSIS in detail.

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/General/html/jquery.js b/Libraries/CMSIS/Documentation/General/html/jquery.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/General/html/jquery.js @@ -0,0 +1,77 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")), +f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c) +{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery); +/* + * jQuery UI Resizable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e
    ');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p +&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery); +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
    +
    +
    Function Overview
    +
    +
    +

    The following list provides a brief overview of all CMSIS-RTOS functions. Functions marked with $ are optional. A CMSIS RTOS implementation may not provided functions, but this is clearly indicated with osFeatureXXXX defines.

    + + + + + + + + + + +
    + + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/_using_o_s.html b/Libraries/CMSIS/Documentation/RTOS/html/_using_o_s.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/_using_o_s.html @@ -0,0 +1,172 @@ + + + + + +CMSIS-RTOS: Using a CMSIS RTOS Implementation + + + + + + + + + + + + + + +
    +
    +
    + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    + + +
    + +
    + + + + +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Using a CMSIS RTOS Implementation
    +
    +
    +

    A CMSIS RTOS implementation is typically provided as a library. To add the RTOS functionality to an existing CMSIS-based application the RTOS library (and typically a configuration file) needs to be added. The available functionality of the RTOS library is defined in the file cmsis_os.h that is specific for each RTOS implementation.

    +
    +CMSIS_RTOS_Files.png +
    +CMSIS-RTOS File Structure
    +

    Depending on the CMSIS-RTOS implementation, execution may start with the main function as the first thread. This has the benefit that an application programmer may use other middleware libraries that create threads internally, but the remaining part of the user application just uses the main thread. Therefore, the usage of the RTOS can be invisible to the application programmer, but libraries can use CMSIS-RTOS features.

    +

    Once the files are added to a project, the user can start using the CMSIS-RTOS functions. A code example is provided below:

    +

    Example

    +
    #include "cmsis_os.h" // CMSIS RTOS header file
    +
    +
    void job1 (void const *argument) { // thread function 'job1'
    +
    while (1) {
    +
    : // execute some code
    +
    osDelay (10); // delay execution for 10 milliseconds
    +
    }
    +
    }
    +
    // define job1 as thread function
    +
    osThreadDef(job1, osPriorityAboveNormal, 1, 0); // define job1 as thread function
    +
    +
    +
    void job2 (void const *argument) { // thread function 'job2'
    +
    osThreadCreate(osThread(job1),NULL); // create job1 thread
    +
    while (1) {
    +
    : // execute some code
    +
    }
    +
    }
    +
    +
    osThreadDef(job2, osPriorityNormal, 1, 0); // define job2 as thread function
    +
    +
    void job3 (void const *argument) { // thread function 'job3'
    +
    while (1) {
    +
    : // execute some code
    +
    osDelay (20); // delay execution for 20 milliseconds
    +
    }
    +
    }
    +
    +
    osThreadDef(job3, osPriorityNormal, 1, 0); // define job3 as thread function
    +
    +
    int main (void) { // program execution starts here
    +
    osKernelInitialize (); // initialize RTOS kernel
    +
    : // setup and initialize peripherals
    + + +
    osKernelStart (); // start kernel with job2 execution
    +
    }
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/annotated.html b/Libraries/CMSIS/Documentation/RTOS/html/annotated.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/annotated.html @@ -0,0 +1,147 @@ + + + + + +CMSIS-RTOS: Data Structures + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Data Structures
    +
    +
    +
    Here are the data structures with brief descriptions:
    + + + + + + + + + + +
    oCos_mailQ
    oCosEventEvent structure contains detailed information about an event
    oCosMailQDef_tDefinition structure for mail queue
    oCosMessageQDef_tDefinition structure for message queue
    oCosMutexDef_tMutex Definition structure contains setup information for a mutex
    oCosPoolDef_tDefinition structure for memory block allocation
    oCosSemaphoreDef_tSemaphore Definition structure contains setup information for a semaphore
    oCosThreadDef_tThread Definition structure contains startup information of a thread
    \CosTimerDef_tTimer Definition structure contains timer parameters
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/annotated.js b/Libraries/CMSIS/Documentation/RTOS/html/annotated.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/annotated.js @@ -0,0 +1,12 @@ +var annotated = +[ + [ "os_mailQ", "group___c_m_s_i_s___r_t_o_s___definitions.html#structos__mail_q", null ], + [ "osEvent", "group___c_m_s_i_s___r_t_o_s___definitions.html#structos_event", "group___c_m_s_i_s___r_t_o_s___definitions" ], + [ "osMailQDef_t", "structos_mail_q_def__t.html", "structos_mail_q_def__t" ], + [ "osMessageQDef_t", "structos_message_q_def__t.html", "structos_message_q_def__t" ], + [ "osMutexDef_t", "structos_mutex_def__t.html", "structos_mutex_def__t" ], + [ "osPoolDef_t", "structos_pool_def__t.html", "structos_pool_def__t" ], + [ "osSemaphoreDef_t", "structos_semaphore_def__t.html", "structos_semaphore_def__t" ], + [ "osThreadDef_t", "structos_thread_def__t.html", "structos_thread_def__t" ], + [ "osTimerDef_t", "structos_timer_def__t.html", "structos_timer_def__t" ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/bc_s.png b/Libraries/CMSIS/Documentation/RTOS/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zc$@*G0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/Libraries/CMSIS/Documentation/RTOS/html/bdwn.png b/Libraries/CMSIS/Documentation/RTOS/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zc%17D@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + +CMSIS-RTOS: Data Structure Index + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/closed.png b/Libraries/CMSIS/Documentation/RTOS/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zc%17D@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/Libraries/CMSIS/Documentation/RTOS/html/cmsis.css b/Libraries/CMSIS/Documentation/RTOS/html/cmsis.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/cmsis.css @@ -0,0 +1,1256 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 13px; + line-height: 1.3; +} + +/* CMSIS styles */ + +.style1 { + text-align: center; +} +.style2 { + color: #0000FF; + font-weight: normal; +} +.style3 { + text-align: left; +} +.style4 { + color: #008000; +} +.style5 { + color: #0000FF; +} +.style6 { + color: #000000; + font-style:italic; +} +.mand { + color: #0000FF; +} +.opt { + color: #008000; +} +.cond { + color: #990000; +} + +.choice +{ + background-color:#F7F9D0; +} +.seq +{ + background-color:#C9DECB; +} +.group1 +{ + background-color:#F8F1F1; +} +.group2 +{ + background-color:#DCEDEA; +} + + +ul ul { + list-style-type: disc; +} + +ul ul ul { + list-style-type: disc; +} + +ul.hierarchy { + color: green; +} + +em { + color: #000000; + font-style:italic; +} + + + +/* CMSIS Tables */ +table.cmtab1 { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; + text-align: justify; + width:70%; +} + +th.cmtab1 { + background: #EBEFF6; + font-weight: bold; + height: 28px; +} + +td.cmtab1 { + padding:1px; + text-align: left; +} + +table.cmtable { + border-collapse:collapse; + text-align: justify; +} + +table.cmtable td, table.cmtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.cmtable th { + background-color: #EBEFF6; + border: 1px solid #2D4068; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + height: 28px; +} + +td.MonoTxt { + font-family:"Arial monospaced for SAP"; +} + +span.XML-Token +{ + azimuth: 180; + font-style:italic; + color:Maroon; + z-index:20; + +} + + + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3A568E; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4464A5; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9AAED5; + color: #ffffff; + border: 1px double #849CCC; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FBFCFD; + border: 1px solid #C3CFE6; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; +} + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C3CFE6; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C3CFE6; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EDF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9AAED5; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A2B4D8; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4769AD; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C3CFE6; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4464A5; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4464A5; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 0px 6px 0px; + color: #233456; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #708CC4; + border-top:1px solid #5072B7; + border-left:1px solid #5072B7; + border-right:1px solid #C3CFE6; + border-bottom:1px solid #C3CFE6; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3A568E; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #293C63; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2B4069; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #354E81; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A7B8DA; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A7B8DA; + border-bottom: 1px solid #A7B8DA; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A7B8DA; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + font-size: 90%; + color: #233456; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A7B8DA; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#889FCE; + border:solid 1px #C1CDE5; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#344D7E; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6583BF; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#344D7E; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C3CFE6; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5072B7; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #8EA4D0; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#314877; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D7DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4464A5; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/cmsis__os_8h.html b/Libraries/CMSIS/Documentation/RTOS/html/cmsis__os_8h.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/cmsis__os_8h.html @@ -0,0 +1,720 @@ + + + + + +CMSIS-RTOS: cmsis_os.h File Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    cmsis_os.h File Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Structures

    struct  osThreadDef_t
     Thread Definition structure contains startup information of a thread. More...
     
    struct  osTimerDef_t
     Timer Definition structure contains timer parameters. More...
     
    struct  osMutexDef_t
     Mutex Definition structure contains setup information for a mutex. More...
     
    struct  osSemaphoreDef_t
     Semaphore Definition structure contains setup information for a semaphore. More...
     
    struct  osPoolDef_t
     Definition structure for memory block allocation. More...
     
    struct  osMessageQDef_t
     Definition structure for message queue. More...
     
    struct  osMailQDef_t
     Definition structure for mail queue. More...
     
    struct  osEvent
     Event structure contains detailed information about an event. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define osCMSIS   0x10002
     API version (main [31:16] .sub [15:0]) More...
     
    #define osCMSIS_KERNEL   0x10000
     RTOS identification and version (main [31:16] .sub [15:0]) More...
     
    #define osKernelSystemId   "KERNEL V1.00"
     RTOS identification string. More...
     
    #define osFeature_MainThread   1
     main thread 1=main can be thread, 0=not available More...
     
    #define osFeature_Pool   1
     Memory Pools: 1=available, 0=not available. More...
     
    #define osFeature_MailQ   1
     Mail Queues: 1=available, 0=not available. More...
     
    #define osFeature_MessageQ   1
     Message Queues: 1=available, 0=not available. More...
     
    #define osFeature_Signals   8
     maximum number of Signal Flags available per thread More...
     
    #define osFeature_Semaphore   30
     maximum count for osSemaphoreCreate function More...
     
    #define osFeature_Wait   1
     osWait function: 1=available, 0=not available More...
     
    #define osFeature_SysTick   1
     osKernelSysTick functions: 1=available, 0=not available More...
     
    #define osWaitForever   0xFFFFFFFF
     Timeout value. More...
     
    #define osKernelSysTickFrequency   100000000
     The RTOS kernel system timer frequency in Hz. More...
     
    #define osKernelSysTickMicroSec(microsec)   (((uint64_t)microsec * (osKernelSysTickFrequency)) / 1000000)
     Convert a microseconds value to a RTOS kernel system timer value. More...
     
    #define osThreadDef(name, priority, instances, stacksz)
     Create a Thread Definition with function, priority, and stack requirements. More...
     
    #define osThread(name)   &os_thread_def_##name
     Access a Thread definition. More...
     
    #define osTimerDef(name, function)
     Define a Timer object. More...
     
    #define osTimer(name)   &os_timer_def_##name
     Access a Timer definition. More...
     
    #define osMutexDef(name)   const osMutexDef_t os_mutex_def_##name = { 0 }
     Define a Mutex. More...
     
    #define osMutex(name)   &os_mutex_def_##name
     Access a Mutex definition. More...
     
    #define osSemaphoreDef(name)   const osSemaphoreDef_t os_semaphore_def_##name = { 0 }
     Define a Semaphore object. More...
     
    #define osSemaphore(name)   &os_semaphore_def_##name
     Access a Semaphore definition. More...
     
    #define osPoolDef(name, no, type)
     Define a Memory Pool. More...
     
    #define osPool(name)   &os_pool_def_##name
     Access a Memory Pool definition. More...
     
    #define osMessageQDef(name, queue_sz, type)
     Create a Message Queue Definition. More...
     
    #define osMessageQ(name)   &os_messageQ_def_##name
     Access a Message Queue Definition. More...
     
    #define osMailQDef(name, queue_sz, type)
     Create a Mail Queue Definition. More...
     
    #define osMailQ(name)   &os_mailQ_def_##name
     Access a Mail Queue Definition. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    typedef void(* os_pthread )(void const *argument)
     Entry point of a thread. More...
     
    typedef void(* os_ptimer )(void const *argument)
     Entry point of a timer call back function. More...
     
    typedef struct os_thread_cb * osThreadId
     Thread ID identifies the thread (pointer to a thread control block). More...
     
    typedef struct os_timer_cb * osTimerId
     Timer ID identifies the timer (pointer to a timer control block). More...
     
    typedef struct os_mutex_cb * osMutexId
     Mutex ID identifies the mutex (pointer to a mutex control block). More...
     
    typedef struct os_semaphore_cb * osSemaphoreId
     Semaphore ID identifies the semaphore (pointer to a semaphore control block). More...
     
    typedef struct os_pool_cb * osPoolId
     Pool ID identifies the memory pool (pointer to a memory pool control block). More...
     
    typedef struct os_messageQ_cb * osMessageQId
     Message ID identifies the message queue (pointer to a message queue control block). More...
     
    typedef struct os_mailQ_cb * osMailQId
     Mail ID identifies the mail queue (pointer to a mail queue control block). More...
     
    + + + + + + + + + + +

    +Enumerations

    enum  osPriority {
    +  osPriorityIdle = -3, +
    +  osPriorityLow = -2, +
    +  osPriorityBelowNormal = -1, +
    +  osPriorityNormal = 0, +
    +  osPriorityAboveNormal = +1, +
    +  osPriorityHigh = +2, +
    +  osPriorityRealtime = +3, +
    +  osPriorityError = 0x84 +
    + }
     Priority used for thread control. More...
     
    enum  osStatus {
    +  osOK = 0, +
    +  osEventSignal = 0x08, +
    +  osEventMessage = 0x10, +
    +  osEventMail = 0x20, +
    +  osEventTimeout = 0x40, +
    +  osErrorParameter = 0x80, +
    +  osErrorResource = 0x81, +
    +  osErrorTimeoutResource = 0xC1, +
    +  osErrorISR = 0x82, +
    +  osErrorISRRecursive = 0x83, +
    +  osErrorPriority = 0x84, +
    +  osErrorNoMemory = 0x85, +
    +  osErrorValue = 0x86, +
    +  osErrorOS = 0xFF, +
    +  os_status_reserved = 0x7FFFFFFF +
    + }
     Status code values returned by CMSIS-RTOS functions. More...
     
    enum  os_timer_type {
    +  osTimerOnce = 0, +
    +  osTimerPeriodic = 1 +
    + }
     Timer type value for the timer definition. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    osStatus osKernelInitialize (void)
     Initialize the RTOS Kernel for creating objects. More...
     
    osStatus osKernelStart (void)
     Start the RTOS Kernel. More...
     
    int32_t osKernelRunning (void)
     Check if the RTOS kernel is already started. More...
     
    uint32_t osKernelSysTick (void)
     Get the RTOS kernel system timer counter. More...
     
    osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument)
     Create a thread and add it to Active Threads and set it to state READY. More...
     
    osThreadId osThreadGetId (void)
     Return the thread ID of the current running thread. More...
     
    osStatus osThreadTerminate (osThreadId thread_id)
     Terminate execution of a thread and remove it from Active Threads. More...
     
    osStatus osThreadYield (void)
     Pass control to next thread that is in state READY. More...
     
    osStatus osThreadSetPriority (osThreadId thread_id, osPriority priority)
     Change priority of an active thread. More...
     
    osPriority osThreadGetPriority (osThreadId thread_id)
     Get current priority of an active thread. More...
     
    osStatus osDelay (uint32_t millisec)
     Wait for Timeout (Time Delay). More...
     
    osEvent osWait (uint32_t millisec)
     Wait for Signal, Message, Mail, or Timeout. More...
     
    osTimerId osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument)
     Create a timer. More...
     
    osStatus osTimerStart (osTimerId timer_id, uint32_t millisec)
     Start or restart a timer. More...
     
    osStatus osTimerStop (osTimerId timer_id)
     Stop the timer. More...
     
    osStatus osTimerDelete (osTimerId timer_id)
     Delete a timer that was created by osTimerCreate. More...
     
    int32_t osSignalSet (osThreadId thread_id, int32_t signals)
     Set the specified Signal Flags of an active thread. More...
     
    int32_t osSignalClear (osThreadId thread_id, int32_t signals)
     Clear the specified Signal Flags of an active thread. More...
     
    osEvent osSignalWait (int32_t signals, uint32_t millisec)
     Wait for one or more Signal Flags to become signaled for the current RUNNING thread. More...
     
    osMutexId osMutexCreate (const osMutexDef_t *mutex_def)
     Create and Initialize a Mutex object. More...
     
    osStatus osMutexWait (osMutexId mutex_id, uint32_t millisec)
     Wait until a Mutex becomes available. More...
     
    osStatus osMutexRelease (osMutexId mutex_id)
     Release a Mutex that was obtained by osMutexWait. More...
     
    osStatus osMutexDelete (osMutexId mutex_id)
     Delete a Mutex that was created by osMutexCreate. More...
     
    osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count)
     Create and Initialize a Semaphore object used for managing resources. More...
     
    int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec)
     Wait until a Semaphore token becomes available. More...
     
    osStatus osSemaphoreRelease (osSemaphoreId semaphore_id)
     Release a Semaphore token. More...
     
    osStatus osSemaphoreDelete (osSemaphoreId semaphore_id)
     Delete a Semaphore that was created by osSemaphoreCreate. More...
     
    osPoolId osPoolCreate (const osPoolDef_t *pool_def)
     Create and Initialize a memory pool. More...
     
    void * osPoolAlloc (osPoolId pool_id)
     Allocate a memory block from a memory pool. More...
     
    void * osPoolCAlloc (osPoolId pool_id)
     Allocate a memory block from a memory pool and set memory block to zero. More...
     
    osStatus osPoolFree (osPoolId pool_id, void *block)
     Return an allocated memory block back to a specific memory pool. More...
     
    osMessageQId osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id)
     Create and Initialize a Message Queue. More...
     
    osStatus osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec)
     Put a Message to a Queue. More...
     
    osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec)
     Get a Message or Wait for a Message from a Queue. More...
     
    osMailQId osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id)
     Create and Initialize mail queue. More...
     
    void * osMailAlloc (osMailQId queue_id, uint32_t millisec)
     Allocate a memory block from a mail. More...
     
    void * osMailCAlloc (osMailQId queue_id, uint32_t millisec)
     Allocate a memory block from a mail and set memory block to zero. More...
     
    osStatus osMailPut (osMailQId queue_id, void *mail)
     Put a mail to a queue. More...
     
    osEvent osMailGet (osMailQId queue_id, uint32_t millisec)
     Get a mail from a queue. More...
     
    osStatus osMailFree (osMailQId queue_id, void *mail)
     Free a memory block from a mail. More...
     
    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osWaitForever   0xFFFFFFFF
    +
    +
    Note
    MUST REMAIN UNCHANGED: osWaitForever shall be consistent in every CMSIS-RTOS. wait forever timeout value
    + +
    +
    +

    Typedef Documentation

    + +
    +
    + + + + +
    typedef void(* os_pthread)(void const *argument)
    +
    +
    Note
    MUST REMAIN UNCHANGED: os_pthread shall be consistent in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef void(* os_ptimer)(void const *argument)
    +
    +
    Note
    MUST REMAIN UNCHANGED: os_ptimer shall be consistent in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef struct os_mailQ_cb* osMailQId
    +
    +
    Note
    CAN BE CHANGED: os_mailQ_cb is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef struct os_messageQ_cb* osMessageQId
    +
    +
    Note
    CAN BE CHANGED: os_messageQ_cb is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef struct os_mutex_cb* osMutexId
    +
    +
    Note
    CAN BE CHANGED: os_mutex_cb is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef struct os_pool_cb* osPoolId
    +
    +
    Note
    CAN BE CHANGED: os_pool_cb is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef struct os_semaphore_cb* osSemaphoreId
    +
    +
    Note
    CAN BE CHANGED: os_semaphore_cb is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef struct os_thread_cb* osThreadId
    +
    +
    Note
    CAN BE CHANGED: os_thread_cb is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    typedef struct os_timer_cb* osTimerId
    +
    +
    Note
    CAN BE CHANGED: os_timer_cb is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Enumeration Type Documentation

    + +
    +
    + + + + +
    enum os_timer_type
    +
    +
    Note
    MUST REMAIN UNCHANGED: os_timer_type shall be consistent in every CMSIS-RTOS.
    + + + +
    Enumerator
    osTimerOnce  +

    one-shot timer

    +
    osTimerPeriodic  +

    repeating timer

    +
    + +
    +
    + +
    +
    + + + + +
    enum osPriority
    +
    +
    Note
    MUST REMAIN UNCHANGED: osPriority shall be consistent in every CMSIS-RTOS.
    + + + + + + + + + +
    Enumerator
    osPriorityIdle  +

    priority: idle (lowest)

    +
    osPriorityLow  +

    priority: low

    +
    osPriorityBelowNormal  +

    priority: below normal

    +
    osPriorityNormal  +

    priority: normal (default)

    +
    osPriorityAboveNormal  +

    priority: above normal

    +
    osPriorityHigh  +

    priority: high

    +
    osPriorityRealtime  +

    priority: realtime (highest)

    +
    osPriorityError  +

    system cannot determine priority or thread has illegal priority

    +
    + +
    +
    + +
    +
    + + + + +
    enum osStatus
    +
    +
    Note
    MUST REMAIN UNCHANGED: osStatus shall be consistent in every CMSIS-RTOS.
    + + + + + + + + + + + + + + + + +
    Enumerator
    osOK  +

    function completed; no error or event occurred.

    +
    osEventSignal  +

    function completed; signal event occurred.

    +
    osEventMessage  +

    function completed; message event occurred.

    +
    osEventMail  +

    function completed; mail event occurred.

    +
    osEventTimeout  +

    function completed; timeout occurred.

    +
    osErrorParameter  +

    parameter error: a mandatory parameter was missing or specified an incorrect object.

    +
    osErrorResource  +

    resource not available: a specified resource was not available.

    +
    osErrorTimeoutResource  +

    resource not available within given time: a specified resource was not available within the timeout period.

    +
    osErrorISR  +

    not allowed in ISR context: the function cannot be called from interrupt service routines.

    +
    osErrorISRRecursive  +

    function called multiple times from ISR with same object.

    +
    osErrorPriority  +

    system cannot determine priority or thread has illegal priority.

    +
    osErrorNoMemory  +

    system is out of memory: it was impossible to allocate or reserve memory for the operation.

    +
    osErrorValue  +

    value of a parameter is out of range.

    +
    osErrorOS  +

    unspecified RTOS error: run-time error but no other error message fits.

    +
    os_status_reserved  +

    prevent from enum down-size compiler optimization.

    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/cmsis__os_8txt.html b/Libraries/CMSIS/Documentation/RTOS/html/cmsis__os_8txt.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/cmsis__os_8txt.html @@ -0,0 +1,193 @@ + + + + + +CMSIS-RTOS: cmsis_os.txt File Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    cmsis_os.txt File Reference
    +
    +
    + + + + + + + + +

    +Enumerations

    enum  osPriority {
    +  osPriorityIdle = -3, +
    +  osPriorityLow = -2, +
    +  osPriorityBelowNormal = -1, +
    +  osPriorityNormal = 0, +
    +  osPriorityAboveNormal = +1, +
    +  osPriorityHigh = +2, +
    +  osPriorityRealtime = +3, +
    +  osPriorityError = 0x84 +
    + }
     
    enum  os_timer_type {
    +  osTimerOnce = 0, +
    +  osTimerPeriodic = 1 +
    + }
     
    enum  osStatus {
    +  osOK = 0, +
    +  osEventSignal = 0x08, +
    +  osEventMessage = 0x10, +
    +  osEventMail = 0x20, +
    +  osEventTimeout = 0x40, +
    +  osErrorParameter = 0x80, +
    +  osErrorResource = 0x81, +
    +  osErrorTimeoutResource = 0xC1, +
    +  osErrorISR = 0x82, +
    +  osErrorISRRecursive = 0x83, +
    +  osErrorPriority = 0x84, +
    +  osErrorNoMemory = 0x85, +
    +  osErrorValue = 0x86, +
    +  osErrorOS = 0xFF, +
    +  os_status_reserved = 0x7FFFFFFF +
    + }
     
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/cmsis_os_h.html b/Libraries/CMSIS/Documentation/RTOS/html/cmsis_os_h.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/cmsis_os_h.html @@ -0,0 +1,166 @@ + + + + + +CMSIS-RTOS: Header File Template: cmsis_os.h + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Header File Template: cmsis_os.h
    +
    +
    +

    The file cmsis_os.h is a template header file for a CMSIS-RTOS compliant Real-Time Operating System (RTOS). Each RTOS that is compliant with CMSIS-RTOS shall provide a specific cmsis_os.h header file that represents its implementation.

    +

    The file cmsis_os.h contains:

    +
      +
    • CMSIS-RTOS API function definitions
    • +
    • struct definitions for parameters and return types
    • +
    • status and priority values used by CMSIS-RTOS API functions
    • +
    • macros for defining threads and other kernel objects
    • +
    +

    Name conventions and header file modifications

    +

    All definitions are prefixed with os to give an unique name space for CMSIS-RTOS functions. Definitions that are prefixed os_ are not used in the application code but local to this header file. All definitions and functions that belong to a module are grouped and have a common prefix, i.e. osThread.

    +

    Definitions that are marked with CAN BE CHANGED can be adapted towards the needs of the actual CMSIS-RTOS implementation. These definitions can be specific to the underlying RTOS kernel.

    +

    Definitions that are marked with MUST REMAIN UNCHANGED cannot be altered. Otherwise the CMSIS-RTOS implementation is no longer compliant to the standard. Note that some functions are optional and need not to be provided by every CMSIS-RTOS implementation.

    +

    Function calls from interrupt service routines

    +

    The following CMSIS-RTOS functions can be called from threads and interrupt service routines (ISR):

    + +

    Functions that cannot be called from an ISR are verifying the interrupt status and return in case that they are called from an ISR context the status code osErrorISR. In some implementations this condition might be caught using the HARD FAULT vector.

    +

    Some CMSIS-RTOS implementations support CMSIS-RTOS function calls from multiple ISR at the same time. If this is impossible, the CMSIS-RTOS rejects calls by nested ISR functions with the status code osErrorISRRecursive.

    +

    Define and reference object definitions

    +

    With #define osObjectsExternal objects are defined as external symbols. This allows to create a consistent header file that is used throughout a project as shown below:

    +

    Header File

    +
    #include <cmsis_os.h> // CMSIS RTOS header file
    +
    +
    // Thread definition
    +
    extern void thread_sample (void const *argument); // function prototype
    +
    osThreadDef (thread_sample, osPriorityBelowNormal, 1, 100);
    +
    +
    // Pool definition
    +
    osPoolDef(MyPool, 10, long);
    +

    This header file defines all objects when included in a C/C++ source file. When #define osObjectsExternal is present before the header file, the objects are defined as external symbols. A single consistent header file can therefore be used throughout the whole project.

    +

    Example

    +
    #include "osObjects.h" // Definition of the CMSIS-RTOS objects
    +
    #define osObjectExternal // Objects will be defined as external symbols
    +
    #include "osObjects.h" // Reference to the CMSIS-RTOS objects
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/dir_67baed4ff719a838d401a6dc7774cf41.html b/Libraries/CMSIS/Documentation/RTOS/html/dir_67baed4ff719a838d401a6dc7774cf41.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/dir_67baed4ff719a838d401a6dc7774cf41.html @@ -0,0 +1,134 @@ + + + + + +CMSIS-RTOS: RTOS Directory Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    RTOS Directory Reference
    +
    +
    + + + + +

    +Directories

    directory  Template
     
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html b/Libraries/CMSIS/Documentation/RTOS/html/dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html @@ -0,0 +1,134 @@ + + + + + +CMSIS-RTOS: Template Directory Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Template Directory Reference
    +
    +
    + + + + +

    +Files

    file  cmsis_os.h
     
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/doxygen.png b/Libraries/CMSIS/Documentation/RTOS/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 diff --git a/Libraries/CMSIS/Documentation/RTOS/html/dynsections.js b/Libraries/CMSIS/Documentation/RTOS/html/dynsections.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + +CMSIS-RTOS: File List + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    File List
    +
    +
    +
    Here is a list of all files with brief descriptions:
    + + +
    \*cmsis_os.h
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2blank.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2cl.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2cl.png new file mode 100644 index 0000000000000000000000000000000000000000..132f6577bf7f085344904602815a260d29f55d9b GIT binary patch literal 453 zc$@*n0XqJPP)VBF;ev;toEj8_OB0EQg5eYilIj#JZG_m^33l3^k4mtzx!TVD?g)Y$ zrvwRDSqT!wLIM$dWCIa$vtxE|mzbTzu-y&$FvF6WA2a{Wr1g}`WdPT-0JzEZ0IxAv z-Z+ejZc&H;I5-pb_SUB}04j0^V)3t{`z<7asDl2Tw3w3sP%)0^8$bhEg)IOTBcRXv zFfq~3&gvJ$F-U7mpBW8z1GY~HK&7h4^YI~Orv~wLnC0PP_dAkv;nzX{9Q|8Gv=2ca z@v)c9T;D#h`TZ2X&&$ff2wedmot995de~-s3I)yauahg;7qn*?1n?F$e+PwP37}~; z1NKUk7reVK^7A;$QRW7qAx40HHUZ<|k3U%nz(Ec`#i+q9K!dgcROAlCS?`L= v>#=f?wF5ZND!1uAfQsk;KN^4&*8~0npJiJ%2dj9(00000NkvXXu0mjfWVFf_ diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2doc.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zc$@+10u}v7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2folderclosed.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zc$@)f0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2lastnode.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2link.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2link.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zc$@+10u}v7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2mlastnode.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zc$@+D015wzP)kw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2mnode.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zc$@+D015wzP)kw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2mo.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2mo.png new file mode 100644 index 0000000000000000000000000000000000000000..4bfb80f76e65815989a9350ad79d8ce45380e2b1 GIT binary patch literal 403 zc$@)~0c`$>P)${!fXv7NWJ%@%u4(KapRY>T6_x;E zxE7kt!}Tiw8@d9Sd`rTGum>z#Q14vIm`wm1#-byD1muMi02@YNO5LRF0o!Y{`a!Ya z{^&p0Su|s705&2QxmqdexG+-zNKL3f@8gTQSJrKByfo+oNJ^-{|Mn||Q5SDwjQVsS zr1}7o5-QMs>gYIMD>GRw@$lT`z4r-_m{5U#cR{urD_)TOeY)(UD|qZ^&y`IVijqk~ xs(9-kWFr7E^!lgi8GsFK5kOY_{Xbgf0^etEU%fLevs?fG002ovPDHLkV1nB&vX1}& diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2node.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2node.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2ns.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2ns.png new file mode 100644 index 0000000000000000000000000000000000000000..72e3d71c2892d6f00e259facebc88b45f6db2e35 GIT binary patch literal 388 zc$@)*0ek+5P)f+++#cT|!CkD&4pnIkeMEUEM*>`*9>+Juji$!h-mW%M^8s9957{3nvbrz^&=u<~TAUrFROkmt%^F~Ez+-c53Lv%iH3d38!Rv?K zrb&MYAhp;Gf<}wS;9ZZq2@;!uYG;=Z>~GKE^{HD4keu}lnyqhc>kWX^tQn|warJ~h zT+rtMkdz6aHoN%z(o|&wpu@@OpJnF_z{PA)6(FHw02iHslz^(N{4*+K9)QJHR87wT iTyp>aXaF{u2lxRou|^4tux6eB0000^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2pnode.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zc$@*{02=>^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2splitbar.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zc%17D@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/Libraries/CMSIS/Documentation/RTOS/html/ftv2vertline.png b/Libraries/CMSIS/Documentation/RTOS/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/RTOS/html/functions.html b/Libraries/CMSIS/Documentation/RTOS/html/functions.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/functions.html @@ -0,0 +1,198 @@ + + + + + +CMSIS-RTOS: Data Fields + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    Here is a list of all struct and union fields with links to the structures/unions they belong to:
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/functions_vars.html b/Libraries/CMSIS/Documentation/RTOS/html/functions_vars.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/functions_vars.html @@ -0,0 +1,198 @@ + + + + + +CMSIS-RTOS: Data Fields - Variables + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/globals.html b/Libraries/CMSIS/Documentation/RTOS/html/globals.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/globals.html @@ -0,0 +1,460 @@ + + + + + +CMSIS-RTOS: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
    + +

    - o -

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/globals_defs.html b/Libraries/CMSIS/Documentation/RTOS/html/globals_defs.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/globals_defs.html @@ -0,0 +1,219 @@ + + + + + +CMSIS-RTOS: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/globals_enum.html b/Libraries/CMSIS/Documentation/RTOS/html/globals_enum.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/globals_enum.html @@ -0,0 +1,147 @@ + + + + + +CMSIS-RTOS: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/globals_eval.html b/Libraries/CMSIS/Documentation/RTOS/html/globals_eval.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/globals_eval.html @@ -0,0 +1,210 @@ + + + + + +CMSIS-RTOS: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/globals_func.html b/Libraries/CMSIS/Documentation/RTOS/html/globals_func.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/globals_func.html @@ -0,0 +1,262 @@ + + + + + +CMSIS-RTOS: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +  + +

    - o -

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/globals_type.html b/Libraries/CMSIS/Documentation/RTOS/html/globals_type.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/globals_type.html @@ -0,0 +1,162 @@ + + + + + +CMSIS-RTOS: Globals + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s.html @@ -0,0 +1,174 @@ + + + + + +CMSIS-RTOS: CMSIS-RTOS API + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    CMSIS-RTOS API
    +
    +
    + +

    This section describes the CMSIS-RTOS API. +More...

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

    +Content

     Kernel Information and Control
     Provide version/system information and start the RTOS Kernel.
     
     Thread Management
     Define, create, and control thread functions.
     
     Generic Wait Functions
     Wait for a time period or unspecified events.
     
     Timer Management
     Create and control timer and timer callback functions.
     
     Signal Management
     Control or wait for signal flags.
     
     Mutex Management
     Synchronize thread execution with a Mutex.
     
     Semaphore Management
     Control access to shared resources.
     
     Memory Pool Management
     Define and manage fixed-size memory pools.
     
     Message Queue Management
     Control, send, receive, or wait for messages.
     
     Mail Queue Management
     Control, send, receive, or wait for mail.
     
     Generic Data Types and Definitions
     Data Type Definitions used by the CMSIS-RTOS API functions.
     
     Status and Error Codes
     Status and Error Codes returned by CMSIS-RTOS API functions.
     
    +

    Description

    +

    The CMSIS-RTOS is a generic API layer that interfaces to an existing RTOS kernel. It provides the following functional modules:

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s.js @@ -0,0 +1,15 @@ +var group___c_m_s_i_s___r_t_o_s = +[ + [ "Kernel Information and Control", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl" ], + [ "Thread Management", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html", "group___c_m_s_i_s___r_t_o_s___thread_mgmt" ], + [ "Generic Wait Functions", "group___c_m_s_i_s___r_t_o_s___wait.html", "group___c_m_s_i_s___r_t_o_s___wait" ], + [ "Timer Management", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html", "group___c_m_s_i_s___r_t_o_s___timer_mgmt" ], + [ "Signal Management", "group___c_m_s_i_s___r_t_o_s___signal_mgmt.html", "group___c_m_s_i_s___r_t_o_s___signal_mgmt" ], + [ "Mutex Management", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt" ], + [ "Semaphore Management", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt" ], + [ "Memory Pool Management", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html", "group___c_m_s_i_s___r_t_o_s___pool_mgmt" ], + [ "Message Queue Management", "group___c_m_s_i_s___r_t_o_s___message.html", "group___c_m_s_i_s___r_t_o_s___message" ], + [ "Mail Queue Management", "group___c_m_s_i_s___r_t_o_s___mail.html", "group___c_m_s_i_s___r_t_o_s___mail" ], + [ "Generic Data Types and Definitions", "group___c_m_s_i_s___r_t_o_s___definitions.html", "group___c_m_s_i_s___r_t_o_s___definitions" ], + [ "Status and Error Codes", "group___c_m_s_i_s___r_t_o_s___status.html", "group___c_m_s_i_s___r_t_o_s___status" ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___definitions.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___definitions.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___definitions.html @@ -0,0 +1,297 @@ + + + + + +CMSIS-RTOS: Generic Data Types and Definitions + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Generic Data Types and Definitions
    +
    +
    + +

    Data Type Definitions used by the CMSIS-RTOS API functions. +More...

    + + + + + + + +

    +Data Structures

    struct  osEvent
     Event structure contains detailed information about an event. More...
     
    struct  os_mailQ
     
    +

    Description

    +

    The Data Type section lists all data types that are used to exchange information with CMSIS-RTOS functions.

    +

    Data Structure Documentation

    + +
    +
    + + + + +
    struct osEvent
    +
    +
    Note
    MUST REMAIN UNCHANGED: os_event shall be consistent in every CMSIS-RTOS. However the struct may be extended at the end.
    +

    The osEvent structure describes the events returned by CMSIS-RTOS functions.

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

    Data Fields

    osStatus status
     status code: event or error information More...
     
    union {
       uint32_t   v
     message as 32-bit value More...
     
       void *   p
     message or mail as void pointer More...
     
       int32_t   signals
     signal flags More...
     
    value
     event value More...
     
    union {
       osMailQId   mail_id
     mail id obtained by osMailCreate More...
     
       osMessageQId   message_id
     message id obtained by osMessageCreate More...
     
    def
     event definition More...
     
    +

    Field Documentation

    + +
    +
    + + + + +
    union { ... } def
    +
    + +
    +
    + +
    +
    + + + + +
    osMailQId mail_id
    +
    + +
    +
    + +
    +
    + + + + +
    osMessageQId message_id
    +
    + +
    +
    + +
    +
    + + + + +
    void* p
    +
    + +
    +
    + +
    +
    + + + + +
    int32_t signals
    +
    + +
    +
    + +
    +
    + + + + +
    osStatus status
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t v
    +
    + +
    +
    + +
    +
    + + + + +
    union { ... } value
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + +
    struct os_mailQ
    +
    +

    The osEvent structure describes the events returned by CMSIS-RTOS functions.

    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___definitions.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___definitions.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___definitions.js @@ -0,0 +1,11 @@ +var group___c_m_s_i_s___r_t_o_s___definitions = +[ + [ "def", "group___c_m_s_i_s___r_t_o_s___definitions.html#a596b6d55c3321db19239256bbe403df6", null ], + [ "mail_id", "group___c_m_s_i_s___r_t_o_s___definitions.html#ac86175a4b1706bee596f3018322df26e", null ], + [ "message_id", "group___c_m_s_i_s___r_t_o_s___definitions.html#af394cbe21dde7377974e63af38cd87b0", null ], + [ "p", "group___c_m_s_i_s___r_t_o_s___definitions.html#a117104b82864d3b23ec174af6d392709", null ], + [ "signals", "group___c_m_s_i_s___r_t_o_s___definitions.html#ad0dda1bf7e74f1576261d493fba232b6", null ], + [ "status", "group___c_m_s_i_s___r_t_o_s___definitions.html#ad477a289f1f03ac45407b64268d707d3", null ], + [ "v", "group___c_m_s_i_s___r_t_o_s___definitions.html#a9e0a00edabf3b8a5dafff624fff7bbfc", null ], + [ "value", "group___c_m_s_i_s___r_t_o_s___definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html @@ -0,0 +1,465 @@ + + + + + +CMSIS-RTOS: Kernel Information and Control + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Kernel Information and Control
    +
    +
    + +

    Provide version/system information and start the RTOS Kernel. +More...

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

    +Macros

    #define osFeature_MainThread   1
     main thread 1=main can be thread, 0=not available More...
     
    #define osFeature_SysTick   1
     osKernelSysTick functions: 1=available, 0=not available More...
     
    #define osCMSIS   0x10002
     API version (main [31:16] .sub [15:0]) More...
     
    #define osCMSIS_KERNEL   0x10000
     RTOS identification and version (main [31:16] .sub [15:0]) More...
     
    #define osKernelSystemId   "KERNEL V1.00"
     RTOS identification string. More...
     
    #define osKernelSysTickFrequency   100000000
     The RTOS kernel system timer frequency in Hz. More...
     
    #define osKernelSysTickMicroSec(microsec)   (((uint64_t)microsec * (osKernelSysTickFrequency)) / 1000000)
     Convert a microseconds value to a RTOS kernel system timer value. More...
     
    + + + + + + + + + + + + + +

    +Functions

    osStatus osKernelInitialize (void)
     Initialize the RTOS Kernel for creating objects. More...
     
    osStatus osKernelStart (void)
     Start the RTOS Kernel. More...
     
    int32_t osKernelRunning (void)
     Check if the RTOS kernel is already started. More...
     
    uint32_t osKernelSysTick (void)
     Get the RTOS kernel system timer counter. More...
     
    +

    Description

    +

    The Kernel Information and Control function group allow to:

    +
      +
    • obtain information about the system and the underlying kernel.
    • +
    • obtain version information about the CMSIS RTOS API.
    • +
    • initialize of the RTOS kernel for creating objects.
    • +
    • start the RTOS kernel and thread switching.
    • +
    • check the execution status of the RTOS kernel.
    • +
    +

    The function main is a special thread function that may be started at system initialization. In this case it has the initial priority osPriorityNormal.

    +

    Example

    +
    void system_error (void) {
    +
    // fatal error: set system to a safe state
    +
    while (1);
    +
    }
    +
    +
    +
    int main (void) { // program execution starts here
    +
    if (osKernelInitialize () != osOK) { // initialize RTOS kernel
    +
    system_error (); // invoke system error function
    +
    }
    +
    +
    system_initialize (); // setup and initialize peripherals
    +
    osThreadCreate (osThread(job1)); // create threads
    + +
    if (osKernelStart () != osOK) { // start kernel with job2 execution
    +
    system_error (); // invoke system error function
    +
    }
    +
    }
    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osCMSIS   0x10002
    +
    +

    Version information of the CMSIS RTOS API whereby major version is in bits [31:16] and sub version in bits [15:0]. The value 0x10000 represents version 1.00.

    +
    Note
    MUST REMAIN UNCHANGED: osCMSIS identifies the CMSIS-RTOS API version.
    + +
    +
    + +
    +
    + + + + +
    #define osCMSIS_KERNEL   0x10000
    +
    +

    Identifies the underlying RTOS kernel and version number. The actual name of that define depends on the RTOS Kernel used in the implementation. For example, osCMSIS_FreeRTOS identifies the FreeRTOS kernel and the value indicates the version number of that kernel whereby the major version is in bits [31:16] and sub version in bits [15:0]. The value 0x10000 represents version 1.00.

    +
    Note
    CAN BE CHANGED: osCMSIS_KERNEL identifies the underlying RTOS kernel and version number.
    + +
    +
    + +
    +
    + + + + +
    #define osFeature_MainThread   1
    +
    +

    A CMSIS-RTOS implementation may support to start thread execution with the function 'main'.

    + +
    Note
    MUST REMAIN UNCHANGED: osFeature_xxx shall be consistent in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    #define osFeature_SysTick   1
    +
    +

    A CMSIS-RTOS implementation may provide access to the RTOS kernel system timer.

    + + +
    +
    + +
    +
    + + + + +
    #define osKernelSystemId   "KERNEL V1.00"
    +
    +

    Defines a string that identifies the underlying RTOS Kernel and provides version information. The length of that string is limited to 21 bytes. A valid identification string is for example, "FreeRTOS V1.00".

    +
    Note
    MUST REMAIN UNCHANGED: osKernelSystemId shall be consistent in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + +
    #define osKernelSysTickFrequency   100000000
    +
    +

    Specifies the frequency of the Kernel SysTick timer in Hz. The value is typically use to scale a time value and is for example used in osKernelSysTickMicroSec.

    +
    See Also
    osKernelSysTick
    +
    Note
    Reflects the system timer setting and is typically defined in a configuration file.
    + +
    +
    + +
    +
    + + + + + + + + +
    #define osKernelSysTickMicroSec( microsec)   (((uint64_t)microsec * (osKernelSysTickFrequency)) / 1000000)
    +
    +

    Allows to scale a microsecond value to the frequency of the Kernel SysTick timer. This macro is typically used to check for short timeouts in polling loops.

    +
    See Also
    osKernelSysTick
    +
    Parameters
    + + +
    microsectime value in microseconds.
    +
    +
    +
    Returns
    time value normalized to the osKernelSysTickFrequency
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    osStatus osKernelInitialize (void )
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osKernelInitialize shall be consistent in every CMSIS-RTOS.
    +

    Initialize of the RTOS Kernel to allow peripheral setup and creation of other RTOS objects with the functions:

    + +

    The RTOS kernel does not start thread switching until the function osKernelStart is called.

    +
    Note
    In case that the RTOS Kernel starts thread execution with the function main the function osKernelInitialize stops thread switching. This allows to setup the system to a defined state before thread switching is resumed with osKernelStart.
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    int main (void) {
    +
    if (!osKernelRunning ()) { // if kernel is not running, initialize the kernel
    +
    if (osKernelInitialize () != osOK) { // check osStatus for other possible valid values
    +
    // exit with an error message
    +
    }
    +
    }
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    int32_t osKernelRunning (void )
    +
    +
    Note
    MUST REMAIN UNCHANGED: osKernelRunning shall be consistent in every CMSIS-RTOS.
    +
    Returns
    0 RTOS is not started, 1 RTOS is started.
    +

    Identifies if the RTOS kernel is started. For systems with the option to start the main function as a thread this allows to identify that the RTOS kernel is already running.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    int main (void) { // program execution starts here
    +
    if (osKernelRunning ()) {
    +
    : // main is already a thread function
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osKernelStart (void )
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osKernelStart shall be consistent in every CMSIS-RTOS.
    +

    Start the RTOS Kernel and begin thread switching.

    +
    Note
    When the CMSIS-RTOS starts thread execution with the function main this function resumes thread switching. The main thread will continue executing after osKernelStart.
    +

    Status and Error Codes
    +

    +
      +
    • osOK: the RTOS kernel has been successfully started.
    • +
    • osErrorISR: osKernelStart cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    int main (void) {
    +
    if (osKernelInitialize () != osOK) { // check osStatus for other possible valid values
    +
    // exit with an error message
    +
    }
    +
    +
    if (!osKernelRunning ()) { // is the kernel running ?
    +
    if (osKernelStart () != osOK) { // start the kernel
    +
    // kernel could not be started
    +
    }
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    uint32_t osKernelSysTick (void )
    +
    +
    Note
    MUST REMAIN UNCHANGED: osKernelSysTick shall be consistent in every CMSIS-RTOS.
    +
    Returns
    RTOS kernel system timer as 32-bit value
    +

    Get the value of the Kernel SysTick timer for time comparison. The value is a rolling 32-bit counter that is typically composed of the kernel system interrupt timer value and an counter that counts these interrupts.

    +

    This function allows the implementation of timeout checks. These are for example required when checking for a busy status in a device or peripheral initialization routine.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void SetupDevice (void) {
    +
    uint32_t tick;
    +
    +
    tick = osKernelSysTick(); // get start value of the Kernel system tick
    +
    Device.Setup (); // initialize a device or peripheral
    +
    do { // poll device busy status for 100 microseconds
    +
    if (!Device.Busy) break; // check if device is correctly initialized
    +
    } while ((osKernelSysTick() - tick) < osKernelTickMicroSec(100));
    +
    if (Device.Busy) {
    +
    ; // in case device still busy, signal error
    +
    }
    +
    // start interacting with device
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___kernel_ctrl.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___kernel_ctrl.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___kernel_ctrl.js @@ -0,0 +1,14 @@ +var group___c_m_s_i_s___r_t_o_s___kernel_ctrl = +[ + [ "osCMSIS", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga702196bacccbb978620c736b209387f1", null ], + [ "osCMSIS_KERNEL", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gab78dce646fabec479c5f34bc5175b7de", null ], + [ "osFeature_MainThread", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga22f7d235bc9f783933bd5a981fd79696", null ], + [ "osFeature_SysTick", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gae554ec16c23c5b7d65affade2a351891", null ], + [ "osKernelSystemId", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga47cf03658f01cdffca688e9096b58289", null ], + [ "osKernelSysTickFrequency", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga9e0954d52722673e2031233a2ab99960", null ], + [ "osKernelSysTickMicroSec", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gae12c190af42d7310d8006d64f4ed5a88", null ], + [ "osKernelInitialize", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga53d078a801022e202e8115c083ece68e", null ], + [ "osKernelRunning", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga3b571de44cd3094c643247a7397f86b5", null ], + [ "osKernelStart", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2", null ], + [ "osKernelSysTick", "group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gad0262e4688e95d1e9038afd9bcc16001", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mail.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mail.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mail.html @@ -0,0 +1,590 @@ + + + + + +CMSIS-RTOS: Mail Queue Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Mail Queue Management
    +
    +
    + +

    Control, send, receive, or wait for mail. +More...

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

    +Macros

    #define osFeature_MailQ   1
     Mail Queues: 1=available, 0=not available. More...
     
    #define osMailQDef(name, queue_sz, type)
     Create a Mail Queue Definition. More...
     
    #define osMailQ(name)   &os_mailQ_def_##name
     Access a Mail Queue Definition. More...
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions

    osMailQId osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id)
     Create and Initialize mail queue. More...
     
    void * osMailAlloc (osMailQId queue_id, uint32_t millisec)
     Allocate a memory block from a mail. More...
     
    void * osMailCAlloc (osMailQId queue_id, uint32_t millisec)
     Allocate a memory block from a mail and set memory block to zero. More...
     
    osStatus osMailPut (osMailQId queue_id, void *mail)
     Put a mail to a queue. More...
     
    osEvent osMailGet (osMailQId queue_id, uint32_t millisec)
     Get a mail from a queue. More...
     
    osStatus osMailFree (osMailQId queue_id, void *mail)
     Free a memory block from a mail. More...
     
    +

    Description

    +

    The Mail Queue Management function group allow to control, send, receive, or wait for mail. A mail is a memory block that is send to a thread or interrupt service routine.

    +
    +MailQueue.png +
    +CMSIS-RTOS Mail Queue
    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osFeature_MailQ   1
    +
    +

    A CMSIS-RTOS implementation may support mail queues.

    + + +
    +
    + +
    +
    + + + + + + + + +
    #define osMailQ( name)   &os_mailQ_def_##name
    +
    +

    Access to the mail queue definition for the function osMailCreate.

    +
    Parameters
    + + +
    namename of the queue
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osMailQ shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    #define osMailQDef( name,
     queue_sz,
     type 
    )
    +
    +

    Define the attributes of a mail queue that can by the function osMailCreate using osMailQ.

    +
    Parameters
    + + + + +
    namename of the queue
    queue_szmaximum number of messages in queue
    typedata type of a single message element
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osMailQDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void * osMailAlloc (osMailQId queue_id,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_idmail queue ID obtained with osMailCreate.
    [in]millisectimeout value or 0 in case of no time-out
    +
    +
    +
    Returns
    pointer to memory block that can be filled with mail or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osMailAlloc shall be consistent in every CMSIS-RTOS.
    +

    Allocate a memory block from the mail queue that is filled with the mail information.

    +

    The argument queue_id specifies a mail queue identifier that is obtain with osMailCreate.

    +

    The argument millisec specifies how long the system waits for a mail slot to become available. While the system waits the tread calling this function is put into the state WAITING. The millisec timeout can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until a mail slot can be allocated.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +
    Note
    The parameter millisec must be 0 for using this function in an ISR.
    +

    A NULL pointer is returned when no memory slot can be obtained or queue specifies an illegal parameter.

    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void * osMailCAlloc (osMailQId queue_id,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_idmail queue ID obtained with osMailCreate.
    [in]millisectimeout value or 0 in case of no time-out
    +
    +
    +
    Returns
    pointer to memory block that can be filled with mail or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osMailCAlloc shall be consistent in every CMSIS-RTOS.
    +

    Allocate a memory block from the mail queue that is filled with the mail information. The memory block returned is cleared.

    +

    The argument queue_id specifies a mail queue identifier that is obtain with osMailCreate.

    +

    The argument millisec specifies how long the system waits for a mail slot to become available. While the system waits the thread that is calling this function is put into the state WAITING. The millisec timeout can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until a mail slot can be allocated.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +
    Note
    The parameter millisec must be 0 for using this function in an ISR.
    +

    A NULL pointer is returned when no memory block can be obtained or queue specifies an illegal parameter.

    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osMailQId osMailCreate (const osMailQDef_tqueue_def,
    osThreadId thread_id 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_defreference to the mail queue definition obtain with osMailQ
    [in]thread_idthread ID (obtained by osThreadCreate or osThreadGetId) or NULL.
    +
    +
    +
    Returns
    mail queue ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osMailCreate shall be consistent in every CMSIS-RTOS.
    +

    Initialize and create a mail queue.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    osThreadId tid_thread1; // ID for thread 1
    +
    osThreadId tid_thread2; // ID for thread 2
    +
    +
    typedef struct { // Mail object structure
    +
    float voltage; // AD result of measured voltage
    +
    float current; // AD result of measured current
    +
    int counter; // A counter value
    +
    } T_MEAS;
    +
    +
    osMailQDef(mail, 16, T_MEAS); // Define mail queue
    +
    osMailQId mail;
    +
    +
    void send_thread (void const *argument); // forward reference
    +
    void recv_thread (void const *argument);
    +
    +
    osThreadDef(send_thread, osPriorityNormal, 1, 0); // thread definitions
    +
    osThreadDef(recv_thread, osPriorityNormal, 1, 2000);
    +
    +
    /*
    +
    Thread 1: Send thread
    +
    */
    +
    void send_thread (void const *argument) {
    +
    T_MEAS *mptr;
    +
    +
    mptr = osMailAlloc(mail, osWaitForever); // Allocate memory
    +
    mptr->voltage = 223.72; // Set the mail content
    +
    mptr->current = 17.54;
    +
    mptr->counter = 120786;
    +
    osMailPut(mail, mptr); // Send Mail
    +
    osDelay(100);
    +
    +
    mptr = osMailAlloc(mail, osWaitForever); // Allocate memory
    +
    mptr->voltage = 227.23; // Prepare 2nd mail
    +
    mptr->current = 12.41;
    +
    mptr->counter = 170823;
    +
    osMailPut(mail, mptr); // Send Mail
    +
    osThreadYield(); // Cooperative multitasking
    +
    // We are done here, exit this thread
    +
    }
    +
    +
    /*
    +
    Thread 2: Receive thread
    +
    */
    +
    void recv_thread (void const *argument) {
    +
    T_MEAS *rptr;
    +
    osEvent evt;
    +
    +
    for (;;) {
    +
    evt = osMailGet(mail, osWaitForever); // wait for mail
    +
    if (evt.status == osEventMail) {
    +
    rptr = evt.value.p;
    +
    printf ("\nVoltage: %.2f V\n", rptr->voltage);
    +
    printf ("Current: %.2f A\n", rptr->current);
    +
    printf ("Number of cycles: %d\n", rptr->counter);
    +
    osMailFree(mail, rptr); // free memory allocated for mail
    +
    }
    +
    }
    +
    }
    +
    +
    void StartApplication (void) {
    +
    mail = osMailCreate(osMailQ(mail), NULL); // create mail queue
    +
    +
    tid_thread1 = osThreadCreate(osThread(send_thread), NULL);
    +
    tid_thread2 = osThreadCreate(osThread(recv_thread), NULL);
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osStatus osMailFree (osMailQId queue_id,
    void * mail 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_idmail queue ID obtained with osMailCreate.
    [in]mailpointer to the memory block that was obtained with osMailGet.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osMailFree shall be consistent in every CMSIS-RTOS.
    +

    Free the memory block specified by mail and return it to the mail queue.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the mail block is released.
    • +
    • osErrorValue: mail block does not belong to the mail queue pool.
    • +
    • osErrorParameter: the value to the parameter queue_id is incorrect.
    • +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osEvent osMailGet (osMailQId queue_id,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_idmail queue ID obtained with osMailCreate.
    [in]millisectimeout value or 0 in case of no time-out
    +
    +
    +
    Returns
    event that contains mail information or error code.
    +
    Note
    MUST REMAIN UNCHANGED: osMailGet shall be consistent in every CMSIS-RTOS.
    +

    Suspend the execution of the current RUNNING thread until a mail arrives. When a mail is already in the queue, the function returns instantly with the mail information.

    +

    The argument millisec specifies how long the system waits for a mail to arrive. While the system waits the thread that is calling this function is put into the state WAITING. The millisec timeout can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until a mail arrives.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +
    Note
    The parameter millisec must be 0 for using this function in an ISR.
    +

    Status and Error Codes
    +

    +
      +
    • osOK: no mail is available in the queue and no timeout was specified
    • +
    • osEventTimeout: no mail has arrived during the given timeout period.
    • +
    • osEventMail: mail received, value.p contains the pointer to mail content.
    • +
    • osErrorParameter: a parameter is invalid or outside of a permitted range.
    • +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osStatus osMailPut (osMailQId queue_id,
    void * mail 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_idmail queue ID obtained with osMailCreate.
    [in]mailmemory block previously allocated with osMailAlloc or osMailCAlloc.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osMailPut shall be consistent in every CMSIS-RTOS.
    +

    Put the memory block specified with mail into the mail queue specified by queue.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the message is put into the queue.
    • +
    • osErrorValue: mail was previously not allocated as memory slot.
    • +
    • osErrorParameter: a parameter is invalid or outside of a permitted range.
    • +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mail.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mail.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mail.js @@ -0,0 +1,12 @@ +var group___c_m_s_i_s___r_t_o_s___mail = +[ + [ "osFeature_MailQ", "group___c_m_s_i_s___r_t_o_s___mail.html#gaceb2e0071ce160d153047f2eac1aca8e", null ], + [ "osMailQ", "group___c_m_s_i_s___r_t_o_s___mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2", null ], + [ "osMailQDef", "group___c_m_s_i_s___r_t_o_s___mail.html#ga58d712b16c0c6668059f509386d1e55b", null ], + [ "osMailAlloc", "group___c_m_s_i_s___r_t_o_s___mail.html#gadf5ce811bd6a56e617e902a1db6c2194", null ], + [ "osMailCAlloc", "group___c_m_s_i_s___r_t_o_s___mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd", null ], + [ "osMailCreate", "group___c_m_s_i_s___r_t_o_s___mail.html#gaa177e7fe5820dd70d8c9e46ded131174", null ], + [ "osMailFree", "group___c_m_s_i_s___r_t_o_s___mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc", null ], + [ "osMailGet", "group___c_m_s_i_s___r_t_o_s___mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd", null ], + [ "osMailPut", "group___c_m_s_i_s___r_t_o_s___mail.html#ga485ef6f81854ebda8ffbce4832181e02", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___message.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___message.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___message.html @@ -0,0 +1,466 @@ + + + + + +CMSIS-RTOS: Message Queue Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Message Queue Management
    +
    +
    + +

    Control, send, receive, or wait for messages. +More...

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

    +Macros

    #define osFeature_MessageQ   1
     Message Queues: 1=available, 0=not available. More...
     
    #define osMessageQDef(name, queue_sz, type)
     Create a Message Queue Definition. More...
     
    #define osMessageQ(name)   &os_messageQ_def_##name
     Access a Message Queue Definition. More...
     
    + + + + + + + + + + +

    +Functions

    osMessageQId osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id)
     Create and Initialize a Message Queue. More...
     
    osStatus osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec)
     Put a Message to a Queue. More...
     
    osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec)
     Get a Message or Wait for a Message from a Queue. More...
     
    +

    Description

    +

    Message Queue Management functions allow to control, send, receive, or wait for messages. A message can be an integer or pointer value that is send to a thread or interrupt service routine.

    +
    +MessageQueue.png +
    +CMSIS-RTOS Message Queue
    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osFeature_MessageQ   1
    +
    +

    A CMSIS-RTOS implementation may support message queues.

    + + +
    +
    + +
    +
    + + + + + + + + +
    #define osMessageQ( name)   &os_messageQ_def_##name
    +
    +

    Access to the message queue definition for the function osMessageCreate.

    +
    Parameters
    + + +
    namename of the queue
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osMessageQ shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    #define osMessageQDef( name,
     queue_sz,
     type 
    )
    +
    +

    Define the attributes of a message queue created by the function osMessageCreate using osMessageQ.

    +
    Parameters
    + + + + +
    namename of the queue.
    queue_szmaximum number of messages in the queue.
    typedata type of a single message element (for debugger).
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osMessageQDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osMessageQId osMessageCreate (const osMessageQDef_tqueue_def,
    osThreadId thread_id 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_defqueue definition referenced with osMessageQ.
    [in]thread_idthread ID (obtained by osThreadCreate or osThreadGetId) or NULL.
    +
    +
    +
    Returns
    message queue ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osMessageCreate shall be consistent in every CMSIS-RTOS.
    +

    Create and initialize a message queue.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    osThreadId tid_thread1; // ID for thread 1
    +
    osThreadId tid_thread2; // for thread 2
    +
    +
    typedef struct { // Message object structure
    +
    float voltage; // AD result of measured voltage
    +
    float current; // AD result of measured current
    +
    int counter; // A counter value
    +
    } T_MEAS;
    +
    +
    osPoolDef(mpool, 16, T_MEAS); // Define memory pool
    +
    osPoolId mpool;
    +
    osMessageQDef(MsgBox, 16, T_MEAS); // Define message queue
    +
    osMessageQId MsgBox;
    +
    +
    void send_thread (void const *argument); // forward reference
    +
    void recv_thread (void const *argument); // forward reference
    +
    // Thread definitions
    +
    osThreadDef(send_thread, osPriorityNormal, 1, 0);
    +
    osThreadDef(recv_thread, osPriorityNormal, 1, 2000);
    +
    +
    /*
    +
    Thread 1: Send thread
    +
    */
    +
    void send_thread (void const *argument) {
    +
    T_MEAS *mptr;
    +
    +
    mptr = osPoolAlloc(mpool); // Allocate memory for the message
    +
    mptr->voltage = 223.72; // Set the message content
    +
    mptr->current = 17.54;
    +
    mptr->counter = 120786;
    +
    osMessagePut(MsgBox, (uint32_t)mptr, osWaitForever); // Send Message
    +
    osDelay(100);
    +
    +
    mptr = osPoolAlloc(mpool); // Allocate memory for the message
    +
    mptr->voltage = 227.23; // Prepare a 2nd message
    +
    mptr->current = 12.41;
    +
    mptr->counter = 170823;
    +
    osMessagePut(MsgBox, (uint32_t)mptr, osWaitForever); // Send Message
    +
    osThreadYield(); // Cooperative multitasking
    +
    // We are done here, exit this thread
    +
    }
    +
    +
    /*
    +
    Thread 2: Receive thread
    +
    */
    +
    void recv_thread (void const *argument) {
    +
    T_MEAS *rptr;
    +
    osEvent evt;
    +
    +
    for (;;) {
    +
    evt = osMessageGet(MsgBox, osWaitForever); // wait for message
    +
    if (evt.status == osEventMessage) {
    +
    rptr = evt.value.p;
    +
    printf ("\nVoltage: %.2f V\n", rptr->voltage);
    +
    printf ("Current: %.2f A\n", rptr->current);
    +
    printf ("Number of cycles: %d\n", rptr->counter);
    +
    osPoolFree(mpool, rptr); // free memory allocated for message
    +
    }
    +
    }
    +
    }
    +
    +
    void StartApplication (void) {
    +
    mpool = osPoolCreate(osPool(mpool)); // create memory pool
    +
    MsgBox = osMessageCreate(osMessageQ(MsgBox), NULL); // create msg queue
    +
    +
    tid_thread1 = osThreadCreate(osThread(send_thread), NULL);
    +
    tid_thread2 = osThreadCreate(osThread(recv_thread), NULL);
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osEvent osMessageGet (osMessageQId queue_id,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]queue_idmessage queue ID obtained with osMessageCreate.
    [in]millisectimeout value or 0 in case of no time-out.
    +
    +
    +
    Returns
    event information that includes status code.
    +
    Note
    MUST REMAIN UNCHANGED: osMessageGet shall be consistent in every CMSIS-RTOS.
    +

    Suspend the execution of the current RUNNING thread until a message arrives. When a message is already in the queue, the function returns instantly with the message information.

    +

    The argument millisec specifies how long the system waits for a message to become available. While the system waits the thread that is calling this function is put into the state WAITING. The millisec timeout value can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until a message arrives.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +
    Note
    The parameter millisec must be 0 for using this function in an ISR.
    +

    Status and Error Codes
    +

    +
      +
    • osOK: no message is available in the queue and no timeout was specified.
    • +
    • osEventTimeout: no message has arrived during the given timeout period.
    • +
    • osEventMessage: message received, value.p contains the pointer to message.
    • +
    • osErrorParameter: a parameter is invalid or outside of a permitted range.
    • +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    osStatus osMessagePut (osMessageQId queue_id,
    uint32_t info,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + + +
    [in]queue_idmessage queue ID obtained with osMessageCreate.
    [in]infomessage information.
    [in]millisectimeout value or 0 in case of no time-out.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osMessagePut shall be consistent in every CMSIS-RTOS.
    +

    Put the message info in a message queue specified by queue_id.

    +

    When the message queue is full, the system retries for a specified time with millisec. While the system retries the thread that is calling this function is put into the state WAITING. The millisec timeout can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until a message queue slot becomes available.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +
    Note
    The parameter millisec must be 0 for using this function in an ISR.
    +

    Status and Error Codes
    +

    +
      +
    • osOK: the message is put into the queue.
    • +
    • osErrorResource: no memory in the queue was available.
    • +
    • osErrorTimeoutResource: no memory in the queue was available during the given time limit.
    • +
    • osErrorParameter: a parameter is invalid or outside of a permitted range.
    • +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___message.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___message.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___message.js @@ -0,0 +1,9 @@ +var group___c_m_s_i_s___r_t_o_s___message = +[ + [ "osFeature_MessageQ", "group___c_m_s_i_s___r_t_o_s___message.html#ga479a6561f859e3d4818e25708593d203", null ], + [ "osMessageQ", "group___c_m_s_i_s___r_t_o_s___message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97", null ], + [ "osMessageQDef", "group___c_m_s_i_s___r_t_o_s___message.html#gac9a6a6276c12609793e7701afcc82326", null ], + [ "osMessageCreate", "group___c_m_s_i_s___r_t_o_s___message.html#gaf3b9345cf426304d46565152bc26fb78", null ], + [ "osMessageGet", "group___c_m_s_i_s___r_t_o_s___message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae", null ], + [ "osMessagePut", "group___c_m_s_i_s___r_t_o_s___message.html#gac0dcf462fc92de8ffaba6cc004514a6d", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html @@ -0,0 +1,421 @@ + + + + + +CMSIS-RTOS: Mutex Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Mutex Management
    +
    +
    + +

    Synchronize thread execution with a Mutex. +More...

    + + + + + + + + +

    +Macros

    #define osMutexDef(name)   const osMutexDef_t os_mutex_def_##name = { 0 }
     Define a Mutex. More...
     
    #define osMutex(name)   &os_mutex_def_##name
     Access a Mutex definition. More...
     
    + + + + + + + + + + + + + +

    +Functions

    osMutexId osMutexCreate (const osMutexDef_t *mutex_def)
     Create and Initialize a Mutex object. More...
     
    osStatus osMutexWait (osMutexId mutex_id, uint32_t millisec)
     Wait until a Mutex becomes available. More...
     
    osStatus osMutexRelease (osMutexId mutex_id)
     Release a Mutex that was obtained by osMutexWait. More...
     
    osStatus osMutexDelete (osMutexId mutex_id)
     Delete a Mutex that was created by osMutexCreate. More...
     
    +

    Description

    +

    The Mutex Management function group is used to synchronize the execution of threads. This is for example used to protect access to a shared resource, for example a shared memory image.

    +
    Note
    Mutex Management functions cannot be called from interrupt service routines (ISR).
    +
    +Mutex.png +
    +CMSIS-RTOS Mutex
    +

    Macro Definition Documentation

    + +
    +
    + + + + + + + + +
    #define osMutex( name)   &os_mutex_def_##name
    +
    +

    Access to mutex object for the functions osMutexCreate.

    +
    Parameters
    + + +
    namename of the mutex object.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osMutex shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + + + + + +
    #define osMutexDef( name)   const osMutexDef_t os_mutex_def_##name = { 0 }
    +
    +

    Define a mutex object that is referenced by osMutex.

    +
    Parameters
    + + +
    namename of the mutex object.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osMutexDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    osMutexId osMutexCreate (const osMutexDef_tmutex_def)
    +
    +
    Parameters
    + + +
    [in]mutex_defmutex definition referenced with osMutex.
    +
    +
    +
    Returns
    mutex ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osMutexCreate shall be consistent in every CMSIS-RTOS.
    +

    Create and initialize a Mutex object.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    osMutexDef (MutexIsr); // Mutex name definition
    +
    +
    void CreateMutex (void) {
    +
    osMutexId mutex_id;
    +
    +
    mutex_id = osMutexCreate (osMutex (MutexIsr));
    +
    if (mutex_id != NULL) {
    +
    // Mutex object created
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osMutexDelete (osMutexId mutex_id)
    +
    +
    Parameters
    + + +
    [in]mutex_idmutex ID obtained by osMutexCreate.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osMutexDelete shall be consistent in every CMSIS-RTOS.
    +

    Delete a Mutex object. The function releases internal memory obtained for Mutex handling. After this call the mutex_id is no longer valid and cannot be used. The Mutex may be created again using the function osMutexCreate.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the mutex object has been deleted.
    • +
    • osErrorISR: osMutexDelete cannot be called from interrupt service routines.
    • +
    • osErrorResource: all tokens have already been released.
    • +
    • osErrorParameter: the parameter mutex_id is incorrect.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    osMutexDef (MutexIsr); // Mutex name definition
    +
    osMutexId mutex_id; // Mutex id populated by the function CreateMutex()
    +
    osMutexId CreateMutex (void); // function prototype that creates the Mutex
    +
    +
    void DeleteMutex (osMutexId mutex_id) {
    +
    osStatus status;
    +
    +
    if (mutex_id != NULL) {
    +
    status = osMutexDelete(mutex_id);
    +
    if (status != osOK) {
    +
    // handle failure code
    +
    }
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osMutexRelease (osMutexId mutex_id)
    +
    +
    Parameters
    + + +
    [in]mutex_idmutex ID obtained by osMutexCreate.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osMutexRelease shall be consistent in every CMSIS-RTOS.
    +

    Release a Mutex that was obtained with osMutexWait. Other threads that currently wait for the same mutex will be now put into the state READY.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the mutex has been correctly released.
    • +
    • osErrorResource: the mutex was not obtained before.
    • +
    • osErrorParameter: the parameter mutex_id is incorrect.
    • +
    • osErrorISR: osMutexRelease cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    osMutexDef (MutexIsr); // Mutex name definition
    +
    osMutexId mutex_id; // Mutex id populated by the function CreateMutex()
    +
    osMutexId CreateMutex (void); // function prototype that creates the Mutex
    +
    +
    void ReleaseMutex (osMutexId mutex_id) {
    +
    osStatus status;
    +
    +
    if (mutex_id != NULL) {
    +
    status = osMutexRelease(mutex_id);
    +
    if (status != osOK) {
    +
    // handle failure code
    +
    }
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osStatus osMutexWait (osMutexId mutex_id,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]mutex_idmutex ID obtained by osMutexCreate.
    [in]millisectimeout value or 0 in case of no time-out.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osMutexWait shall be consistent in every CMSIS-RTOS.
    +

    Wait until a Mutex becomes available. If no other thread has obtained the Mutex, the function instantly returns and blocks the mutex object.

    +

    The argument millisec specifies how long the system waits for a mutex. While the system waits the thread that is calling this function is put into the state WAITING. The millisec timeout can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until the mutex becomes available.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +

    Status and Error Codes
    +

    +
      +
    • osOK: the mutex has been obtain.
    • +
    • osErrorTimeoutResource: the mutex could not be obtained in the given time.
    • +
    • osErrorResource: the mutex could not be obtained when no timeout was specified.
    • +
    • osErrorParameter: the parameter mutex_id is incorrect.
    • +
    • osErrorISR: osMutexWait cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    osMutexDef (MutexIsr);
    +
    +
    void WaitMutex (void) {
    +
    osMutexId mutex_id;
    +
    osStatus status;
    +
    +
    mutex_id = osMutexCreate (osMutex (MutexIsr));
    +
    if (mutex_id != NULL) {
    +
    status = osMutexWait (mutex_id, 0);
    +
    if (status != osOK) {
    +
    // handle failure code
    +
    }
    +
    }
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mutex_mgmt.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mutex_mgmt.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___mutex_mgmt.js @@ -0,0 +1,9 @@ +var group___c_m_s_i_s___r_t_o_s___mutex_mgmt = +[ + [ "osMutex", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga1122a86faa64b4a0880c76cf68d0c934", null ], + [ "osMutexDef", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga9b522438489d7c402c95332b58bc94f3", null ], + [ "osMutexCreate", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5c9de56e717016e39e788064e9a291cc", null ], + [ "osMutexDelete", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#gac27e24135185d51d18f3dabc20910219", null ], + [ "osMutexRelease", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga006e4744d741e8e132c3d5bbc295afe1", null ], + [ "osMutexWait", "group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___pool_mgmt.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___pool_mgmt.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___pool_mgmt.html @@ -0,0 +1,464 @@ + + + + + +CMSIS-RTOS: Memory Pool Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Memory Pool Management
    +
    +
    + +

    Define and manage fixed-size memory pools. +More...

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

    +Macros

    #define osFeature_Pool   1
     Memory Pools: 1=available, 0=not available. More...
     
    #define osPoolDef(name, no, type)
     Define a Memory Pool. More...
     
    #define osPool(name)   &os_pool_def_##name
     Access a Memory Pool definition. More...
     
    + + + + + + + + + + + + + +

    +Functions

    osPoolId osPoolCreate (const osPoolDef_t *pool_def)
     Create and Initialize a memory pool. More...
     
    void * osPoolAlloc (osPoolId pool_id)
     Allocate a memory block from a memory pool. More...
     
    void * osPoolCAlloc (osPoolId pool_id)
     Allocate a memory block from a memory pool and set memory block to zero. More...
     
    osStatus osPoolFree (osPoolId pool_id, void *block)
     Return an allocated memory block back to a specific memory pool. More...
     
    +

    Description

    +

    The Memory Pool Management function group is used to define and manage fixed-sized memory pools.

    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osFeature_Pool   1
    +
    +

    A CMSIS-RTOS implementation may support fixed-size memory pools.

    + + +
    +
    + +
    +
    + + + + + + + + +
    #define osPool( name)   &os_pool_def_##name
    +
    +

    Access a memory pool for the functions osPoolCreate.

    +
    Parameters
    + + +
    namename of the memory pool
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osPool shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    #define osPoolDef( name,
     no,
     type 
    )
    +
    +

    Define a memory pool that is referenced by osPool.

    +
    Parameters
    + + + + +
    namename of the memory pool.
    nomaximum number of blocks (objects) in the memory pool.
    typedata type of a single block (object).
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osPoolDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    void * osPoolAlloc (osPoolId pool_id)
    +
    +
    Parameters
    + + +
    [in]pool_idmemory pool ID obtain referenced with osPoolCreate.
    +
    +
    +
    Returns
    address of the allocated memory block or NULL in case of no memory available.
    +
    Note
    MUST REMAIN UNCHANGED: osPoolAlloc shall be consistent in every CMSIS-RTOS.
    +

    Allocate a memory block from the memory pool.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    typedef struct {
    +
    uint8_t Buf[32];
    +
    uint8_t Idx;
    +
    } MEM_BLOCK;
    +
    +
    osPoolDef (MemPool, 8, MEM_BLOCK);
    +
    +
    void AlocMemoryPoolBlock (void) {
    +
    osPoolId MemPool_Id;
    +
    MEM_BLOCK *addr;
    +
    +
    MemPool_Id = osPoolCreate (osPool (MemPool));
    +
    if (MemPool_Id != NULL) {
    +
    :
    +
    // allocate a memory block
    +
    addr = (MEM_BLOCK *)osPoolAlloc (MemPool_Id);
    +
    +
    if (addr != NULL) {
    +
    // memory block was allocated
    +
    :
    +
    }
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    void * osPoolCAlloc (osPoolId pool_id)
    +
    +
    Parameters
    + + +
    [in]pool_idmemory pool ID obtain referenced with osPoolCreate.
    +
    +
    +
    Returns
    address of the allocated memory block or NULL in case of no memory available.
    +
    Note
    MUST REMAIN UNCHANGED: osPoolCAlloc shall be consistent in every CMSIS-RTOS.
    +

    Allocate a memory block from the memory pool. The block is initialized to zero.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    typedef struct {
    +
    uint8_t Buf[32];
    +
    uint8_t Idx;
    +
    } MEM_BLOCK;
    +
    +
    osPoolDef (MemPool, 8, MEM_BLOCK);
    +
    +
    void CAlocMemoryPoolBlock (void) {
    +
    osPoolId MemPool_Id;
    +
    MEM_BLOCK *addr;
    +
    +
    MemPool_Id = osPoolCreate (osPool (MemPool));
    +
    if (MemPool_Id != NULL) {
    +
    :
    +
    // allocate a memory block
    +
    addr = (MEM_BLOCK *)osPoolCAlloc (MemPool_Id);
    +
    +
    if (addr != NULL) {
    +
    // memory block was allocated
    +
    :
    +
    }
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osPoolId osPoolCreate (const osPoolDef_tpool_def)
    +
    +
    Parameters
    + + +
    [in]pool_defmemory pool definition referenced with osPool.
    +
    +
    +
    Returns
    memory pool ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osPoolCreate shall be consistent in every CMSIS-RTOS.
    +

    Create and initialize a memory pool.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    typedef struct {
    +
    uint8_t Buf[32];
    +
    uint8_t Idx;
    +
    } MEM_BLOCK;
    +
    +
    osPoolDef (MemPool, 8, MEM_BLOCK);
    +
    +
    void CreateMemoryPool (void) {
    +
    osPoolId MemPool_Id;
    +
    +
    MemPool_Id = osPoolCreate (osPool (MemPool));
    +
    if (MemPool_Id != NULL) {
    +
    // memory pool created
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osStatus osPoolFree (osPoolId pool_id,
    void * block 
    )
    +
    +
    Parameters
    + + + +
    [in]pool_idmemory pool ID obtain referenced with osPoolCreate.
    [in]blockaddress of the allocated memory block that is returned to the memory pool.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osPoolFree shall be consistent in every CMSIS-RTOS.
    +

    Return a memory block to a memory pool.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the memory block is released.
    • +
    • osErrorValue: block does not belong to the memory pool.
    • +
    • osErrorParameter: a parameter is invalid or outside of a permitted range.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    typedef struct {
    +
    uint8_t Buf[32];
    +
    uint8_t Idx;
    +
    } MEM_BLOCK;
    +
    +
    osPoolDef (MemPool, 8, MEM_BLOCK);
    +
    +
    void CAlocMemoryPoolBlock (void) {
    +
    osPoolId MemPool_Id;
    +
    MEM_BLOCK *addr;
    +
    osStatus status;
    +
    +
    MemPool_Id = osPoolCreate (osPool (MemPool));
    +
    if (MemPool_Id != NULL) {
    +
    addr = (MEM_BLOCK *)osPoolCAlloc (MemPool_Id);
    +
    if (addr != NULL) {
    +
    :
    +
    // return a memory block back to pool
    +
    status = osPoolFree (MemPool_Id, addr);
    +
    if (status==osOK) {
    +
    // handle status code
    +
    }
    +
    }
    +
    }
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___pool_mgmt.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___pool_mgmt.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___pool_mgmt.js @@ -0,0 +1,10 @@ +var group___c_m_s_i_s___r_t_o_s___pool_mgmt = +[ + [ "osFeature_Pool", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#gadd84b683001de327894851b428587caa", null ], + [ "osPool", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga5f0b204a82327533d420210125c90697", null ], + [ "osPoolDef", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga87b471d4fe2d5dbd0040708edd52771b", null ], + [ "osPoolAlloc", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543", null ], + [ "osPoolCAlloc", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a", null ], + [ "osPoolCreate", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a", null ], + [ "osPoolFree", "group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html @@ -0,0 +1,426 @@ + + + + + +CMSIS-RTOS: Semaphore Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Semaphore Management
    +
    +
    + +

    Control access to shared resources. +More...

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

    +Macros

    #define osFeature_Semaphore   30
     maximum count for osSemaphoreCreate function More...
     
    #define osSemaphoreDef(name)   const osSemaphoreDef_t os_semaphore_def_##name = { 0 }
     Define a Semaphore object. More...
     
    #define osSemaphore(name)   &os_semaphore_def_##name
     Access a Semaphore definition. More...
     
    + + + + + + + + + + + + + +

    +Functions

    osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count)
     Create and Initialize a Semaphore object used for managing resources. More...
     
    int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec)
     Wait until a Semaphore token becomes available. More...
     
    osStatus osSemaphoreRelease (osSemaphoreId semaphore_id)
     Release a Semaphore token. More...
     
    osStatus osSemaphoreDelete (osSemaphoreId semaphore_id)
     Delete a Semaphore that was created by osSemaphoreCreate. More...
     
    +

    Description

    +

    The Semaphore Management function group is used to manage and protect access to shared resources. For example, with a Semaphore the access to a group of identical peripherals can be managed. The number of available resources is specified as parameter of the osSemaphoreCreate function.

    +

    Each time a Semaphore token is obtained with osSemaphoreWait the semaphore count is decremented. When the semaphore count is 0, no Semaphore token can be obtained. Semaphores are released with osSemaphoreRelease; this function increments the semaphore count.

    +
    +Semaphore.png +
    +CMSIS-RTOS Semaphore
    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osFeature_Semaphore   30
    +
    +

    A CMSIS-RTOS implementation may support semaphores. The value osFeature_Semaphore indicates the maximum index count for a semaphore.

    + +
    +
    + +
    +
    + + + + + + + + +
    #define osSemaphore( name)   &os_semaphore_def_##name
    +
    +

    Access to semaphore object for the functions osSemaphoreCreate.

    +
    Parameters
    + + +
    namename of the semaphore object.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osSemaphore shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + + + + + +
    #define osSemaphoreDef( name)   const osSemaphoreDef_t os_semaphore_def_##name = { 0 }
    +
    +

    Define a semaphore object that is referenced by osSemaphore.

    +
    Parameters
    + + +
    namename of the semaphore object.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osSemaphoreDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_tsemaphore_def,
    int32_t count 
    )
    +
    +
    Parameters
    + + + +
    [in]semaphore_defsemaphore definition referenced with osSemaphore.
    [in]countnumber of available resources.
    +
    +
    +
    Returns
    semaphore ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osSemaphoreCreate shall be consistent in every CMSIS-RTOS.
    +

    Create and initialize a Semaphore object that is used to manage access to shared resources. The parameter count specifies the number of available resources. The count value 1 creates a binary semaphore.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    osThreadId tid_thread1; // ID for thread 1
    +
    osThreadId tid_thread2; // ID for thread 2
    +
    +
    osSemaphoreId semaphore; // Semaphore ID
    +
    osSemaphoreDef(semaphore); // Semaphore definition
    +
    +
    /*
    +
    Thread 1 - High Priority - Active every 3ms
    +
    */
    +
    void thread1 (void const *argument) {
    +
    int32_t value;
    +
    +
    while (1) {
    +
    osDelay(3); // Pass control to other tasks for 3ms
    +
    val = osSemaphoreWait (semaphore, 1); // Wait 1ms for the free semaphore
    +
    if (val > 0) {
    +
    // If there was no time-out the semaphore was acquired
    +
    : // OK, the interface is free now, use it.
    +
    osSemaphoreRelease (semaphore); // Return a token back to a semaphore
    +
    }
    +
    }
    +
    }
    +
    +
    /*
    +
    Thread 2 - Normal Priority - looks for a free semaphore and uses
    +
    the resource whenever it is available
    +
    */
    +
    void thread2 (void const *argument) {
    +
    while (1) {
    +
    osSemaphoreWait (semaphore, osWaitForever); // Wait indefinitely for a free semaphore
    +
    // OK, the interface is free now, use it.
    +
    :
    +
    osSemaphoreRelease (semaphore); // Return a token back to a semaphore.
    +
    }
    +
    }
    +
    +
    /* Thread definitions */
    +
    osThreadDef(thread1, osPriorityHigh, 1, 0);
    +
    osThreadDef(thread2, osPriorityNormal, 1, 0);
    +
    +
    void StartApplication (void) {
    +
    semaphore = osSemaphoreCreate(osSemaphore(semaphore), 1);
    +
    +
    tid_thread1 = osThreadCreate(osThread(thread1), NULL);
    +
    tid_thread2 = osThreadCreate(osThread(thread2), NULL);
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osSemaphoreDelete (osSemaphoreId semaphore_id)
    +
    +
    Parameters
    + + +
    [in]semaphore_idsemaphore object referenced with osSemaphoreCreate.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osSemaphoreDelete shall be consistent in every CMSIS-RTOS.
    +

    Delete a Semaphore object. The function releases internal memory obtained for Semaphore handling. After this call the semaphore_id is no longer valid and cannot be used. The Semaphore may be created again using the function osSemaphoreCreate.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the semaphore object has been deleted.
    • +
    • osErrorISR: osSemaphoreDelete cannot be called from interrupt service routines.
    • +
    • osErrorResource: the semaphore object could not be deleted.
    • +
    • osErrorParameter: the parameter semaphore_id is incorrect.
    • +
    + +
    +
    + +
    +
    + + + + + + + + +
    osStatus osSemaphoreRelease (osSemaphoreId semaphore_id)
    +
    +
    Parameters
    + + +
    [in]semaphore_idsemaphore object referenced with osSemaphoreCreate.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osSemaphoreRelease shall be consistent in every CMSIS-RTOS.
    +

    Release a Semaphore token. This increments the count of available semaphore tokens.

    +
    Note
    osSemaphoreRelease can be called also from interrupt service routines.
    +

    Status and Error Codes
    +

    +
      +
    • osOK: the semaphore has been released.
    • +
    • osErrorResource: all tokens have already been released.
    • +
    • osErrorParameter: the parameter semaphore_id is incorrect.
    • +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int32_t osSemaphoreWait (osSemaphoreId semaphore_id,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]semaphore_idsemaphore object referenced with osSemaphoreCreate.
    [in]millisectimeout value or 0 in case of no time-out.
    +
    +
    +
    Returns
    number of available tokens, or -1 in case of incorrect parameters.
    +
    Note
    MUST REMAIN UNCHANGED: osSemaphoreWait shall be consistent in every CMSIS-RTOS.
    +

    Wait until a Semaphore token becomes available. When no Semaphore token is available, the function waits for the time specified with the parameter millisec.

    +

    The argument millisec specifies how long the system waits for a Semaphore token to become available. While the system waits the thread that is calling this function is put into the state WAITING. The millisec timeout can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until the Semaphore token becomes available.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +

    The return value indicates the number of available tokens (the semaphore count value). If 0 is returned, then no semaphore was available.

    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.js @@ -0,0 +1,10 @@ +var group___c_m_s_i_s___r_t_o_s___semaphore_mgmt = +[ + [ "osFeature_Semaphore", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a", null ], + [ "osSemaphore", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga03761ee8d2c3cd4544e18364ab301dac", null ], + [ "osSemaphoreDef", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga9e66fe361749071e5ab87826c43c2f1b", null ], + [ "osSemaphoreCreate", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga97381e8e55cd47cec390bf57c96d6edb", null ], + [ "osSemaphoreDelete", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gabae2801ac2c096f6e8c69a264908f595", null ], + [ "osSemaphoreRelease", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gab108914997c49e14d8ff1ae0d1988ca0", null ], + [ "osSemaphoreWait", "group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gacc15b0fc8ce1167fe43da33042e62098", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___signal_mgmt.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___signal_mgmt.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___signal_mgmt.html @@ -0,0 +1,350 @@ + + + + + +CMSIS-RTOS: Signal Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Signal Management
    +
    +
    + +

    Control or wait for signal flags. +More...

    + + + + + +

    +Macros

    #define osFeature_Signals   8
     maximum number of Signal Flags available per thread More...
     
    + + + + + + + + + + +

    +Functions

    int32_t osSignalSet (osThreadId thread_id, int32_t signals)
     Set the specified Signal Flags of an active thread. More...
     
    int32_t osSignalClear (osThreadId thread_id, int32_t signals)
     Clear the specified Signal Flags of an active thread. More...
     
    osEvent osSignalWait (int32_t signals, uint32_t millisec)
     Wait for one or more Signal Flags to become signaled for the current RUNNING thread. More...
     
    +

    Description

    +

    The Signal Management function group allows to control or wait signal flags. Each thread has assigned signal flags.

    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osFeature_Signals   8
    +
    +

    The CMSIS-RTOS API may support a variable number of signal flags. This define specifies the number of signal flags available per thread. The maximum value is 31 signal flags per thread.

    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int32_t osSignalClear (osThreadId thread_id,
    int32_t signals 
    )
    +
    +
    Parameters
    + + + +
    [in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
    [in]signalsspecifies the signal flags of the thread that shall be cleared.
    +
    +
    +
    Returns
    previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters.
    +
    Note
    MUST REMAIN UNCHANGED: osSignalClear shall be consistent in every CMSIS-RTOS.
    +

    Clear the signal flags of an active thread. This function may be used also within interrupt service routines.

    +

    Example

    +
    void Thread_2 (void const *arg);
    +
    +
    osThreadDef (Thread_2, osPriorityHigh, 1, 0);
    +
    +
    static void EX_Signal_1 (void) {
    +
    int32_t signals;
    +
    osThreadId thread_id;
    +
    +
    thread_id = osThreadCreate (osThread(Thread_2), NULL);
    +
    if (thread_id == NULL) {
    +
    // Failed to create a thread.
    +
    }
    +
    else {
    +
    f :
    +
    signals = osSignalClear (thread_id, 0x01);
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int32_t osSignalSet (osThreadId thread_id,
    int32_t signals 
    )
    +
    +
    Parameters
    + + + +
    [in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
    [in]signalsspecifies the signal flags of the thread that should be set.
    +
    +
    +
    Returns
    previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters.
    +
    Note
    MUST REMAIN UNCHANGED: osSignalSet shall be consistent in every CMSIS-RTOS.
    +

    Set the signal flags of an active thread. This function may be used also within interrupt service routines.

    +

    Example

    +
    void Thread_2 (void const *arg);
    +
    +
    osThreadDef (Thread_2, osPriorityHigh, 1, 0);
    +
    +
    static void EX_Signal_1 (void) {
    +
    int32_t signals;
    +
    uint32_t exec;
    +
    osThreadId thread_id;
    +
    +
    thread_id = osThreadCreate (osThread(Thread_2), NULL);
    +
    if (thread_id == NULL) {
    +
    // Failed to create a thread.
    +
    }
    +
    else {
    +
    signals = osSignalSet (thread_id, 0x00000005); // Send signals to the created thread
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osEvent osSignalWait (int32_t signals,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]signalswait until all specified signal flags set or 0 for any single signal flag.
    [in]millisectimeout value or 0 in case of no time-out.
    +
    +
    +
    Returns
    event flag information or error code.
    +
    Note
    MUST REMAIN UNCHANGED: osSignalWait shall be consistent in every CMSIS-RTOS.
    +

    Suspend the execution of the current RUNNING thread until all specified signal flags with the parameter signals are set. When this signal flags are already set, the function returns instantly. Otherwise the thread is put into the state WAITING. Signal flags that are reported as event are automatically cleared.

    +

    The argument millisec specifies how long the system waits for the specified signal flags. While the system waits the tread calling this function is put into the state WAITING. The timeout value can have the following values:

    +
      +
    • when millisec is 0, the function returns instantly.
    • +
    • when millisec is set to osWaitForever the function will wait for an infinite time until a specified signal is set.
    • +
    • all other values specify a time in millisecond for a timeout.
    • +
    +

    Status and Error Codes
    +

    +
      +
    • osOK: no signal received when the timeout value millisec was 0.
    • +
    • osEventTimeout: signal not occurred within timeout
    • +
    • osEventSignal: signal occurred, value.signals contains the signal flags; these signal flags are cleared.
    • +
    • osErrorValue: the value signals is outside of the permitted range.
    • +
    • osErrorISR: osSignalWait cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    void Thread_2 (void const *arg);
    +
    +
    osThreadDef (Thread_2, osPriorityHigh, 1, 0);
    +
    +
    static void EX_Signal_1 (void) {
    +
    osThreadId thread_id;
    +
    osEvent evt;
    +
    +
    thread_id = osThreadCreate (osThread(Thread_2), NULL);
    +
    if (thread_id == NULL) {
    +
    // Failed to create a thread.
    +
    }
    +
    else {
    +
    :
    +
    // wait for a signal
    +
    evt = osSignalWait (0x01, 100);
    +
    if (evt.status == osEventSignal) {
    +
    // handle event status
    +
    }
    +
    }
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___signal_mgmt.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___signal_mgmt.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___signal_mgmt.js @@ -0,0 +1,7 @@ +var group___c_m_s_i_s___r_t_o_s___signal_mgmt = +[ + [ "osFeature_Signals", "group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga01edde265710d883b6e237d34a6ef4a6", null ], + [ "osSignalClear", "group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6", null ], + [ "osSignalSet", "group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga3de2730654589d6c3559c4b9e2825553", null ], + [ "osSignalWait", "group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga38860acda96df47da6923348d96fc4c9", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___status.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___status.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___status.html @@ -0,0 +1,233 @@ + + + + + +CMSIS-RTOS: Status and Error Codes + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Status and Error Codes
    +
    +
    + +

    Status and Error Codes returned by CMSIS-RTOS API functions. +More...

    + + + + +

    +Enumerations

    enum  osStatus {
    +  osOK = 0, +
    +  osEventSignal = 0x08, +
    +  osEventMessage = 0x10, +
    +  osEventMail = 0x20, +
    +  osEventTimeout = 0x40, +
    +  osErrorParameter = 0x80, +
    +  osErrorResource = 0x81, +
    +  osErrorTimeoutResource = 0xC1, +
    +  osErrorISR = 0x82, +
    +  osErrorISRRecursive = 0x83, +
    +  osErrorPriority = 0x84, +
    +  osErrorNoMemory = 0x85, +
    +  osErrorValue = 0x86, +
    +  osErrorOS = 0xFF, +
    +  os_status_reserved = 0x7FFFFFFF +
    + }
     
    +

    Description

    +

    The Status and Error Codes section lists all the return values that the CMSIS-RTOS functions will return.

    +

    Enumeration Type Documentation

    + +
    +
    + + + + +
    enum osStatus
    +
    +
    Note
    MUST REMAIN UNCHANGED: osStatus shall be consistent in every CMSIS-RTOS.
    +

    The osStatus enumeration defines the event status and error codes that are returned by the CMSIS-RTOS functions.

    + + + + + + + + + + + + + + + + +
    Enumerator
    osOK  +

    function completed; no error or event occurred.

    +
    osEventSignal  +

    function completed; signal event occurred.

    +
    osEventMessage  +

    function completed; message event occurred.

    +
    osEventMail  +

    function completed; mail event occurred.

    +
    osEventTimeout  +

    function completed; timeout occurred.

    +
    osErrorParameter  +

    parameter error: a mandatory parameter was missing or specified an incorrect object.

    +
    osErrorResource  +

    resource not available: a specified resource was not available.

    +
    osErrorTimeoutResource  +

    resource not available within given time: a specified resource was not available within the timeout period.

    +
    osErrorISR  +

    not allowed in ISR context: the function cannot be called from interrupt service routines.

    +
    osErrorISRRecursive  +

    function called multiple times from ISR with same object.

    +
    osErrorPriority  +

    system cannot determine priority or thread has illegal priority.

    +
    osErrorNoMemory  +

    system is out of memory: it was impossible to allocate or reserve memory for the operation.

    +
    osErrorValue  +

    value of a parameter is out of range.

    +
    osErrorOS  +

    unspecified RTOS error: run-time error but no other error message fits.

    +
    os_status_reserved  +

    prevent from enum down-size compiler optimization.

    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___status.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___status.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___status.js @@ -0,0 +1,20 @@ +var group___c_m_s_i_s___r_t_o_s___status = +[ + [ "osStatus", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99e", [ + [ "osOK", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f", null ], + [ "osEventSignal", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518", null ], + [ "osEventMessage", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342", null ], + [ "osEventMail", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926", null ], + [ "osEventTimeout", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177", null ], + [ "osErrorParameter", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109", null ], + [ "osErrorResource", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d", null ], + [ "osErrorTimeoutResource", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467", null ], + [ "osErrorISR", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f", null ], + [ "osErrorISRRecursive", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65", null ], + [ "osErrorPriority", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f", null ], + [ "osErrorNoMemory", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81", null ], + [ "osErrorValue", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee", null ], + [ "osErrorOS", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc", null ], + [ "os_status_reserved", "group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1", null ] + ] ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___thread_mgmt.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___thread_mgmt.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___thread_mgmt.html @@ -0,0 +1,607 @@ + + + + + +CMSIS-RTOS: Thread Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Thread Management
    +
    +
    + +

    Define, create, and control thread functions. +More...

    + + + + + + + + +

    +Macros

    #define osThreadDef(name, priority, instances, stacksz)
     Create a Thread Definition with function, priority, and stack requirements. More...
     
    #define osThread(name)   &os_thread_def_##name
     Access a Thread definition. More...
     
    + + + +

    +Enumerations

    enum  osPriority {
    +  osPriorityIdle = -3, +
    +  osPriorityLow = -2, +
    +  osPriorityBelowNormal = -1, +
    +  osPriorityNormal = 0, +
    +  osPriorityAboveNormal = +1, +
    +  osPriorityHigh = +2, +
    +  osPriorityRealtime = +3, +
    +  osPriorityError = 0x84 +
    + }
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions

    osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument)
     Create a thread and add it to Active Threads and set it to state READY. More...
     
    osThreadId osThreadGetId (void)
     Return the thread ID of the current running thread. More...
     
    osStatus osThreadTerminate (osThreadId thread_id)
     Terminate execution of a thread and remove it from Active Threads. More...
     
    osStatus osThreadSetPriority (osThreadId thread_id, osPriority priority)
     Change priority of an active thread. More...
     
    osPriority osThreadGetPriority (osThreadId thread_id)
     Get current priority of an active thread. More...
     
    osStatus osThreadYield (void)
     Pass control to next thread that is in state READY. More...
     
    +

    Description

    +

    The Thread Management function group allow defining, creating, and controlling thread functions in the system. The function main is a special thread function that is started at system initialization and has the initial priority osPriorityNormal.

    +

    Threads can be in the following states:

    +
      +
    • RUNNING: The thread that is currently running is in the RUNNING state. Only one thread at a time can be in this state.
    • +
    • READY: Threads which are ready to run are in the READY state. Once the RUNNING thread has terminated or is WAITING the next READY thread with the highest priority becomes the RUNNING thread.
    • +
    • WAITING: Threads that are waiting for an event to occur are in the WAITING state.
    • +
    • INACTIVE: Threads that are not created or terminated are in the INACTIVE state. These threads typically consume no system resources.
    • +
    +
    +ThreadStatus.png +
    +Thread State and State Transitions
    +

    The CMSIS-RTOS assumes that threads are scheduled as shown in the figure Thread State and State Transitions. The thread states change as described below:

    +
      +
    • A thread is created using the function osThreadCreate. This puts the thread into the READY or RUNNING state (depending on the thread priority).
    • +
    • CMSIS-RTOS is pre-emptive. The active thread with the highest priority becomes the RUNNING thread provided it does not wait for any event. The initial priority of a thread is defined with the osThreadDef but may be changed during execution using the function osThreadSetPriority.
    • +
    • The RUNNING thread transfers into the WAITING state when it is waiting for an event.
    • +
    • Active threads can be terminated any time using the function osThreadTerminate. Threads can terminate also by just returning from the thread function. Threads that are terminated are in the INACTIVE state and typically do not consume any dynamic memory resources.
    • +
    +

    Macro Definition Documentation

    + +
    +
    + + + + + + + + +
    #define osThread( name)   &os_thread_def_##name
    +
    +

    Access to the thread definition for the function osThreadCreate.

    +
    Parameters
    + + +
    namename of the thread definition object.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osThread shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #define osThreadDef( name,
     priority,
     instances,
     stacksz 
    )
    +
    +

    Define the attributes of a thread functions that can be created by the function osThreadCreate using osThread.

    +
    Parameters
    + + + + + +
    namename of the thread function.
    priorityinitial priority of the thread function.
    instancesnumber of possible thread instances.
    stackszstack size (in bytes) requirements for the thread function.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameters to osThreadDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Enumeration Type Documentation

    + +
    +
    + + + + +
    enum osPriority
    +
    +
    Note
    MUST REMAIN UNCHANGED: osPriority shall be consistent in every CMSIS-RTOS.
    +

    The osPriority value specifies the priority for a thread. The default thread priority should be osPriorityNormal. If a Thread is active that has a higher priority than the currently executing thread, then a thread switch occurs immediately to execute the new task.

    +

    To prevent from a priority inversion, a CMSIS-RTOS complained OS may optionally implement a priority inheritance method. A priority inversion occurs when a high priority thread is waiting for a resource or event that is controlled by a thread with a lower priority.

    + + + + + + + + + +
    Enumerator
    osPriorityIdle  +

    priority: idle (lowest)

    +
    osPriorityLow  +

    priority: low

    +
    osPriorityBelowNormal  +

    priority: below normal

    +
    osPriorityNormal  +

    priority: normal (default)

    +
    osPriorityAboveNormal  +

    priority: above normal

    +
    osPriorityHigh  +

    priority: high

    +
    osPriorityRealtime  +

    priority: realtime (highest)

    +
    osPriorityError  +

    system cannot determine priority or thread has illegal priority

    +
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osThreadId osThreadCreate (const osThreadDef_tthread_def,
    void * argument 
    )
    +
    +
    Parameters
    + + + +
    [in]thread_defthread definition referenced with osThread.
    [in]argumentpointer that is passed to the thread function as start argument.
    +
    +
    +
    Returns
    thread ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osThreadCreate shall be consistent in every CMSIS-RTOS.
    +

    Start a thread function by adding it to the Active Threads list and set it to state READY. The thread function receives the argument pointer as function argument when the function is started. When the priority of the created thread function is higher than the current RUNNING thread, the created thread function starts instantly and becomes the new RUNNING thread.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Thread_1 (void const *arg); // function prototype for Thread_1
    +
    osThreadDef (Thread_1, osPriorityNormal, 1, 0); // define Thread_1
    +
    +
    void ThreadCreate_example (void) {
    + +
    +
    id = osThreadCreate (osThread (Thread_1), NULL); // create the thread
    +
    if (id == NULL) { // handle thread creation
    +
    // Failed to create a thread
    +
    }
    +
    :
    +
    osThreadTerminate (id); // stop the thread
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osThreadId osThreadGetId (void )
    +
    +
    Returns
    thread ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osThreadGetId shall be consistent in every CMSIS-RTOS.
    +

    Get the thread ID of the current running thread.

    +

    Example

    +
    void ThreadGetId_example (void) {
    +
    osThreadId id; // id for the currently running thread
    +
    +
    id = osThreadGetId ();
    +
    if (id == NULL) {
    +
    // Failed to get the id; not in a thread
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osPriority osThreadGetPriority (osThreadId thread_id)
    +
    +
    Parameters
    + + +
    [in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
    +
    +
    +
    Returns
    current priority value of the thread function.
    +
    Note
    MUST REMAIN UNCHANGED: osThreadGetPriority shall be consistent in every CMSIS-RTOS.
    +

    Get the priority of an active thread. In case of a failure the value osPriorityError is returned.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Thread_1 (void const *arg) { // Thread function
    +
    osThreadId id; // id for the currently running thread
    +
    osPriority priority; // thread priority
    +
    +
    id = osThreadGetId (); // Obtain ID of current running thread
    +
    +
    if (id != NULL) {
    +
    priority = osThreadGetPriority (id);
    +
    }
    +
    else {
    +
    // Failed to get the id
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osStatus osThreadSetPriority (osThreadId thread_id,
    osPriority priority 
    )
    +
    +
    Parameters
    + + + +
    [in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
    [in]prioritynew priority value for the thread function.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osThreadSetPriority shall be consistent in every CMSIS-RTOS.
    +

    Change the priority of an active thread.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the priority of the specified thread has been successfully changed.
    • +
    • osErrorParameter: thread_id is incorrect.
    • +
    • osErrorValue: incorrect priority value.
    • +
    • osErrorResource: thread_id refers to a thread that is not an active thread.
    • +
    • osErrorISR: osThreadSetPriority cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Thread_1 (void const *arg) { // Thread function
    +
    osThreadId id; // id for the currently running thread
    +
    osPriority pr; // thread priority
    +
    osStatus status; // status of the executed function
    +
    +
    :
    +
    id = osThreadGetId (); // Obtain ID of current running thread
    +
    +
    if (id != NULL) {
    + +
    if (status == osOK) {
    +
    // Thread priority changed to BelowNormal
    +
    }
    +
    else {
    +
    // Failed to set the priority
    +
    }
    +
    }
    +
    else {
    +
    // Failed to get the id
    +
    }
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osThreadTerminate (osThreadId thread_id)
    +
    +
    Parameters
    + + +
    [in]thread_idthread ID obtained by osThreadCreate or osThreadGetId.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osThreadTerminate shall be consistent in every CMSIS-RTOS.
    +

    Remove the thread function from the active thread list. If the thread is currently RUNNING the execution will stop.

    +
    Note
    In case that osThreadTerminate terminates the currently running task, the function never returns and other threads that are in the READY state are started.
    +

    Status and Error Codes
    +

    +
      +
    • osOK: the specified thread has been successfully terminated.
    • +
    • osErrorParameter: thread_id is incorrect.
    • +
    • osErrorResource: thread_id refers to a thread that is not an active thread.
    • +
    • osErrorISR: osThreadTerminate cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Thread_1 (void const *arg); // function prototype for Thread_1
    +
    osThreadDef (Thread_1, osPriorityNormal, 1, 0); // define Thread_1
    +
    +
    void ThreadTerminate_example (void) {
    +
    osStatus status;
    + +
    +
    id = osThreadCreate (osThread (Thread_1), NULL); // create the thread
    +
    :
    +
    status = osThreadTerminate (id); // stop the thread
    +
    if (status == osOK) {
    +
    // Thread was terminated successfully
    +
    }
    +
    else {
    +
    // Failed to terminate a thread
    +
    }
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osThreadYield (void )
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osThreadYield shall be consistent in every CMSIS-RTOS.
    +

    Pass control to the next thread that is in state READY. If there is no other thread in the state READY, the current thread continues execution and no thread switching occurs.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the function has been correctly executed.
    • +
    • osErrorISR: osThreadYield cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Thread_1 (void const *arg) { // Thread function
    +
    osStatus status; // status of the executed function
    +
    :
    +
    while (1) {
    +
    status = osThreadYield(); //
    +
    if (status != osOK) {
    +
    // thread switch not occurred, not in a thread function
    +
    }
    +
    }
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___thread_mgmt.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___thread_mgmt.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___thread_mgmt.js @@ -0,0 +1,21 @@ +var group___c_m_s_i_s___r_t_o_s___thread_mgmt = +[ + [ "osThread", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453", null ], + [ "osThreadDef", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaee93d929beb350f16e5cc7fa602e229f", null ], + [ "osPriority", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a", [ + [ "osPriorityIdle", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81", null ], + [ "osPriorityLow", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4", null ], + [ "osPriorityBelowNormal", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6", null ], + [ "osPriorityNormal", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1", null ], + [ "osPriorityAboveNormal", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b", null ], + [ "osPriorityHigh", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2", null ], + [ "osPriorityRealtime", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af", null ], + [ "osPriorityError", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4", null ] + ] ], + [ "osThreadCreate", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gac59b5713cb083702dce759c73fd90dff", null ], + [ "osThreadGetId", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7", null ], + [ "osThreadGetPriority", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga4299d838978bc2aae5e4350754e6a4e9", null ], + [ "osThreadSetPriority", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b", null ], + [ "osThreadTerminate", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaea135bb90eb853eff39e0800b91bbeab", null ], + [ "osThreadYield", "group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaf13a667493c5d629a90c13e113b99233", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___timer_mgmt.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___timer_mgmt.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___timer_mgmt.html @@ -0,0 +1,514 @@ + + + + + +CMSIS-RTOS: Timer Management + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Timer Management
    +
    +
    + +

    Create and control timer and timer callback functions. +More...

    + + + + + + + + +

    +Macros

    #define osTimerDef(name, function)
     Define a Timer object. More...
     
    #define osTimer(name)   &os_timer_def_##name
     Access a Timer definition. More...
     
    + + + +

    +Enumerations

    enum  os_timer_type {
    +  osTimerOnce = 0, +
    +  osTimerPeriodic = 1 +
    + }
     
    + + + + + + + + + + + + + +

    +Functions

    osTimerId osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument)
     Create a timer. More...
     
    osStatus osTimerStart (osTimerId timer_id, uint32_t millisec)
     Start or restart a timer. More...
     
    osStatus osTimerStop (osTimerId timer_id)
     Stop the timer. More...
     
    osStatus osTimerDelete (osTimerId timer_id)
     Delete a timer that was created by osTimerCreate. More...
     
    +

    Description

    +

    The Timer Management function group allow creating and controlling of timers and callback functions in the system. A callback function is called when a time period expires whereby both one-shot and periodic timers are possible. A timer can be started, restarted, or stopped.

    +

    Timers are handled in the thread osTimerThread. Callback functions run under control of this thread and may use other CMSIS-RTOS API calls.

    +

    The figure below shows the behavior of a periodic timer. For one-shot timers, the timer stops after execution of the callback function.

    +
    +Timer.png +
    +Behavior of a Periodic Timer
    +

    Macro Definition Documentation

    + +
    +
    + + + + + + + + +
    #define osTimer( name)   &os_timer_def_##name
    +
    +

    Access to the timer definition for the function osTimerCreate.

    +
    Parameters
    + + +
    namename of the timer object.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osTimer shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define osTimerDef( name,
     function 
    )
    +
    +

    Define the attributes of a timer.

    +
    Parameters
    + + + +
    namename of the timer object.
    functionname of the timer call back function.
    +
    +
    +
    Note
    CAN BE CHANGED: The parameter to osTimerDef shall be consistent but the macro body is implementation specific in every CMSIS-RTOS.
    + +
    +
    +

    Enumeration Type Documentation

    + +
    +
    + + + + +
    enum os_timer_type
    +
    +
    Note
    MUST REMAIN UNCHANGED: os_timer_type shall be consistent in every CMSIS-RTOS. The os_timer_type specifies the a repeating (periodic) or one-shot timer for the function osTimerCreate.
    + + + +
    Enumerator
    osTimerOnce  +

    one-shot timer

    +
    osTimerPeriodic  +

    repeating timer

    +
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    osTimerId osTimerCreate (const osTimerDef_ttimer_def,
    os_timer_type type,
    void * argument 
    )
    +
    +
    Parameters
    + + + + +
    [in]timer_deftimer object referenced with osTimer.
    [in]typeosTimerOnce for one-shot or osTimerPeriodic for periodic behavior.
    [in]argumentargument to the timer call back function.
    +
    +
    +
    Returns
    timer ID for reference by other functions or NULL in case of error.
    +
    Note
    MUST REMAIN UNCHANGED: osTimerCreate shall be consistent in every CMSIS-RTOS.
    +

    Create a one-shot or periodic timer and associate it with a callback function argument. The timer is in stopped until it is started with osTimerStart.

    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Timer1_Callback (void const *arg); // prototypes for timer callback function
    +
    void Timer2_Callback (void const *arg);
    +
    +
    osTimerDef (Timer1, Timer1_Callback); // define timers
    +
    osTimerDef (Timer2, Timer2_Callback);
    +
    +
    uint32_t exec1; // argument for the timer call back function
    +
    uint32_t exec2; // argument for the timer call back function
    +
    +
    void TimerCreate_example (void) {
    +
    osTimerId id1; // timer id
    +
    osTimerId id2; // timer id
    +
    +
    // Create one-shoot timer
    +
    exec1 = 1;
    +
    id1 = osTimerCreate (osTimer(Timer1), osTimerOnce, &exec1);
    +
    if (id1 != NULL) {
    +
    // One-shoot timer created
    +
    }
    +
    +
    // Create periodic timer
    +
    exec2 = 2;
    +
    id2 = osTimerCreate (osTimer(Timer2), osTimerPeriodic, &exec2);
    +
    if (id2 != NULL) {
    +
    // Periodic timer created
    +
    }
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osTimerDelete (osTimerId timer_id)
    +
    +
    Parameters
    + + +
    [in]timer_idtimer ID obtained by osTimerCreate.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osTimerDelete shall be consistent in every CMSIS-RTOS.
    +

    Delete the timer object.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the specified timer has been deleted.
    • +
    • osErrorISR: osTimerDelete cannot be called from interrupt service routines.
    • +
    • osErrorParameter: timer_id is incorrect.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Timer_Callback (void const *arg); // prototype for timer callback function
    +
    osTimerDef (Timer, Timer_Callback); // define timer
    +
    +
    void TimerDelete_example (void) {
    +
    osTimerId id; // timer id
    +
    osStatus status; // function return status
    +
    +
    // Create periodic timer
    +
    exec = 1;
    +
    id = osTimerCreate (osTimer(Timer2), osTimerPeriodic, NULL);
    +
    osTimerStart (id, 1000UL); // start timer
    +
    :
    +
    status = osTimerDelete (id); // stop and delete timer
    +
    if (status != osOK) {
    +
    // Timer could not be deleted
    +
    }
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    osStatus osTimerStart (osTimerId timer_id,
    uint32_t millisec 
    )
    +
    +
    Parameters
    + + + +
    [in]timer_idtimer ID obtained by osTimerCreate.
    [in]millisectime delay value of the timer.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osTimerStart shall be consistent in every CMSIS-RTOS.
    +

    Start or restart the timer.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the specified timer has been started or restarted.
    • +
    • osErrorISR: osTimerStart cannot be called from interrupt service routines.
    • +
    • osErrorParameter: timer_id is incorrect.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Time_Callback (void const *arg) { // timer callback function
    +
    // arg contains &exec
    +
    // called every second after osTimerStart
    +
    }
    +
    +
    osTimerDef (Timer, Timer_Callback); // define timer
    +
    uint32_t exec; // argument for the timer call back function
    +
    +
    void TimerStart_example (void) {
    +
    osTimerId id; // timer id
    +
    uint32_t timerDelay; // timer value
    +
    osStatus status; // function return status
    +
    +
    // Create periodic timer
    +
    exec = 1;
    +
    id = osTimerCreate (osTimer(Timer), osTimerPeriodic, &exec);
    +
    if (id) {
    +
    timerDelay = 1000;
    +
    status = osTimerStart (id, timerDelay); // start timer
    +
    if (status != osOK) {
    +
    // Timer could not be started
    +
    }
    +
    }
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osStatus osTimerStop (osTimerId timer_id)
    +
    +
    Parameters
    + + +
    [in]timer_idtimer ID obtained by osTimerCreate.
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +
    Note
    MUST REMAIN UNCHANGED: osTimerStop shall be consistent in every CMSIS-RTOS.
    +

    Stop the timer.

    +

    Status and Error Codes
    +

    +
      +
    • osOK: the specified timer has been stopped.
    • +
    • osErrorISR: osTimerStop cannot be called from interrupt service routines.
    • +
    • osErrorParameter: timer_id is incorrect.
    • +
    • osErrorResource: the timer is not started.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Timer_Callback (void const *arg); // prototype for timer callback function
    +
    osTimerDef (Timer, Timer_Callback); // define timer
    +
    +
    void TimerStop_example (void) {
    +
    osTimerId id; // timer id
    +
    osStatus status; // function return status
    +
    +
    // Create periodic timer
    +
    exec = 1;
    +
    id = osTimerCreate (osTimer(Timer2), osTimerPeriodic, NULL);
    +
    osTimerStart (id, 1000); // start timer
    +
    :
    +
    status = osTimerStop (id); // stop timer
    +
    if (status != osOK) {
    +
    // Timer could not be stopped
    +
    }
    +
    :
    +
    osTimerStart (id, 1000); // start timer again
    +
    :
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___timer_mgmt.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___timer_mgmt.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___timer_mgmt.js @@ -0,0 +1,13 @@ +var group___c_m_s_i_s___r_t_o_s___timer_mgmt = +[ + [ "osTimer", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga1b8d670eaf964b2910fa06885e650678", null ], + [ "osTimerDef", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga1c720627e08d1cc1afcad44e799ed492", null ], + [ "os_timer_type", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9", [ + [ "osTimerOnce", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951", null ], + [ "osTimerPeriodic", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788", null ] + ] ], + [ "osTimerCreate", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6", null ], + [ "osTimerDelete", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga746b8043d906849bd65e3900fcb483cf", null ], + [ "osTimerStart", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga27a797a401b068e2644d1125f22a07ca", null ], + [ "osTimerStop", "group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga58f36b121a812936435cacc6e1e0e091", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___wait.html b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___wait.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___wait.html @@ -0,0 +1,281 @@ + + + + + +CMSIS-RTOS: Generic Wait Functions + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    Generic Wait Functions
    +
    +
    + +

    Wait for a time period or unspecified events. +More...

    + + + + + +

    +Macros

    #define osFeature_Wait   1
     osWait function: 1=available, 0=not available More...
     
    + + + + + + + +

    +Functions

    osStatus osDelay (uint32_t millisec)
     Wait for Timeout (Time Delay). More...
     
    osEvent osWait (uint32_t millisec)
     Wait for Signal, Message, Mail, or Timeout. More...
     
    +

    Description

    +

    The Generic Wait function group provides means for a time delay and allow to wait for unspecified events.

    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define osFeature_Wait   1
    +
    +

    A CMSIS-RTOS implementation may support the generic wait function osWait.

    + + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + + +
    osStatus osDelay (uint32_t millisec)
    +
    +
    Parameters
    + + +
    [in]millisectime delay value
    +
    +
    +
    Returns
    status code that indicates the execution status of the function.
    +

    Wait for a specified time period in millisec.

    +

    Status and Error Codes
    +

    +
      +
    • osEventTimeout: the time delay is executed.
    • +
    • osErrorISR: osDelay cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Thread_1 (void const *arg) { // Thread function
    +
    osStatus status; // capture the return status
    +
    uint32_t delayTime; // delay time in milliseconds
    +
    +
    delayTime = 1000; // delay 1 second
    +
    :
    +
    status = osDelay (delayTime); // suspend thread execution
    +
    // handle erroe code
    +
    :
    +
    }
    +
    +
    +
    + +
    +
    + + + + + + + + +
    osEvent osWait (uint32_t millisec)
    +
    +
    Parameters
    + + +
    [in]millisectimeout value or 0 in case of no time-out
    +
    +
    +
    Returns
    event that contains signal, message, or mail information or error code.
    +
    Note
    MUST REMAIN UNCHANGED: osWait shall be consistent in every CMSIS-RTOS.
    +

    Wait for any event of the type Signal, Message, Mail for a specified time period in millisec. While the system waits the thread that is calling this function is put into the state WAITING. When millisec is set to osWaitForever the function will wait for an infinite time until a event occurs.

    +
    Note
    this function is optionally and may not be provided by all CMSIS-RTOS implementations.
    +

    Status and Error Codes
    +

    +
      +
    • osEventSignal: a signal event occurred and is returned.
    • +
    • osEventMessage: a message event occurred and is returned.
    • +
    • osEventMail: a mail event occurred and is returned.
    • +
    • osEventTimeout: the time delay is executed.
    • +
    • osErrorISR: osDelay cannot be called from interrupt service routines.
    • +
    +

    Example

    +
    #include "cmsis_os.h"
    +
    +
    void Thread_1 (void const *arg) { // Thread function
    +
    osEvent Event; // capture the event
    +
    uint32_t waitTime; // wait time in milliseconds
    +
    +
    :
    +
    waitTime = osWaitForever; // special "wait" value
    +
    Event = osWait (waitTime); // wait forever and until an event occurred
    +
    switch (Event.status) {
    +
    case osEventSignal: // Signal arrived
    +
    : // Event.value.signals contains the signal flags
    +
    break;
    +
    +
    case osEventMessage: // Message arrived
    +
    : // Event.value.p contains the message pointer
    +
    : // Event.def.message_id contains the message Id
    +
    break;
    +
    +
    case osEventMail: // Mail arrived
    +
    : // Event.value.p contains the mail pointer
    +
    : // Event.def.mail_id contains the mail Id
    +
    break;
    +
    +
    case osEventTimeout: // Timeout occurred
    +
    break;
    +
    +
    default: // Error occurred
    +
    break;
    +
    }
    +
    :
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___wait.js b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___wait.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/group___c_m_s_i_s___r_t_o_s___wait.js @@ -0,0 +1,6 @@ +var group___c_m_s_i_s___r_t_o_s___wait = +[ + [ "osFeature_Wait", "group___c_m_s_i_s___r_t_o_s___wait.html#ga6c97d38879ae86491628f6e647639bad", null ], + [ "osDelay", "group___c_m_s_i_s___r_t_o_s___wait.html#ga02e19d5e723bfb06ba9324d625162255", null ], + [ "osWait", "group___c_m_s_i_s___r_t_o_s___wait.html#ga8470c8aaedfde524a44e22e5b2328285", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/index.html b/Libraries/CMSIS/Documentation/RTOS/html/index.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/index.html @@ -0,0 +1,206 @@ + + + + + +CMSIS-RTOS: Overview + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    Overview
    +
    +
    +

    The CMSIS-RTOS API is a generic RTOS interface for Cortex-M processor-based devices. CMSIS-RTOS provides a standardized API for software components that require RTOS functionality and gives therefore serious benefits to the users and the software industry.

    +
      +
    • CMSIS-RTOS provides basic features that are required in many applications or technologies such as UML or Java (JVM).
    • +
    • The unified feature set of the CMSIS-RTOS API simplifies sharing of software components and reduces learning efforts.
    • +
    • Middleware components that use the CMSIS-RTOS API are RTOS agnostic. CMSIS-RTOS compliant middleware is easier to adapt.
    • +
    • Standard project templates (such as motor control) of the CMSIS-RTOS API may be shipped with freely available CMSIS-RTOS implementations.
    • +
    +
    Note
    The CMSIS-RTOS API defines a minimum feature set. Implementations with extended features may be provided by RTOS vendors.
    +
    +API_Structure.png +
    +CMSIS-RTOS API Structure
    +

    A typical CMSIS-RTOS API implementation interfaces to an existing Real-Time Kernel. The CMSIS-RTOS API provides the following attributes and functionalities:

    +
      +
    • Function names, identifiers, and parameters are descriptive and easy to understand. The functions are powerful and flexible which reduces the number of functions exposed to the user.
    • +
    + +
      +
    • Interrupt Service Routines (ISR) can call many CMSIS-RTOS functions. When a CMSIS-RTOS function cannot be called from ISR context, it rejects the invocation.
    • +
    +
      +
    • Three different thread event types support communication between multiple threads and/or ISR:
        +
      • Signals: are flags that may be used to signal specific conditions to a thread. Signals can be modified in an ISR or set from other threads.
      • +
      • Message: is a 32-bit value that can be sent to a thread or an ISR. Messages are buffered in a queue. The message type and queue size is defined in a descriptor.
      • +
      • Mail: is a fixed-size memory block that can be sent to a thread or an ISR. Mails are buffered in a queue and memory allocation is provided. The mail type and queue size is defined in a descriptor.
      • +
      +
    • +
    + +
      +
    • CPU time can be schedule with the following functionalities:
        +
      • A timeout parameter is incorporated in many CMSIS-RTOS functions to avoid system lockup. When a timeout is specified, the system waits until a resource is available or an event occurs. While waiting, other threads are scheduled.
      • +
      • The osDelay function puts a thread into the state WAITING for a specified period of time.
      • +
      • The generic osWait function waits for events that are assigned to a thread.
      • +
      • The osThreadYield provides co-operative thread switching and passes execution to another thread of the same priority.
      • +
      +
    • +
    +

    The CMSIS-RTOS API is designed to optionally incorporate multi-processor systems and/or access protection via the Cortex-M Memory Protection Unit (MPU).

    +

    In some RTOS implementations threads may execute on different processors and Mail and Message queues can therefore reside in shard memory resources.

    +

    The CMSIS-RTOS API encourages the software industry to evolve existing RTOS implementations. Kernel objects are defined and accessed using macros. This allows differentiation. RTOS implementations can be different and optimized in various aspects towards the Cortex-M processors. Optional features may be for Example

    +
      +
    • Generic Wait function; i.e. with support of time intervals.
    • +
    • Support of the Cortex-M Memory Protection Unit (MPU).
    • +
    • Zero-copy mail queue.
    • +
    • Support of multi-processor systems.
    • +
    • Support of a DMA controller.
    • +
    • Deterministic context switching.
    • +
    • Round-robin context switching.
    • +
    • Deadlock avoidance, for example with priority inversion.
    • +
    • Zero interrupt latency by using the Cortex-M3/M4 instructions LDEX and STEX.
    • +
    +
    +

    Revision History of CMSIS-RTOS API

    + + + + + + + + + + + +
    Version Description
    V1.02 Added: New control functions for short timeouts in microsecond resolution osKernelSysTick, osKernelSysTickFrequency, osKernelSysTickMicroSec.
    + Removed: osSignalGet.
    V1.01 Added capabilities for C++, kernel initialization and object deletion.
    + Prepared for C++ class interface. In this context to const attribute has been moved from osXxxxDef_t typedefs to the osXxxxDef macros.
    + Added: osTimerDelete, osMutexDelete, osSemaphoreDelete.
    + Added: osKernelInitialize that prepares the Kernel for object creation.
    +
    V0.03 V1.00 First official Release.
    + Added: osKernelStart; starting 'main' as a thread is now an optional feature.
    + Semaphores have now the standard behavior.
    + osTimerCreate does no longer start the timer. Added: osTimerStart (replaces osTimerRestart).
    + Changed: osThreadPass is renamed to osThreadYield.
    V0.02 Preview Release.
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/jquery.js b/Libraries/CMSIS/Documentation/RTOS/html/jquery.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/jquery.js @@ -0,0 +1,77 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")), +f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c) +{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery); +/* + * jQuery UI Resizable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e
    ');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p +&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery); +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
    +
    +
    Reference
    +
    +
    +
    Here is a list of all modules:
    +
    [detail level 12]
    + + + + + + + + + + + + + +
    \CMSIS-RTOS APIThis section describes the CMSIS-RTOS API
     oKernel Information and ControlProvide version/system information and start the RTOS Kernel
     oThread ManagementDefine, create, and control thread functions
     oGeneric Wait FunctionsWait for a time period or unspecified events
     oTimer ManagementCreate and control timer and timer callback functions
     oSignal ManagementControl or wait for signal flags
     oMutex ManagementSynchronize thread execution with a Mutex
     oSemaphore ManagementControl access to shared resources
     oMemory Pool ManagementDefine and manage fixed-size memory pools
     oMessage Queue ManagementControl, send, receive, or wait for messages
     oMail Queue ManagementControl, send, receive, or wait for mail
     oGeneric Data Types and DefinitionsData Type Definitions used by the CMSIS-RTOS API functions
     \Status and Error CodesStatus and Error Codes returned by CMSIS-RTOS API functions
    + + + + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/modules.js b/Libraries/CMSIS/Documentation/RTOS/html/modules.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/modules.js @@ -0,0 +1,4 @@ +var modules = +[ + [ "CMSIS-RTOS API", "group___c_m_s_i_s___r_t_o_s.html", "group___c_m_s_i_s___r_t_o_s" ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/nav_f.png b/Libraries/CMSIS/Documentation/RTOS/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zc%17D@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/Libraries/CMSIS/Documentation/RTOS/html/nav_g.png b/Libraries/CMSIS/Documentation/RTOS/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zc%17D@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + if (node.childrenData) { + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"ftv2pnode.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"ftv2pnode.png"; + } else { + imgNode.src = node.relpath+"ftv2node.png"; + domNode.appendChild(imgNode); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + if (anchor.parent().attr('class')=='memItemLeft' || + anchor.parent().attr('class')=='fieldtype' || + anchor.parent().is(':header')) + { + pos = anchor.parent().position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath($(location).attr('pathname')); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = $(location).attr('hash'); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+ + window.location.hash.substring(1)+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parents().slice(2).prop('tagName')=='TR') { + glowEffect(anchor.parents('div.memitem'),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).show(); + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1]; + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + //root=root.replace(/_source\./,'.'); // source link to doc link + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash')); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"ftv2pnode.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + navTo(o,toroot,window.location.hash,relpath); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath($(location).attr('pathname'))+':'+ + $(location).attr('hash').substring(1); + a=$('.item a[class$="'+clslink+'"]'); + } + if (a==null || !$(a).parent().parent().hasClass('selected')){ + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + var link=stripPath2($(location).attr('pathname')); + navTo(o,link,$(location).attr('hash'),relpath); + } else if (!animationInProgress) { + $('#doc-content').scrollTop(0); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + navTo(o,toroot,window.location.hash,relpath); + } + }) + + $(window).load(showRoot); +} + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/navtreeindex0.js b/Libraries/CMSIS/Documentation/RTOS/html/navtreeindex0.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/navtreeindex0.js @@ -0,0 +1,155 @@ +var NAVTREEINDEX0 = +{ +"_function_overview.html":[2], +"_using_o_s.html":[1], +"annotated.html":[5], +"classes.html":[6], +"cmsis_os_h.html":[3], +"functions.html":[7,0], +"functions_vars.html":[7,1], +"group___c_m_s_i_s___r_t_o_s.html":[4,0], +"group___c_m_s_i_s___r_t_o_s___definitions.html":[4,0,10], +"group___c_m_s_i_s___r_t_o_s___definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f":[4,0,10,0,7], +"group___c_m_s_i_s___r_t_o_s___definitions.html#a117104b82864d3b23ec174af6d392709":[4,0,10,0,3], +"group___c_m_s_i_s___r_t_o_s___definitions.html#a596b6d55c3321db19239256bbe403df6":[4,0,10,0,0], +"group___c_m_s_i_s___r_t_o_s___definitions.html#a9e0a00edabf3b8a5dafff624fff7bbfc":[4,0,10,0,6], +"group___c_m_s_i_s___r_t_o_s___definitions.html#ac86175a4b1706bee596f3018322df26e":[4,0,10,0,1], +"group___c_m_s_i_s___r_t_o_s___definitions.html#ad0dda1bf7e74f1576261d493fba232b6":[4,0,10,0,4], +"group___c_m_s_i_s___r_t_o_s___definitions.html#ad477a289f1f03ac45407b64268d707d3":[4,0,10,0,5], +"group___c_m_s_i_s___r_t_o_s___definitions.html#af394cbe21dde7377974e63af38cd87b0":[4,0,10,0,2], +"group___c_m_s_i_s___r_t_o_s___definitions.html#structos__mail_q":[4,0,10,1], +"group___c_m_s_i_s___r_t_o_s___definitions.html#structos_event":[4,0,10,0], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html":[4,0,0], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga22f7d235bc9f783933bd5a981fd79696":[4,0,0,2], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga3b571de44cd3094c643247a7397f86b5":[4,0,0,8], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga47cf03658f01cdffca688e9096b58289":[4,0,0,4], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga53d078a801022e202e8115c083ece68e":[4,0,0,7], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga702196bacccbb978620c736b209387f1":[4,0,0,0], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga9e0954d52722673e2031233a2ab99960":[4,0,0,5], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2":[4,0,0,9], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gab78dce646fabec479c5f34bc5175b7de":[4,0,0,1], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gad0262e4688e95d1e9038afd9bcc16001":[4,0,0,10], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gae12c190af42d7310d8006d64f4ed5a88":[4,0,0,6], +"group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gae554ec16c23c5b7d65affade2a351891":[4,0,0,3], +"group___c_m_s_i_s___r_t_o_s___mail.html":[4,0,9], +"group___c_m_s_i_s___r_t_o_s___mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc":[4,0,9,6], +"group___c_m_s_i_s___r_t_o_s___mail.html#ga485ef6f81854ebda8ffbce4832181e02":[4,0,9,8], +"group___c_m_s_i_s___r_t_o_s___mail.html#ga58d712b16c0c6668059f509386d1e55b":[4,0,9,2], +"group___c_m_s_i_s___r_t_o_s___mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd":[4,0,9,4], +"group___c_m_s_i_s___r_t_o_s___mail.html#gaa177e7fe5820dd70d8c9e46ded131174":[4,0,9,5], +"group___c_m_s_i_s___r_t_o_s___mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd":[4,0,9,7], +"group___c_m_s_i_s___r_t_o_s___mail.html#gaceb2e0071ce160d153047f2eac1aca8e":[4,0,9,0], +"group___c_m_s_i_s___r_t_o_s___mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2":[4,0,9,1], +"group___c_m_s_i_s___r_t_o_s___mail.html#gadf5ce811bd6a56e617e902a1db6c2194":[4,0,9,3], +"group___c_m_s_i_s___r_t_o_s___message.html":[4,0,8], +"group___c_m_s_i_s___r_t_o_s___message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97":[4,0,8,1], +"group___c_m_s_i_s___r_t_o_s___message.html#ga479a6561f859e3d4818e25708593d203":[4,0,8,0], +"group___c_m_s_i_s___r_t_o_s___message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae":[4,0,8,4], +"group___c_m_s_i_s___r_t_o_s___message.html#gac0dcf462fc92de8ffaba6cc004514a6d":[4,0,8,5], +"group___c_m_s_i_s___r_t_o_s___message.html#gac9a6a6276c12609793e7701afcc82326":[4,0,8,2], +"group___c_m_s_i_s___r_t_o_s___message.html#gaf3b9345cf426304d46565152bc26fb78":[4,0,8,3], +"group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html":[4,0,5], +"group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga006e4744d741e8e132c3d5bbc295afe1":[4,0,5,4], +"group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga1122a86faa64b4a0880c76cf68d0c934":[4,0,5,0], +"group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5c9de56e717016e39e788064e9a291cc":[4,0,5,2], +"group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13":[4,0,5,5], +"group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga9b522438489d7c402c95332b58bc94f3":[4,0,5,1], +"group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#gac27e24135185d51d18f3dabc20910219":[4,0,5,3], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html":[4,0,7], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a":[4,0,7,5], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54":[4,0,7,6], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga5f0b204a82327533d420210125c90697":[4,0,7,1], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga87b471d4fe2d5dbd0040708edd52771b":[4,0,7,2], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a":[4,0,7,4], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543":[4,0,7,3], +"group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#gadd84b683001de327894851b428587caa":[4,0,7,0], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html":[4,0,6], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga03761ee8d2c3cd4544e18364ab301dac":[4,0,6,1], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a":[4,0,6,0], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga97381e8e55cd47cec390bf57c96d6edb":[4,0,6,3], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga9e66fe361749071e5ab87826c43c2f1b":[4,0,6,2], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gab108914997c49e14d8ff1ae0d1988ca0":[4,0,6,5], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gabae2801ac2c096f6e8c69a264908f595":[4,0,6,4], +"group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gacc15b0fc8ce1167fe43da33042e62098":[4,0,6,6], +"group___c_m_s_i_s___r_t_o_s___signal_mgmt.html":[4,0,4], +"group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga01edde265710d883b6e237d34a6ef4a6":[4,0,4,0], +"group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga38860acda96df47da6923348d96fc4c9":[4,0,4,3], +"group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga3de2730654589d6c3559c4b9e2825553":[4,0,4,2], +"group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6":[4,0,4,1], +"group___c_m_s_i_s___r_t_o_s___status.html":[4,0,11], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99e":[4,0,11,0], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926":[4,0,11,0,3], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f":[4,0,11,0,8], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467":[4,0,11,0,7], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee":[4,0,11,0,12], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518":[4,0,11,0,1], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc":[4,0,11,0,13], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177":[4,0,11,0,4], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d":[4,0,11,0,6], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f":[4,0,11,0,0], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f":[4,0,11,0,10], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109":[4,0,11,0,5], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1":[4,0,11,0,14], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342":[4,0,11,0,2], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81":[4,0,11,0,11], +"group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65":[4,0,11,0,9], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html":[4,0,1], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b":[4,0,1,6], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga4299d838978bc2aae5e4350754e6a4e9":[4,0,1,5], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a":[4,0,1,2], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af":[4,0,1,2,6], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b":[4,0,1,2,4], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6":[4,0,1,2,2], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1":[4,0,1,2,3], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81":[4,0,1,2,0], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4":[4,0,1,2,1], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2":[4,0,1,2,5], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4":[4,0,1,2,7], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7":[4,0,1,4], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gac59b5713cb083702dce759c73fd90dff":[4,0,1,3], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaea135bb90eb853eff39e0800b91bbeab":[4,0,1,7], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaee93d929beb350f16e5cc7fa602e229f":[4,0,1,1], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453":[4,0,1,0], +"group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaf13a667493c5d629a90c13e113b99233":[4,0,1,8], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html":[4,0,3], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga1b8d670eaf964b2910fa06885e650678":[4,0,3,0], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga1c720627e08d1cc1afcad44e799ed492":[4,0,3,1], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga27a797a401b068e2644d1125f22a07ca":[4,0,3,5], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga58f36b121a812936435cacc6e1e0e091":[4,0,3,6], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga746b8043d906849bd65e3900fcb483cf":[4,0,3,4], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9":[4,0,3,2], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788":[4,0,3,2,1], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951":[4,0,3,2,0], +"group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6":[4,0,3,3], +"group___c_m_s_i_s___r_t_o_s___wait.html":[4,0,2], +"group___c_m_s_i_s___r_t_o_s___wait.html#ga02e19d5e723bfb06ba9324d625162255":[4,0,2,1], +"group___c_m_s_i_s___r_t_o_s___wait.html#ga6c97d38879ae86491628f6e647639bad":[4,0,2,0], +"group___c_m_s_i_s___r_t_o_s___wait.html#ga8470c8aaedfde524a44e22e5b2328285":[4,0,2,2], +"index.html":[0], +"index.html":[], +"modules.html":[4], +"pages.html":[], +"structos_mail_q_def__t.html":[5,2], +"structos_mail_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c":[5,2,1], +"structos_mail_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f":[5,2,0], +"structos_mail_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0":[5,2,2], +"structos_message_q_def__t.html":[5,3], +"structos_message_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c":[5,3,1], +"structos_message_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f":[5,3,0], +"structos_message_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0":[5,3,2], +"structos_mutex_def__t.html":[5,4], +"structos_mutex_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca":[5,4,0], +"structos_pool_def__t.html":[5,5], +"structos_pool_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c":[5,5,1], +"structos_pool_def__t.html#a4c2a0c691de3365c00ecd22d8102811f":[5,5,0], +"structos_pool_def__t.html#ac112e786b2a234e0e45cb5bdbee53763":[5,5,2], +"structos_semaphore_def__t.html":[5,6], +"structos_semaphore_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca":[5,6,0], +"structos_thread_def__t.html":[5,7], +"structos_thread_def__t.html#a15da8f23c6fe684b70a73646ada685e7":[5,7,3], +"structos_thread_def__t.html#a950b7f81ad4711959517296e63bc79d1":[5,7,2], +"structos_thread_def__t.html#aa4c4115851a098c0b87358ab6c025603":[5,7,0], +"structos_thread_def__t.html#ad3c9624ee214329fb34e71f544a6933e":[5,7,1], +"structos_timer_def__t.html":[5,8], +"structos_timer_def__t.html#a15773df83aba93f8e61f3737af5fae47":[5,8,0] +}; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/open.png b/Libraries/CMSIS/Documentation/RTOS/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zc%17D@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + +CMSIS-RTOS: Usage and Description + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/resize.js b/Libraries/CMSIS/Documentation/RTOS/html/resize.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/resize.js @@ -0,0 +1,93 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + }); +} + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_63.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_63.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_63.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_63.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_63.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['cmsis_5fos_2eh',['cmsis_os.h',['../cmsis__os_8h.html',1,'']]], + ['cmsis_5fos_2etxt',['cmsis_os.txt',['../cmsis__os_8txt.html',1,'']]], + ['cmsis_2drtos_20api',['CMSIS-RTOS API',['../group___c_m_s_i_s___r_t_o_s.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_64.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_64.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_64.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['def',['def',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a596b6d55c3321db19239256bbe403df6',1,'osEvent']]], + ['dummy',['dummy',['../structos_mutex_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osMutexDef_t::dummy()'],['../structos_semaphore_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osSemaphoreDef_t::dummy()']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_66.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_66.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_66.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_66.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['function_20overview',['Function Overview',['../_function_overview.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_67.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_67.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_67.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_67.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_67.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_67.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['generic_20data_20types_20and_20definitions',['Generic Data Types and Definitions',['../group___c_m_s_i_s___r_t_o_s___definitions.html',1,'']]], + ['generic_20wait_20functions',['Generic Wait Functions',['../group___c_m_s_i_s___r_t_o_s___wait.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_68.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_68.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_68.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_68.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_68.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['header_20file_20template_3a_20cmsis_5fos_2eh',['Header File Template: cmsis_os.h',['../cmsis_os_h.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_69.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_69.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_69.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['instances',['instances',['../structos_thread_def__t.html#aa4c4115851a098c0b87358ab6c025603',1,'osThreadDef_t']]], + ['item_5fsz',['item_sz',['../structos_pool_def__t.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osPoolDef_t::item_sz()'],['../structos_message_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMessageQDef_t::item_sz()'],['../structos_mail_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMailQDef_t::item_sz()']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_6b.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6b.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_6b.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6b.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kernel_20information_20and_20control',['Kernel Information and Control',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_6d.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_6d.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6d.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['mail_20queue_20management',['Mail Queue Management',['../group___c_m_s_i_s___r_t_o_s___mail.html',1,'']]], + ['message_20queue_20management',['Message Queue Management',['../group___c_m_s_i_s___r_t_o_s___message.html',1,'']]], + ['mutex_20management',['Mutex Management',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html',1,'']]], + ['memory_20pool_20management',['Memory Pool Management',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html',1,'']]], + ['mail_5fid',['mail_id',['../group___c_m_s_i_s___r_t_o_s___definitions.html#ac86175a4b1706bee596f3018322df26e',1,'osEvent']]], + ['message_5fid',['message_id',['../group___c_m_s_i_s___r_t_o_s___definitions.html#af394cbe21dde7377974e63af38cd87b0',1,'osEvent']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_6f.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_6f.js @@ -0,0 +1,118 @@ +var searchData= +[ + ['overview',['Overview',['../index.html',1,'']]], + ['os_5fmailq',['os_mailQ',['../group___c_m_s_i_s___r_t_o_s___definitions.html#structos__mail_q',1,'']]], + ['os_5fpthread',['os_pthread',['../cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7',1,'cmsis_os.h']]], + ['os_5fptimer',['os_ptimer',['../cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065',1,'cmsis_os.h']]], + ['os_5fstatus_5freserved',['os_status_reserved',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1',1,'cmsis_os.h']]], + ['os_5ftimer_5ftype',['os_timer_type',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type(): cmsis_os.txt'],['../cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type(): cmsis_os.h']]], + ['oscmsis',['osCMSIS',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga702196bacccbb978620c736b209387f1',1,'cmsis_os.h']]], + ['oscmsis_5fkernel',['osCMSIS_KERNEL',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gab78dce646fabec479c5f34bc5175b7de',1,'cmsis_os.h']]], + ['osdelay',['osDelay',['../group___c_m_s_i_s___r_t_o_s___wait.html#ga02e19d5e723bfb06ba9324d625162255',1,'cmsis_os.h']]], + ['oserrorisr',['osErrorISR',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f',1,'cmsis_os.h']]], + ['oserrorisrrecursive',['osErrorISRRecursive',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65',1,'cmsis_os.h']]], + ['oserrornomemory',['osErrorNoMemory',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81',1,'cmsis_os.h']]], + ['oserroros',['osErrorOS',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc',1,'cmsis_os.h']]], + ['oserrorparameter',['osErrorParameter',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109',1,'cmsis_os.h']]], + ['oserrorpriority',['osErrorPriority',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f',1,'cmsis_os.h']]], + ['oserrorresource',['osErrorResource',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d',1,'cmsis_os.h']]], + ['oserrortimeoutresource',['osErrorTimeoutResource',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467',1,'cmsis_os.h']]], + ['oserrorvalue',['osErrorValue',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee',1,'cmsis_os.h']]], + ['osevent',['osEvent',['../group___c_m_s_i_s___r_t_o_s___definitions.html#structos_event',1,'']]], + ['oseventmail',['osEventMail',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926',1,'cmsis_os.h']]], + ['oseventmessage',['osEventMessage',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342',1,'cmsis_os.h']]], + ['oseventsignal',['osEventSignal',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518',1,'cmsis_os.h']]], + ['oseventtimeout',['osEventTimeout',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177',1,'cmsis_os.h']]], + ['osfeature_5fmailq',['osFeature_MailQ',['../group___c_m_s_i_s___r_t_o_s___mail.html#gaceb2e0071ce160d153047f2eac1aca8e',1,'cmsis_os.h']]], + ['osfeature_5fmainthread',['osFeature_MainThread',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga22f7d235bc9f783933bd5a981fd79696',1,'cmsis_os.h']]], + ['osfeature_5fmessageq',['osFeature_MessageQ',['../group___c_m_s_i_s___r_t_o_s___message.html#ga479a6561f859e3d4818e25708593d203',1,'cmsis_os.h']]], + ['osfeature_5fpool',['osFeature_Pool',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#gadd84b683001de327894851b428587caa',1,'cmsis_os.h']]], + ['osfeature_5fsemaphore',['osFeature_Semaphore',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a',1,'cmsis_os.h']]], + ['osfeature_5fsignals',['osFeature_Signals',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga01edde265710d883b6e237d34a6ef4a6',1,'cmsis_os.h']]], + ['osfeature_5fsystick',['osFeature_SysTick',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gae554ec16c23c5b7d65affade2a351891',1,'cmsis_os.h']]], + ['osfeature_5fwait',['osFeature_Wait',['../group___c_m_s_i_s___r_t_o_s___wait.html#ga6c97d38879ae86491628f6e647639bad',1,'cmsis_os.h']]], + ['oskernelinitialize',['osKernelInitialize',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga53d078a801022e202e8115c083ece68e',1,'cmsis_os.h']]], + ['oskernelrunning',['osKernelRunning',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga3b571de44cd3094c643247a7397f86b5',1,'cmsis_os.h']]], + ['oskernelstart',['osKernelStart',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2',1,'cmsis_os.h']]], + ['oskernelsystemid',['osKernelSystemId',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga47cf03658f01cdffca688e9096b58289',1,'cmsis_os.h']]], + ['oskernelsystick',['osKernelSysTick',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gad0262e4688e95d1e9038afd9bcc16001',1,'cmsis_os.h']]], + ['oskernelsystickfrequency',['osKernelSysTickFrequency',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga9e0954d52722673e2031233a2ab99960',1,'cmsis_os.h']]], + ['oskernelsystickmicrosec',['osKernelSysTickMicroSec',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gae12c190af42d7310d8006d64f4ed5a88',1,'cmsis_os.h']]], + ['osmailalloc',['osMailAlloc',['../group___c_m_s_i_s___r_t_o_s___mail.html#gadf5ce811bd6a56e617e902a1db6c2194',1,'cmsis_os.h']]], + ['osmailcalloc',['osMailCAlloc',['../group___c_m_s_i_s___r_t_o_s___mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd',1,'cmsis_os.h']]], + ['osmailcreate',['osMailCreate',['../group___c_m_s_i_s___r_t_o_s___mail.html#gaa177e7fe5820dd70d8c9e46ded131174',1,'cmsis_os.h']]], + ['osmailfree',['osMailFree',['../group___c_m_s_i_s___r_t_o_s___mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc',1,'cmsis_os.h']]], + ['osmailget',['osMailGet',['../group___c_m_s_i_s___r_t_o_s___mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd',1,'cmsis_os.h']]], + ['osmailput',['osMailPut',['../group___c_m_s_i_s___r_t_o_s___mail.html#ga485ef6f81854ebda8ffbce4832181e02',1,'cmsis_os.h']]], + ['osmailq',['osMailQ',['../group___c_m_s_i_s___r_t_o_s___mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2',1,'cmsis_os.h']]], + ['osmailqdef',['osMailQDef',['../group___c_m_s_i_s___r_t_o_s___mail.html#ga58d712b16c0c6668059f509386d1e55b',1,'cmsis_os.h']]], + ['osmailqdef_5ft',['osMailQDef_t',['../structos_mail_q_def__t.html',1,'']]], + ['osmailqid',['osMailQId',['../cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5',1,'cmsis_os.h']]], + ['osmessagecreate',['osMessageCreate',['../group___c_m_s_i_s___r_t_o_s___message.html#gaf3b9345cf426304d46565152bc26fb78',1,'cmsis_os.h']]], + ['osmessageget',['osMessageGet',['../group___c_m_s_i_s___r_t_o_s___message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae',1,'cmsis_os.h']]], + ['osmessageput',['osMessagePut',['../group___c_m_s_i_s___r_t_o_s___message.html#gac0dcf462fc92de8ffaba6cc004514a6d',1,'cmsis_os.h']]], + ['osmessageq',['osMessageQ',['../group___c_m_s_i_s___r_t_o_s___message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97',1,'cmsis_os.h']]], + ['osmessageqdef',['osMessageQDef',['../group___c_m_s_i_s___r_t_o_s___message.html#gac9a6a6276c12609793e7701afcc82326',1,'cmsis_os.h']]], + ['osmessageqdef_5ft',['osMessageQDef_t',['../structos_message_q_def__t.html',1,'']]], + ['osmessageqid',['osMessageQId',['../cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f',1,'cmsis_os.h']]], + ['osmutex',['osMutex',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga1122a86faa64b4a0880c76cf68d0c934',1,'cmsis_os.h']]], + ['osmutexcreate',['osMutexCreate',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5c9de56e717016e39e788064e9a291cc',1,'cmsis_os.h']]], + ['osmutexdef',['osMutexDef',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga9b522438489d7c402c95332b58bc94f3',1,'cmsis_os.h']]], + ['osmutexdef_5ft',['osMutexDef_t',['../structos_mutex_def__t.html',1,'']]], + ['osmutexdelete',['osMutexDelete',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#gac27e24135185d51d18f3dabc20910219',1,'cmsis_os.h']]], + ['osmutexid',['osMutexId',['../cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2',1,'cmsis_os.h']]], + ['osmutexrelease',['osMutexRelease',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga006e4744d741e8e132c3d5bbc295afe1',1,'cmsis_os.h']]], + ['osmutexwait',['osMutexWait',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13',1,'cmsis_os.h']]], + ['osok',['osOK',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f',1,'cmsis_os.h']]], + ['ospool',['osPool',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga5f0b204a82327533d420210125c90697',1,'cmsis_os.h']]], + ['ospoolalloc',['osPoolAlloc',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543',1,'cmsis_os.h']]], + ['ospoolcalloc',['osPoolCAlloc',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a',1,'cmsis_os.h']]], + ['ospoolcreate',['osPoolCreate',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a',1,'cmsis_os.h']]], + ['ospooldef',['osPoolDef',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga87b471d4fe2d5dbd0040708edd52771b',1,'cmsis_os.h']]], + ['ospooldef_5ft',['osPoolDef_t',['../structos_pool_def__t.html',1,'']]], + ['ospoolfree',['osPoolFree',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54',1,'cmsis_os.h']]], + ['ospoolid',['osPoolId',['../cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686',1,'cmsis_os.h']]], + ['ospriority',['osPriority',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a',1,'osPriority(): cmsis_os.txt'],['../cmsis__os_8h.html#a7f2b42f1983b9107775ec2a1c69a849a',1,'osPriority(): cmsis_os.h']]], + ['ospriorityabovenormal',['osPriorityAboveNormal',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b',1,'cmsis_os.h']]], + ['osprioritybelownormal',['osPriorityBelowNormal',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6',1,'cmsis_os.h']]], + ['ospriorityerror',['osPriorityError',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4',1,'cmsis_os.h']]], + ['ospriorityhigh',['osPriorityHigh',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2',1,'cmsis_os.h']]], + ['ospriorityidle',['osPriorityIdle',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81',1,'cmsis_os.h']]], + ['osprioritylow',['osPriorityLow',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4',1,'cmsis_os.h']]], + ['osprioritynormal',['osPriorityNormal',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1',1,'cmsis_os.h']]], + ['ospriorityrealtime',['osPriorityRealtime',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af',1,'cmsis_os.h']]], + ['ossemaphore',['osSemaphore',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga03761ee8d2c3cd4544e18364ab301dac',1,'cmsis_os.h']]], + ['ossemaphorecreate',['osSemaphoreCreate',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga97381e8e55cd47cec390bf57c96d6edb',1,'cmsis_os.h']]], + ['ossemaphoredef',['osSemaphoreDef',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga9e66fe361749071e5ab87826c43c2f1b',1,'cmsis_os.h']]], + ['ossemaphoredef_5ft',['osSemaphoreDef_t',['../structos_semaphore_def__t.html',1,'']]], + ['ossemaphoredelete',['osSemaphoreDelete',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gabae2801ac2c096f6e8c69a264908f595',1,'cmsis_os.h']]], + ['ossemaphoreid',['osSemaphoreId',['../cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84',1,'cmsis_os.h']]], + ['ossemaphorerelease',['osSemaphoreRelease',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gab108914997c49e14d8ff1ae0d1988ca0',1,'cmsis_os.h']]], + ['ossemaphorewait',['osSemaphoreWait',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gacc15b0fc8ce1167fe43da33042e62098',1,'cmsis_os.h']]], + ['ossignalclear',['osSignalClear',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6',1,'cmsis_os.h']]], + ['ossignalset',['osSignalSet',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga3de2730654589d6c3559c4b9e2825553',1,'cmsis_os.h']]], + ['ossignalwait',['osSignalWait',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga38860acda96df47da6923348d96fc4c9',1,'cmsis_os.h']]], + ['osstatus',['osStatus',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99e',1,'osStatus(): cmsis_os.txt'],['../cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e',1,'osStatus(): cmsis_os.h']]], + ['osthread',['osThread',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453',1,'cmsis_os.h']]], + ['osthreadcreate',['osThreadCreate',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gac59b5713cb083702dce759c73fd90dff',1,'cmsis_os.h']]], + ['osthreaddef',['osThreadDef',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaee93d929beb350f16e5cc7fa602e229f',1,'cmsis_os.h']]], + ['osthreaddef_5ft',['osThreadDef_t',['../structos_thread_def__t.html',1,'']]], + ['osthreadgetid',['osThreadGetId',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7',1,'cmsis_os.h']]], + ['osthreadgetpriority',['osThreadGetPriority',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga4299d838978bc2aae5e4350754e6a4e9',1,'cmsis_os.h']]], + ['osthreadid',['osThreadId',['../cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f',1,'cmsis_os.h']]], + ['osthreadsetpriority',['osThreadSetPriority',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b',1,'cmsis_os.h']]], + ['osthreadterminate',['osThreadTerminate',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaea135bb90eb853eff39e0800b91bbeab',1,'cmsis_os.h']]], + ['osthreadyield',['osThreadYield',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaf13a667493c5d629a90c13e113b99233',1,'cmsis_os.h']]], + ['ostimer',['osTimer',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga1b8d670eaf964b2910fa06885e650678',1,'cmsis_os.h']]], + ['ostimercreate',['osTimerCreate',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6',1,'cmsis_os.h']]], + ['ostimerdef',['osTimerDef',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga1c720627e08d1cc1afcad44e799ed492',1,'cmsis_os.h']]], + ['ostimerdef_5ft',['osTimerDef_t',['../structos_timer_def__t.html',1,'']]], + ['ostimerdelete',['osTimerDelete',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga746b8043d906849bd65e3900fcb483cf',1,'cmsis_os.h']]], + ['ostimerid',['osTimerId',['../cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7',1,'cmsis_os.h']]], + ['ostimeronce',['osTimerOnce',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951',1,'cmsis_os.h']]], + ['ostimerperiodic',['osTimerPeriodic',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788',1,'cmsis_os.h']]], + ['ostimerstart',['osTimerStart',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga27a797a401b068e2644d1125f22a07ca',1,'cmsis_os.h']]], + ['ostimerstop',['osTimerStop',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga58f36b121a812936435cacc6e1e0e091',1,'cmsis_os.h']]], + ['oswait',['osWait',['../group___c_m_s_i_s___r_t_o_s___wait.html#ga8470c8aaedfde524a44e22e5b2328285',1,'cmsis_os.h']]], + ['oswaitforever',['osWaitForever',['../cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb',1,'cmsis_os.h']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_70.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_70.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_70.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_70.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_70.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['p',['p',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a117104b82864d3b23ec174af6d392709',1,'osEvent']]], + ['pool',['pool',['../structos_pool_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osPoolDef_t::pool()'],['../structos_message_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMessageQDef_t::pool()'],['../structos_mail_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMailQDef_t::pool()']]], + ['pool_5fsz',['pool_sz',['../structos_pool_def__t.html#ac112e786b2a234e0e45cb5bdbee53763',1,'osPoolDef_t']]], + ['pthread',['pthread',['../structos_thread_def__t.html#ad3c9624ee214329fb34e71f544a6933e',1,'osThreadDef_t']]], + ['ptimer',['ptimer',['../structos_timer_def__t.html#a15773df83aba93f8e61f3737af5fae47',1,'osTimerDef_t']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_71.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_71.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_71.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_71.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_71.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_71.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['queue_5fsz',['queue_sz',['../structos_message_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMessageQDef_t::queue_sz()'],['../structos_mail_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMailQDef_t::queue_sz()']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_73.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_73.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_73.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['semaphore_20management',['Semaphore Management',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html',1,'']]], + ['signal_20management',['Signal Management',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html',1,'']]], + ['status_20and_20error_20codes',['Status and Error Codes',['../group___c_m_s_i_s___r_t_o_s___status.html',1,'']]], + ['signals',['signals',['../group___c_m_s_i_s___r_t_o_s___definitions.html#ad0dda1bf7e74f1576261d493fba232b6',1,'osEvent']]], + ['stacksize',['stacksize',['../structos_thread_def__t.html#a950b7f81ad4711959517296e63bc79d1',1,'osThreadDef_t']]], + ['status',['status',['../group___c_m_s_i_s___r_t_o_s___definitions.html#ad477a289f1f03ac45407b64268d707d3',1,'osEvent']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_74.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_74.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_74.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['thread_20management',['Thread Management',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html',1,'']]], + ['timer_20management',['Timer Management',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html',1,'']]], + ['tpriority',['tpriority',['../structos_thread_def__t.html#a15da8f23c6fe684b70a73646ada685e7',1,'osThreadDef_t']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_75.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_75.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_75.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_75.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_75.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['using_20a_20cmsis_20rtos_20implementation',['Using a CMSIS RTOS Implementation',['../_using_o_s.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_76.html b/Libraries/CMSIS/Documentation/RTOS/html/search/all_76.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/all_76.js b/Libraries/CMSIS/Documentation/RTOS/html/search/all_76.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/all_76.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['v',['v',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a9e0a00edabf3b8a5dafff624fff7bbfc',1,'osEvent']]], + ['value',['value',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f',1,'osEvent']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/classes_6f.html b/Libraries/CMSIS/Documentation/RTOS/html/search/classes_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/classes_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/classes_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/classes_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/classes_6f.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['os_5fmailq',['os_mailQ',['../group___c_m_s_i_s___r_t_o_s___definitions.html#structos__mail_q',1,'']]], + ['osevent',['osEvent',['../group___c_m_s_i_s___r_t_o_s___definitions.html#structos_event',1,'']]], + ['osmailqdef_5ft',['osMailQDef_t',['../structos_mail_q_def__t.html',1,'']]], + ['osmessageqdef_5ft',['osMessageQDef_t',['../structos_message_q_def__t.html',1,'']]], + ['osmutexdef_5ft',['osMutexDef_t',['../structos_mutex_def__t.html',1,'']]], + ['ospooldef_5ft',['osPoolDef_t',['../structos_pool_def__t.html',1,'']]], + ['ossemaphoredef_5ft',['osSemaphoreDef_t',['../structos_semaphore_def__t.html',1,'']]], + ['osthreaddef_5ft',['osThreadDef_t',['../structos_thread_def__t.html',1,'']]], + ['ostimerdef_5ft',['osTimerDef_t',['../structos_timer_def__t.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/close.png b/Libraries/CMSIS/Documentation/RTOS/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zc$@(d0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/defines_6f.html b/Libraries/CMSIS/Documentation/RTOS/html/search/defines_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/defines_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/defines_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/defines_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/defines_6f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['oswaitforever',['osWaitForever',['../cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb',1,'cmsis_os.h']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/enums_6f.html b/Libraries/CMSIS/Documentation/RTOS/html/search/enums_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/enums_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/enums_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/enums_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/enums_6f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['os_5ftimer_5ftype',['os_timer_type',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type(): cmsis_os.txt'],['../cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type(): cmsis_os.h']]], + ['ospriority',['osPriority',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a',1,'osPriority(): cmsis_os.txt'],['../cmsis__os_8h.html#a7f2b42f1983b9107775ec2a1c69a849a',1,'osPriority(): cmsis_os.h']]], + ['osstatus',['osStatus',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99e',1,'osStatus(): cmsis_os.txt'],['../cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e',1,'osStatus(): cmsis_os.h']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/enumvalues_6f.html b/Libraries/CMSIS/Documentation/RTOS/html/search/enumvalues_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/enumvalues_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/enumvalues_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/enumvalues_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/enumvalues_6f.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['os_5fstatus_5freserved',['os_status_reserved',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1',1,'cmsis_os.h']]], + ['oserrorisr',['osErrorISR',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f',1,'cmsis_os.h']]], + ['oserrorisrrecursive',['osErrorISRRecursive',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65',1,'cmsis_os.h']]], + ['oserrornomemory',['osErrorNoMemory',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81',1,'cmsis_os.h']]], + ['oserroros',['osErrorOS',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc',1,'cmsis_os.h']]], + ['oserrorparameter',['osErrorParameter',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109',1,'cmsis_os.h']]], + ['oserrorpriority',['osErrorPriority',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f',1,'cmsis_os.h']]], + ['oserrorresource',['osErrorResource',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d',1,'cmsis_os.h']]], + ['oserrortimeoutresource',['osErrorTimeoutResource',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467',1,'cmsis_os.h']]], + ['oserrorvalue',['osErrorValue',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee',1,'cmsis_os.h']]], + ['oseventmail',['osEventMail',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926',1,'cmsis_os.h']]], + ['oseventmessage',['osEventMessage',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342',1,'cmsis_os.h']]], + ['oseventsignal',['osEventSignal',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518',1,'cmsis_os.h']]], + ['oseventtimeout',['osEventTimeout',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177',1,'cmsis_os.h']]], + ['osok',['osOK',['../group___c_m_s_i_s___r_t_o_s___status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f',1,'cmsis_os.h']]], + ['ospriorityabovenormal',['osPriorityAboveNormal',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b',1,'cmsis_os.h']]], + ['osprioritybelownormal',['osPriorityBelowNormal',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6',1,'cmsis_os.h']]], + ['ospriorityerror',['osPriorityError',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4',1,'cmsis_os.h']]], + ['ospriorityhigh',['osPriorityHigh',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2',1,'cmsis_os.h']]], + ['ospriorityidle',['osPriorityIdle',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81',1,'cmsis_os.h']]], + ['osprioritylow',['osPriorityLow',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4',1,'cmsis_os.h']]], + ['osprioritynormal',['osPriorityNormal',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1',1,'cmsis_os.h']]], + ['ospriorityrealtime',['osPriorityRealtime',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af',1,'cmsis_os.h']]], + ['ostimeronce',['osTimerOnce',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951',1,'cmsis_os.h']]], + ['ostimerperiodic',['osTimerPeriodic',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788',1,'cmsis_os.h']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/files_63.html b/Libraries/CMSIS/Documentation/RTOS/html/search/files_63.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/files_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/files_63.js b/Libraries/CMSIS/Documentation/RTOS/html/search/files_63.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/files_63.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cmsis_5fos_2eh',['cmsis_os.h',['../cmsis__os_8h.html',1,'']]], + ['cmsis_5fos_2etxt',['cmsis_os.txt',['../cmsis__os_8txt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/functions_6f.html b/Libraries/CMSIS/Documentation/RTOS/html/search/functions_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/functions_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/functions_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/functions_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/functions_6f.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['osdelay',['osDelay',['../group___c_m_s_i_s___r_t_o_s___wait.html#ga02e19d5e723bfb06ba9324d625162255',1,'cmsis_os.h']]], + ['oskernelinitialize',['osKernelInitialize',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga53d078a801022e202e8115c083ece68e',1,'cmsis_os.h']]], + ['oskernelrunning',['osKernelRunning',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#ga3b571de44cd3094c643247a7397f86b5',1,'cmsis_os.h']]], + ['oskernelstart',['osKernelStart',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2',1,'cmsis_os.h']]], + ['oskernelsystick',['osKernelSysTick',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html#gad0262e4688e95d1e9038afd9bcc16001',1,'cmsis_os.h']]], + ['osmailalloc',['osMailAlloc',['../group___c_m_s_i_s___r_t_o_s___mail.html#gadf5ce811bd6a56e617e902a1db6c2194',1,'cmsis_os.h']]], + ['osmailcalloc',['osMailCAlloc',['../group___c_m_s_i_s___r_t_o_s___mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd',1,'cmsis_os.h']]], + ['osmailcreate',['osMailCreate',['../group___c_m_s_i_s___r_t_o_s___mail.html#gaa177e7fe5820dd70d8c9e46ded131174',1,'cmsis_os.h']]], + ['osmailfree',['osMailFree',['../group___c_m_s_i_s___r_t_o_s___mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc',1,'cmsis_os.h']]], + ['osmailget',['osMailGet',['../group___c_m_s_i_s___r_t_o_s___mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd',1,'cmsis_os.h']]], + ['osmailput',['osMailPut',['../group___c_m_s_i_s___r_t_o_s___mail.html#ga485ef6f81854ebda8ffbce4832181e02',1,'cmsis_os.h']]], + ['osmessagecreate',['osMessageCreate',['../group___c_m_s_i_s___r_t_o_s___message.html#gaf3b9345cf426304d46565152bc26fb78',1,'cmsis_os.h']]], + ['osmessageget',['osMessageGet',['../group___c_m_s_i_s___r_t_o_s___message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae',1,'cmsis_os.h']]], + ['osmessageput',['osMessagePut',['../group___c_m_s_i_s___r_t_o_s___message.html#gac0dcf462fc92de8ffaba6cc004514a6d',1,'cmsis_os.h']]], + ['osmutexcreate',['osMutexCreate',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5c9de56e717016e39e788064e9a291cc',1,'cmsis_os.h']]], + ['osmutexdelete',['osMutexDelete',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#gac27e24135185d51d18f3dabc20910219',1,'cmsis_os.h']]], + ['osmutexrelease',['osMutexRelease',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga006e4744d741e8e132c3d5bbc295afe1',1,'cmsis_os.h']]], + ['osmutexwait',['osMutexWait',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13',1,'cmsis_os.h']]], + ['ospoolalloc',['osPoolAlloc',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543',1,'cmsis_os.h']]], + ['ospoolcalloc',['osPoolCAlloc',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a',1,'cmsis_os.h']]], + ['ospoolcreate',['osPoolCreate',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a',1,'cmsis_os.h']]], + ['ospoolfree',['osPoolFree',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54',1,'cmsis_os.h']]], + ['ossemaphorecreate',['osSemaphoreCreate',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#ga97381e8e55cd47cec390bf57c96d6edb',1,'cmsis_os.h']]], + ['ossemaphoredelete',['osSemaphoreDelete',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gabae2801ac2c096f6e8c69a264908f595',1,'cmsis_os.h']]], + ['ossemaphorerelease',['osSemaphoreRelease',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gab108914997c49e14d8ff1ae0d1988ca0',1,'cmsis_os.h']]], + ['ossemaphorewait',['osSemaphoreWait',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html#gacc15b0fc8ce1167fe43da33042e62098',1,'cmsis_os.h']]], + ['ossignalclear',['osSignalClear',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6',1,'cmsis_os.h']]], + ['ossignalset',['osSignalSet',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga3de2730654589d6c3559c4b9e2825553',1,'cmsis_os.h']]], + ['ossignalwait',['osSignalWait',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html#ga38860acda96df47da6923348d96fc4c9',1,'cmsis_os.h']]], + ['osthreadcreate',['osThreadCreate',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gac59b5713cb083702dce759c73fd90dff',1,'cmsis_os.h']]], + ['osthreadgetid',['osThreadGetId',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7',1,'cmsis_os.h']]], + ['osthreadgetpriority',['osThreadGetPriority',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga4299d838978bc2aae5e4350754e6a4e9',1,'cmsis_os.h']]], + ['osthreadsetpriority',['osThreadSetPriority',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b',1,'cmsis_os.h']]], + ['osthreadterminate',['osThreadTerminate',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaea135bb90eb853eff39e0800b91bbeab',1,'cmsis_os.h']]], + ['osthreadyield',['osThreadYield',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html#gaf13a667493c5d629a90c13e113b99233',1,'cmsis_os.h']]], + ['ostimercreate',['osTimerCreate',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6',1,'cmsis_os.h']]], + ['ostimerdelete',['osTimerDelete',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga746b8043d906849bd65e3900fcb483cf',1,'cmsis_os.h']]], + ['ostimerstart',['osTimerStart',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga27a797a401b068e2644d1125f22a07ca',1,'cmsis_os.h']]], + ['ostimerstop',['osTimerStop',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html#ga58f36b121a812936435cacc6e1e0e091',1,'cmsis_os.h']]], + ['oswait',['osWait',['../group___c_m_s_i_s___r_t_o_s___wait.html#ga8470c8aaedfde524a44e22e5b2328285',1,'cmsis_os.h']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_63.html b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_63.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_63.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_63.js b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_63.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_63.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['cmsis_2drtos_20api',['CMSIS-RTOS API',['../group___c_m_s_i_s___r_t_o_s.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_67.html b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_67.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_67.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_67.js b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_67.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_67.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['generic_20data_20types_20and_20definitions',['Generic Data Types and Definitions',['../group___c_m_s_i_s___r_t_o_s___definitions.html',1,'']]], + ['generic_20wait_20functions',['Generic Wait Functions',['../group___c_m_s_i_s___r_t_o_s___wait.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6b.html b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6b.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6b.js b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6b.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kernel_20information_20and_20control',['Kernel Information and Control',['../group___c_m_s_i_s___r_t_o_s___kernel_ctrl.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6d.html b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6d.js b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_6d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['mail_20queue_20management',['Mail Queue Management',['../group___c_m_s_i_s___r_t_o_s___mail.html',1,'']]], + ['message_20queue_20management',['Message Queue Management',['../group___c_m_s_i_s___r_t_o_s___message.html',1,'']]], + ['mutex_20management',['Mutex Management',['../group___c_m_s_i_s___r_t_o_s___mutex_mgmt.html',1,'']]], + ['memory_20pool_20management',['Memory Pool Management',['../group___c_m_s_i_s___r_t_o_s___pool_mgmt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_73.html b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_73.js b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_73.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['semaphore_20management',['Semaphore Management',['../group___c_m_s_i_s___r_t_o_s___semaphore_mgmt.html',1,'']]], + ['signal_20management',['Signal Management',['../group___c_m_s_i_s___r_t_o_s___signal_mgmt.html',1,'']]], + ['status_20and_20error_20codes',['Status and Error Codes',['../group___c_m_s_i_s___r_t_o_s___status.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_74.html b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/groups_74.js b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/groups_74.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['thread_20management',['Thread Management',['../group___c_m_s_i_s___r_t_o_s___thread_mgmt.html',1,'']]], + ['timer_20management',['Timer Management',['../group___c_m_s_i_s___r_t_o_s___timer_mgmt.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/mag_sel.png b/Libraries/CMSIS/Documentation/RTOS/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zc$@(<0?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/nomatches.html b/Libraries/CMSIS/Documentation/RTOS/html/search/nomatches.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_66.html b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_66.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_66.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_66.js b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_66.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_66.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['function_20overview',['Function Overview',['../_function_overview.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_68.html b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_68.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_68.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_68.js b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_68.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_68.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['header_20file_20template_3a_20cmsis_5fos_2eh',['Header File Template: cmsis_os.h',['../cmsis_os_h.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_6f.html b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_6f.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_6f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_6f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['overview',['Overview',['../index.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_75.html b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_75.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_75.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/pages_75.js b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_75.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/pages_75.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['using_20a_20cmsis_20rtos_20implementation',['Using a CMSIS RTOS Implementation',['../_using_o_s.html',1,'']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/search.css b/Libraries/CMSIS/Documentation/RTOS/html/search/search.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/search.css @@ -0,0 +1,240 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#searchli { + float: right; + display: block; + width: 170px; + height: 24px; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 3px; + right: 0px; + width: 170px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:116px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/search.js b/Libraries/CMSIS/Documentation/RTOS/html/search/search.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/search.js @@ -0,0 +1,815 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101111010101110111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001000100110110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 6: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 7: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 8: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 9: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100010100000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 10: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000001000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "typedefs", + 6: "enums", + 7: "enumvalues", + 8: "defines", + 9: "groups", + 10: "pages" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var hexCode; + if (code<16) + { + hexCode="0"+code.toString(16); + } + else + { + hexCode=code.toString(16); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') + { + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/search_r.png b/Libraries/CMSIS/Documentation/RTOS/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zc$@)b0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/typedefs_6f.js b/Libraries/CMSIS/Documentation/RTOS/html/search/typedefs_6f.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/typedefs_6f.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['os_5fpthread',['os_pthread',['../cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7',1,'cmsis_os.h']]], + ['os_5fptimer',['os_ptimer',['../cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065',1,'cmsis_os.h']]], + ['osmailqid',['osMailQId',['../cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5',1,'cmsis_os.h']]], + ['osmessageqid',['osMessageQId',['../cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f',1,'cmsis_os.h']]], + ['osmutexid',['osMutexId',['../cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2',1,'cmsis_os.h']]], + ['ospoolid',['osPoolId',['../cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686',1,'cmsis_os.h']]], + ['ossemaphoreid',['osSemaphoreId',['../cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84',1,'cmsis_os.h']]], + ['osthreadid',['osThreadId',['../cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f',1,'cmsis_os.h']]], + ['ostimerid',['osTimerId',['../cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7',1,'cmsis_os.h']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_64.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_64.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_64.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_64.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_64.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_64.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['def',['def',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a596b6d55c3321db19239256bbe403df6',1,'osEvent']]], + ['dummy',['dummy',['../structos_mutex_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osMutexDef_t::dummy()'],['../structos_semaphore_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osSemaphoreDef_t::dummy()']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_69.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_69.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_69.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_69.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_69.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_69.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['instances',['instances',['../structos_thread_def__t.html#aa4c4115851a098c0b87358ab6c025603',1,'osThreadDef_t']]], + ['item_5fsz',['item_sz',['../structos_pool_def__t.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osPoolDef_t::item_sz()'],['../structos_message_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMessageQDef_t::item_sz()'],['../structos_mail_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMailQDef_t::item_sz()']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_6d.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_6d.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_6d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_6d.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_6d.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_6d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['mail_5fid',['mail_id',['../group___c_m_s_i_s___r_t_o_s___definitions.html#ac86175a4b1706bee596f3018322df26e',1,'osEvent']]], + ['message_5fid',['message_id',['../group___c_m_s_i_s___r_t_o_s___definitions.html#af394cbe21dde7377974e63af38cd87b0',1,'osEvent']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_70.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_70.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_70.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_70.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_70.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_70.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['p',['p',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a117104b82864d3b23ec174af6d392709',1,'osEvent']]], + ['pool',['pool',['../structos_pool_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osPoolDef_t::pool()'],['../structos_message_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMessageQDef_t::pool()'],['../structos_mail_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMailQDef_t::pool()']]], + ['pool_5fsz',['pool_sz',['../structos_pool_def__t.html#ac112e786b2a234e0e45cb5bdbee53763',1,'osPoolDef_t']]], + ['pthread',['pthread',['../structos_thread_def__t.html#ad3c9624ee214329fb34e71f544a6933e',1,'osThreadDef_t']]], + ['ptimer',['ptimer',['../structos_timer_def__t.html#a15773df83aba93f8e61f3737af5fae47',1,'osTimerDef_t']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_71.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_71.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_71.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_71.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_71.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_71.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['queue_5fsz',['queue_sz',['../structos_message_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMessageQDef_t::queue_sz()'],['../structos_mail_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMailQDef_t::queue_sz()']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_73.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_73.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_73.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_73.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_73.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_73.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['signals',['signals',['../group___c_m_s_i_s___r_t_o_s___definitions.html#ad0dda1bf7e74f1576261d493fba232b6',1,'osEvent']]], + ['stacksize',['stacksize',['../structos_thread_def__t.html#a950b7f81ad4711959517296e63bc79d1',1,'osThreadDef_t']]], + ['status',['status',['../group___c_m_s_i_s___r_t_o_s___definitions.html#ad477a289f1f03ac45407b64268d707d3',1,'osEvent']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_74.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_74.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_74.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_74.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_74.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tpriority',['tpriority',['../structos_thread_def__t.html#a15da8f23c6fe684b70a73646ada685e7',1,'osThreadDef_t']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_76.html b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_76.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_76.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/search/variables_76.js b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_76.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/search/variables_76.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['v',['v',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a9e0a00edabf3b8a5dafff624fff7bbfc',1,'osEvent']]], + ['value',['value',['../group___c_m_s_i_s___r_t_o_s___definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f',1,'osEvent']]] +]; diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_mail_q_def__t.html b/Libraries/CMSIS/Documentation/RTOS/html/structos_mail_q_def__t.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_mail_q_def__t.html @@ -0,0 +1,192 @@ + + + + + +CMSIS-RTOS: osMailQDef_t Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    osMailQDef_t Struct Reference
    +
    +
    + +

    Definition structure for mail queue. + More...

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

    +Data Fields

    uint32_t queue_sz
     number of elements in the queue More...
     
    uint32_t item_sz
     size of an item More...
     
    void * pool
     memory array for mail More...
     
    +

    Description

    +
    Note
    CAN BE CHANGED: os_mailQ_def is implementation specific in every CMSIS-RTOS.
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t item_sz
    +
    + +
    +
    + +
    +
    + + + + +
    void* pool
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t queue_sz
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_mail_q_def__t.js b/Libraries/CMSIS/Documentation/RTOS/html/structos_mail_q_def__t.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_mail_q_def__t.js @@ -0,0 +1,6 @@ +var structos_mail_q_def__t = +[ + [ "item_sz", "structos_mail_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f", null ], + [ "pool", "structos_mail_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c", null ], + [ "queue_sz", "structos_mail_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_message_q_def__t.html b/Libraries/CMSIS/Documentation/RTOS/html/structos_message_q_def__t.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_message_q_def__t.html @@ -0,0 +1,192 @@ + + + + + +CMSIS-RTOS: osMessageQDef_t Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    osMessageQDef_t Struct Reference
    +
    +
    + +

    Definition structure for message queue. + More...

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

    +Data Fields

    uint32_t queue_sz
     number of elements in the queue More...
     
    uint32_t item_sz
     size of an item More...
     
    void * pool
     memory array for messages More...
     
    +

    Description

    +
    Note
    CAN BE CHANGED: os_messageQ_def is implementation specific in every CMSIS-RTOS.
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t item_sz
    +
    + +
    +
    + +
    +
    + + + + +
    void* pool
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t queue_sz
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_message_q_def__t.js b/Libraries/CMSIS/Documentation/RTOS/html/structos_message_q_def__t.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_message_q_def__t.js @@ -0,0 +1,6 @@ +var structos_message_q_def__t = +[ + [ "item_sz", "structos_message_q_def__t.html#a4c2a0c691de3365c00ecd22d8102811f", null ], + [ "pool", "structos_message_q_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c", null ], + [ "queue_sz", "structos_message_q_def__t.html#a8a83a3a8c0aa8057b13807d2a54077e0", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_mutex_def__t.html b/Libraries/CMSIS/Documentation/RTOS/html/structos_mutex_def__t.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_mutex_def__t.html @@ -0,0 +1,162 @@ + + + + + +CMSIS-RTOS: osMutexDef_t Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    osMutexDef_t Struct Reference
    +
    +
    + +

    Mutex Definition structure contains setup information for a mutex. + More...

    + + + + + +

    +Data Fields

    uint32_t dummy
     dummy value. More...
     
    +

    Description

    +
    Note
    CAN BE CHANGED: os_mutex_def is implementation specific in every CMSIS-RTOS.
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t dummy
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_mutex_def__t.js b/Libraries/CMSIS/Documentation/RTOS/html/structos_mutex_def__t.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_mutex_def__t.js @@ -0,0 +1,4 @@ +var structos_mutex_def__t = +[ + [ "dummy", "structos_mutex_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_pool_def__t.html b/Libraries/CMSIS/Documentation/RTOS/html/structos_pool_def__t.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_pool_def__t.html @@ -0,0 +1,192 @@ + + + + + +CMSIS-RTOS: osPoolDef_t Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    osPoolDef_t Struct Reference
    +
    +
    + +

    Definition structure for memory block allocation. + More...

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

    +Data Fields

    uint32_t pool_sz
     number of items (elements) in the pool More...
     
    uint32_t item_sz
     size of an item More...
     
    void * pool
     pointer to memory for pool More...
     
    +

    Description

    +
    Note
    CAN BE CHANGED: os_pool_def is implementation specific in every CMSIS-RTOS.
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t item_sz
    +
    + +
    +
    + +
    +
    + + + + +
    void* pool
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t pool_sz
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_pool_def__t.js b/Libraries/CMSIS/Documentation/RTOS/html/structos_pool_def__t.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_pool_def__t.js @@ -0,0 +1,6 @@ +var structos_pool_def__t = +[ + [ "item_sz", "structos_pool_def__t.html#a4c2a0c691de3365c00ecd22d8102811f", null ], + [ "pool", "structos_pool_def__t.html#a269c3935f8bc66db70bccdd02cb05e3c", null ], + [ "pool_sz", "structos_pool_def__t.html#ac112e786b2a234e0e45cb5bdbee53763", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_semaphore_def__t.html b/Libraries/CMSIS/Documentation/RTOS/html/structos_semaphore_def__t.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_semaphore_def__t.html @@ -0,0 +1,162 @@ + + + + + +CMSIS-RTOS: osSemaphoreDef_t Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    osSemaphoreDef_t Struct Reference
    +
    +
    + +

    Semaphore Definition structure contains setup information for a semaphore. + More...

    + + + + + +

    +Data Fields

    uint32_t dummy
     dummy value. More...
     
    +

    Description

    +
    Note
    CAN BE CHANGED: os_semaphore_def is implementation specific in every CMSIS-RTOS.
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t dummy
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_semaphore_def__t.js b/Libraries/CMSIS/Documentation/RTOS/html/structos_semaphore_def__t.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_semaphore_def__t.js @@ -0,0 +1,4 @@ +var structos_semaphore_def__t = +[ + [ "dummy", "structos_semaphore_def__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_thread_def__t.html b/Libraries/CMSIS/Documentation/RTOS/html/structos_thread_def__t.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_thread_def__t.html @@ -0,0 +1,207 @@ + + + + + +CMSIS-RTOS: osThreadDef_t Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    osThreadDef_t Struct Reference
    +
    +
    + +

    Thread Definition structure contains startup information of a thread. + More...

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

    +Data Fields

    os_pthread pthread
     start address of thread function More...
     
    osPriority tpriority
     initial thread priority More...
     
    uint32_t instances
     maximum number of instances of that thread function More...
     
    uint32_t stacksize
     stack size requirements in bytes; 0 is default stack size More...
     
    +

    Description

    +
    Note
    CAN BE CHANGED: os_thread_def is implementation specific in every CMSIS-RTOS.
    +

    Field Documentation

    + +
    +
    + + + + +
    uint32_t instances
    +
    + +
    +
    + +
    +
    + + + + +
    os_pthread pthread
    +
    + +
    +
    + +
    +
    + + + + +
    uint32_t stacksize
    +
    + +
    +
    + +
    +
    + + + + +
    osPriority tpriority
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_thread_def__t.js b/Libraries/CMSIS/Documentation/RTOS/html/structos_thread_def__t.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_thread_def__t.js @@ -0,0 +1,7 @@ +var structos_thread_def__t = +[ + [ "instances", "structos_thread_def__t.html#aa4c4115851a098c0b87358ab6c025603", null ], + [ "pthread", "structos_thread_def__t.html#ad3c9624ee214329fb34e71f544a6933e", null ], + [ "stacksize", "structos_thread_def__t.html#a950b7f81ad4711959517296e63bc79d1", null ], + [ "tpriority", "structos_thread_def__t.html#a15da8f23c6fe684b70a73646ada685e7", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_timer_def__t.html b/Libraries/CMSIS/Documentation/RTOS/html/structos_timer_def__t.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_timer_def__t.html @@ -0,0 +1,162 @@ + + + + + +CMSIS-RTOS: osTimerDef_t Struct Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-RTOS +  Version 1.02 +
    +
    CMSIS-RTOS API: Generic RTOS interface for Cortex-M processor-based devices.
    +
    +
    + +
    + +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    osTimerDef_t Struct Reference
    +
    +
    + +

    Timer Definition structure contains timer parameters. + More...

    + + + + + +

    +Data Fields

    os_ptimer ptimer
     start address of a timer function More...
     
    +

    Description

    +
    Note
    CAN BE CHANGED: os_timer_def is implementation specific in every CMSIS-RTOS.
    +

    Field Documentation

    + +
    +
    + + + + +
    os_ptimer ptimer
    +
    + +
    +
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/RTOS/html/structos_timer_def__t.js b/Libraries/CMSIS/Documentation/RTOS/html/structos_timer_def__t.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/structos_timer_def__t.js @@ -0,0 +1,4 @@ +var structos_timer_def__t = +[ + [ "ptimer", "structos_timer_def__t.html#a15773df83aba93f8e61f3737af5fae47", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/RTOS/html/sync_off.png b/Libraries/CMSIS/Documentation/RTOS/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zc$@)M1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/Libraries/CMSIS/Documentation/RTOS/html/sync_on.png b/Libraries/CMSIS/Documentation/RTOS/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zc$@)E1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/Libraries/CMSIS/Documentation/RTOS/html/tab_a.png b/Libraries/CMSIS/Documentation/RTOS/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zc%17D@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/Libraries/CMSIS/Documentation/RTOS/html/tab_b.png b/Libraries/CMSIS/Documentation/RTOS/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zc%17D@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/Libraries/CMSIS/Documentation/RTOS/html/tab_topnav.png b/Libraries/CMSIS/Documentation/RTOS/html/tab_topnav.png new file mode 100644 index 0000000000000000000000000000000000000000..b257b7780f30c0e030ee0cc9fe812dccddbe6851 GIT binary patch literal 232 zc%17D@N?(olHy`uVBq!ia0vp^EI_Qr!2~38zONMlQk(@Ik;M!Qe1}1p@p%4<6p*TP zM_)$A!%A O7(8A5T-G@yGywq5PeJzp diff --git a/Libraries/CMSIS/Documentation/RTOS/html/tabs.css b/Libraries/CMSIS/Documentation/RTOS/html/tabs.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/RTOS/html/tabs.css @@ -0,0 +1,71 @@ +.tabs, .tabs1, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 10px; +} + +.tabs1 { + background-image: url('tab_topnav.png'); + font-size: 12px; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; + line-height: 24px; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + list-style: none; +} + +.tabs1 .tablist li { + float: left; + display: table-cell; + background-image: url('tab_topnav.png'); + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/Libraries/CMSIS/Documentation/SVD/html/Access_SVD_DD_Manage.png b/Libraries/CMSIS/Documentation/SVD/html/Access_SVD_DD_Manage.png new file mode 100644 index 0000000000000000000000000000000000000000..841587ed5fca502c37a8eb8e01a21befceb77e04 GIT binary patch literal 7472 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 C{yXac diff --git a/Libraries/CMSIS/Documentation/SVD/html/Access_SVD_Vendor.png b/Libraries/CMSIS/Documentation/SVD/html/Access_SVD_Vendor.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7fc7c484ed722170d14cf2da9a4f38b9362879 GIT binary patch literal 16871 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 diff --git a/Libraries/CMSIS/Documentation/SVD/html/CMSIS-SVD_Schema_1_0.xsd b/Libraries/CMSIS/Documentation/SVD/html/CMSIS-SVD_Schema_1_0.xsd new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/CMSIS-SVD_Schema_1_0.xsd @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/CMSIS_Logo_Final.png b/Libraries/CMSIS/Documentation/SVD/html/CMSIS_Logo_Final.png new file mode 100644 index 0000000000000000000000000000000000000000..2056b7e747bf58f53e03ad845cde816fea03a4bc GIT binary patch literal 12402 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 WK}fZq0gDF+_)(Hqmn)Vr5By)Bwzk3m diff --git a/Libraries/CMSIS/Documentation/SVD/html/CMSIS_SVD_Vendor_DD.png b/Libraries/CMSIS/Documentation/SVD/html/CMSIS_SVD_Vendor_DD.png new file mode 100644 index 0000000000000000000000000000000000000000..d62f75bfaaeed5d86dc997242bce3b031d91b295 GIT binary patch literal 11010 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 PA%B$Q)MYDV%!B_I1o8nV diff --git a/Libraries/CMSIS/Documentation/SVD/html/bc_s.png b/Libraries/CMSIS/Documentation/SVD/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zc$@*G0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/Libraries/CMSIS/Documentation/SVD/html/bdwn.png b/Libraries/CMSIS/Documentation/SVD/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zc%17D@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/Libraries/CMSIS/Documentation/SVD/html/cmsis.css b/Libraries/CMSIS/Documentation/SVD/html/cmsis.css new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/cmsis.css @@ -0,0 +1,1256 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 13px; + line-height: 1.3; +} + +/* CMSIS styles */ + +.style1 { + text-align: center; +} +.style2 { + color: #0000FF; + font-weight: normal; +} +.style3 { + text-align: left; +} +.style4 { + color: #008000; +} +.style5 { + color: #0000FF; +} +.style6 { + color: #000000; + font-style:italic; +} +.mand { + color: #0000FF; +} +.opt { + color: #008000; +} +.cond { + color: #990000; +} + +.choice +{ + background-color:#F7F9D0; +} +.seq +{ + background-color:#C9DECB; +} +.group1 +{ + background-color:#F8F1F1; +} +.group2 +{ + background-color:#DCEDEA; +} + + +ul ul { + list-style-type: disc; +} + +ul ul ul { + list-style-type: disc; +} + +ul.hierarchy { + color: green; +} + +em { + color: #000000; + font-style:italic; +} + + + +/* CMSIS Tables */ +table.cmtab1 { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; + text-align: justify; + width:70%; +} + +th.cmtab1 { + background: #EBEFF6; + font-weight: bold; + height: 28px; +} + +td.cmtab1 { + padding:1px; + text-align: left; +} + +table.cmtable { + border-collapse:collapse; + text-align: justify; +} + +table.cmtable td, table.cmtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.cmtable th { + background-color: #EBEFF6; + border: 1px solid #2D4068; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + height: 28px; +} + +td.MonoTxt { + font-family:"Arial monospaced for SAP"; +} + +span.XML-Token +{ + azimuth: 180; + font-style:italic; + color:Maroon; + z-index:20; + +} + + + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3A568E; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4464A5; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9AAED5; + color: #ffffff; + border: 1px double #849CCC; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FBFCFD; + border: 1px solid #C3CFE6; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; +} + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C3CFE6; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C3CFE6; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EDF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9AAED5; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A2B4D8; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4769AD; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C3CFE6; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4464A5; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4464A5; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 0px 6px 0px; + color: #233456; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #708CC4; + border-top:1px solid #5072B7; + border-left:1px solid #5072B7; + border-right:1px solid #C3CFE6; + border-bottom:1px solid #C3CFE6; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3A568E; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #293C63; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2B4069; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #354E81; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A7B8DA; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A7B8DA; + border-bottom: 1px solid #A7B8DA; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A7B8DA; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + font-size: 90%; + color: #233456; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A7B8DA; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#889FCE; + border:solid 1px #C1CDE5; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#344D7E; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6583BF; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#344D7E; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C3CFE6; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5072B7; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #8EA4D0; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#314877; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D7DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4464A5; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/Libraries/CMSIS/Documentation/SVD/html/doxygen.png b/Libraries/CMSIS/Documentation/SVD/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 diff --git a/Libraries/CMSIS/Documentation/SVD/html/dynsections.js b/Libraries/CMSIS/Documentation/SVD/html/dynsections.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (ldjv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2cl.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2cl.png new file mode 100644 index 0000000000000000000000000000000000000000..132f6577bf7f085344904602815a260d29f55d9b GIT binary patch literal 453 zc$@*n0XqJPP)VBF;ev;toEj8_OB0EQg5eYilIj#JZG_m^33l3^k4mtzx!TVD?g)Y$ zrvwRDSqT!wLIM$dWCIa$vtxE|mzbTzu-y&$FvF6WA2a{Wr1g}`WdPT-0JzEZ0IxAv z-Z+ejZc&H;I5-pb_SUB}04j0^V)3t{`z<7asDl2Tw3w3sP%)0^8$bhEg)IOTBcRXv zFfq~3&gvJ$F-U7mpBW8z1GY~HK&7h4^YI~Orv~wLnC0PP_dAkv;nzX{9Q|8Gv=2ca z@v)c9T;D#h`TZ2X&&$ff2wedmot995de~-s3I)yauahg;7qn*?1n?F$e+PwP37}~; z1NKUk7reVK^7A;$QRW7qAx40HHUZ<|k3U%nz(Ec`#i+q9K!dgcROAlCS?`L= v>#=f?wF5ZND!1uAfQsk;KN^4&*8~0npJiJ%2dj9(00000NkvXXu0mjfWVFf_ diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2doc.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zc$@+10u}v7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2folderclosed.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zc$@)f0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2lastnode.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2link.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2link.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zc$@+10u}v7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2mlastnode.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zc$@+D015wzP)kw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2mnode.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zc$@+D015wzP)kw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2mo.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2mo.png new file mode 100644 index 0000000000000000000000000000000000000000..4bfb80f76e65815989a9350ad79d8ce45380e2b1 GIT binary patch literal 403 zc$@)~0c`$>P)${!fXv7NWJ%@%u4(KapRY>T6_x;E zxE7kt!}Tiw8@d9Sd`rTGum>z#Q14vIm`wm1#-byD1muMi02@YNO5LRF0o!Y{`a!Ya z{^&p0Su|s705&2QxmqdexG+-zNKL3f@8gTQSJrKByfo+oNJ^-{|Mn||Q5SDwjQVsS zr1}7o5-QMs>gYIMD>GRw@$lT`z4r-_m{5U#cR{urD_)TOeY)(UD|qZ^&y`IVijqk~ xs(9-kWFr7E^!lgi8GsFK5kOY_{Xbgf0^etEU%fLevs?fG002ovPDHLkV1nB&vX1}& diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2node.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2node.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2ns.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2ns.png new file mode 100644 index 0000000000000000000000000000000000000000..72e3d71c2892d6f00e259facebc88b45f6db2e35 GIT binary patch literal 388 zc$@)*0ek+5P)f+++#cT|!CkD&4pnIkeMEUEM*>`*9>+Juji$!h-mW%M^8s9957{3nvbrz^&=u<~TAUrFROkmt%^F~Ez+-c53Lv%iH3d38!Rv?K zrb&MYAhp;Gf<}wS;9ZZq2@;!uYG;=Z>~GKE^{HD4keu}lnyqhc>kWX^tQn|warJ~h zT+rtMkdz6aHoN%z(o|&wpu@@OpJnF_z{PA)6(FHw02iHslz^(N{4*+K9)QJHR87wT iTyp>aXaF{u2lxRou|^4tux6eB0000^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2pnode.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zc$@*{02=>^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2splitbar.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zc%17D@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/Libraries/CMSIS/Documentation/SVD/html/ftv2vertline.png b/Libraries/CMSIS/Documentation/SVD/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zc%17D@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__cluster_level__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__cluster_level__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__cluster_level__gr.html @@ -0,0 +1,177 @@ + + + + + +CMSIS-SVD: Cluster Level (New) + + + + + + + + + + + + +
    + +
    +
    +
    + +
    +
    +
    +
    Cluster Level (New)
    +
    +
    +

    Cluster adds a new and optional sub-level to the CMSIS SVD registers level. A cluster describes a sequence of registers within a peripheral. A cluster has an base offset relative to the base address of the peripheral. All registers within a cluster specify their address offset relative to the cluster base address. Register and cluster sections can occur in an arbitrary order. This feature, targeted at the generation of device header files, is useful to create a C data structure within the peripheral structure type, rather than describing all registers of a peripheral in a flat structure.

    +
    +
    +<registers> 
        <cluster derivedFrom=identifierType>
    +    
    +        <!-- dimElementGroup --> 
    +        <dim>scaledNonNegativeInteger</dim>
    +        <dimIncrement>scaledNonNegativeInteger</dimIncrement>
    +        <dimIndex>dimIndexType</dimIndex>
    +        <!-- end of dimElementGroup --> 
    +    
    +        <name>identifierType</name>
    +        <description>xs:string</description>
    +    
    +        <headerStructName>identifierType</headerStructName>
    +        <alternateCluster>identifierType</alternateCluster>
    +    
    +        <addressOffset>scaledNonNegativeInteger</addressOffset>
            <register>
    +            ...
    +        </register>
    +    </cluster>
    +    ...
    +    <register>
    +        ...
    +    </register>
    +    <cluster>
    +        ...
    +    </cluster>
    +     
    +<registers> 
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Attribute Name Description Type Occurrence
    derivedFrom Specifies the name of the cluster from which to inherit the data. Elements being specified underneath will override the inherited values.
    +Remarks: When deriving a cluster, it is mandatory to specify at least the name, the description, and the addressOffset.
    registerType 0..1
    Element Name Description Type Occurrence
    See dimElementGroup for details.
    dimIncrement The value defines the number of elements in an array of clusters. scaledNonNegativeInteger 1..1
    dimIncrement If dim is specified, this element becomes mandatory. The element specifies the address increment in between two neighboring clusters of the cluster array in the address map. scaledNonNegativeInteger 1..1
    dimIndex Specifies the substrings that replaces the [%s] placeholder within the cluster name. By default, the index is a decimal value starting with 0 for the first cluster element. dimIndexType 0..1
    name String that identifies the cluster. Register names are required to be unique within the scope of a peripheral. Specify [%s] for generating an array in the device header file. identifierType 1..1
    description String describing the details of the register. xs:string 0..1
    alternateCluster This tag needs to specify the name of the original description of the register sequence if this cluster provides an alternative description. Otherwise the SVDConv will issue errors. identifierType 0..1
    headerStructName This tag specifies the struct type name in the device header file. If not specified, then the name of the cluster will be used. identifierType 0..1
    addressOffset Value defining the cluster address relative to the baseAddress defined by the peripheral of the register. scaledNonNegativeInteger 1..1
    +

    +Example:

    +
    <cluster>
    +
    <dim>4</dim>
    +
    <dimIncrement>8</dimIncrement>
    +
    <dimIndex>0-3</dimIndex>
    +
    <name>TX[%s]</name>
    +
    <description>Grouping of Transfer data and address</description>
    +
    <addressOffset>0x40</addressOffset>
    +
    <register>
    +
    <name>TX_DATA</name>
    +
    ...
    +
    <addressOffset>0x0</addressOffset>
    +
    ...
    +
    </register>
    +
    <register>
    +
    <name>TX_ADDR</name>
    +
    ...
    +
    <addressOffset>0x4</addressOffset>
    +
    ...
    +
    </register>
    +
    </cluster>
    +

    The example above describes an array of type TX with 4 elements. TX is a cluster of two consecutive registers with 4 elements. The device header file looks like this:

    +
    typedef struct {
    +
    ...
    +
    struct {
    +
    __IO uint32_t TX_DATA;
    +
    __IO uint32_t TX_ADDR;
    +
    } TX[4];
    +
    ...
    +
    } ..._Type;
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__cpu_section__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__cpu_section__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__cpu_section__gr.html @@ -0,0 +1,150 @@ + + + + + +CMSIS-SVD: CPU Section (New) + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    The CPU section describes the processor included in the microcontroller device. This section is mandatory if the SVD file shall be used for the device header file generation.

    +
    +<cpu>
    +    <name>cpuNameType<name>
    +    <revision>revisionType<revision>
    +    <endian>endianType<endian>
    +    <mpuPresent>xs:boolean<mpuPresent>
    +    <fpuPresent>xs:boolean<fpuPresent>
    +    <vtorPresent>xs:boolean<vtorPresent>
    +    <nvicPrioBits>scaledNonNegativeInteger<nvicPrioBits>
    +    <vendorSystickConfig>xs:boolean<vendorSystickConfig>
    +</cpu>
    +
    + + + + + + + + + + + + + + + + + + +
    Element Name Description Type Occurrence
    name The predefined tokens are:
      +
    • CM0: ARM Cortex-M0
    • +
    • CM0PLUS: ARM Cortex-M0+
    • +
    • CM3: ARM Cortex-M3
    • +
    • CM4: ARM Cortex-M4
    • +
    • SC000: ARM Secure Core SC000
    • +
    • SC300: ARM Secure Core SC300
    • +
    • other: other processor architectures
    • +
    +
    cpuNameType 1..1
    revisionType Defines the HW revision of the processor. The defined version format is rNpM (N,M = [0 - 9]). revisionType 1..1
    endian Defines the endianess of the processor being one of:
      +
    • little: little endian memory (least significant byte gets allocated at the lowest address).
    • +
    • big: byte invariant big endian data organization (most significant byte gets allocated at the lowest address).
    • +
    • selectable: little and big endian are configurable for the device and become active after the next reset.
    • +
    • other: the endianess is neither little nor big endian.
    • +
    +
    endianType 1..1
    mpuPresent Indicates that the processor is equipped with a memory protection unit (MPU). This tag is either set to true or false, 1 or 0. boolean 1..1
    fpuPresent Indicates that the processor is equipped with a hardware floating point unit (FPU). Cortex-M4 is the only available Cortex-M processor with an optional FPU. This tag is either set to true or false, 1 or 0. boolean 1..1
    vtorPresent This is an optional flag used for the Cortex-M0+ based devices only. It indicates whether the Vector Table Offset Register (VTOR) is implemented in the Cortex-M0+ device or not. This tag is either set to true or false, 1 or 0. If it is not specified VTOR is assumed to be present. boolean 1..1
    nvicPrioBits Defines the number of bits that are available in the Nested Vectored Interrupt Controller (NVIC) for configuring the priority. scaledNonNegativeInteger 1..1
    vendorSystickConfig Indicates whether the processor implements a vendor-specific System Tick Timer. If false, then the ARM defined System Tick Timer is available. If true, then a vendor-specific System Tick Timer must be implemented. This tag is either set to true or false, 1 or 0. boolean 1..1
    +

    +Example:

    +
    ...
    +
    <cpu>
    +
    <name>CM4</name>
    +
    <revision>r0p0</revision>
    +
    <endian>little</endian>
    +
    <mpuPresent>true</mpuPresent>
    +
    <fpuPresent>true</fpuPresent>
    +
    <nvicPrioBits>4</nvicPrioBits>
    +
    <vendorSystickConfig>false</vendorSystickConfig>
    +
    </cpu>
    +
    ...
    +

    This example describes a Cortex-M4 core of HW revision r0p0, with fixed little endian memory scheme, including Memory Protection Unit and hardware Floating Point Unit. The Nested Vectored Interrupt Controller uses 4 bits for configuring the priority of an interrupt. It is equipped with the standard System Tick Timer as defined by ARM.

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__device_section_extensions__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__device_section_extensions__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__device_section_extensions__gr.html @@ -0,0 +1,149 @@ + + + + + +CMSIS-SVD: Extensions to the Device Section + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Extensions to the Device Section
    +
    +
    +

    A number of elements have been added to the device section. These elements are optional but are highly recommended to enable the generation of consistent and CMSIS-compliant device header files from SVD descriptions.

    +
    +<device schemaVersion="xs:decimal" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd">
    +    <vendor>stringType</vendor>
    +    <vendorID>stringType</vendorID>
    +    <name>identifierType</name>
    +    <series>stringType</series>
    +    <version>xs:string</version>
    +    <description>xs:string</description>
    +    <licenseText>xs:string</licenseText>
    +    <cpu>cpuType</cpu>
    +    <headerSystemFilename>identifierType</headerSystemFilename>
    +    <headerDefinitionsPrefix>identifierType</headerDefinitionsPrefix>
    +
    +    ...
    +</device>
    +
    +
    + + + + + + + + + + + + + + +
    Element Name Description Type Occurrence
    vendor This specifies the vendor of the device using the full name. stringType 0..1
    vendorID This specifies the vendor of the device using the vendor abbreviation that does not contain any spaces or special characters. This information shall be used for defining the directory. stringType 0..1
    series This element specifies the name of the device series. stringType 0..1
    licenseText The content of this tag will be copied into the header section of the generated device header file and shall contain the legal disclaimer. New lines can be inserted by using "\n". This section is mandatory if the SVD file shall be used for generating the device header file. stringType 0..1
    headerSystemFilename This tag specifies the file name (without extension) of the device-specific system include file (system_<device>.h; See CMSIS-Core description). This tag is used by the header file generator for customizing the include statement referencing the CMSIS system file within the CMSIS device header file. By default, the filename is "<kbd>system_<i>device:name</i>.h". In cases where a device series shares a single system header file, the name of the series shall be used instead of the individual device name. identifierType 0..1
    headerDefinitionsPrefix The element specifies the string being prepended to all type definition names generated in the CMSIS-Core device header file. This is used if the silicon vendor's software requires vendor-specific types in order to avoid name clashes with other definied types. identifierType 0..1
    +

    +Example:

    +
    ...
    +
    <device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd">
    +
    <vendor>Advanced RISC Machines</vendor>
    +
    <vendorID>ARM</vendorID>
    +
    ...
    +
    <series>ARMCM3</series>
    +
    ...
    +
    <licenseText>
    +
    ARM Limited (ARM) is supplying this software for use with Cortex-M \n
    +
    processor based microcontrollers. This file can be freely distributed \n
    +
    within development tools that are supporting such ARM based processors. \n
    +
    \n
    +
    THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED \n
    +
    OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF \n
    +
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. \n
    +
    ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR \n
    +
    CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
    +
    </licenseText>
    +
    ...
    +
    <headerSystemFilename>system_ARMCM4</headeSystemFilename>
    +
    <headerDefinitionsPrefix>ARM_</headerDefinitionsPrefix>
    +
    ...
    +
    </device>
    +
    ...
    +

    This example describes a device from the vendor Advanced RISC Machines using ARM as short name. The device belongs to the device family identified by ARMCM4. The legal disclaimer in the header files generated from this description is captured and formatted in accordance to the standard ARM CMSIS disclaimer. The CMSIS system file included by the generated device header file is named system_ARMCM4.h and all type definitions will be prepended with ARM_.

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__dim_element_group__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__dim_element_group__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__dim_element_group__gr.html @@ -0,0 +1,120 @@ + + + + + +CMSIS-SVD: dimElementGroup + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    dimElementGroup
    +
    +
    +

    The SVD specification supports the array-of-registers concept. The single register description gets duplicated automatically into an array. The size of the array is specified by the <dim> element. The register names can be composed by the register name and an index-specific substring defined in <dimIndex>. The <dimIncrement> specifies the address offset between two registers. The elements below can be used to generate an array of registers.

    + + + + + + + + + +
    Element Name Description Type Occurrence
    dim The value defines the number of elements in an array of registers. scaledNonNegativeInteger 1..1
    dimIncrement If dim is specified, this element becomes mandatory. The element specifies the address increment in between two neighboring registers of the register array in the address map. scaledNonNegativeInteger 1..1
    dimIndex Specifies the substrings that replaces the %s placeholder within the register name. By default, the index is a decimal value starting with 0 for the first register. dimIndexType 0..1
    +

    +Examples:

    +
    ...
    +
    <register>
    +
    <dim>6</dim>
    +
    <dimIncrement>4</dimIncrement>
    +
    <dimIndex>A,B,C,D,E,Z</dimIndex>
    +
    <name>GPIO_%s_CTRL</name>
    +
    ...
    +
    </register>
    +

    The code above generates: => GPIO_A_CTRL, GPIO_B_CTRL, GPIO_C_CTRL, GPIO_D_CTRL, GPIO_E_CTRL, GPIO_Z_CTRL

    +
    ...
    +
    <register>
    +
    <dim>4</dim>
    +
    <dimIncrement>4</dimIncrement>
    +
    <dimIndex>3-6</dimIndex>
    +
    <name>IRQ%s</name>
    +
    ...
    +
    </register>
    +

    The example above generates: => IRQ3, IRQ4, IRQ5, IRQ6

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__elem__type__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__elem__type__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__elem__type__gr.html @@ -0,0 +1,100 @@ + + + + + +CMSIS-SVD: Element Groups + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    Element Groups
    +
    +
    + + + + + + +

    +Content

     dimElementGroup
     
     registerPropertiesGroup
     
    +

    Description

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__elem__type__gr.js b/Libraries/CMSIS/Documentation/SVD/html/group__elem__type__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__elem__type__gr.js @@ -0,0 +1,5 @@ +var group__elem__type__gr = +[ + [ "dimElementGroup", "group__dim_element_group__gr.html", null ], + [ "registerPropertiesGroup", "group__register_properties_group__gr.html", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__peripheral_section_extensions__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__peripheral_section_extensions__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__peripheral_section_extensions__gr.html @@ -0,0 +1,116 @@ + + + + + +CMSIS-SVD: Extensions to the Peripheral Section + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Extensions to the Peripheral Section
    +
    +
    +

    The following elements have been added to the peripheral section. All new elements are optional but are highly recommended to enable the generation of consistent and CMSIS-compliant device header files from SVD descriptions.

    + + + + + + + +
    Element Name Description Type Occurrence
    alternatePeripheral All address blocks in the memory space of a device are assigned to a unique peripheral by default. If there are multiple peripherals describing the same address blocks, this needs to be specified explicitly. A peripheral redefining an address block needs to specify the name of the peripheral that is listed first in the description. If no alternate peripheral is specified, then the SVDConv utility will generate errors. identifierType 0..1
    headerStructName The header file generator uses the name of a peripheral as the base name for the C structure type. If this element is specfied, then this string is used instead of the peripheral name. This is particularly useful when multiple peripherals get derived from a peripheral description and a generic type name shall be used. identifierType 0..1
    +

    +Example:

    +
    <peripheral>
    +
    <name>Timer1</name>
    +
    <version>1.0</version>
    +
    <description>Timer 1 is a standard timer ... </description>
    +
    <baseAddress>0x40002000</baseAddress>
    +
    ...
    +
    </peripheral>
    +
    <peripheral>
    +
    <name>Timer1_Alt</name>
    +
    <version>1.0</version>
    +
    <description>Alternate Timer 1 is a special timer execution mode ... </description>
    +
    <baseAddress>0x40002000</baseAddress>
    +
    <alternatePeripheral>Timer1</alternatePeripheral>
    +
    ...
    +
    </peripheral>
    +

    Two timer peripheral descriptions are specified for the same memory block. No redefined addresses will be reported for both peripherals.

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__register_properties_group__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__register_properties_group__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__register_properties_group__gr.html @@ -0,0 +1,111 @@ + + + + + +CMSIS-SVD: registerPropertiesGroup + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    registerPropertiesGroup
    +
    +
    +

    Register properties can be set on device, peripheral, and register level. Element values defined on a lower level overwrite element values defined on a more general level. For example, the register-level.<size> will overwrite peripheral-level.<size>. Elements that have not been defined on a more general level, must be defined at register level at the latest.

    + + + + + + + + + + + +
    Element Name Description Type Occurrence
    size Defines the default bit-width of any register contained in the device (implicit inheritance). This element can be redefined on any lower level of the description using the size element there. scaledNonNegativeInteger 0..1
    access Defines the default access rights for all registers. Access rights can be redefined on any lower level of the description using the access element there.
    +
    + The predefined tokens are:
      +
    • read-only: read access is permitted. Write operations have an undefined result.
    • +
    • write-only: write access is permitted. Read operations have an undefined result.
    • +
    • read-write: both read and write accesses are permitted. Writes affect the state of the register and reads return a value related to the register.
    • +
    • writeOnce: only the first write after reset has an effect on the register. Read operations deliver undefined results.
    • +
    • read-writeOnce: Read operations deliver a result related to the register content. Only the first write access to this register after a reset will have an effect on the register content.
    • +
    +
    accessType 0..1
    resetValue Defines the default value for all registers at RESET. The default register value can be redefined on any lower level using the resetValue element there. The actual reset value is calculated from the resetValue and the resetMask. The mask is used to specify bits with an undefined reset value. scaledNonNegativeInteger 0..1
    resetMask Identifies which register bits have a defined reset value. These bit positions are set to one. Bit positions with an undefined reset value are set to zero. scaledNonNegativeInteger 0..1
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__register_section_extensions__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__register_section_extensions__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__register_section_extensions__gr.html @@ -0,0 +1,146 @@ + + + + + +CMSIS-SVD: Extensions to the Register Section + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Extensions to the Register Section
    +
    +
    +

    The following elements have been added to the register section. All new elements are optional.

    + + + + + + + +
    Element Name Description Type Occurrence
    alternateRegister This tag can reference a register that has been defined above to current location in the description and that describes the memory location already. This tells the SVDConv's address checker that the redefinition of this particular register is intentional. The register name needs to be unique within the scope of the current peripheral. A register description is defined either for a unique address location or could be a redefinition of an already described address. In the latter case, the register can be either marked alternateRegister and needs to have a unique name, or it can have the same register name but is assigned to a register subgroup through the tag alternateGroup (specified in version 1.0). identifierType 0..1
    dataType It can be useful to assign a specific native C datatype to a register. This helps avoiding type casts. For example, if a 32 bit register shall act as a pointer to a 32 bit unsigned data item, then dataType can be set to "uint32_t *". The following simple data types are predefined:
      +
    • uint8_t: unsigned byte
    • +
    • uint16_t: unsigned half word
    • +
    • uint32_t: unsigned word
    • +
    • uint64_t: unsigned double word
    • +
    • int8_t: signed byte
    • +
    • int16_t: signed half word
    • +
    • int32_t: signed world
    • +
    • int64_t: signed double word
    • +
    • uint8_t *: pointer to unsigned byte
    • +
    • uint16_t *: pointer to unsigned half word
    • +
    • uint32_t *: pointer to unsigned word
    • +
    • uint64_t *: pointer to unsigned double word
    • +
    • int8_t *: pointer to signed byte
    • +
    • int16_t *: pointer to signed half word
    • +
    • int32_t *: pointer to signed world
    • +
    • int64_t *: pointer to signed double word
    • +
    +
    dataTypeType 0..1
    +

    +Example:

    +
    ...
    +
    <register>
    +
    <name>TIM_MODEA</name>
    +
    <description>In mode A this register acts as a reload value</description>
    +
    <addressOffset>0xC</addressOffset>
    +
    </register>
    +
    <register>
    +
    <name>TIM_MODEB</name>
    +
    <description>In mode B this register acts as the compare value</description>
    +
    <alternateRegister>TIM_MODEA</alternateRegister>
    +
    <addressOffset>0xC</addressOffset>
    +
    </register>
    +
    <register>
    +
    <name>DMA_DATA</name>
    +
    <description>This register contains the address of the data being transferred</description>
    +
    <dataType>uint32_t *</dataType>
    +
    <addressOffset>0xf0</addressOffset>
    +
    </register>
    +
    ...
    +

    This example describes two registers, TIM_MODEA and TIM_MODEB. Both have the same address offset. Based on the configured operation model being A or B, the register acts as reload or compare value. The register DMA_DATA is specified as a pointer to unsigned word data. The code generated for the device header file is:

    +
    typedef struct {
    +
    union {
    +
    __IO uint32_t TIM_MODEA;
    +
    __IO uint32_t TIM_MODEB;
    +
    };
    +
    __IO uint32_t * DMA_DATA;
    +
    ...
    +
    } <peripheral:name>_Type;
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__schema__1__1__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__schema__1__1__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__schema__1__1__gr.html @@ -0,0 +1,612 @@ + + + + + +CMSIS-SVD: CMSIS-SVD Schema File Ver. 1.1 (draft) + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    CMSIS-SVD Schema File Ver. 1.1 (draft)
    +
    +
    +
    <?xml version="1.0" encoding="UTF-8"?>
    +<!-- 
    +  date: 04.07.2012
    +
    +  Copyright (C) 2011 - 2012 ARM Limited. All rights reserved.
    +
    +  Redistribution and use in source and binary forms, with or without
    +  modification, are permitted provided that the following conditions are met:
    +   - Redistributions of source code must retain the above copyright
    +     notice, this list of conditions and the following disclaimer.
    +   - Redistributions in binary form must reproduce the above copyright
    +     notice, this list of conditions and the following disclaimer in the
    +     documentation and/or other materials provided with the distribution.
    +   - Neither the name of ARM nor the names of its contributors may be used 
    +     to endorse or promote products derived from this software without 
    +     specific prior written permission.
    +
    +  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
    +  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
    +  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +  ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
    +  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
    +  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
    +  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
    +  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
    +  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +  POSSIBILITY OF SUCH DAMAGE.
    +
    +  This is CMSIS-SVD version 1.1
    +  For backward compatibility all additional tags have been made optional.
    +  Extensions may be mandatory for successful device header file generation
    +  Other changes are related to some restructuring of the schema.
    +  
    +  Note that the memory section has been removed since this would limit the
    +  reuse of descriptions for a series of devices.
    + -->
    +
    +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.1">
    +  <!-- stringType requires a none empty string of a least one character length -->
    +  <xs:simpleType name="stringType">
    +    <xs:restriction base="xs:string">
    +      <xs:minLength value="1"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- cpuType specifies a selection of Cortex-M and Secure-Cores. This list will get extended as new processors are released -->
    +  <xs:simpleType name="cpuNameType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="CM0"/>
    +      <xs:enumeration value="CM0PLUS"/>
    +      <xs:enumeration value="CM0+"/>
    +      <xs:enumeration value="SC000"/>
    +      <xs:enumeration value="CM3"/>
    +      <xs:enumeration value="SC300"/>
    +      <xs:enumeration value="CM4"/>
    +      <xs:enumeration value="other"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- revisionType specifies the CPU revision format as defined by ARM (rNpM) -->
    +  <xs:simpleType name="revisionType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="r[0-9]p[0-9]"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- EndianType pre-defines the tokens for specifying the endianess of the device -->
    +  <xs:simpleType name="endianType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="little"/>
    +      <xs:enumeration value="big"/>
    +      <xs:enumeration value="selectable"/>
    +      <xs:enumeration value="other"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- dataType pre-defines the tokens in line with CMSIS data type definitions -->
    +  <xs:simpleType name="dataTypeType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="uint8_t"/>
    +      <xs:enumeration value="uint16_t"/>
    +      <xs:enumeration value="uint32_t"/>
    +      <xs:enumeration value="uint64_t"/>
    +      <xs:enumeration value="int8_t"/>
    +      <xs:enumeration value="int16_t"/>
    +      <xs:enumeration value="int32_t"/>
    +      <xs:enumeration value="int64_t"/>
    +      <xs:enumeration value="uint8_t *"/>
    +      <xs:enumeration value="uint16_t *"/>
    +      <xs:enumeration value="uint32_t *"/>
    +      <xs:enumeration value="uint64_t *"/>
    +      <xs:enumeration value="int8_t *"/>
    +      <xs:enumeration value="int16_t *"/>
    +      <xs:enumeration value="int32_t *"/>
    +      <xs:enumeration value="int64_t *"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- nvicPrioBitsType specifies the integer value range for the number of bits used in NVIC to encode priority levels -->
    +  <xs:simpleType name="nvicPrioBitsType">
    +    <xs:restriction base="xs:integer">
    +      <xs:minInclusive value="2"/>
    +      <xs:maxInclusive value="8"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- identifierType specifies the subset and sequence of characters used for specifying identifiers within the description. -->
    +  <!-- this is particularly important as these are used in ANSI C Structures during the device header file generation -->
    +  <xs:simpleType name="identifierType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="((%s)[_A-Za-z]{1}[_A-Za-z0-9]*)|([_A-Za-z]{1}[_A-Za-z0-9]*(\[%s\])?)|([_A-Za-z]{1}[_A-Za-z0-9]*(%s)?[_A-Za-z0-9]*)"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- enumerationNameType specifies the subset and sequence of characters used for specifying names of enumeratedValues. -->
    +  <!-- this is particularly important as these are used in ANSI C Structures during the device header file generation -->
    +  <xs:simpleType name="enumerationNameType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="[_A-Za-z0-9]*"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <!-- dimIndexType specifies the subset and sequence of characters used for specifying the sequence of indices in register arrays -->
    +  <xs:simpleType name="dimIndexType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="[0-9]+\-[0-9]+|[A-Z]-[A-Z]|[_0-9a-zA-Z]+(,\s*[_0-9a-zA-Z]+)+"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- scaledNonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimar format -->
    +  <xs:simpleType name="scaledNonNegativeInteger">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="[+]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- enumeratedValueDataType specifies the number formats for the values in enumeratedValues -->
    +  <xs:simpleType name="enumeratedValueDataType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="[+]?(0x|0X|#)?[0-9a-fxA-FX]+"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- accessType specfies the pre-defined tokens for the available accesses -->
    +  <xs:simpleType name="accessType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="read-only"/>
    +      <xs:enumeration value="write-only"/>
    +      <xs:enumeration value="read-write"/>
    +      <xs:enumeration value="writeOnce"/>
    +      <xs:enumeration value="read-writeOnce"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- modifiedWriteValuesType specifies the pre-defined tokens for the write side effects -->
    +  <xs:simpleType name="modifiedWriteValuesType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="oneToClear"/>
    +      <xs:enumeration value="oneToSet"/>
    +      <xs:enumeration value="oneToToggle"/>
    +      <xs:enumeration value="zeroToClear"/>
    +      <xs:enumeration value="zeroToSet"/>
    +      <xs:enumeration value="zeroToToggle"/>
    +      <xs:enumeration value="clear"/>
    +      <xs:enumeration value="set"/>
    +      <xs:enumeration value="modify"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- readAction type specifies the pre-defined tokens for read side effects -->
    +  <xs:simpleType name="readActionType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="clear"/>
    +      <xs:enumeration value="set"/>
    +      <xs:enumeration value="modify"/>
    +      <xs:enumeration value="modifyExternal"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- enumUsageType specifies the pre-defined tokens for selecting what access types an enumeratedValues set is associated with -->
    +  <xs:simpleType name="enumUsageType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="read"/>
    +      <xs:enumeration value="write"/>
    +      <xs:enumeration value="read-write"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- bitRangeType specifies the bit numbers to be restricted values from 0 - 69 -->
    +  <xs:simpleType name="bitRangeType">
    +    <xs:restriction base="xs:token">
    +      <xs:pattern value="\[([0-4])?[0-9]:([0-4])?[0-9]\]"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +  <!-- writeContraintType specifies how to describe the restriction of the allowed values that can be written to a resource -->
    +  <xs:complexType name="writeConstraintType">
    +    <xs:choice>
    +      <xs:element name="writeAsRead" type="xs:boolean"/>
    +      <xs:element name="useEnumeratedValues" type="xs:boolean"/>
    +      <xs:element name="range">
    +        <xs:complexType>
    +          <xs:sequence>
    +            <xs:element name="minimum" type="scaledNonNegativeInteger"/>
    +            <xs:element name="maximum" type="scaledNonNegativeInteger"/>
    +          </xs:sequence>
    +        </xs:complexType>
    +      </xs:element>
    +    </xs:choice>
    +  </xs:complexType>
    +  <!-- addressBlockType specifies the elements to describe an address block -->
    +  <xs:complexType name="addressBlockType">
    +    <xs:sequence>
    +      <xs:element name="offset" type="scaledNonNegativeInteger"/>
    +      <xs:element name="size" type="scaledNonNegativeInteger"/>
    +      <xs:element name="usage">
    +        <xs:simpleType>
    +          <xs:restriction base="xs:token">
    +            <xs:enumeration value="registers"/>
    +            <xs:enumeration value="buffer"/>
    +            <xs:enumeration value="reserved"/>
    +          </xs:restriction>
    +        </xs:simpleType>
    +      </xs:element>
    +    </xs:sequence>
    +  </xs:complexType>
    +  <!-- interruptType specifies how to describe an interrupt associated with a peripheral -->
    +  <xs:complexType name="interruptType">
    +    <xs:sequence>
    +      <xs:element name="name" type="stringType"/>
    +      <xs:element name="description" type="xs:string" minOccurs="0"/>
    +      <xs:element name="value" type="xs:integer"/>
    +    </xs:sequence>
    +  </xs:complexType>
    +  <!-- register properties group specifies register size, access permission and reset value 
    +       this is used in multiple locations. Settings are inherited downstream. -->  
    +  <xs:group name="registerPropertiesGroup">
    +    <xs:sequence>
    +      <xs:element name="size" type="scaledNonNegativeInteger" minOccurs="0"/>
    +      <xs:element name="access" type="accessType" minOccurs="0"/>
    +      <xs:element name="resetValue" type="scaledNonNegativeInteger" minOccurs="0"/>
    +      <xs:element name="resetMask" type="scaledNonNegativeInteger" minOccurs="0"/>
    +    </xs:sequence>
    +  </xs:group>
    +  <!-- bitRangeLsbMsbStyle specifies the bit position of a field within a register 
    +       by specifying the least significant and the most significant bit position -->
    +  <xs:group name="bitRangeLsbMsbStyle">
    +    <xs:sequence>
    +      <xs:element name="lsb"  type="scaledNonNegativeInteger"/>
    +      <xs:element name="msb"  type="scaledNonNegativeInteger"/>
    +    </xs:sequence>
    +  </xs:group>
    +  <!-- bitRangeOffsetWidthStyle specifies the bit position of a field within a register
    +       by specifying the least significant bit position and the bitWidth of the field -->
    +  <xs:group name="bitRangeOffsetWidthStyle">
    +    <xs:sequence>
    +      <xs:element name="bitOffset" type="scaledNonNegativeInteger"/>
    +      <xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/>   
    +    </xs:sequence> 
    +  </xs:group>
    +  <!-- dimElementGroup specifies the number of array elements (dim), the address offset
    +       between to consecutive array elements and an a comma seperated list of strings 
    +       being used for identifying each element in the array -->
    +  <xs:group name="dimElementGroup">
    +    <xs:sequence>
    +      <xs:element name="dim" type="scaledNonNegativeInteger"/>
    +      <xs:element name="dimIncrement" type="scaledNonNegativeInteger"/>
    +      <xs:element name="dimIndex" type="dimIndexType" minOccurs="0"/>
    +    </xs:sequence>
    +  </xs:group>
    +
    +  <xs:complexType name="cpuType">
    +    <xs:sequence>
    +      <!-- V1.1: ARM processor name: Cortex-Mx / SCxxx -->
    +      <xs:element name="name" type="cpuNameType"/>
    +      <!-- V1.1: ARM defined revision of the cpu -->
    +      <xs:element name="revision" type="revisionType"/>
    +      <!-- V1.1: Endian specifies the endianess of the processor/device -->
    +      <xs:element name="endian" type="endianType"/>
    +      <!-- V1.1: mpuPresent specifies whether or not a memory protection unit is physically present -->
    +      <xs:element name="mpuPresent" type="xs:boolean"/>
    +      <!-- V1.1: fpuPresent specifies whether or not a floating point hardware unit is physically present -->
    +      <xs:element name="fpuPresent" type="xs:boolean"/>
    +      <!-- V1.1: vtorPresent is used for Cortex-M0+ based devices only. It indicates whether the Vector Table Offset
    +                 Register is implemented in the device or not -->				   
    +      <xs:element name="vtorPresent" type="xs:boolean" minOccurs="0"/>
    +      <!-- V1.1: nvicPrioBits specifies the number of bits used by the Nested Vectored Interrupt Controller
    +                 for defining the priority level = # priority levels -->
    +      <xs:element name="nvicPrioBits" type="scaledNonNegativeInteger"/>
    +      <!-- V1.1: vendorSystickConfig is set true if a custom system timer is implemented in the device 
    +                   instead of the ARM specified SysTickTimer -->
    +      <xs:element name="vendorSystickConfig" type="xs:boolean"/>
    +    </xs:sequence>
    +  </xs:complexType>
    +
    +  <xs:complexType name="enumeratedValuesType">
    +    <xs:sequence>
    +      <!-- name specfies a reference to this enumeratedValues section for reuse purposes
    +           this name does not appear in the System Viewer nor the Header File. -->
    +      <xs:element name="name" type="enumerationNameType" minOccurs="0"/>
    +      <!-- usage specifies whether this enumeration is to be used for read or write or 
    +                                                       (read and write) accesses -->
    +      <xs:element name="usage" type="enumUsageType" minOccurs="0"/>
    +      <!-- enumeratedValue derivedFrom=<identifierType> -->
    +      <xs:element name="enumeratedValue" minOccurs="1" maxOccurs="unbounded">
    +        <xs:complexType>
    +          <xs:sequence>
    +            <!-- name is a ANSI C indentifier representing the value (C Enumeration) -->
    +            <xs:element name="name" type="enumerationNameType"/>
    +            <!-- description contains the details about the semantics/behavior specified by this value -->
    +            <xs:element name="description" type="stringType" minOccurs="0"/>
    +            <xs:choice>
    +              <xs:element name="value" type="enumeratedValueDataType"/>
    +              <!-- isDefault specifies the name and description for all values that are not
    +                   specifically described individually -->
    +              <xs:element name="isDefault" type="xs:boolean"/>
    +            </xs:choice>
    +          </xs:sequence>
    +        </xs:complexType>
    +      </xs:element>
    +    </xs:sequence>
    +    <xs:attribute name="derivedFrom" type="enumerationNameType" use="optional"/>
    +  </xs:complexType>
    +
    +  <xs:complexType name="fieldType">
    +    <xs:sequence>
    +      <!-- name specifies a field's name. The System Viewer and the device header file will
    +           use the name of the field as identifier -->
    +      <xs:element name="name" type="identifierType"/>
    +      <!-- description contains reference manual level information about the function and 
    +           options of a field -->
    +      <xs:element name="description" type="stringType" minOccurs="0"/>
    +      <!-- alternative specifications of the bit position of the field within the register -->
    +      <xs:choice minOccurs="1" maxOccurs="1">
    +        <!-- bit field described by lsb followed by msb tag -->
    +        <xs:group ref="bitRangeLsbMsbStyle"/>
    +        <!-- bit field described by bit offset relative to Bit0 + bit width of field -->
    +        <xs:group ref="bitRangeOffsetWidthStyle"/>
    +        <!-- bit field described by [<msb>:<lsb>] -->
    +        <xs:element name="bitRange" type="bitRangeType"/>
    +      </xs:choice>
    +      <!-- access describes the predefined permissions for the field. -->
    +      <xs:element name="access" type="accessType" minOccurs="0"/>
    +      <!-- predefined description of write side effects -->
    +      <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
    +      <!-- writeContstraint specifies the subrange of allowed values -->
    +      <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
    +      <!-- readAction specifies the read side effects. -->
    +      <xs:element name="readAction" type="readActionType" minOccurs="0"/>
    +      <!-- enumeratedValues derivedFrom=<identifierType> -->
    +      <xs:element name="enumeratedValues" type="enumeratedValuesType" minOccurs="0" maxOccurs="2">
    +      </xs:element>
    +    </xs:sequence>
    +    <xs:attribute name="derivedFrom" type="identifierType" use="optional"/>
    +  </xs:complexType>
    +
    +  <xs:complexType name="fieldsType">
    +    <xs:sequence>
    +      <!-- field derivedFrom=<identifierType> -->
    +      <xs:element name="field" type="fieldType" minOccurs="1" maxOccurs="unbounded"/>
    +    </xs:sequence>
    +  </xs:complexType>
    +
    +  <xs:complexType name="registerType">
    +    <xs:sequence>
    +      <xs:group    ref="dimElementGroup" minOccurs="0"/>
    +      <!-- name specifies the name of the register. The register name is used by System Viewer and
    +                                     device header file generator to represent a register -->
    +      <xs:element name="name" type="identifierType"/>
    +      <!-- display name specifies a register name without the restritions of an ANSIS C identifier.
    +                                     The use of this tag is discouraged because it does not allow consistency between
    +                                     the System View and the device header file. -->
    +      <xs:element name="displayName" type="stringType" minOccurs="0"/>
    +      <!-- description contains a reference manual level description about the register and it's purpose -->
    +      <xs:element name="description" type="stringType" minOccurs="0"/>
    +      <xs:choice>
    +        <!-- alternateGroup specifies the identifier of the subgroup a register belongs to.
    +                                       This is useful if a register has a different description per mode but a single name -->
    +        <xs:element name="alternateGroup" type="identifierType" minOccurs="0"/>
    +        <!-- V1.1: alternateRegister specifies an alternate register description for an address that is
    +                                       already fully described. In this case the register name must be unique within the peripheral -->
    +        <xs:element name="alternateRegister" type="identifierType" minOccurs="0"/>
    +      </xs:choice>
    +      <!-- addressOffset describes the address of the register relative to the baseOffset of the peripheral -->
    +      <xs:element name="addressOffset" type="scaledNonNegativeInteger"/>
    +      <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
    +                                     reset value. These default values are inherited to all fields contained in this register -->
    +      <xs:group    ref="registerPropertiesGroup" minOccurs="0"/>
    +      <!-- V1.1: dataType specifies a CMSIS compliant native dataType for a register (i.e. signed, unsigned, pointer) -->
    +      <xs:element name="dataType" type="dataTypeType" minOccurs="0"/>
    +      <!-- modifiedWriteValues specifies the write side effects -->
    +      <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
    +      <!-- writeConstraint specifies the subset of allowed write values -->
    +      <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
    +      <!-- readAcction specifies the read side effects -->
    +      <xs:element name="readAction" type="readActionType" minOccurs="0"/>
    +      <!-- fields section contains all fields that belong to this register -->
    +      <xs:element name="fields" type="fieldsType" minOccurs="0" maxOccurs="1"/>
    +    </xs:sequence>
    +    <xs:attribute name="derivedFrom" type="identifierType" use="optional"/>
    +  </xs:complexType>
    +
    +  <!-- V1.1: A cluster is a set of registers that are composed into a C data structure in the device header file -->
    +  <xs:complexType name="clusterType">
    +    <xs:sequence>
    +      <xs:group   ref="dimElementGroup" minOccurs="0"/>
    +      <xs:element name="name" type="identifierType"/>
    +      <xs:element name="description" type="xs:string"/>
    +      <!-- V1.1: alternateCluster specifies an alternative description for a cluster address range that is
    +                 already fully described. In this case the cluster name must be unique within the peripheral -->
    +      <xs:element name="alternateCluster" type="identifierType" minOccurs="0"/>
    +      <!-- V1.1: headerStructName specifies the name for the cluster structure typedef
    +                 used in the device header generation instead of the cluster name -->
    +      <xs:element name="headerStructName" type="identifierType" minOccurs="0"/>
    +      <xs:element name="addressOffset" type="scaledNonNegativeInteger"/>
    +      <xs:element name="register" type="registerType" minOccurs="1" maxOccurs="unbounded"/>
    +    </xs:sequence>
    +    <xs:attribute name="derivedFrom" type="identifierType" use="optional"/>
    +  </xs:complexType>
    +
    +  <!-- the registers section can have an arbitrary list of cluster and register sections -->
    +  <xs:complexType name="registersType">
    +    <xs:choice minOccurs="1" maxOccurs="unbounded">
    +      <xs:element name="cluster" type="clusterType"/>
    +      <xs:element name="register" type="registerType"/>
    +    </xs:choice>
    +  </xs:complexType>
    +
    +  <xs:complexType name="peripheralType">
    +    <xs:sequence>
    +      <!-- name specifies the name of a peripheral. This name is used for the System View and device header file -->
    +      <xs:element name="name" type="xs:Name"/>
    +      <!-- version specifies the version of the peripheral descriptions -->
    +      <xs:element name="version" type="stringType" minOccurs="0"/>
    +      <!-- description provides a high level functional description of the peripheral -->
    +      <xs:element name="description" type="stringType" minOccurs="0"/>
    +      <!-- V1.1: alternatePeripheral specifies an alternative description for an address range that is
    +           already fully by a peripheral described. In this case the peripheral name must be unique within the device description -->
    +      <xs:element name="alternatePeripheral" type="identifierType" minOccurs="0"/>
    +      <!-- groupName assigns this peripheral to a group of peripherals. This is only used bye the System View -->
    +      <xs:element name="groupName" type="xs:Name" minOccurs="0"/>
    +      <!-- prependToName specifies a prefix that is placed in front of each register name of this peripheral. 
    +                         The device header file will show the registers in a C-Struct of the peripheral without the prefix. -->
    +      <xs:element name="prependToName" type="identifierType" minOccurs="0"/>
    +      <!-- appendToName is a postfix that is appended to each register name of this peripheral. The device header 
    +                         file will sho the registers in a C-Struct of the peripheral without the postfix -->
    +      <xs:element name="appendToName" type="identifierType" minOccurs="0"/>
    +      <!-- V1.1: headerStructName specifies the name for the peripheral structure typedef
    +                         used in the device header generation instead of the peripheral name -->
    +      <xs:element name="headerStructName" type="identifierType" minOccurs="0"/>
    +      <!-- disableCondition contains a logical expression based on constants and register or bit-field values 
    +                         if the condition is evaluated to true, the peripheral display will be disabled -->
    +      <xs:element name="disableCondition" type="stringType" minOccurs="0"/>
    +      <!-- baseAddress specifies the absolute base address of a peripheral. For derived peripherals it is mandatory
    +                         to specify a baseAddress. -->
    +      <xs:element name="baseAddress" type="scaledNonNegativeInteger"/>
    +      <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
    +                         reset value. These default values are inherited to all registers contained in this peripheral -->
    +      <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
    +      <!-- addressBlock specifies one or more address ranges that are assigned exclusively to this peripheral. 
    +                         derived peripherals may have no addressBlock, however none-derived peripherals are required to specify
    +                         at least one address block -->
    +      <xs:element name="addressBlock" type="addressBlockType" minOccurs="0" maxOccurs="unbounded"/>
    +      <!-- interrupt specifies can specify one or more interrtupts by name, description and value -->
    +      <xs:element name="interrupt" type="interruptType" minOccurs="0" maxOccurs="unbounded"/>
    +      <!-- registers section contains all registers owned by the peripheral. In case a peripheral gets derived it does
    +                        not have its own registers section, hence this section is optional. A unique peripheral without a 
    +                        registers section is not allowed -->
    +      <xs:element name="registers" type="registersType" minOccurs="0" maxOccurs="1">
    +      </xs:element>
    +    </xs:sequence>
    +    <xs:attribute name="derivedFrom" type="identifierType" use="optional"/>
    +  </xs:complexType>
    +  
    +  <!-- ==================================================== -->
    +  <!-- The top level element of a description is the device -->
    +  <!-- ==================================================== -->
    +  <xs:element name="device" nillable="true">
    +    <xs:complexType>
    +      <xs:sequence>
    +        <!-- V1.1: Vendor Name -->
    +        <xs:element name="vendor" type="stringType" minOccurs="0"/>
    +        <!-- V1.1: Vendor ID - a short name for referring to the vendor (e.g. Texas Instruments = TI) -->
    +        <xs:element name="vendorID" type="identifierType" minOccurs="0"/>
    +        <!-- name specifies the device name being described -->
    +        <xs:element name="name" type="identifierType"/>
    +        <!-- V1.1: series specifies the device series or family name -->
    +        <xs:element name="series" type="stringType" minOccurs="0"/>
    +        <!-- version specifies the version of the device description -->
    +        <xs:element name="version" type="stringType"/>
    +        <!-- description is a string describing the device features (e.g. memory size, peripherals, etc.) -->
    +        <xs:element name="description" type="stringType"/>
    +        <!-- V1.1: licenseText specifies the file header section to be included in any derived file -->
    +        <xs:element name="licenseText" type="stringType" minOccurs="0"/>
    +        <!-- V1.1: cpu specifies the details of the processor included in the device -->
    +        <xs:element name="cpu" type="cpuType" minOccurs="0"/>
    +        <!-- V1.1: the tag specifies the filename without extension of the CMSIS System Device include file.
    +             This tag is used by the header file generator for customizing the include statement referencing the
    +             CMSIS system file within the CMSIS device header file. By default the filename is "system_<device.name>"
    +             In cases a device series shares a single system header file, the name of the series shall be used 
    +             instead of the individual device name. -->
    +        <xs:element name="headerSystemFilename" type="identifierType" minOccurs="0"/>
    +        <!-- V1.1: headerDefinitionPrefix specifies the string being prepended to all names of types defined in
    +             generated device header file -->
    +        <xs:element name="headerDefinitionsPrefix" type="identifierType" minOccurs="0"/>
    +        <!-- addressUnitBits specifies the size of the minimal addressable unit in bits -->
    +        <xs:element name="addressUnitBits" type="scaledNonNegativeInteger"/>
    +        <!-- width specifies the number of bits for the maximum single transfer size allowed by the bus interface.
    +             This sets the maximum size of a single register that can be defined for an address space -->
    +        <xs:element name="width" type="scaledNonNegativeInteger"/>
    +        <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
    +             reset value -->
    +        <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
    +
    +        <!-- peripherals is containing all peripherals -->
    +        <xs:element name="peripherals">
    +          <xs:complexType>
    +            <xs:sequence>
    +              <xs:element name="peripheral" type="peripheralType" minOccurs="1" maxOccurs="unbounded"/>
    +            </xs:sequence>
    +          </xs:complexType>
    +        </xs:element>
    +
    +        <!-- Vendor Extensions: this section captures custom extensions. This section will be ignored by default -->
    +        <xs:element name="vendorExtensions" minOccurs="0" maxOccurs="1">
    +          <xs:complexType>
    +            <xs:sequence>
    +              <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded">
    +              </xs:any>
    +            </xs:sequence>
    +          </xs:complexType>
    +        </xs:element>
    +      </xs:sequence>
    +      <xs:attribute name="schemaVersion" type="xs:decimal" use="required" fixed="1.1"/>
    +    </xs:complexType>
    +  </xs:element>
    +</xs:schema>
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__schema__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__schema__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__schema__gr.html @@ -0,0 +1,375 @@ + + + + + +CMSIS-SVD: CMSIS-SVD Schema File Ver. 1.0 + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    CMSIS-SVD Schema File Ver. 1.0
    +
    +
    +
    <?xml version="1.0" encoding="UTF-8"?>
    +<!-- 
    +  date: 07.12.2011
    +  
    +  Copyright (C) 2011 - 2012 ARM Limited. All rights reserved.
    +
    +  Redistribution and use in source and binary forms, with or without
    +  modification, are permitted provided that the following conditions are met:
    +   - Redistributions of source code must retain the above copyright
    +     notice, this list of conditions and the following disclaimer.
    +   - Redistributions in binary form must reproduce the above copyright
    +     notice, this list of conditions and the following disclaimer in the
    +     documentation and/or other materials provided with the distribution.
    +   - Neither the name of ARM nor the names of its contributors may be used 
    +     to endorse or promote products derived from this software without 
    +     specific prior written permission.
    +
    +  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
    +  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
    +  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +  ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
    +  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
    +  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
    +  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
    +  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
    +  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +  POSSIBILITY OF SUCH DAMAGE.
    + -->
    +
    +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.0">
    +  
    +  <xs:simpleType name="registerNameType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="((%s)[_A-Za-z]{1}[_A-Za-z0-9]*)|([_A-Za-z]{1}[_A-Za-z0-9]*(\[%s\])?)|([_A-Za-z]{1}[_A-Za-z0-9]*(%s)?[_A-Za-z0-9]*)"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="dimIndexType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="[0-9]+\-[0-9]+|[A-Z]-[A-Z]|[_0-9a-zA-Z]+(,\s*[_0-9a-zA-Z]+)+"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="scaledNonNegativeInteger">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="[+]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="enumeratedValueDataType">
    +    <xs:restriction base="xs:string">
    +      <xs:pattern value="[+]?(0x|0X|#)?[0-9a-fxA-FX]+"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="accessType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="read-only"/>
    +      <xs:enumeration value="write-only"/>
    +      <xs:enumeration value="read-write"/>
    +      <xs:enumeration value="writeOnce"/>
    +      <xs:enumeration value="read-writeOnce"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="modifiedWriteValuesType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="oneToClear"/>
    +      <xs:enumeration value="oneToSet"/>
    +      <xs:enumeration value="oneToToggle"/>
    +      <xs:enumeration value="zeroToClear"/>
    +      <xs:enumeration value="zeroToSet"/>
    +      <xs:enumeration value="zeroToToggle"/>
    +      <xs:enumeration value="clear"/>
    +      <xs:enumeration value="set"/>
    +      <xs:enumeration value="modify"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="readActionType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="clear"/>
    +      <xs:enumeration value="set"/>
    +      <xs:enumeration value="modify"/>
    +      <xs:enumeration value="modifyExternal"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="enumUsageType">
    +    <xs:restriction base="xs:token">
    +      <xs:enumeration value="read"/>
    +      <xs:enumeration value="write"/>
    +      <xs:enumeration value="read-write"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:simpleType name="bitRangeType">
    +    <xs:restriction base="xs:token">
    +      <xs:pattern value="\[([0-3])?[0-9]:([0-3])?[0-9]\]"/>
    +    </xs:restriction>
    +  </xs:simpleType>
    +
    +  <xs:complexType name="writeConstraintType">
    +    <xs:choice>
    +      <xs:element name="writeAsRead" type="xs:boolean"/>
    +      <xs:element name="useEnumeratedValues" type="xs:boolean"/>
    +      <xs:element name="range">
    +        <xs:complexType>
    +          <xs:sequence>
    +            <xs:element name="minimum" type="scaledNonNegativeInteger"/>
    +            <xs:element name="maximum" type="scaledNonNegativeInteger"/>
    +          </xs:sequence>
    +        </xs:complexType>
    +      </xs:element>
    +    </xs:choice>
    +  </xs:complexType>
    +
    +  <xs:complexType name="addressBlockType">
    +    <xs:sequence>
    +      <xs:element name="offset" type="scaledNonNegativeInteger"/>
    +      <xs:element name="size" type="scaledNonNegativeInteger"/>
    +      <xs:element name="usage">
    +        <xs:simpleType>
    +          <xs:restriction base="xs:token">
    +            <xs:enumeration value="registers"/>
    +            <xs:enumeration value="buffer"/>
    +            <xs:enumeration value="reserved"/>
    +          </xs:restriction>
    +        </xs:simpleType>
    +      </xs:element>
    +    </xs:sequence>
    +  </xs:complexType>
    +
    +  <xs:complexType name="interruptType">
    +    <xs:sequence>
    +      <xs:element name="name" type="xs:string"/>
    +      <xs:element name="value" type="xs:integer"/>
    +    </xs:sequence>
    +  </xs:complexType>
    +
    +  <xs:group name="registerPropertiesGroup">
    +    <xs:sequence>
    +      <xs:element name="size" type="scaledNonNegativeInteger" minOccurs="0"/>
    +      <xs:element name="access" type="accessType" minOccurs="0"/>
    +      <xs:element name="resetValue" type="scaledNonNegativeInteger" minOccurs="0"/>
    +      <xs:element name="resetMask" type="scaledNonNegativeInteger" minOccurs="0"/>
    +    </xs:sequence>
    +  </xs:group>
    +
    +  <xs:group name="bitRangeLsbMsbStyle">
    +    <xs:sequence>
    +      <xs:element name="lsb"  type="scaledNonNegativeInteger"/>
    +      <xs:element name="msb"  type="scaledNonNegativeInteger"/>
    +    </xs:sequence>
    +  </xs:group>
    +
    +  <xs:group name="bitRangeOffsetWidthStyle">
    +    <xs:sequence>
    +      <xs:element name="bitOffset" type="scaledNonNegativeInteger"/>
    +      <xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/>   
    +    </xs:sequence> 
    +  </xs:group>
    +
    +  <xs:group name="dimElementGroup">
    +    <xs:sequence>
    +      <xs:element name="dim" type="scaledNonNegativeInteger"/>
    +      <xs:element name="dimIncrement" type="scaledNonNegativeInteger"/>
    +      <xs:element name="dimIndex" type="dimIndexType" minOccurs="0"/>
    +    </xs:sequence>
    +  </xs:group>
    +
    +  <xs:element name="device" nillable="true">
    +    <xs:complexType>
    +      <xs:sequence>
    +        <xs:element name="name" type="xs:string"/>
    +        <xs:element name="version" type="xs:string"/>
    +        <xs:element name="description" type="xs:string"/>
    +        <xs:element name="addressUnitBits" type="scaledNonNegativeInteger"/>
    +        <xs:element name="width" type="scaledNonNegativeInteger"/>
    +        <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
    +        <xs:element name="peripherals">
    +          <xs:complexType>
    +            <xs:sequence>
    +              <xs:element name="peripheral" minOccurs="1" maxOccurs="unbounded">
    +                <xs:complexType>
    +                  <xs:sequence>
    +                    <xs:element name="name" type="xs:Name"/>
    +                    <xs:element name="version" type="xs:string" minOccurs="0"/>
    +                    <xs:element name="description" type="xs:string" minOccurs="0"/>
    +                    <xs:element name="groupName" type="xs:string" minOccurs="0"/>
    +                    <xs:element name="prependToName" type="xs:string" minOccurs="0"/>
    +                    <xs:element name="appendToName" type="xs:string" minOccurs="0"/>
    +                    <xs:element name="disableCondition" type="xs:string" minOccurs="0"/>
    +                    <xs:element name="baseAddress" type="scaledNonNegativeInteger"/>
    +                    <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
    +                    <xs:element name="addressBlock" type="addressBlockType" minOccurs="0" maxOccurs="unbounded"/>
    +                    <xs:element name="interrupt" type="interruptType" minOccurs="0" maxOccurs="unbounded"/>
    +                    <xs:element name="registers" minOccurs="0" maxOccurs="1">
    +                      <xs:complexType>
    +                        <xs:sequence>
    +                          <xs:element name="register" minOccurs="1" maxOccurs="unbounded">
    +                            <xs:complexType>
    +                              <xs:sequence>
    +                                <xs:group ref="dimElementGroup" minOccurs="0"/>
    +                                <xs:element name="name" type="registerNameType"/> <!-- was xs:Name -->
    +                                <xs:element name="displayName" type="xs:string" minOccurs="0"/>
    +                                <xs:element name="description" type="xs:string" minOccurs="0"/>
    +                                <xs:element name="alternateGroup" type="xs:Name" minOccurs="0"/>
    +                                <xs:element name="addressOffset" type="scaledNonNegativeInteger"/>
    +                                <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
    +                                <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
    +                                <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
    +                                <xs:element name="readAction" type="readActionType" minOccurs="0"/>
    +                                <xs:element name="fields" minOccurs="0" maxOccurs="1">
    +                                  <xs:complexType>
    +                                    <xs:sequence>
    +                                      <xs:element name="field" minOccurs="1" maxOccurs="unbounded">
    +                                      <xs:complexType>
    +                                        <xs:sequence>
    +                                          <xs:element name="name" type="xs:string"/>
    +                                          <xs:element name="description" type="xs:string" minOccurs="0"/>
    +                                          <xs:choice>
    +                                            <xs:group ref="bitRangeLsbMsbStyle" minOccurs="0"/>
    +                                            <xs:group ref="bitRangeOffsetWidthStyle" minOccurs="0"/>
    +                                            <xs:element name="bitRange" type="bitRangeType" minOccurs="0"/>
    +                                          </xs:choice>
    +                                          <xs:element name="access" type="accessType" minOccurs="0"/>
    +                                          <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
    +                                          <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
    +                                          <xs:element name="readAction" type="readActionType" minOccurs="0"/>
    +                                          <xs:element name="enumeratedValues" minOccurs="0" maxOccurs="2">
    +                                            <xs:complexType>
    +                                              <xs:sequence>
    +                                                <xs:element name="name" type="xs:Name" minOccurs="0"/>
    +                                                <xs:element name="usage" type="enumUsageType" minOccurs="0"/>
    +                                                <xs:element name="enumeratedValue" minOccurs="1" maxOccurs="unbounded">
    +                                                  <xs:complexType>
    +                                                    <xs:sequence>
    +                                                      <xs:element name="name" type="xs:string"/>
    +                                                      <xs:element name="description" type="xs:string" minOccurs="0"/>
    +                                                      <xs:choice>
    +                                                        <xs:element name="value" type="enumeratedValueDataType"/>
    +                                                        <xs:element name="isDefault" type="xs:boolean"/>
    +                                                      </xs:choice>
    +                                                    </xs:sequence>
    +                                                  </xs:complexType>
    +                                                </xs:element>
    +                                              </xs:sequence>
    +                                              <xs:attribute name="derivedFrom" type="xs:Name" use="optional"/>
    +                                            </xs:complexType>
    +                                          </xs:element>
    +                                        </xs:sequence>
    +                                        <xs:attribute name="derivedFrom" type="xs:Name" use="optional"/>
    +                                      </xs:complexType>
    +                                    </xs:element>
    +                                    </xs:sequence>
    +                                  </xs:complexType>
    +                                </xs:element>
    +                              </xs:sequence>
    +                              <xs:attribute name="derivedFrom" type="xs:Name" use="optional"/>
    +                            </xs:complexType>
    +                          </xs:element>
    +                        </xs:sequence>
    +                      </xs:complexType>
    +                    </xs:element>
    +                  </xs:sequence>
    +                  <xs:attribute name="derivedFrom" type="xs:Name" use="optional"/>
    +                </xs:complexType>
    +              </xs:element>
    +            </xs:sequence>
    +          </xs:complexType>
    +        </xs:element>
    +        <xs:element name="vendorExtensions" minOccurs="0" maxOccurs="1">
    +          <xs:complexType>
    +            <xs:sequence>
    +              <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded">
    +              </xs:any>
    +            </xs:sequence>
    +          </xs:complexType>
    +        </xs:element>
    +      </xs:sequence>
    +      <xs:attribute name="schemaVersion" type="xs:decimal" use="required" fixed="1.0"/>
    +    </xs:complexType>
    +  </xs:element>
    +</xs:schema>
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__1__1__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__1__1__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__1__1__gr.html @@ -0,0 +1,107 @@ + + + + + +CMSIS-SVD: SVD Extension in Version 1.1 + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    SVD Extension in Version 1.1
    +
    +
    + + + + + + + + + + + + +

    +Content

     Extensions to the Device Section
     
     CPU Section (New)
     
     Extensions to the Peripheral Section
     
     Cluster Level (New)
     
     Extensions to the Register Section
     
    +

    Description

    +

    From a schema perspective, CMSIS-SVD Version 1.1 is fully backward compatible to version 1.0. Many of the features added in version 1.1 are required for generating CMSIS-Core device header files from a CMSIS SVD description. It is expected that over time all CMSIS-SVD descriptions will comply with version 1.1. Version 1.1 has not been finalized yet and is therefore currently marked draft.

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__1__1__gr.js b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__1__1__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__1__1__gr.js @@ -0,0 +1,8 @@ +var group__svd___format__1__1__gr = +[ + [ "Extensions to the Device Section", "group__device_section_extensions__gr.html", null ], + [ "CPU Section (New)", "group__cpu_section__gr.html", null ], + [ "Extensions to the Peripheral Section", "group__peripheral_section_extensions__gr.html", null ], + [ "Cluster Level (New)", "group__cluster_level__gr.html", null ], + [ "Extensions to the Register Section", "group__register_section_extensions__gr.html", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__gr.html @@ -0,0 +1,139 @@ + + + + + +CMSIS-SVD: SVD File Schema Levels + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    SVD File Schema Levels
    +
    +
    + + + + + + + + + + + + +

    +Content

     Device Level
     
     Peripherals Level
     
     Registers Level
     
     Fields Level
     
     Enumerated Values Level
     
    +

    Description

    +

    This section specifies the SVD file format Version 1.0. Each subsection defines one level of hierarchy and lists all mandatory and optional language elements as well as their type. A brief example description snippet demonstrates the usage of the elements.

    +
    Note
      +
    • The sequence of elements in CMSIS-SVD is mandatory.
    • +
    • Optional elements are highlighted in green.
    • +
    • Mandatory elements are highlighted in blue. Optional sections can contain mandatory elements, which must be specified when the optional section is used. In this case the mandatory elements are also highlighted in blue.
    • +
    +
    +

    +Names

    +

    All name tags must comply with the ANSI C identifier naming restrictions (identifierType). In particular they must not contain any spaces or special characters. This is necessary to support the generation of device header files thus providing consistency between the names being shown by the debugger and the symbols being used in the CMSIS compliant target software.

    +

    +Constants

    +

    Number constants shall be entered in hexadecimal, decimal, or binary format.

    +
      +
    • The Hexadecimal format is indicated by a leading "0x".
    • +
    • The Binary format is indicated by a leading "#".
    • +
    • All other formats are interpreted as decimal numbers.
    • +
    • The value tag in enumeratedValue accepts do not care bits represented by "x".
    • +
    +

    +Comments

    +

    Comments have the standard XML format.

    +
      +
    • Start a comment with "<!–".
    • +
    • End a comment with "–>".
    • +
    +

    +Empty Tags

    +
      +
    • Single tags are not supported (for example, <name>).
    • +
    • The tag content must not consist of an empty string (instead, omit optional tags).
    • +
    +
    Remarks
    The CMSIS-SVD Schema File Ver. 1.0 and schema_1_1_gr are provided alongside this document.
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__gr.js b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__gr.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd___format__gr.js @@ -0,0 +1,8 @@ +var group__svd___format__gr = +[ + [ "Device Level", "group__svd__xml__device__gr.html", null ], + [ "Peripherals Level", "group__svd__xml__peripherals__gr.html", null ], + [ "Registers Level", "group__svd__xml__registers__gr.html", null ], + [ "Fields Level", "group__svd__xml__fields__gr.html", null ], + [ "Enumerated Values Level", "group__svd__xml__enum__gr.html", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__device__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__device__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__device__gr.html @@ -0,0 +1,173 @@ + + + + + +CMSIS-SVD: Device Level + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    <p>The element <b>device</b> provides the outermost frame of the description. 
    +- Only one device section is allowed per file. All other elements like peripherals, registers, 
    +fields, enumerated values, and vendor extensions are described within this scope. 
    +- A device contains one or more peripherals. 
    +- Optional elements like size, access, resetValue, and resetMask defined on this level are used 
    +as default values throughout the device description, unless they get redefined at a lower level.
    +    </p> 
    +

    +
    +<device schemaVersion="xs:decimal" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_0.xsd">
        <name>identifierType</name>
    +    <version>xs:string</version>
    +    <description>xs:string</description>
    +    <addressUnitBits>scaledNonNegativeInteger</addressUnitBits>
    +    <width>scaledNonNegativeInteger</width>
    +
    +    <!-- registerPropertiesGroup -->
    +    <size>scaledNonNegativeInteger</size>
    +    <access>accessType</access>
    +    <resetValue>scaledNonNegativeInteger</resetValue>
    +    <resetMask>scaledNonNegativeInteger</resetMask>
    +    <!-- end of registerPropertiesGroup -->
    +
    +    <peripherals>
    +        ...
    +    </peripherals>
    +
    +    <vendorExtensions>
    +        ...
    +    </vendorExtensions>
    </device>
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Attribute Name Description Type Occurrence
    xmlns:xs Specifies the underlying XML schema to which the CMSIS-SVD schema is compliant. Has to be set to: "http://www.w3.org/2001/XMLSchema-instance". xs:decimal 1..1
    xmlns:xs Specifies the file path and file name of the CMSIS-SVD Schema. For example, CMSIS-SVD_Schema_1_0.xsd. xs:string 1..1
    schemaVersion Specifies the CMSIS-SVD schema version the description is compliant to (for example, 1.0). xs:decimal 1..1
    Element Name Description Type Occurrence
    name The name string is used to identify the device or device series. Device names are required to be unique. xs:string 1..1
    version The string defines the version of the file. Silicon vendors maintain the description throughout the life-cycle of the device and ensure that all updated and released copies have a unique version string. Higher numbers indicate a more recent version. xs:string 1..1
    description String for describing main features of a device (for example CPU, clock frequency, peripheral overview). xs:string 1..1
    addressUnitBits Defines the number of data bits uniquely selected by each address. The value for Cortex-M based devices is 8 (byte-addressable). scaledNonNegativeInteger 1..1
    width Defines the number of data bit-width of the maximum single data transfer supported by the bus infrastructure. This information is relevant for debuggers when accessing registers, because it might be required to issue multiple accesses for accessing a resource of a bigger size. The expected value for Cortex-M based devices is 32. scaledNonNegativeInteger 1..1
    See registerPropertiesGroup for details.
    size Defines the default bit-width of any register contained in the device (implicit inheritance). scaledNonNegativeInteger 0..1
    access Defines the default access rights for all registers. accessType 0..1
    resetValue Defines the default value for all registers at RESET. scaledNonNegativeInteger 0..1
    resetMask Identifies which register bits have a defined reset value. scaledNonNegativeInteger 0..1
    peripherals Next level of description. see Peripherals Level for details.   1..1
    vendorExtensions The content and format of this section of the description is unspecified. Silicon vendors may choose to provide additional information. By default, this section is ignored for constructing the CMSIS files. It is up to the silicon vendor to specify a schema for this section. xs:anyType (restriction) 0..1
    +

    +Example:

    +
    <device schemaVersion="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_0.xsd">
    +
    <name>ARM_Cortex_M3</name>
    +
    <version>0.1</version>
    +
    <description>ARM Cortex-M3 based Microcontroller demonstration device</description>
    +
    <addressUnitBits>8</addressUnitBits>
    +
    <width>32</width>
    +
    <size>32</size>
    +
    <access>read-write</access>
    +
    <resetValue>0</resetValue>
    +
    <resetMask>0xffffffff</resetMask>
    +
    +
    <peripherals>
    +
    ...
    +
    </peripherals>
    +
    </device>
    +

    The device description above is at version 0.1 and uniquely identifies the device by the name "ARM_Cortex_M3". The peripherals are memory mapped in a byte-addressable address space with a bus width of 32 bits. The default size of the registers contained in the peripherals is set to 32 bits. Unless redefined for specific peripherals, all registers or fields are read-write accessible. A reset value of 0, valid for all 32 bits as specified by the reset mask, is set for all registers unless redefined at a lower level.

    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__enum__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__enum__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__enum__gr.html @@ -0,0 +1,193 @@ + + + + + +CMSIS-SVD: Enumerated Values Level + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Enumerated Values Level
    +
    +
    +
    Enumerated Values

    The concept of enumerated values creates a map between unsigned integers and an identifier string. In addition, a description string can be associated with each entry in the map.

    +
    +        0 <-> disabled -> "the clock source clk0 is turned off"
    +        1 <-> enabled  -> "the clock source clk1 is running"
    +        

    This information is used for generating an enum in the device header file. The debugger may use this information to display the identifier string as well as the description. Just like symbolic constants making source code more readable, the system view in the debugger becomes more instructive. The detailed description can provide reference manual level details within the debugger.

    +
    +
    +
    +<enumeratedValues derivedFrom="xs:Name">
    +
    +    <name>enumerationNameType</name>
    +    <usage>usageType</usage>
    +
    +    <enumeratedValue>
    +        ...
    +    </enumeratedValue>
    +
    +    ...
    +    <enumeratedValue>
    +        ...
    +    </enumeratedValue>
    +
    +</enumeratedValues>
    +
    +
    + + + + + + + + + + + + +
    Attribute Name Description Type Occurrence
    derivedFrom Makes a copy from a previously defined enumeratedValues section. No modifications are allowed. An enumeratedValues entry is referenced by its name. If the name is not unique throughout the description, it needs to be further qualified by specifying the associated field, register, and peripheral as required. For example:
    +        field:                           clk.dis_en_enum
    +        register + field:                ctrl.clk.dis_en_enum
    +        peripheral + register + field:   timer0.ctrl.clk.dis_en_enum
    +
    xs:Name 0..1
    Element Name Description Type Occurrence
    name Identifier for the whole enumeration section. xs:Name 0..1
    usage Possible values are read, write, or read-write. This allows specifying two different enumerated values depending whether it is to be used for a read or a write access. If not specified, the default value read-write is used. enumUsageType 0..1
    enumeratedValue Describes a single entry in the enumeration. The number of required items depends on the bit width of the associated field. See section below for details.   1..*
    +
    Enumerated Value

    An enumeratedValue defines a map between an unsigned integer and a human readable string.

    +
    +
    +
    +<enumeratedValue>
        <name>identifierType</name>
    +    <description>xs:string</description>
        <choice>
    +        <value>scaledNonNegativeInteger</value>
    +        <isDefault>xs:boolean</isDefault>
    +    </choice>
    </enumeratedValue>
    +
    +
    + + + + + + + + + + + + +
    Element Name Description Type Occurrence
    name String describing the semantics of the value. Can be displayed instead of the value. identifierType 0..1
    description Extended string describing the value. xs:string 0..1
    choice of 1..1
    value Defines the constant of the bit-field that the name corresponds to. scaledNonNegativeInteger 0..1
    isDefault Defines the name and description for all other values that are not listed explicitly. xs:boolean 0..1
    +

    +Example:

    +
    <enumeratedValues>
    +
    +
    <name>TimerIntSelect</name>
    +
    <usage>read-write</usage>
    +
    +
    <enumeratedValue>
    +
    <name>disabled</name>
    +
    <description>The clock source clk0 is turned off.</description>
    +
    <value>0</value>
    +
    </enumeratedValue>
    +
    +
    <enumeratedValue>
    +
    <name>reserved</name>
    +
    <description>Reserved values. Do not use.</description>
    +
    <isDefault>true</isDefault>
    +
    </enumeratedValue>
    +
    +
    </enumeratedValues>
    +
    <enumeratedValues>
    +
    +
    <name>TimerIntSelect</name>
    +
    <usage>read-write</usage>
    +
    +
    <enumeratedValue>
    +
    <name>disabled</name>
    +
    <description>Timer does not generate interrupts.</description>
    +
    <value>0</value>
    +
    </enumeratedValue>
    +
    +
    <enumeratedValue>
    +
    <name>enabled</name>
    +
    <description>Timer generates interrupts.</description>
    +
    <isDefault>true</isDefault>
    +
    </enumeratedValue>
    +
    +
    </enumeratedValues>
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__fields__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__fields__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__fields__gr.html @@ -0,0 +1,211 @@ + + + + + +CMSIS-SVD: Fields Level + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    All fields of a register are enclosed between the <fields> opening and closing tags

    +

    A bit-field has a name that is unique within the register. The position and size within the register is either described by the combination of the least significant bit's position (lsb) and the most significant bit's position (msb), or the lsb and the bit-width of the field. A field may define an enumeratedValue in order to make the display more intuitive to read.

    +
    +
    
    +<fields>
        <field derivedFrom="identifierType">
            <name>xs:Name</name>
    +        <description>xs:string</description>
            <choice>
    +             <!-- bitRangeLsbMsbStyle --> 
    +            <bitOffset>scaledNonNegativeInteger<bitOffset>
    +            <bitWidth>scaledNonNegativeInteger</bitWidth>
    +            or
    +             <!-- bitRangeOffsetWidthStyle --> 
    +            <lsb>scaledNonNegativeInteger</lsb> 
    +            <msb>scaledNonNegativeInteger</msb>
    +            or
    +             <!-- bitRangePattern --> 
    +            <bitRange>pattern</bitRange>
    +        </choice>
    +        
    +        <access>accessType</access>
    +        <modifiedWriteValues>writeValueType</modifiedWriteValues>
    +        <writeConstraint>writeConstraintType</writeConstraint>
    +        <readAction>readActionType</readAction>
            <enumeratedValues>
    +            ...
    +        </enumeratedValues>
        </field>
    +    ...
    +    <field>
    +       ...
    +    </field>
    +    
    +<fields>
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Attribute Name Description Type Occurrence
    derivedFrom The field is cloned from a previously defined field with a unique name. xs:Name 0..1
    Element Name Description Type Occurrence
    name Name string used to identify the field. Field names must be unique within a register. xs:string 1..1
    description String describing the details of the register. xs:string 0..1
    Choice of Three options exist to describe the field's bit-range. The options are to be used mutually exclusive: 1..1
    1. bitRangeLsbMsbStyle
    bitOffset Value defining the position of the least significant bit of the field within the register it belongs to. scaledNonNegativeInteger 1..1
    bitWidth Value defining the bit-width of the bitfield within the register it belongs to. scaledNonNegativeInteger 0..1
    2. bitRangeOffsetWidthStyle
    lsb Value defining the bit position of the least significant bit within the register it belongs to. scaledNonNegativeInteger 1..1
    msb Value defining the bit position of the most significant bit within the register it belongs to. scaledNonNegativeInteger 1..1
    3. bitRangePattern
    bitRange A string in the format: "[<msb>:<lsb>]" bitRangeType 0..1
    access Predefined strings can be used to define the allowed access types for this field: read-only, write-only, read-write, writeOnce, and read-writeOnce. Can be omitted if it matches the access permission set for the parent register. accessType 0..1
    modifiedWriteValues Describe the manipulation of data written to a field. If not specified, the value written to the field is the value stored in the field. The other options are bitwise operations:
      +
    • oneToClear: write data bit of one shall clear (set to zero) the corresponding bit in the field.
    • +
    • oneToSet: write data bit of one shall set (set to one) the corresponding bit in the field.
    • +
    • oneToToggle: write data bit of one shall toggle (invert) the corresponding bit in the field.
    • +
    • zeroToClear: write data bit of zero shall clear (set to zero) the corresponding bit in the field.
    • +
    • zeroToSet: write data bit of zero shall set (set to one) the corresponding bit in the field.
    • +
    • zeroToToggle: write data bit of zero shall toggle (invert) the corresponding bit in the field.
    • +
    • clear: after a write operation all bits in the field are cleared (set to zero).
    • +
    • set: after a write operation all bits in the field are set (set to one).
    • +
    • modify: after a write operation all bit in the field may be modified (default).
    • +
    +
    modifiedWriteValuesType 0..1
    writeConstraint Three options exist to set write-constraints: 0..1
    1. writeAsRead If TRUE, only the last read value can be written. xs:boolean 0..1
    2. useEnumeratedValues If TRUE, only the values listed in the enumeratedValues list are considered valid write values. xs:boolean 0..1
    3. range Consists of the following two elements:   0..1
    minimum Specifies the smallest number to be written to the field. scaledNonNegativeInteger 1..1
    maximum Specifies the largest number to be written to the field. scaledNonNegativeInteger 1..1
    readAction If set, it specifies the side effect following a read operation. If not set, the field is not modified after a read. The defined side effects are:
      +
    • clear: The field is cleared (set to zero) following a read operation.
    • +
    • set: The field is set (set to ones) following a read operation.
    • +
    • modify: The field is modified in some way after a read operation.
    • +
    • modifyExternal: One or more dependent resources other than the current field are immediately affected by a read operation (it is recommended that the field description specifies these dependencies). Debuggers are not expected to read this field location unless explicitly instructed by the user.
    • +
    +
    readActionType 0..1 register
    enumeratedValues Next lower level of description. See section Enumerated Values Level for details.   0..2
    +

    +Example:

    +
    ...
    +
    <field>
    +
    <name>TimerCtrl0_IntSel</name>
    +
    <description>Select interrupt line that is triggered by timer overflow.</description>
    +
    <bitOffset>1</bitOffset>
    +
    <bitWidth>3</bitWidth>
    +
    <access>read-write</access>
    +
    <resetValue>0x0</resetValue>
    +
    <modifiedWriteValues>oneToSet</modifiedWriteValues>
    +
    <writeConstraint>
    +
    <range>
    +
    <minimum>0</minimum>
    +
    <maximum>5</maximum>
    +
    </range>
    +
    </writeConstraint>
    +
    <readAction>clear</readAction>
    +
    +
    <enumeratedValues>
    +
    ...
    +
    </enumeratedValues>
    +
    </field>
    +
    ...
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__peripherals__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__peripherals__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__peripherals__gr.html @@ -0,0 +1,218 @@ + + + + + +CMSIS-SVD: Peripherals Level + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Peripherals Level
    +
    +
    +

    All peripherals of a device are enclosed within the tag <peripherals>. At least one peripheral has to be defined. Each peripheral is enclosed in the tag <peripheral>.

    +
      +
    • Each peripheral describes all registers belonging to that peripheral.
    • +
    • The address range allocated by a peripheral is defined through one or more address blocks.
    • +
    • An address block and register addresses are specified relative to the base address of a peripheral. The address block information can be used for constructing a memory map for the device peripherals.
    • +
    +
    Remarks
    The memory map does not contain any information about RAM, ROM, or FLASH memory.
    +
    +
    + <peripherals> 
        <peripheral derivedFrom=identifierType>
            <name>identifierType</name>
    +        <version>xs:string</version>
    +        <description>xs:string</description>
    +    
    +        <groupName>identifierType</groupName>
    +        <prependToName>identifierType</prependToName>
    +        <appendToName>identifierType</appendToName>
    +        <disableCondition>xs:string</disableCondition>
    +    
    +        <baseAddress>scaledNonNegativeInteger</baseAddress>
    +    
    +         <!-- registerPropertiesGroup -->
    +        <size>scaledNonNegativeInteger</size>
    +        <access>accessType</access>
    +        <resetValue>scaledNonNegativeInteger</resetValue>
    +        <resetMask>scaledNonNegativeInteger</resetMask>
    +         <!-- end of registerPropertiesGroup -->
    +    
    +        <addressBlock>
    +            <offset>scaledNonNegativeInteger</offset>
    +            <size>scaledNonNegativeInteger</size>
    +            <usage>usageType</usage>
    +        </addressBlock>
    +        ...
    +        <addressBlock>
    +            <offset>scaledNonNegativeInteger</offset>
    +            <size>scaledNonNegativeInteger</size>
    +            <usage>usageType</usage>
    +        </addressBlock>
    +    
    +        <interrupt>
    +            <name>identifierType</name>
    +            <value>scaledNonNegativeInteger</value>
    +        </interrupt>
            <registers>
    +            ...
    +        </registers>
        </peripheral>
    +    ...
    +    <peripheral>
    +       ...
    +    </peripheral>
    +    
    +</peripherals>
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Attribute Name Description Type Occurrence
    derivedFrom Specifies the name of a peripheral from which this peripheral will be derived. Values are inherit. Elements specified underneath will override inherited values. xs:Name 0..1
    Element Name Description Type Occurrence
    name The name string is used to identify the peripheral. Peripheral names are required to be unique for a device. The name needs to be an ANSI C identifier to allow header file generation. xs:Name 1..1
    version The string specifies the version of this peripheral description. xs:string 0..1
    description The string provides an overview of the purpose and functionality of the peripheral. xs:string 0..1
    groupName xs:string 0..1
    prependToName All register names of this peripheral have their names prefixed with this string. xs:string 0..1
    appendToName All register names of this peripheral have their names suffixed with this string. xs:string 0..1
    disableCondition Is a C-language compliant logical expression returning a TRUE or FALSE result. If TRUE, refreshing the display for this peripheral is disabled and related accesses by the debugger are suppressed.
    +
    + Only constants and references to other registers contained in the description are allowed: <peripheral>-><register>-><field>, for example, (System->ClockControl->apbEnable == 0). The following operators are allowed in the expression [&&,||, ==, !=, >>, <<, &, |].
    Attention
    Use this feature only in cases where accesses from the debugger to registers of un-clocked peripherals result in severe debugging failures. SVD is intended to provide static information and does not include any run-time computation or functions. Such capabilities can be added by the tools, and is beyond the scope of this description language.
    +
    xs:string 0..1
    baseAddress Lowest address reserved or used by the peripheral. scaledNonNegativeInteger 1..1
    See registerPropertiesGroup for details.
    size Defines the default bit-width of any register contained in the device (implicit inheritance). scaledNonNegativeInteger 0..1
    access Defines the default access rights for all registers. accessType 0..1
    resetValue Defines the default value for all registers at RESET. scaledNonNegativeInteger 0..1
    resetMask Identifies which register bits have a defined reset value. scaledNonNegativeInteger 0..1
    addressBlock Specifies an address range uniquely mapped to this peripheral. A peripheral must have at least one address block, but may allocate multiple distinct address ranges. If a peripheral is derived form another peripheral, the addressBlock is not mandatory. addressBlockType 1..*
    offset Specifies the start address of an address block relative to the peripheral baseAddress. scaledNonNegativeInteger 1..1
    size Specifies the number of addressUnitBits being covered by this address block. The end address of an address block results from the sum of baseAddress, offset, and (size - 1). scaledNonNegativeInteger 1..1
    usage The following predefined values can be used: registers, buffer, or reserved. scaledNonNegativeInteger 1..1
    interrupt A peripheral can have multiple associated interrupts. This entry allows the debugger to show interrupt names instead of interrupt numbers. interruptType 0..*
    name The string represents the interrupt name. XS:string 1..1
    value Is the enumeration index value associated to the interrupt. xs:integer 1..1
    registers See Registers Level for details.   0..1
    +

    +Example:

    +
    ...
    +
    <peripheral>
    +
    <name>Timer0</name>
    +
    <version>1.0.32</version>
    +
    <description>Timer 0 is a simple 16 bit timer counting down ... </description>
    +
    <baseAddress>0x40000000</baseAddress>
    +
    <addressBlock>
    +
    <offset>0x0</offset>
    +
    <size>0x400</size>
    +
    <usage>registers</usage>
    +
    </addressBlock>
    +
    <interrupt><name>TIM0_INT</name><value>34</value></interrupt>
    +
    <registers>
    +
    ...
    +
    </registers>
    +
    </peripheral>
    +
    +
    <peripheral derivedFrom="Timer0">
    +
    <name>Timer1</name>
    +
    <baseAddress>0x40000400</baseAddress>
    +
    </peripheral>
    +
    ...
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__registers__gr.html b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__registers__gr.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/group__svd__xml__registers__gr.html @@ -0,0 +1,229 @@ + + + + + +CMSIS-SVD: Registers Level + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    Registers Level
    +
    +
    +

    All registers of a peripheral are enclosed between the <registers> opening and closing tags.

    +

    The description of registers is the most essential part of the SVD description. The register's name, detailed description, and the address-offset relative to the peripheral base address are the mandatory elements. If the size, access, reset value, and reset mask have not been specified on the device or peripheral level, or if the default values need to be redefined locally, these fields become mandatory.

    +

    A register can represent a single value or can be subdivided into individual bit-fields of specific functionality and semantics. In schema-terms the fields section is optional, however, from a specification perspective, fields are mandatory when they are described in the device documentation.

    +

    The SVD specification supports the array-of-registers concept. The single register description gets duplicated automatically into an array. The size of the array is specified by the <dim> element. The register names can be composed by the register name and an index specific substring define in <dimIndex>. The <dimIncrement> specifies the address offset between two registers.

    +
    +
    +<registers> 
        <register derivedFrom=identifierType>
    +    
    +        <!-- dimElementGroup --> 
    +        <dim>scaledNonNegativeInteger</dim>
    +        <dimIncrement>scaledNonNegativeInteger</dimIncrement>
    +        <dimIndex>xs:string</dimIndex>
    +        <!-- end of dimElementGroup --> 
    +   
    +        <name>identifierType</name>
    +    
    +        <displayName>xs:string</displayName>
    +    
    +        <description>xs:string</description>
    +    
    +        <alternateGroup>xs:Name</alternateGroup>
    +    
    +        <addressOffset>scaledNonNegativeInteger</addressOffset>
    +    
    +        <!-- registerPropertiesGroup --> 
    +        <size>scaledNonNegativeInteger</size>
    +        <access>accessType</access>
    +        <resetValue>scaledNonNegativeInteger</resetValue>
    +        <resetMask>scaledNonNegativeInteger</resetMask>
    +        <!-- end of registerPropertiesGroup --> 
    +    
    +        <modifiedWriteValues>writeValueType</modifiedWriteValues>
    +        <writeConstraint>writeConstraintType</writeConstraint>
    +        <readAction>readActionType</readAction>
            <fields>
    +            ...
    +        </fields>
    +    
    +    </register>
    +    ...
    +    <register>
    +        ...
    +    </register>
    +    
    +<registers> 
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Attribute Name Description Type Occurrence
    derivedFrom Specifies the name of the register from which to inherit the data. Elements being specified underneath will override the inherited values.
    +Remarks: When deriving a register, it is mandatory to specify at least the name, the description, and the addressOffset.
    xs:Name 0..1
    Element Name Description Type Occurrence
    See dimElementGroup for details.
    dimIncrement The value defines the number of elements in an array of registers. scaledNonNegativeInteger 1..1
    dimIncrement If dim is specified, this element becomes mandatory. The element specifies the address increment in between two neighboring registers of the register array in the address map. scaledNonNegativeInteger 1..1
    dimIndex Specifies the substrings that replaces the %s placeholder within the register name. By default, the index is a decimal value starting with 0 for the first register. dimIndexType 0..1
    name Name string used to identify the register. Register names are required to be unique within the scope of a peripheral. registerNameType 1..1
    displayName When specified, the string is being used by a graphical frontend to visualize the register. Otherwise the name element is displayed. The displayName may contain special characters and white spaces. The place holder s can be used and is replaced by the dimIndex substring. xs:string 0..1
    description String describing the details of the register. xs:string 0..1
    alternateGroup Specifies a group name associated with all alternate register that have the same name. At the same time, it indicates that there is a register definition allocating the same absolute address in the address space. xs:Name 0..1
    addressOffset Value defining the address of the register relative to the baseAddress defined by the peripheral of the register. scaledNonNegativeInteger 1..1
    See registerPropertiesGroup for details.
    size Defines the default bit-width of any register contained in the device (implicit inheritance). scaledNonNegativeInteger 0..1
    access Defines the default access rights for all registers. accessType 0..1
    resetValue Defines the default value for all registers at RESET. scaledNonNegativeInteger 0..1
    resetMask Identifies which register bits have a defined reset value. scaledNonNegativeInteger 0..1
    modifiedWriteValues Element to describe the manipulation of data written to a register. If not specified, the value written to the field is the value stored in the field. The other options define bitwise operations:
      +
    • oneToClear: write data bits of one shall clear (set to zero) the corresponding bit in the register.
    • +
    • oneToSet: write data bits of one shall set (set to one) the corresponding bit in the register.
    • +
    • oneToToggle: write data bits of one shall toggle (invert) the corresponding bit in the register.
    • +
    • zeroToClear: write data bits of zero shall clear (set to zero) the corresponding bit in the register.
    • +
    • zeroToSet: write data bits of zero shall set (set to one) the corresponding bit in the register.
    • +
    • zeroToToggle: write data bits of zero shall toggle (invert) the corresponding bit in the register.
    • +
    • clear: after a write operation all bits in the field are cleared (set to zero).
    • +
    • set: after a write operation all bits in the field are set (set to one).
    • +
    • modify: after a write operation all bit in the field may be modified (default).
    • +
    +
    modifiedWriteValuesType 0..1
    writeConstraint Three options exist to set write-constraints: 0..1
    1. writeAsRead If TRUE, only the last read value can be written. xs:boolean 0..1
    2. useEnumeratedValues If TRUE, only the values listed in the enumeratedValues list are considered valid write values. xs:boolean 0..1
    3. range Consists of the following two elements:   0..1
    minimum Specifies the smallest number to be written to the field. scaledNonNegativeInteger 1..1
    maximum Specifies the largest number to be written to the field. scaledNonNegativeInteger 1..1
    readAction If set, it specifies the side effect following a read operation. If not set, the register is not modified. The defined side effects are:
      +
    • clear: The register is cleared (set to zero) following a read operation.
    • +
    • set: The register is set (set to ones) following a read operation.
    • +
    • modify: The register is modified in some way after a read operation.
    • +
    • modifyExternal: One or more dependent resources other than the current register are immediately affected by a read operation (it is recommended that the register description specifies these dependencies). Debuggers are not expected to read this register location unless explicitly instructed by the user.
    • +
    +
    readActionType

    0..1

    +

    +
    fields Next lower level of description (see Fields Level for details). Not all registers are further divided into fields, therefore, this level is optional. In case a register is subdivided into bit fields, it should be reflected in the description. The device header file can only contain bit access macros and bit-field structures if this information is contained in the description.   0..1
    +

    +Example:

    +
    ...
    +
    <register>
    +
    <name>TimerCtrl0</name>
    +
    <description>Timer Control Register</description>
    +
    <addressOffset>0x0</addressOffset>
    +
    <access>read-write</access>
    +
    <resetValue>0x00008001</resetValue>
    +
    <resetMask>0x0000ffff</resetMask>
    +
    <size>32</size>
    +
    <fields>
    +
    ...
    +
    </fields>
    +
    </register>
    +
    +
    <register derivedFrom="TimerCtrl0">
    +
    <name>TimerCtrl1</name>
    +
    <description>Derived Timer</description>
    +
    <addressOffset>0x4</addressOffset>
    +
    </register>
    +
    ...
    +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/index.html b/Libraries/CMSIS/Documentation/SVD/html/index.html new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/index.html @@ -0,0 +1,148 @@ + + + + + +CMSIS-SVD: System View Description + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    CMSIS-SVD +  Version 1.10 +
    +
    CMSIS System View Description
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    System View Description
    +
    +
    +

    This chapter contains the introduction and specification of the CMSIS System View Description format (CMSIS-SVD). The introduction section outlines the objectives and benefits CMSIS-SVD.

    +

    Introduction

    +

    CMSIS-SVD formalizes the description of the programmer's view for the system contained in ARM Cortex-M processor-based microcontrollers, in particular the memory mapped registers of the peripherals. The detail contained in system view descriptions is comparable to what is found in device reference manuals published by silicon vendors. The information ranges from a high level functional description of a peripheral all the way down to the definition and purpose of an individual bit field in a memory mapped register. CMSIS-SVD files are developed and maintained by the silicon vendors. Silicon vendors manage their descriptions in a central, web-based Device Database and the CMSIS-SVD files are downloadable via a public web interface once they have been released by the silicon vendor. Tool vendors use these descriptions for providing device-specific debug views of peripherals in their debugger. Last but not least CMSIS compliant device header files are generated from CMSIS-SVD files.

    +

    CMSIS-SVD Benefits

    +
      +
    • The benefits for the Software Developer:
        +
      • Consistency between device header file and what is being displayed by the debugger.
      • +
      • Detailed information about peripherals, registers, fields, and bit values from within the debugger, without the need to reference device documentation.
      • +
      • Public access via a web interface to new and updated descriptions as they become available from silicon vendors.
      • +
      • Improved software development efficiency.
      • +
      +
    • +
    +
      +
    • The benefits for the Silicon Vendor:
        +
      • A tool vendor independent file format enables early device support by a wide range of toolchains with limited effort.
      • +
      • The XML-based format helps ease the integration into in-house design flows.
      • +
      • Automated generation of CMSIS compliant device header files.
      • +
      • Full control throughout the life cycle of the CMSIS-SVD files from creation to maintenance via the web-based Device Database.
      • +
      +
    • +
    +
      +
    • The benefits for the Tool Vendor:
        +
      • Unified file format across silicon vendors helps the efficiency of supporting a wide range of new devices in a timely manner.
      • +
      • Silicon vendors provide early review access to individuals ahead of the publishing date.
      • +
      • Updated descriptions are available over the web simplifying the maintenance of device support.
      • +
      +
    • +
    +

    The Web Infrastructure

    +
    +CMSIS_SVD_WEB_DATABASE.png +
    +CMSIS-SVD Management Processes
    +

    The diagram illustrates the management process steps for uploading, validating, reviewing, publishing, and downloading CMSIS-SVD files.

    +
      +
    • Managing Files: A CMSIS-SVD file is uploaded by a silicon vendor via the web interface (Device Database). The system performs a check against the CMSIS-SVD Schema and runs the SVDConv consistency checker. Only if both checks have been successful the file will be stored in the SVD Storage. Files can be added, replaced and deleted.
    • +
    +
      +
    • Managing Devices: The silicon vendor creates an entry for each of his devices in the database by defining a name and associating it with a CMSIS-SVD file from the SVD Storage. The publishing date set forth for a device is used by the system to determine when this device becomes visible in the public device database. Prior to the publishing date, the silicon vendor can grant review access to individuals for an individual device. Reviewers get notified by e-mail about a device being made available for review.
    • +
    +
      +
    • Public Download: Public access to the silicon vendor specific CMSIS-SVD download pages is provided from cmsis.arm.com or www.arm.com/cmsis. Select the CMSIS-SVD tab and select the Silicon Vendor of interest from the list. For the public download of the CMSIS-SVD files of published devices it is mandatory to:
        +
      • Be logged in on the ARM web site.
      • +
      • Have accepted a silicon vendor specific End Users License Agreement (EULA).
      • +
      +
    • +
    +

    More information about the web infrastructure can be found in the CMSIS-SVD Web Interface User Guide

    +

    Language Outline

    + +

    Language Specification

    + +
    +
    + + + + diff --git a/Libraries/CMSIS/Documentation/SVD/html/index.js b/Libraries/CMSIS/Documentation/SVD/html/index.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/index.js @@ -0,0 +1,5 @@ +var index = +[ + [ "CMSIS-SVD Web Interface User Guide", "svd_web_pg.html", "svd_web_pg" ], + [ "SVD File Description", "svd__outline_pg.html", null ] +]; \ No newline at end of file diff --git a/Libraries/CMSIS/Documentation/SVD/html/jquery.js b/Libraries/CMSIS/Documentation/SVD/html/jquery.js new file mode 100644 --- /dev/null +++ b/Libraries/CMSIS/Documentation/SVD/html/jquery.js @@ -0,0 +1,77 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")), +f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c) +{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery); +/* + * jQuery UI Resizable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e
    ');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p +&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery); +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('