Browse Source

[bsp] Remove NUC140 porting

Bernard Xiong 10 years ago
parent
commit
f8d2f880c3

+ 0 - 2029
bsp/nuc140/CMSIS/CM0/NUC1xx.h

@@ -1,2029 +0,0 @@
-/*---------------------------------------------------------------------------------------------------------*/
-/*                                                                                                         */
-/* Copyright (c) Nuvoton Technology Corp. All rights reserved.                                             */
-/*                                                                                                         */
-/*---------------------------------------------------------------------------------------------------------*/
-
-#ifndef __NUC1xx_H__
-#define __NUC1xx_H__
-
-
-/*
- * ==========================================================================
- * ---------- Interrupt Number Definition -----------------------------------
- * ==========================================================================
- */
- 
-typedef enum IRQn
-{
-/******  Cortex-M0 Processor Exceptions Numbers ***************************************************/
-  NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                             */
-  HardFault_IRQn		      = -13,    /*!< 3 Cortex-M0 Hard Fault Interrupt                     */
-  SVCall_IRQn                 = -5,     /*!< 11 Cortex-M0 SV Call Interrupt                       */
-  PendSV_IRQn                 = -2,     /*!< 14 Cortex-M0 Pend SV Interrupt                       */
-  SysTick_IRQn                = -1,     /*!< 15 Cortex-M0 System Tick Interrupt                   */
-
-/******  ARMIKMCU Swift specific Interrupt Numbers ************************************************/
-  BOD_IRQn                  = 0,
-  WDT_IRQn                  = 1,
-  EINT0_IRQn                = 2,
-  EINT1_IRQn                = 3,
-  GPAB_IRQn                 = 4,
-  GPCDE_IRQn                = 5,
-  PWMA_IRQn                 = 6,
-  PWMB_IRQn                 = 7,
-  TMR0_IRQn                 = 8,
-  TMR1_IRQn                 = 9,
-  TMR2_IRQn                 = 10,
-  TMR3_IRQn                 = 11,
-  UART0_IRQn                = 12,
-  UART1_IRQn                = 13,
-  SPI0_IRQn                 = 14,
-  SPI1_IRQn                 = 15,
-  SPI2_IRQn                 = 16,
-  SPI3_IRQn                 = 17,
-  I2C0_IRQn                 = 18,
-  I2C1_IRQn                 = 19,
-  CAN0_IRQn                 = 20,
-  CAN1_IRQn                 = 21,
-  SD_IRQn                   = 22,
-  USBD_IRQn                 = 23,
-  PS2_IRQn                  = 24,
-  ACMP_IRQn                 = 25,
-  PDMA_IRQn                 = 26,
-  I2S_IRQn                  = 27,
-  PWRWU_IRQn                = 28,
-  ADC_IRQn                  = 29,
-  DAC_IRQn                  = 30,
-  RTC_IRQn                  = 31
-         
-                                        /*!< maximum of 32 Interrupts are possible                */
-} IRQn_Type;
-
-
-/*
- * ==========================================================================
- * ----------- Processor and Core Peripheral Section ------------------------
- * ==========================================================================
- */
-
-/* Configuration of the Cortex-M0 Processor and Core Peripherals */
-#define __MPU_PRESENT           0       /*!< armikcmu does not provide a MPU present or not       */
-#define __NVIC_PRIO_BITS        2       /*!< armikcmu Supports 2 Bits for the Priority Levels     */
-#define __Vendor_SysTickConfig  0       /*!< Set to 1 if different SysTick Config is used         */
-
-
-#include "core_cm0.h"                   /* Cortex-M0 processor and core peripherals               */
-#include "system_NUC1xx.h"              /* NUC1xx System                                          */
-// #include "System\SysInfra.h"    
-
-
-/**
- * Initialize the system clock
- *
- * @param  none
- * @return none
- *
- * @brief  Setup the microcontroller system
- *         Initialize the PLL and update the SystemFrequency variable
- */
-extern void SystemInit (void);
-
-
-/******************************************************************************/
-/*                Device Specific Peripheral registers structures             */
-/******************************************************************************/
-
-/*--------------------- General Purpose Input and Ouptut ---------------------*/
-typedef struct
-{
-    __IO uint32_t PMD0:2;
-    __IO uint32_t PMD1:2;
-    __IO uint32_t PMD2:2;
-    __IO uint32_t PMD3:2;
-    __IO uint32_t PMD4:2;
-    __IO uint32_t PMD5:2;
-    __IO uint32_t PMD6:2;
-    __IO uint32_t PMD7:2;
-    __IO uint32_t PMD8:2;
-    __IO uint32_t PMD9:2;
-    __IO uint32_t PMD10:2;
-    __IO uint32_t PMD11:2;
-    __IO uint32_t PMD12:2;
-    __IO uint32_t PMD13:2;
-    __IO uint32_t PMD14:2;
-    __IO uint32_t PMD15:2;
-} GPIO_PMD_T;
-
-typedef __IO uint32_t GPIO_SCH_T;
-
-typedef __IO uint32_t GPIO_DOUT_T;
-
-typedef __IO uint32_t GPIO_DMASK_T;
-
-typedef __IO uint32_t GPIO_PIN_T;
-
-typedef __IO uint32_t GPIO_DBEN_T;
-
-typedef __IO uint32_t GPIO_IMD_T;
-
-typedef __IO uint32_t GPIO_IEN_T;
-
-typedef __IO uint32_t GPIO_ISRC_T;
-
-typedef struct
-{
-    __IO uint32_t  DBCLKSEL:4;
-    __IO uint32_t  DBCLKSRC:1;
-    __IO uint32_t  ICLK_ON:1;
-    __I  uint32_t  RESERVE:26;    
-} GPIO_DBNCECON_T;
-
-typedef struct
-{
-    GPIO_PMD_T      PMD;
-    GPIO_SCH_T      SCH;
-    GPIO_DOUT_T     DOUT;
-    GPIO_DMASK_T    DMASK;
-    GPIO_PIN_T      PIN;
-    GPIO_DBEN_T     DBEN;
-    GPIO_IMD_T      IMD;
-    GPIO_IEN_T      IEN;
-    GPIO_ISRC_T     ISRC;
-    
-} GPIO_T;
-
-
-/*------------------------- UART Interface Controller ------------------------*/
-
-typedef __IO uint32_t UART_DATA_T;
-
-
-typedef struct
-{
-    __IO uint32_t  RDA_IEN:1;
-    __IO uint32_t  THRE_IEN:1;
-    __IO uint32_t  RLS_IEN:1;
-    __IO uint32_t  MS_IEN:1;
-    __IO uint32_t  RTO_IEN:1;	  
-    __IO uint32_t  BUF_ERR_IEN:1;
-    __IO uint32_t  WAKE_IEN:1;
-    __I  uint32_t  RESERVE0:4;
-    __IO uint32_t  TOC_EN:1;      /* Time-out counter enable */
-    __IO uint32_t  AUTO_RTS_EN:1;
-    __IO uint32_t  AUTO_CTS_EN:1;
-    __IO uint32_t  DMA_TX_EN:1;
-    __IO uint32_t  DMA_RX_EN:1;
-    __I  uint32_t  RESERVE1:15;    
-    __IO uint32_t  nDEBUGACK_EN:1;
-} UART_IER_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  RFR:1;
-    __IO uint32_t  TFR:1;
-    __I  uint32_t  RESERVE1:1;
-    __IO uint32_t  RFITL:4;             /* Rx FIFO Interrupt Trigger Level */
-    __I  uint32_t  RESERVE2:8;
-    __IO uint32_t  RTS_TRIG_LEVEL:4;
-    __I  uint32_t  RESERVE3:12;
-} UART_FCR_T;
-
-typedef struct
-{
-    __IO uint32_t  WLS:2;               /* Word length select */
-    __IO uint32_t  NSB:1;               /* Number of STOP bit */
-    __IO uint32_t  PBE:1;               /* Parity bit enable  */
-    __IO uint32_t  EPE:1;               /* Even parity enable */
-    __IO uint32_t  SPE:1;               /* Stick parity enable*/
-    __IO uint32_t  BCB:1;               /* Break control bit  */
-    __I  uint32_t  RESERVE:25;
-} UART_LCR_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  RTS_INV:1;
-    __I  uint32_t  RESERVE1:2;
-    __IO uint32_t  LBME:1;
-    __I  uint32_t  RESERVE2:4;
-    __IO uint32_t  RTS_ACT_LEVEL:1;
-    __I  uint32_t  RESERVE3:3;
-    __I  uint32_t  RTS:1;               /* RTS status */
-    __I  uint32_t  RESERVE4:18;
-} UART_MCR_T;
-
-typedef struct
-{
-    __IO uint32_t  DCTS:1;
-    __I  uint32_t  RESERVE0:3;
-    __I  uint32_t  CTS:1;               /* CTS status */
-    __I  uint32_t  RESERVE1:3;
-    __IO uint32_t  CTS_ACT_LEVEL:1;
-    __I  uint32_t  RESERVE2:23;
-} UART_MSR_T;
-
-typedef struct
-{
-    __IO uint32_t  RX_OVERFLOW:1;
-    __I  uint32_t  RESERVE0:3;
-    __IO uint32_t  PEI:1;
-    __IO uint32_t  FEI:1;
-    __IO uint32_t  BII:1;
-    __I  uint32_t  RESERVE1:1;
-    __I  uint32_t  RX_POINTER:6;
-    __I  uint32_t  RX_EMPTY:1;
-    __I  uint32_t  RX_FULL:1;
-    __I  uint32_t  TX_POINTER:6;
-    __I  uint32_t  TX_EMPTY:1;
-    __I  uint32_t  TX_FULL:1;
-    __IO uint32_t  TX_OVERFLOW:1;
-    __I  uint32_t  RESERVE2:3;
-    __I  uint32_t  TE:1;                /* Transmitter empty flag */
-    __I  uint32_t  RESERVE3:3;
-} UART_FSR_T;
-
-typedef struct
-{
-    __IO uint32_t  RDA_IF:1;
-    __IO uint32_t  THRE_IF:1;
-    __IO uint32_t  RLS_IF:1;
-    __IO uint32_t  MODEM_IF:1;
-    __IO uint32_t  TOUT_IF:1;
-    __IO uint32_t  BUF_ERR_IF:1;
-    __IO uint32_t  WAKE_IF:1;
-    __IO uint32_t  SW_TX:1;
-    __IO uint32_t  RDA_INT:1;
-    __IO uint32_t  THRE_INT:1;
-    __IO uint32_t  RLS_INT:1;
-    __IO uint32_t  MODEM_INT:1;
-    __IO uint32_t  TOUT_INT:1;
-    __IO uint32_t  BUF_ERR_INT:1;
-    __IO uint32_t  WAKE_INT:1;
-    __IO uint32_t  SW_RX:1;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  HW_RLS_IF:1;
-    __IO uint32_t  HW_MODEM_IF:1;
-    __IO uint32_t  HW_TOUT_IF:1;
-    __IO uint32_t  HW_BUF_ERR_IF:1;
-    __IO uint32_t  HW_WAKE_IF:1;
-    __IO uint32_t  EDMA_TX:1;
-    __I  uint32_t  RESERVE1:2;
-    __IO uint32_t  HW_RLS_INT:1;
-    __IO uint32_t  HW_MODEM_INT:1;
-    __IO uint32_t  HW_TOUT_INT:1;
-    __IO uint32_t  HW_BUF_ERR_INT:1;
-    __IO uint32_t  HW_WAKE_INT:1;
-    __IO uint32_t  EDMA_RX:1;
-} UART_ISR_T;
-
-typedef __IO uint32_t UART_TOR_T;
-
-typedef struct
-{
-    __IO uint32_t  DIV:16;
-    __I  uint32_t  RESERVE0:8;
-    __IO uint32_t  DIVX:4;
-    __IO uint32_t  DIVX1:1;            
-    __IO uint32_t  DIVX_EN:1;            
-    __I  uint32_t  RESERVE1:2;
-} UART_BAUD_T;
-
-typedef struct
-{
-    __IO uint32_t  IrDA_EN:1;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  RX_EN:1;
-    __IO uint32_t  TX_EN:1;            
-    __IO uint32_t  TX_INV_EN:1;            
-    __IO uint32_t  RX_INV_EN:1;
-    __I  uint32_t  RESERVE1:25;
-} UART_IRCR_T;
-
-typedef struct
-{
-    __IO uint32_t  LINBCNT:4;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  LINRX_EN:1;
-    __IO uint32_t  LINTX_EN:1;            
-    __I  uint32_t  RESERVE1:24;
-} UART_LINCON_T;
-
-
-
-typedef struct
-{
-    __IO uint32_t  LIN_EN:2;
-	__IO uint32_t  IrDA_EN:2;
-    __I  uint32_t  RESERVE0:32;
-
-} UART_FUNSEL_T;
-
-
-typedef struct
-{
-    UART_DATA_T     DATA;
-    UART_IER_T      IER;
-    UART_FCR_T      FCR;
-    UART_LCR_T      LCR;
-    UART_MCR_T      MCR;
-    UART_MSR_T      MSR;
-    UART_FSR_T      FSR;
-    UART_ISR_T      ISR;
-    UART_TOR_T      TOR;
-    UART_BAUD_T     BAUD;
-    UART_IRCR_T     IRCR;
-    UART_LINCON_T   LINCON;    
-	UART_FUNSEL_T   FUNSEL;    
-} UART_T;
-
-/*----------------------------- Timer Controller -----------------------------*/
-typedef struct
-{
-    __IO uint32_t  PRESCALE:8;
-    __I  uint32_t  RESERVE0:8;
-    __IO uint32_t  TDR_EN:1;
-    __I  uint32_t  RESERVE1:8;
-    __IO uint32_t  CACT:1;
-    __IO uint32_t  CRST:1;
-    __IO uint32_t  MODE:2;
-    __IO uint32_t  IE:1;
-    __IO uint32_t  CEN:1;
-    __IO uint32_t  nDBGACK_EN:1;
-} TIMER_TCSR_T;
-
-typedef __IO uint32_t TIMER_TICR_T;
-
-typedef __IO uint32_t TIMER_TDR_T;
-
-typedef struct
-{
-    __IO uint32_t  TIF:1;
-    __I  uint32_t  RESERVE:31;
-} TIMER_TISR_T;
-
-typedef struct
-{
-    TIMER_TCSR_T     TCSR;
-    TIMER_TICR_T     TICR;
-    TIMER_TISR_T     TISR;    
-    TIMER_TDR_T      TDR;
- } TIMER_T;
-
-
-/*----------------------------- WDT Controller -----------------------------*/
-typedef struct
-{
-    __IO uint32_t  WTR:1;
-	__IO uint32_t  WTRE:1;
-	__IO uint32_t  WTRF:1;
-	__IO uint32_t  WTIF:1;
-	__I  uint32_t  RESERVE:2;
-	__IO uint32_t  WTIE:1;
-	__IO uint32_t  WTE:1;
-	__IO uint32_t  WTIS:3;
-    __I  uint32_t  RESERVE1:21;
-} WDT_WTCR_T;
-
-typedef struct
-{
-    WDT_WTCR_T     WTCR;
-    
- } WDT_T;
-
-/*------------------------- SPI Interface Controller -------------------------*/
-typedef struct
-{
-    __IO uint32_t  GO_BUSY:1;
-    __IO uint32_t  RX_NEG:1;
-    __IO uint32_t  TX_NEG:1;
-    __IO uint32_t  TX_BIT_LEN:5;
-    __IO uint32_t  TX_NUM:2;
-    __IO uint32_t  LSB:1;
-    __IO uint32_t  CLKP:1;
-    __IO uint32_t  SLEEP:4;
-    __IO uint32_t  IF:1;
-    __IO uint32_t  IE:1;
-    __IO uint32_t  SLAVE:1;
-    __IO uint32_t  BYTE_SLEEP:1;
-    __IO uint32_t  BYTE_ENDIAN:1;
-    __IO uint32_t  FOURB:1;
-    __IO uint32_t  TWOB:1;
-    __IO uint32_t  VARCLK_EN:1;
-    __I  uint32_t  RESERVE:8;
-} SPI_CNTRL_T;
-
-typedef struct
-{
-    __IO uint32_t  DIVIDER:16;
-    __IO uint32_t  DIVIDER2:16;
-} SPI_DIVIDER_T;
-
-typedef struct
-{
-    __IO uint32_t  SSR:2;
-    __IO uint32_t  SS_LVL:1;
-    __IO uint32_t  ASS:1;
-    __IO uint32_t  SS_LTRIG:1;
-    __IO uint32_t  LTRIG_FLAG:1;
-    __I  uint32_t  RESERVE:26;
-} SPI_SSR_T;
-
-
-typedef __I  uint32_t   SPI_RX_T;
-typedef __O  uint32_t   SPI_TX_T;
-
-typedef struct
-{
-    __IO uint32_t  JS:1;
-    __I  uint32_t  RESERVE0:3;
-    __IO uint32_t  JS_RW:1;
-    __IO uint32_t  CS_ACT:1;
-    __IO uint32_t  DATA_RDY:1;
-    __IO uint32_t  CS_DEACT:1;
-    __IO uint32_t  READYB:1;
-    __I  uint32_t  RESERVE1:23;
-} SPI_JS_T;
-
-typedef __IO uint32_t SPI_VARCLK_T;
-
-typedef struct
-{
-    __IO uint32_t  TX_DMA_GO:1;
-    __IO uint32_t  RX_DMA_GO:1;
-    __I  uint32_t  RESERVE:30;
-} SPI_DMA_T;
-
-typedef struct
-{
-    SPI_CNTRL_T     CNTRL;
-    SPI_DIVIDER_T   DIVIDER;
-    SPI_SSR_T       SSR;
-    uint32_t        RESERVE0;
-    SPI_RX_T        RX[2];
-    uint32_t        RESERVE1;
-    uint32_t        RESERVE2;
-    SPI_TX_T        TX[2];
-    uint32_t        RESERVE3;
-    uint32_t        RESERVE4;
-    SPI_JS_T        JS;
-    SPI_VARCLK_T    VARCLK;
-    SPI_DMA_T       DMA;
-} SPI_T;
-
-/*------------------------------ I2C Controller ------------------------------*/
-typedef struct
-{
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  AA:1;
-    __IO uint32_t  SI:1;
-    __IO uint32_t  STO:1;
-    __IO uint32_t  STA:1;
-    __IO uint32_t  ENSI:1;
-   	__IO uint32_t  EI:1;
-    __I  uint32_t  RESERVE1:24;
-} I2C_CON_T;
-
-typedef struct
-{
-    __IO uint32_t  GC:1;
-    __IO uint32_t  ADDR:7;
-    __I  uint32_t  RESERVE:24;
-} I2C_ADDR_T;
-
-typedef __IO uint32_t I2C_DATA_T;
-
-typedef __I  uint32_t I2C_STATUS_T;
-
-typedef __IO uint32_t I2C_CLK_T;
-
-typedef struct
-{
-    __IO uint32_t  TIF:1;
-    __IO uint32_t  DIV4:1;
-    __IO uint32_t  ENTI:1;
-    __I  uint32_t  RESERVE:29;
-} I2C_TOC_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  ADM:7;
-    __I  uint32_t  RESERVE1:24;
-} I2C_ADRM_T;
-
-typedef struct
-{
-    I2C_CON_T       CON;
-    I2C_ADDR_T      ADDR0;
-    I2C_DATA_T      DATA;
-    I2C_STATUS_T    STATUS;
-    I2C_CLK_T       CLK;
-    I2C_TOC_T       TOC;
-	I2C_ADDR_T	    ADDR1;
-	I2C_ADDR_T	    ADDR2;
-	I2C_ADDR_T	    ADDR3;
-	I2C_ADRM_T		ADRM0;
-	I2C_ADRM_T		ADRM1;
-	I2C_ADRM_T		ADRM2;
-	I2C_ADRM_T	    ADRM3;        
-} I2C_T;
-
-
-/*----------------------------- RTC Controller -------------------------------*/
-
-typedef __IO uint32_t RTC_INIR_T;
-
-typedef struct
-{
-    __IO uint32_t  AER:16;
-    __I  uint32_t  ENF:1;
-    __I  uint32_t  RESERVE1:15;
-} RTC_AER_T;
-
-typedef struct
-{
-    __IO uint32_t  FRACTION:6;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  INTEGER:4;
-    __I  uint32_t  RESERVE1:20;
-} RTC_FCR_T;
-
-typedef struct
-{
-    __IO uint32_t  SEC1:4;
-    __IO uint32_t  SEC10:3;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  MIN1:4;
-    __IO uint32_t  MIN10:3;
-    __I  uint32_t  RESERVE1:1;
-    __IO uint32_t  HR1:4;
-    __IO uint32_t  HR10:2;
-    __I  uint32_t  RESERVE2:10;
-} RTC_TLR_T;
-
-typedef struct
-{
-    __IO uint32_t  DAY1:4;
-    __IO uint32_t  DAY10:2;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  MON1:4;
-    __IO uint32_t  MON10:1;
-    __I  uint32_t  RESERVE1:3;
-    __IO uint32_t  YEAR1:4;
-    __IO uint32_t  YEAR10:4;
-    __I  uint32_t  RESERVE2:8;
-} RTC_CLR_T;
-
-typedef struct
-{
-    __IO uint32_t  HR24:1;
-    __I  uint32_t  RESERVE:31;
-} RTC_TSSR_T;
-
-typedef struct
-{
-    __IO uint32_t  DWR:3;
-    __I  uint32_t  RESERVE:29;
-} RTC_DWR_T;
-
-typedef RTC_TLR_T   RTC_TAR_T;
-typedef RTC_CLR_T   RTC_CAR_T;
-
-typedef struct
-{
-    __IO uint32_t  LIR:1;
-    __I  uint32_t  RESERVE:31;
-} RTC_LIR_T;
-
-typedef struct
-{
-    __IO uint32_t  AIER:1;
-    __IO uint32_t  TIER:1;
-    __I  uint32_t  RESERVE:30;
-} RTC_RIER_T;
-
-
-//typedef __IO uint32_t RTC_RIIR_T;
-
-typedef struct
-{
-    __IO uint32_t  AI:1;
-    __IO uint32_t  TI:1;
-    __I  uint32_t  RESERVE:30;
-} RTC_RIIR_T;
-
-typedef struct
-{
-    __IO uint32_t  TTR:3;
-    __I  uint32_t  RESERVE:30;
-} RTC_TTR_T;
-
-typedef struct
-{
-    __IO uint32_t  PTOUT:16;
-    __I  uint32_t  RESERVE0:7;
-    __IO uint32_t  PWROFF:1;
-    __I  uint32_t  RESERVE1:8;
-} RTC_PWRCON_T;
-
-typedef struct
-{
-    RTC_INIR_T  INIR;
-    RTC_AER_T   AER;
-    RTC_FCR_T   FCR;
-    RTC_TLR_T   TLR;
-    RTC_CLR_T   CLR;
-    RTC_TSSR_T  TSSR;
-    RTC_DWR_T   DWR;
-    RTC_TAR_T   TAR;
-    RTC_CAR_T   CAR;
-    RTC_LIR_T   LIR;
-    RTC_RIER_T  RIER;
-    RTC_RIIR_T  RIIR;
-    RTC_TTR_T   TTR;
-    RTC_PWRCON_T   PWRCON;
-} RTC_T;
-
-
-/*----------------------------- ADC Controller -------------------------------*/
-typedef struct
-{
-    __IO uint32_t  RSLT:16;
-    __IO uint32_t  OVERRUN:1;
-    __IO uint32_t  VALID:1;
-    __I  uint32_t  RESERVE1:14;
-} ADC_ADDR_T;
-
-typedef struct
-{
-    __IO uint32_t  ADEN:1;
-    __IO uint32_t  ADIE:1;
-    __IO uint32_t  ADMD:2;
-    __IO uint32_t  TRGS:2;
-    __IO uint32_t  TRGCOND:2;
-    __IO uint32_t  TRGEN:1;
-    __IO uint32_t  PTEN:1;
-    __IO uint32_t  DIFF:1;
-    __IO uint32_t  ADST:1;
-    __I  uint32_t  RESERVE0:4;
-    __IO uint32_t  ADCLKDIV:7;
-    __I  uint32_t  RESERVE1:9;
-} ADC_ADCR_T;
-
-
-
-typedef struct
-{
-    __IO uint32_t  CHEN:8;
-    __IO uint32_t  PRESEL:2;
-    __I  uint32_t  RESERVE:22;
-} ADC_ADCHER_T;
-
-
-typedef struct
-{
-    __IO uint32_t  CMPEN:1;
-    __IO uint32_t  CMPIE:1;
-    __IO uint32_t  CMPCOND:1;
-    __IO uint32_t  CMPCH:3;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  CMPMATCNT:4;
-    __I  uint32_t  RESERVE1:4;
-    __IO uint32_t  CMPD:12;
-    __I  uint32_t  RESERVE2:4;
-} ADC_ADCMPR_T;
-
-typedef struct
-{
-    __IO uint32_t  ADF:1;
-    __IO uint32_t  CMPF0:1;
-    __IO uint32_t  CMPF1:1;
-    __IO uint32_t  BUSY:1;
-    __IO uint32_t  CHANNEL:3;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  VALID:8;
-    __IO uint32_t  OVERRUN:8;
-    __I  uint32_t  RESERVE1:8;
-} ADC_ADSR_T;
-
-typedef struct
-{
-    __IO uint32_t  CALEN:1;
-    __IO uint32_t  CALDONE:1;
-    __I  uint32_t  RESERVE:30;
-} ADC_ADCALR_T;
-
-typedef struct
-{
-    ADC_ADDR_T      ADDR[8];
-    ADC_ADCR_T      ADCR;
-    ADC_ADCHER_T    ADCHER;
-    ADC_ADCMPR_T    ADCMPR[2];
-    ADC_ADSR_T      ADSR;
-    ADC_ADCALR_T    ADCALR;
-
-} ADC_T;
-
-/*---------------------- Analog Comparator Controller -------------------------*/
-typedef struct
-{
-    __IO uint32_t  CMPEN:1;
-    __IO uint32_t  CMPIE:1;
-    __IO uint32_t  CMP_HYSEN:1;
-    __IO uint32_t  CP:1;
-    __IO uint32_t  CN:1;
-    __IO uint32_t  COE:1;
-    __I  uint32_t  RESERVE:26;
-} ACMP_CMPCR_T;
-
-typedef struct
-{
-    __IO uint32_t  CMPF1:1;
-    __IO uint32_t  CMPF2:1;
-    __IO uint32_t  CO1:1;
-    __IO uint32_t  CO2:1;
-    __I  uint32_t  RESERVE:28;
-} ACMP_CMPSR_T;
-
-typedef struct
-{
-    ACMP_CMPCR_T CMPCR[2];
-    ACMP_CMPSR_T CMPSR;
-} ACMP_T;
-
-/*---------------------------- Clock Controller ------------------------------*/
-typedef struct
-{
-    __IO uint32_t  XTL12M_EN:1;
-    __IO uint32_t  XTL32K_EN:1;
-    __IO uint32_t  OSC22M_EN:1;
-    __IO uint32_t  OSC10K_EN:1;
-    __IO uint32_t  WU_DLY:1;
-    __IO uint32_t  WINT_EN:1;
-    __IO uint32_t  PD_WU_STS:1;
-    __IO uint32_t  PWR_DOWN:1;
-    __IO uint32_t  PD_WAIT_CPU:1;
-    __I  uint32_t  RESERVE:23;
-} SYSCLK_PWRCON_T;
-
-typedef struct
-{
-    __IO uint32_t  CPU_EN:1;
-    __IO uint32_t  PDMA_EN:1;
-    __IO uint32_t  ISP_EN:1;
-    __I  uint32_t  RESERVE:29;
-} SYSCLK_AHBCLK_T;
-
-typedef struct
-{
-    __IO uint32_t  WDG_EN:1;
-    __IO uint32_t  RTC_EN:1;
-    __IO uint32_t  TMR0_EN:1;
-    __IO uint32_t  TMR1_EN:1;
-    __IO uint32_t  TMR2_EN:1;
-    __IO uint32_t  TMR3_EN:1;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  I2C0_EN:1;
-    __IO uint32_t  I2C1_EN:1;
-    __I  uint32_t  RESERVE1:2;
-    __IO uint32_t  SPI0_EN:1;
-    __IO uint32_t  SPI1_EN:1;
-    __IO uint32_t  SPI2_EN:1;
-    __IO uint32_t  SPI3_EN:1;
-    __IO uint32_t  UART0_EN:1;
-    __IO uint32_t  UART1_EN:1;
-    __I  uint32_t  RESERVE2:2;
-    __IO uint32_t  PWM01_EN:1;
-    __IO uint32_t  PWM23_EN:1;
-    __I  uint32_t  RESERVE3:2;
-    __IO uint32_t  CAN0_EN:1;
-    __IO uint32_t  CAN1_EN:1;
-    __I  uint32_t  RESERVE4:1;
-    __IO uint32_t  USBD_EN:1;
-    __IO uint32_t  ADC_EN:1;
-    __I  uint32_t  RESERVE5:1;
-    __IO uint32_t  ACMP_EN:1;
-    __IO uint32_t  PS2_EN:1;
-} SYSCLK_APBCLK_T;
-
-typedef struct
-{
-    __IO uint32_t  HCLK_S:3;
-    __IO uint32_t  STCLK_S:3;
-    __I  uint32_t  RESERVE:26;
-} SYSCLK_CLKSEL0_T;
-
-
-typedef struct
-{
-    __IO uint32_t  WDG_S:2;
-    __IO uint32_t  ADC_S:2;
-    __I  uint32_t  RESERVE1:4;
-    __IO uint32_t  TMR0_S:3;
-    __I  uint32_t  RESERVE2:1;
-    __IO uint32_t  TMR1_S:3;
-    __I  uint32_t  RESERVE3:1;
-    __IO uint32_t  TMR2_S:3;
-    __I  uint32_t  RESERVE4:1;
-    __IO uint32_t  TMR3_S:3;
-    __I  uint32_t  RESERVE5:1;
-    __IO uint32_t  UART_S:2;
-    __IO uint32_t  CAN_S:2;
-    __IO uint32_t  PWM10_S:2;
-    __IO uint32_t  PWM32_S:2;
-} SYSCLK_CLKSEL1_T;
-
-typedef struct
-{
-    __IO uint32_t  HCLK_N:4;
-    __IO uint32_t  USB_N:4;
-    __IO uint32_t  UART_N:4;
-    __IO uint32_t  CAN_N:4;
-    __IO uint32_t  ADC_N:8;
-    __I  uint32_t  RESERVE:8;
-} SYSCLK_CLKDIV_T;
-
-typedef struct
-{
-    __IO uint32_t  FB_DV:9;
-    __IO uint32_t  IN_DV:5;
-    __IO uint32_t  OUT_DV:2;
-    __IO uint32_t  PD:1;
-    __IO uint32_t  BP:1;
-    __IO uint32_t  OE:1;
-    __IO uint32_t  PLL_SRC:1;
-    __I  uint32_t  RESERVE:12;
-} SYSCLK_PLLCON_T;
-
-typedef struct
-{    
-    __IO uint32_t  TEST_SEL:8;
-    __I  uint32_t  RESERVE:24;
-} SYSCLK_TREG_T;
-
-typedef struct
-{
-    SYSCLK_PWRCON_T    PWRCON;
-    SYSCLK_AHBCLK_T    AHBCLK;
-    SYSCLK_APBCLK_T    APBCLK;
-    uint32_t           RESERVED0;
-    SYSCLK_CLKSEL0_T   CLKSEL0;
-    SYSCLK_CLKSEL1_T   CLKSEL1;
-    SYSCLK_CLKDIV_T    CLKDIV;
-    uint32_t           RESERVED1;
-	SYSCLK_PLLCON_T    PLLCON;
-    
-} SYSCLK_T;
-
-/*---------------------------- Global Controller -----------------------------*/
-typedef __I uint32_t GCR_PDID_T;  
-
-typedef struct
-{
-    __IO uint32_t  RSTS_POR:1;
-	__IO uint32_t  RSTS_PAD:1;
-	__IO uint32_t  RSTS_WDG:1;
-	__IO uint32_t  RSTS_LVR:1;
-	__IO uint32_t  RSTS_BOD:1;
-	__IO uint32_t  RSTS_MCU:1;
-	__IO uint32_t  RSTS_PMU:1;    
-	__I  uint32_t  RESERVE:25;
-} GCR_RSTSRC_T;
-
-
-typedef struct
-{
-    __IO uint32_t  CHIP_RST:1;
-    __IO uint32_t  CPU_RST:1;
-    __IO uint32_t  PDMA_RST:1;
-    __I  uint32_t  RESERVE:29;
-} GCR_IPRSTC1_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  GPIO_RST:1;
-    __IO uint32_t  TMR0_RST:1;
-    __IO uint32_t  TMR1_RST:1;
-    __IO uint32_t  TMR2_RST:1;
-    __IO uint32_t  TMR3_RST:1;
-    __I  uint32_t  RESERVE1:2;
-    __IO uint32_t  I2C0_RST:1;
-    __IO uint32_t  I2C1_RST:1;
-    __I  uint32_t  RESERVE2:2;
-    __IO uint32_t  SPI0_RST:1;
-    __IO uint32_t  SPI1_RST:1;
-    __IO uint32_t  SPI2_RST:1;
-    __IO uint32_t  SPI3_RST:1;
-    __IO uint32_t  UART0_RST:1;
-    __IO uint32_t  UART1_RST:1;
-    __I  uint32_t  RESERVE3:2;
-    __IO uint32_t  PWM_RST:1;
-    __I  uint32_t  RESERVE4:1;
-    __IO uint32_t  ACMP_RST:1;
-    __IO uint32_t  PS2_RST:1;
-    __IO uint32_t  CAN0_RST:1;
-    __IO uint32_t  CAN1_RST:1;
-    __I  uint32_t  RESERVE5:1;
-    __IO uint32_t  USBD_RST:1;
-    __IO uint32_t  ADC_RST:1;
-    __I  uint32_t  RESERVE6:3;
-} GCR_IPRSTC2_T;
-
-typedef __IO uint32_t GCR_MISCR_T; 
-
-
-typedef struct
-{
-    __IO uint32_t  BOD_EN:1;
-    __IO uint32_t  BOD_VL:2;
-    __IO uint32_t  BOD_RSTEN:1;
-    __IO uint32_t  BOD_BYP_EN:1;
-    __IO uint32_t  BOD_LPM:1;
-    __IO uint32_t  BOD_OUT:1;
-	__IO uint32_t  LVR_EN:1;
-	__IO uint32_t  VTEMP_EN:1;
-	__IO uint32_t  LDO_BYP:1;
-    __I  uint32_t  RESERVE1:22;
-} GCR_BODCR_T;
-
-typedef __IO uint32_t GCR_PORCR_T; 
-
-
-typedef struct
-{
-    __IO uint32_t ADC0:1;
-    __IO uint32_t ADC1:1;
-    __IO uint32_t ADC2:1;
-    __IO uint32_t ADC3:1;
-    __IO uint32_t ADC4:1;
-    __IO uint32_t ADC5:1;
-    __IO uint32_t ADC6:1;
-    __IO uint32_t ADC7:1;
-    __IO uint32_t I2C0_SDA:1;
-    __IO uint32_t I2C0_SCL:1;
-    __IO uint32_t I2C1_SDA:1;
-    __IO uint32_t I2C1_SCL:1;
-    __IO uint32_t PWM0:1;
-    __IO uint32_t PWM1:1;
-    __IO uint32_t PWM2:1;
-    __IO uint32_t PWM3:1;
-    __IO uint32_t SCHMITT:16;    
-} GCR_GPAMFP_T;
-
-typedef struct
-{
-    __IO uint32_t UART0_RX:1;
-    __IO uint32_t UART0_TX:1;
-    __IO uint32_t UART0_nRTS:1;
-    __IO uint32_t UART0_nCTS:1;
-    __IO uint32_t UART1_RX:1;
-    __IO uint32_t UART1_TX:1;
-    __IO uint32_t UART1_nRTS:1;
-    __IO uint32_t UART1_nCTS:1;
-    __IO uint32_t TM0:1;
-    __IO uint32_t TM1:1;
-    __IO uint32_t TM2:1;
-    __IO uint32_t TM3:1;
-    __IO uint32_t CPO0:1;
-    __IO uint32_t CPO1:1;
-    __IO uint32_t INT0:1;
-    __IO uint32_t INT1:1;
-    __IO uint32_t SCHMITT:16;    
-} GCR_GPBMFP_T;
-
-typedef struct
-{
-    __IO uint32_t SPI0_SS0:1;
-    __IO uint32_t SPI0_CLK:1;
-    __IO uint32_t SPI0_MISO0:1;
-    __IO uint32_t SPI0_MOSI0:1;
-    __IO uint32_t SPI0_MISO1:1;
-    __IO uint32_t SPI0_MOSI1:1;
-    __IO uint32_t CPP0:1;
-    __IO uint32_t CPN0:1;
-    __IO uint32_t SPI1_SS0:1;
-    __IO uint32_t SPI1_CLK:1;
-    __IO uint32_t SPI1_MISO0:1;
-    __IO uint32_t SPI1_MOSI0:1;
-    __IO uint32_t SPI1_MISO1:1;
-    __IO uint32_t SPI1_MOSI1:1;
-    __IO uint32_t CPP1:1;
-    __IO uint32_t CPN1:1;
-    __IO uint32_t SCHMITT:16;    
-} GCR_GPCMFP_T;
-
-typedef struct
-{
-    __IO uint32_t SPI2_SS0:1;
-    __IO uint32_t SPI2_CLK:1;
-    __IO uint32_t SPI2_MISO0:1;
-    __IO uint32_t SPI2_MOSI0:1;
-    __IO uint32_t SPI2_MISO1:1;
-    __IO uint32_t SPI2_MOSI1:1;
-    __IO uint32_t CAN0_RX:1;
-    __IO uint32_t CAN0_TX:1;
-    __IO uint32_t SPI3_SS0:1;
-    __IO uint32_t SPI3_CLK:1;
-    __IO uint32_t SPI3_MISO0:1;
-    __IO uint32_t SPI3_MOSI0:1;
-    __IO uint32_t SPI3_MISO1:1;
-    __IO uint32_t SPI3_MOSI1:1;
-    __IO uint32_t CAN1_RX:1;
-    __IO uint32_t CAN1_TX:1;
-    __IO uint32_t SCHMITT:16;    
-} GCR_GPDMFP_T;
-
-
-typedef struct
-{
-    __I  uint32_t  RESERVE:16;
-    __IO uint32_t  SCHMITT:16;
-} GCR_GPEMFP_T;
-
-typedef struct
-{
-    __IO uint32_t  SPI0_SS1:1;  /* GPB10 */
-    __IO uint32_t  SPI1_SS1:1;  /* GPB9  */
-    __IO uint32_t  SPI2_SS1:1;  /* GPA7  */
-    __IO uint32_t  SPI3_SS1:1;  /* GPB14 */
-    __I  uint32_t  RESERVE:28;
-    
-} GCR_USPIMFP_T;
-
-typedef __IO uint32_t GCR_REGLOCK_T;
-typedef __IO uint32_t GCR_RCADJ_T;
-
-
-typedef struct
-{
-    __IO uint32_t  INTSRC:3;
-    __I  uint32_t  RESERVE:29;
-} GCR_INTSRC_T;
-
-typedef struct
-{
-    __IO uint32_t  NMISEL:5;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  INT_TEST:1;
-    __I  uint32_t  RESERVE1:24;
-} GCR_NMISEL_T;
-
-
-typedef __IO uint32_t GCR_MCUIRQ_T;
-
-typedef struct
-{
-    GCR_PDID_T      PDID;
-    GCR_RSTSRC_T    RSTSRC;
-    GCR_IPRSTC1_T   IPRSTC1;
-    GCR_IPRSTC2_T   IPRSTC2;
-    uint32_t        RESERVE0;
-	GCR_MISCR_T     MISCR;
-    GCR_BODCR_T     BODCR;
-    GCR_PORCR_T		PORCR;
-	uint32_t        RESERVE1[4];
-    GCR_GPAMFP_T    GPAMFP;
-    GCR_GPBMFP_T    GPBMFP;
-    GCR_GPCMFP_T    GPCMFP;
-    GCR_GPDMFP_T    GPDMFP;
-    GCR_GPEMFP_T    GPEMFP;
-    uint32_t        RESERVE2[3];
-	GCR_USPIMFP_T   USPIMFP;
-    uint32_t        RESERVE3[43];
-    GCR_REGLOCK_T   REGLOCK;
-	uint32_t        RESERVE4[3];
-	GCR_RCADJ_T		RCADJ;
-} GCR_T;
-
-
-
-typedef struct
-{
-    GCR_INTSRC_T    INTSRC;
-    GCR_NMISEL_T    NMISEL;
-    GCR_MCUIRQ_T    MCUIRQ;   
-} GCR_INT_T;
-
-/*-------------------------- FLASH Memory Controller -------------------------*/
-typedef struct
-{
-    __IO uint32_t  ISPEN:1;
-    __IO uint32_t  BS:1;
-    __I  uint32_t  RESERVE0:3;
-    __IO uint32_t  LDUEN:1;
-    __IO uint32_t  ISPFF:1;
-    __IO uint32_t  SWRST:1;
-    __IO uint32_t  PT:3;
-	__I  uint32_t  RESERVE1:1;
-	__IO uint32_t  ET:3;
-    __I  uint32_t  RESERVE2:17;
-
-} FMC_ISPCON_T;
-
-typedef __IO uint32_t FMC_ISPADR_T;
-typedef __IO uint32_t FMC_ISPDAT_T;
-
-typedef struct
-{
-    __IO uint32_t  FCTRL:4;
-    __IO uint32_t  FCEN:1;
-    __IO uint32_t  FOEN:1;
-    __I  uint32_t  RESERVE:26;
-} FMC_ISPCMD_T;
-
-typedef struct
-{
-    __IO uint32_t  ISPGO:1;
-    __I  uint32_t  RESERVE:31;
-} FMC_ISPTRG_T;
-
-typedef __I uint32_t FMC_DFBADR_T;
-
-typedef struct
-{
-    __IO uint32_t  FPSEN:1;
-    __IO uint32_t  FATS:3;
-    __I  uint32_t  RESERVE:28;
-} FMC_FATCON_T;
-
-typedef struct
-{
-    FMC_ISPCON_T ISPCON;
-    FMC_ISPADR_T ISPADR;
-    FMC_ISPDAT_T ISPDAT;
-    FMC_ISPCMD_T ISPCMD;
-    FMC_ISPTRG_T ISPTRG;
-    FMC_DFBADR_T DFBADR;
-    FMC_FATCON_T FATCON;
-} FMC_T;
-
-
-/*------------------------ PS2 Device Interface Controller -------------------*/
-typedef struct
-{
-    __IO uint32_t  PS2EN:1;
-    __IO uint32_t  TXINTEN:1;
-    __IO uint32_t  RXINTEN:1;
-    __IO uint32_t  TXFIFO_DEPTH:4;
-    __IO uint32_t  ACK:1;
-    __IO uint32_t  CLRFIFO:1;
-    __IO uint32_t  OVERRIDE:1;
-    __IO uint32_t  FPS2CLK:1;
-    __IO uint32_t  FPS2DAT:1;
-    __I  uint32_t  RESERVE:20;
-} PS2_CON_T;
-
-typedef __IO uint32_t PS2_DATA_T;
-
-typedef struct
-{
-    __IO uint32_t  PS2CLK:1;
-    __IO uint32_t  PS2DATA:1;
-    __IO uint32_t  FRAMERR:1;
-    __IO uint32_t  RXPARTY:1;
-    __IO uint32_t  RXBUSY:1;
-    __IO uint32_t  TXBUSY:1;
-    __IO uint32_t  RXOVF:1;
-    __IO uint32_t  TXEMPTY:1;
-    __IO uint32_t  BYTEIDX:4;
-    __I  uint32_t  RESERVE:20;
-} PS2_STATUS_T;
-
-typedef __IO uint32_t PS2_INTID_T;
-
-typedef struct
-{
-    PS2_CON_T       PS2CON;
-    PS2_DATA_T      TXDATA[4];
-    PS2_DATA_T      RXDATA;
-    PS2_STATUS_T    STATUS;
-    PS2_INTID_T     INTID;
-} PS2_T;
-
-/*---------------------------- CAN Bus Controller ----------------------------*/
-typedef struct
-{
-    __IO uint32_t  RSTM:1;
-	__IO uint32_t  LOM:1;
-    __I  uint32_t  RESERVE:30;
-    
-} CAN_OPMODE_T;
-
-typedef struct
-{
-    __IO uint32_t  TR:1;
-	__IO uint32_t  ABRT:1;
-    __I  uint32_t  RESERVE2:3;
-	__IO uint32_t  OVERFLOAD_EN:1;
-	__IO uint32_t  WAKEUP_EN:1;
-    __IO uint32_t  CAN_EN:1;
-    __I  uint32_t  RESERVE:24;
-} CAN_CMD_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE0:3;
-    __IO uint32_t  TCS:1;
-    __IO uint32_t  RS:1;
-    __IO uint32_t  TS:1;
-    __IO uint32_t  BS:1;
-    __IO uint32_t  BS2:1;
-    __IO uint32_t  EAS:1;
-    __IO uint32_t  EPS:1;
-    __I  uint32_t  RESERVE1:22;
-} CAN_BSR_T;
-
-typedef struct
-{
-    __IO uint32_t  RI:1;
-    __IO uint32_t  TI:1;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  WUI:1;
-    __I  uint32_t  RESERVE1:1;
-    __IO uint32_t  ALI:1;
-    __IO uint32_t  BEI:1;
-    __I  uint32_t  RESERVE2:24;
-} CAN_INTR_T;
-
-typedef struct
-{
-    __IO uint32_t  RIE:1;
-    __IO uint32_t  TIE:1;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  WUIE:1;
-    __I  uint32_t  RESERVE1:1;
-    __IO uint32_t  ALIE:1;
-    __IO uint32_t  BEIE:1;
-    __I  uint32_t  RESERVE2:24;
-} CAN_INTEN_T;
-
-typedef struct
-{
-    __IO uint32_t  BRP:4;
-    __IO uint32_t  SJW:2;
-    __IO uint32_t  TSEG1:5;
-    __IO uint32_t  TSEG2:4;
-    __IO uint32_t  SAMP:1;
-    __I  uint32_t  RESERVE2:16;
-} CAN_BTIMR_T;
-
-typedef struct
-{
-    __IO uint32_t  BIT_ERR:4;
-    __IO uint32_t  ACK_ERR:2;
-    __IO uint32_t  CRC_ERR:5;
-    __IO uint32_t  FORM_ERR:4;
-    __IO uint32_t  STUFF_ERR:1;
-    __I  uint32_t  RESERVE:16;
-} CAN_ERRCR_T;
-
-typedef struct
-{
-    __IO uint32_t  RECNT:8;
-    __I  uint32_t  RESERVE:24;
-} CAN_RECNTR_T;
-
-typedef struct
-{
-    __IO uint32_t  TECNT:8;
-    __I  uint32_t  RESERVE:24;
-} CAN_TECNTR_T;
-
-typedef struct
-{
-    __IO uint32_t  TXDLC:6;
-    __IO uint32_t  TXRTR:1;
-    __IO uint32_t  TXFF:1;
-    __I  uint32_t  RESERVE:24;
-} CAN_TXFINFO_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE:3;
-    __IO uint32_t  TXID:29;
-} CAN_TXID_T;
-
-typedef __IO uint32_t CAN_TXDATA_T;
-
-typedef struct
-{
-    __IO uint32_t  RXDLC:4;
-    __I  uint32_t  RESERVE0:2;
-    __IO uint32_t  RXRTR:1;
-    __IO uint32_t  RXIDE:1;
-    __I  uint32_t  RESERVE1:24;
-} CAN_RXFINFO_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE:3;
-    __IO uint32_t  RXID:29;
-} CAN_RXID_T;
-
-typedef __IO uint32_t CAN_RXDATA_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE:3;
-    __IO uint32_t  ACR:29;
-} CAN_ACR_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE:3;
-    __IO uint32_t  AMR:29;
-} CAN_AMR_T;
-
-
-typedef struct
-{
-    __I  uint32_t  RESERVE:32;
-} CAN_RESERVE_T;
-
-typedef struct
-{
-    CAN_OPMODE_T    OPMODE;
-    CAN_CMD_T       CMD;
-	CAN_BSR_T       BSR;    
-	CAN_INTR_T      INTR;
-
-    CAN_INTEN_T     INTEN;
-    CAN_BTIMR_T     BTIMR;
-	CAN_RESERVE_T	PROTECT[2];
-
-    CAN_ERRCR_T     ERRCR;
-	CAN_RESERVE_T	PROTECT1;
-    CAN_RECNTR_T    RECNTR;
-    CAN_TECNTR_T    TECNTR;
-
-    CAN_TXFINFO_T   TXFINFO;
-    CAN_TXID_T      TXID;
-    CAN_TXDATA_T    TXDATA[2];
-
-    CAN_RXFINFO_T   RXFINFO;
-    CAN_RXID_T      RXID;
-    CAN_RXDATA_T    RX_DATA[2];
-    CAN_ACR_T       ACR;
-    CAN_AMR_T       AMR;    
-} CAN_T;
-
-
-/*--------------------------- USB Device Controller --------------------------*/
-typedef struct
-{
-    __IO uint32_t  BUS:1;
-    __IO uint32_t  USB:1;
-    __IO uint32_t  FLD:1;
-    __IO uint32_t  WAKEUP:1;
-    __I  uint32_t  RESERVE0:4;
-    __IO uint32_t  WAKEUP_EN:1;
-    __I  uint32_t  RESERVE1:6;
-    __IO uint32_t  INNAK_EN:1;
-    __I  uint32_t  RESERVE2:16;
-} USBD_IEF_T;
-
-typedef struct
-{
-    __IO uint32_t  BUS:1;
-    __IO uint32_t  USB:1;
-    __IO uint32_t  FLD:1;
-    __IO uint32_t  WAKEUP:1;
-    __I  uint32_t  RESERVE0:12;
-    __IO uint32_t  EPTF:6;
-    __I  uint32_t  RESERVE1:9;
-    __IO uint32_t  SETUP:1;
-} USBD_EVF_T;
-
-typedef struct
-{
-    __IO uint32_t  FADDR:7;
-    __I  uint32_t  RESERVE:25;
-} USBD_FADDR_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE0:7;
-    __IO uint32_t  OVERRUN:1;
-    __IO uint32_t  STS0:3;
-    __IO uint32_t  STS1:3;
-    __IO uint32_t  STS2:3;
-    __IO uint32_t  STS3:3;
-    __IO uint32_t  STS4:3;
-    __IO uint32_t  STS5:3;
-    __I  uint32_t  RESERVE1:6;
-} USBD_STS_T;
-
-
-
-typedef struct
-{
-    __IO uint32_t  USBRST:1;
-    __IO uint32_t  SUSPEND:1;
-    __IO uint32_t  RESUME:1;
-    __IO uint32_t  TIMEOUT:1;
-    __IO uint32_t  PHY_EN:1;
-    __IO uint32_t  RWAKEUP:1;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  USB_EN:1;
-	__IO uint32_t  DPPU_EN:1;
-	__IO uint32_t  PDB:1;
-    __I  uint32_t  RESERVE1:22;
-} USBD_ATTR_T;
-
-
-
-typedef struct
-{
-    __IO uint32_t  FLODET:1;
-    __I  uint32_t  RESERVE:31;
-} USBD_FLODET_T;
-
-typedef struct
-{
-    __I  uint32_t  RESERVE0:3;
-    __IO uint32_t  BUFSEG:6;
-    __I  uint32_t  RESERVE:23;
-} USBD_BUFSEG_T;
-
-typedef struct
-{
-    __IO uint32_t  MXPLD:9;
-    __I  uint32_t  RESERVE:23;
-} USBD_MXPLD_T;
-
-typedef struct
-{
-    __IO uint32_t  EPT:4;
-    __IO uint32_t  ISOCH:1;
-    __IO uint32_t  STATE:2;
-    __IO uint32_t  DSQ:1;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  STALL_CTL:1;
-    __I  uint32_t  RESERVE1:22;
-} USBD_CFG_T;
-
-typedef struct
-{
-    __IO uint32_t  CFGP:1;
-    __IO uint32_t  STALL:1;
-    __I  uint32_t  RESERVE:30;
-} USBD_CFGP_T;
-
-typedef struct
-{
-    __IO uint32_t  DRVSE0:1;
-    __I  uint32_t  RESERVE:31;
-} USBD_DRVSE0_T;
-
-typedef struct
-{
-    __IO uint32_t  BISTEN:1;
-    __IO uint32_t  FINISH:1;
-    __IO uint32_t  BISTFAIL:1;
-    __I  uint32_t  RESERVE:29;
-} USBD_BIST_T;
-
-typedef struct
-{
-    __IO uint32_t  PDMA_RW:1;
-    __IO uint32_t  PDMA_EN:1;
-    __I  uint32_t  RESERVE:30;
-} USBD_PDMA_T;
-
-
-typedef struct
-{
-    USBD_BUFSEG_T   BUFSEG;
-    USBD_MXPLD_T    MXPLD;
-    USBD_CFG_T      CFG;
-    USBD_CFGP_T     CFGP;
-} USBD_EP_T;
-
-typedef struct
-{
-    USBD_IEF_T      IEF;
-    USBD_EVF_T      EVF;
-    USBD_FADDR_T    FADDR;
-    USBD_STS_T      STS;
-    USBD_ATTR_T     ATTR;
-    USBD_FLODET_T   FLODET;
-    USBD_BUFSEG_T   BUFSEG;
-    uint32_t        RESERVE0;
-	USBD_EP_T       EP[6];
-    uint32_t        RESERVE1[4];
-	USBD_DRVSE0_T   DRVSE0;
-    uint32_t        RESERVE2[3];
-	USBD_BIST_T     BIST;
-    USBD_PDMA_T     PDMA;
-} USBD_T;
-
-
-/*------------------------------ PDMA Controller -----------------------------*/
-typedef struct
-{
-    __IO uint32_t  PDMACEN:1;
-    __IO uint32_t  SW_RST:1;
-    __IO uint32_t  MODE_SEL:2;
-    __IO uint32_t  SAD_SEL:2;
-    __IO uint32_t  DAD_SEL:2;
-    __I  uint32_t  RESERVE0:4;
-    __IO uint32_t  WAR_BCR_SEL:4;
-    __I  uint32_t  RESERVE1:3;
-    __IO uint32_t  APB_TWS:2;
-    __I  uint32_t  RESERVE2:2;
-    __IO uint32_t  TRIG_EN:1;
-    __I  uint32_t  RESERVE3:8;
-} PDMA_CSR_T;
-
-typedef __IO uint32_t PDMA_SAR_T;
-typedef __IO uint32_t PDMA_DAR_T;
-
-typedef __IO uint32_t PDMA_BCR_T;
-
-typedef __IO uint32_t PDMA_CSAR_T;
-typedef __IO uint32_t PDMA_CDAR_T;
-
-typedef struct
-{
-    __IO uint32_t  CBCR:24;
-    __I  uint32_t  RESERVE:8;
-} PDMA_CBCR_T;
-
-typedef struct
-{
-    __IO uint32_t  TABORT_IE:1;
-    __IO uint32_t  BLKD_IE:1;
-    __IO uint32_t  WAR_IE:1;
-    __I  uint32_t  RESERVE:29;
-} PDMA_IER_T;
-
-//typedef __IO uint32_t PDMA_ISR_T;
-
-typedef struct
-{
-    __IO uint32_t  TABORT_IF:1;
-    __IO uint32_t  BLKD_IF:1;
-    __I  uint32_t  RESERVE:6;
-	__IO uint32_t  WAR_IF:4;
-    __I  uint32_t  RESERVE1:3;
-	__IO uint32_t  BUSY:1;
-	__I  uint32_t  RESERVE2:15;
-	__IO uint32_t  INTR:1;
-} PDMA_ISR_T;
-
-typedef __IO uint32_t PDMA_SBUF_T;
-
-typedef struct
-{
-    __IO uint32_t  PDMA_RST:1;
-    __I  uint32_t  RESERVE0:7;
-    __IO uint32_t  HCLK0_EN:1;
-    __IO uint32_t  HCLK1_EN:1;
-    __IO uint32_t  HCLK2_EN:1;
-    __IO uint32_t  HCLK3_EN:1;
-    __IO uint32_t  HCLK4_EN:1;
-    __IO uint32_t  HCLK5_EN:1;
-    __IO uint32_t  HCLK6_EN:1;
-    __IO uint32_t  HCLK7_EN:1;
-    __IO uint32_t  HCLK8_EN:1;
-    __IO uint32_t  HCLK9_EN:1;
-    __IO uint32_t  HCLK10_EN:1;
-    __IO uint32_t  HCLK11_EN:1;
-    __I  uint32_t  RESERVE1:12;
-} PDMA_GCRCSR_T;
-
-typedef struct
-{
-    __IO uint32_t  UART0_RXSEL:4;
-    __IO uint32_t  UART0_TXSEL:4;
-    __IO uint32_t  UART1_RXSEL:4;
-    __IO uint32_t  UART1_TXSEL:4;
-    __IO uint32_t  USBD_RXSEL:4;
-    __IO uint32_t  USBD_TXSEL:4;
-    __IO uint32_t  ADC_RXSEL:4;
-    __IO uint32_t  ADC_TXSEL:4;
-} PDMA_PDSSR1_T;
-                                                        
-
-typedef struct
-{
-    __IO uint32_t  SPI0_RXSEL:4;
-    __IO uint32_t  SPI0_TXSEL:4;
-    __IO uint32_t  SPI1_RXSEL:4;
-    __IO uint32_t  SPI1_TXSEL:4;
-    __IO uint32_t  SPI2_RXSEL:4;
-    __IO uint32_t  SPI2_TXSEL:4;
-    __IO uint32_t  SPI3_RXSEL:4;
-    __IO uint32_t  SPI3_TXSEL:4;
-} PDMA_PDSSR0_T;
-
-typedef __IO uint32_t PDMA_GCRISR_T;
-
-typedef struct
-{
-    PDMA_GCRCSR_T   GCRCSR;
-    PDMA_PDSSR0_T   PDSSR0;
-    PDMA_PDSSR1_T   PDSSR1;  
-    PDMA_GCRISR_T   GCRISR;  
-} PDMA_GCR_T;
-
-typedef struct 
-{
-    PDMA_CSR_T      CSR;
-    PDMA_SAR_T      SAR;
-    PDMA_DAR_T      DAR;
-    PDMA_BCR_T      BCR;
-    uint32_t        POINT;
-    PDMA_CSAR_T     CSAR;
-    PDMA_CDAR_T     CDAR;
-    PDMA_CBCR_T     CBCR;
-    PDMA_IER_T      IER;
-    PDMA_ISR_T      ISR;
-    PDMA_SBUF_T     SBUF[4];
-} PDMA_T;
-
-/*----------------------------- PWM Controller -------------------------------*/
-typedef struct
-{
-    __IO uint32_t  CP0:8;
-    __IO uint32_t  CP1:8;
-    __IO uint32_t  DZI0:8;
-    __IO uint32_t  DZI1:8;
-} PWM_PPR_T;
-
-typedef struct
-{
-    __IO uint32_t  CSR0:3;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  CSR1:3;
-    __I  uint32_t  RESERVE1:1;
-    __IO uint32_t  CSR2:3;
-    __I  uint32_t  RESERVE2:1;
-    __IO uint32_t  CSR3:3;
-    __I  uint32_t  RESERVE:17;
-} PWM_CSR_T;
-
-typedef struct
-{
-    __IO uint32_t  CH0EN:1;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  CH0INV:1;
-    __IO uint32_t  CH0MOD:1;
-    __IO uint32_t  DZEN0:1;
-    __IO uint32_t  DZEN1:1;
-    __I  uint32_t  RESERVE1:2;
-    __IO uint32_t  CH1EN:1;
-    __I  uint32_t  RESERVE2:1;
-    __IO uint32_t  CH1INV:1;
-    __IO uint32_t  CH1MOD:1;
-    __I  uint32_t  RESERVE3:4;
-    __IO uint32_t  CH2EN:1;
-    __I  uint32_t  RESERVE4:1;
-    __IO uint32_t  CH2INV:1;
-    __IO uint32_t  CH2MOD:1;
-    __I  uint32_t  RESERVE5:4;
-    __IO uint32_t  CH3EN:1;
-    __I  uint32_t  RESERVE6:1;
-    __IO uint32_t  CH3INV:1;
-    __IO uint32_t  CH3MOD:1;
-    __I  uint32_t  RESERVE7:4;   
-} PWM_PCR_T;
-
-typedef __IO uint32_t PWM_CNR_T;
-
-typedef __IO uint32_t PWM_CMR_T;
-
-typedef __IO uint32_t PWM_PDR_T;
-
-typedef struct
-{
-    __IO uint32_t  PWMIE0:1;
-    __IO uint32_t  PWMIE1:1;
-    __IO uint32_t  PWMIE2:1;
-    __IO uint32_t  PWMIE3:1;
-	__I  uint32_t  RESERVE:28;
-} PWM_PIER_T;
-
-
-typedef struct
-{
-    __IO uint32_t  PWMIF0:1;
-    __IO uint32_t  PWMIF1:1;
-    __IO uint32_t  PWMIF2:1;
-    __IO uint32_t  PWMIF3:1;
-	__I  uint32_t  RESERVE:28;
-} PWM_PIIR_T;
-
-
-typedef struct
-{
-    __IO uint32_t  INV0:1;
-    __IO uint32_t  CRL_IE0:1;
-    __IO uint32_t  CFL_IE0:1;
-    __IO uint32_t  CAPCH0EN:1;
-    __IO uint32_t  CAPIF0:1;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  CRLRI0:1;
-    __IO uint32_t  CFLRI0:1;
-    __I  uint32_t  RESERVE1:8;
-    __IO uint32_t  INV1:1;
-    __IO uint32_t  CRL_IE1:1;
-    __IO uint32_t  CFL_IE1:1;
-    __IO uint32_t  CAPCH1EN:1;
-    __IO uint32_t  CAPIF1:1;
-    __I  uint32_t  RESERVE2:1;
-    __IO uint32_t  CRLRI1:1;
-    __IO uint32_t  CFLRI1:1;
-    __I  uint32_t  RESERVE3:8;
-} PWM_CCR0_T;
-
-
-typedef struct
-{
-    __IO uint32_t  INV2:1;
-    __IO uint32_t  CRL_IE2:1;
-    __IO uint32_t  CFL_IE2:1;
-    __IO uint32_t  CAPCH2EN:1;
-    __IO uint32_t  CAPIF2:1;
-    __I  uint32_t  RESERVE0:1;
-    __IO uint32_t  CRLRI2:1;
-    __IO uint32_t  CFLRI2:1;
-    __I  uint32_t  RESERVE1:8;
-    __IO uint32_t  INV3:1;
-    __IO uint32_t  CRL_IE3:1;
-    __IO uint32_t  CFL_IE3:1;
-    __IO uint32_t  CAPCH3EN:1;
-    __IO uint32_t  CAPIF3:1;
-    __I  uint32_t  RESERVE2:1;
-    __IO uint32_t  CRLRI3:1;
-    __IO uint32_t  CFLRI3:1;
-    __I  uint32_t  RESERVE3:8;
-} PWM_CCR1_T;
-
-
-typedef __IO uint32_t PWM_CRLR_T;
-
-typedef __IO uint32_t PWM_CFLR_T;
-
-typedef __IO uint32_t PWM_CAPENR_T;
-
-typedef struct
-{
-    __IO uint32_t  PWM0:1;
-    __IO uint32_t  PWM1:1;
-    __IO uint32_t  PWM2:1;
-    __IO uint32_t  PWM3:1;
-	__I  uint32_t  RESERVE:28;
-} PWM_POE_T;
-
-
-typedef struct
-{
-    PWM_PPR_T       PPR;
-    PWM_CSR_T       CSR;
-    PWM_PCR_T       PCR;
-    PWM_CNR_T       CNR0;
-    PWM_CMR_T       CMR0;
-    PWM_PDR_T       PDR0;
-    PWM_CNR_T       CNR1;
-    PWM_CMR_T       CMR1;
-    PWM_PDR_T       PDR1;
-    PWM_CNR_T       CNR2;
-    PWM_CMR_T       CMR2;
-    PWM_PDR_T       PDR2;
-    PWM_CNR_T       CNR3;
-    PWM_CMR_T       CMR3;
-    PWM_PDR_T       PDR3;
-    __I uint32_t    RESERVE0;
-    PWM_PIER_T      PIER;
-    PWM_PIIR_T      PIIR;
-    __I uint32_t    RESERVE1[2];
-    PWM_CCR0_T      CCR0;
-    PWM_CCR1_T      CCR1;
-    PWM_CRLR_T      CRLR0;
-    PWM_CFLR_T      CFLR0;
-    PWM_CRLR_T      CRLR1;
-    PWM_CFLR_T      CFLR1;
-    PWM_CRLR_T      CRLR2;
-    PWM_CFLR_T      CFLR2;
-    PWM_CRLR_T      CRLR3;
-    PWM_CFLR_T      CFLR3;
-    PWM_CAPENR_T    CAPENR;
-    PWM_POE_T       POE;    
-        
-    
-} PWM_T;
-
-
-
-
-/******************************************************************************/
-/*                         Peripheral memory map                              */
-/******************************************************************************/
-/* Peripheral and SRAM base address */
-#define FLASH_BASE          ((     uint32_t)0x00000000)
-#define SRAM_BASE           ((     uint32_t)0x20000000)
-#define AHB_BASE            ((     uint32_t)0x50000000)
-#define APB1_BASE           ((     uint32_t)0x40000000)
-#define APB2_BASE           ((     uint32_t)0x40100000)
-
-/* Peripheral memory map */
-#define GPIO_BASE           (AHB_BASE        + 0x4000)
-
-#define GPIOA_BASE          (GPIO_BASE               )
-#define GPIOB_BASE          (GPIO_BASE       + 0x0040)
-#define GPIOC_BASE          (GPIO_BASE       + 0x0080)
-#define GPIOD_BASE          (GPIO_BASE       + 0x00C0)
-#define GPIOE_BASE          (GPIO_BASE       + 0x0100)
-#define GPIO_DBNCECON_BASE  (GPIO_BASE       + 0x0180)
-
-#define UART0_BASE           (APB1_BASE      + 0x50000)
-#define UART1_BASE           (APB2_BASE      + 0x50000)
-
-#define TIMER0_BASE          (APB1_BASE      + 0x10000)  
-#define TIMER1_BASE          (APB1_BASE      + 0x10020)  
-#define TIMER2_BASE          (APB2_BASE      + 0x10000)  
-#define TIMER3_BASE          (APB2_BASE      + 0x10020)  
-
-#define WDT_BASE       	     (APB1_BASE      + 0x4000)  
-
-#define SPI0_BASE            (APB1_BASE      + 0x30000)
-#define SPI1_BASE            (APB1_BASE      + 0x34000)
-#define SPI2_BASE            (APB2_BASE      + 0x30000)
-#define SPI3_BASE            (APB2_BASE      + 0x34000)
-
-#define I2C0_BASE            (APB1_BASE      + 0x20000)
-#define I2C1_BASE            (APB2_BASE      + 0x20000)
-
-#define RTC_BASE             (APB1_BASE      + 0x08000)
-
-#define ADC_BASE             (APB1_BASE      + 0xE0000)
-#define ADC_ADSR             (ADC_BASE       + 0x30)
-
-#define ACMP_BASE            (APB1_BASE      + 0xD0000)   
-
-#define SYSCLK_BASE          (AHB_BASE       + 0x00200)
-
-#define GCR_BASE             (AHB_BASE       + 0x00000)
-
-#define INT_BASE             (AHB_BASE       + 0x00300)
-
-#define FMC_BASE             (AHB_BASE       + 0x0C000)
-
-#define PS2_BASE             (APB2_BASE      + 0x00000)
-
-#define CAN0_BASE            (APB2_BASE      + 0x80000)
-#define CAN1_BASE            (APB2_BASE      + 0x84000)
-
-#define USBD_BASE            (APB1_BASE      + 0x60000)
-
-#define PDMA0_BASE           (AHB_BASE       + 0x08000)
-#define PDMA1_BASE           (AHB_BASE       + 0x08100)
-#define PDMA2_BASE           (AHB_BASE       + 0x08200)
-#define PDMA3_BASE           (AHB_BASE       + 0x08300)
-#define PDMA4_BASE           (AHB_BASE       + 0x08400)
-#define PDMA5_BASE           (AHB_BASE       + 0x08500)
-#define PDMA6_BASE           (AHB_BASE       + 0x08600)
-#define PDMA7_BASE           (AHB_BASE       + 0x08700)
-#define PDMA8_BASE           (AHB_BASE       + 0x08800)
-#define PDMA9_BASE           (AHB_BASE       + 0x08900)
-#define PDMA10_BASE          (AHB_BASE       + 0x08A00)
-#define PDMA11_BASE          (AHB_BASE       + 0x08B00)
-#define PDMA_GCR_BASE        (AHB_BASE       + 0x08F00)
-
-#define PWM_BASE             (APB1_BASE      + 0x40000)
-
-/******************************************************************************/
-/*                         Peripheral declaration                             */
-/******************************************************************************/
-#define GPIOA               ((GPIO_T *) GPIOA_BASE)
-#define GPIOB               ((GPIO_T *) GPIOB_BASE)
-#define GPIOC               ((GPIO_T *) GPIOC_BASE)
-#define GPIOD               ((GPIO_T *) GPIOD_BASE)
-#define GPIOE               ((GPIO_T *) GPIOE_BASE)
-#define GPIO_DBNCECON       ((GPIO_DBNCECON_T *) GPIO_DBNCECON_BASE)
-
-#define UART0               ((UART_T *) UART0_BASE)
-#define UART1               ((UART_T *) UART1_BASE)
-
-#define TIMER0              ((TIMER_T *) TIMER0_BASE)
-#define TIMER1              ((TIMER_T *) TIMER1_BASE)
-#define TIMER2              ((TIMER_T *) TIMER2_BASE)
-#define TIMER3              ((TIMER_T *) TIMER3_BASE)
-
-#define WDT                 ((WDT_T *) WDT_BASE)
-
-#define SPI0                ((SPI_T *) SPI0_BASE)
-#define SPI1                ((SPI_T *) SPI1_BASE)
-#define SPI2                ((SPI_T *) SPI2_BASE)
-#define SPI3                ((SPI_T *) SPI3_BASE)
-
-#define I2C0                ((I2C_T *) I2C0_BASE)
-#define I2C1                ((I2C_T *) I2C1_BASE)
-
-#define RTC                 ((RTC_T *) RTC_BASE)
-
-#define ADC                 ((ADC_T *) ADC_BASE)
-
-#define ACMP                ((ACMP_T *) ACMP_BASE)
-
-#define SYSCLK              ((SYSCLK_T *) SYSCLK_BASE)
-
-#define SYS                 ((GCR_T *) GCR_BASE)
-
-#define SYSINT              ((GCR_INT_T *) INT_BASE)
-
-#define FMC                 ((FMC_T *) FMC_BASE)
-
-#define PS2                 ((PS2_T *) PS2_BASE)
-
-#define CAN0                ((CAN_T *) CAN0_BASE)
-#define CAN1                ((CAN_T *) CAN1_BASE)
-
-#define USBD                ((USBD_T *) USBD_BASE)
-
-#define PDMA0               ((PDMA_T *) PDMA0_BASE)
-#define PDMA1               ((PDMA_T *) PDMA1_BASE)
-#define PDMA2               ((PDMA_T *) PDMA2_BASE)
-#define PDMA3               ((PDMA_T *) PDMA3_BASE)
-#define PDMA4               ((PDMA_T *) PDMA4_BASE)
-#define PDMA5               ((PDMA_T *) PDMA5_BASE)
-#define PDMA6               ((PDMA_T *) PDMA6_BASE)
-#define PDMA7               ((PDMA_T *) PDMA7_BASE)
-#define PDMA8               ((PDMA_T *) PDMA8_BASE)
-#define PDMA9               ((PDMA_T *) PDMA9_BASE)
-#define PDMA10              ((PDMA_T *) PDMA10_BASE)
-#define PDMA11              ((PDMA_T *) PDMA11_BASE)
-#define PDMA_GCR            ((PDMA_GCR_T *) PDMA_GCR_BASE)
-
-#define PWM                 ((PWM_T *) PWM_BASE)
-
-#define UNLOCKREG(x)        *((__IO uint32_t *)(GCR_BASE + 0x100)) = 0x59;*((__IO uint32_t *)(GCR_BASE + 0x100)) = 0x16;*((__IO uint32_t *)(GCR_BASE + 0x100)) = 0x88
-#define LOCKREG(x)          *((__IO uint32_t *)(GCR_BASE + 0x100)) = 0x00;     
-
-#define REGCOPY(dest, src)  *((uint32_t *)&(dest)) = *((uint32_t *)&(src))
-#define CLEAR(dest) 		*((uint32_t *)&(dest)) = 0
-
-//=============================================================================
-typedef volatile unsigned char  vu8;
-typedef volatile unsigned long  vu32;
-typedef volatile unsigned short vu16;
-#define M8(adr)  (*((vu8  *) (adr)))
-#define M16(adr) (*((vu16 *) (adr)))
-#define M32(adr) (*((vu32 *) (adr)))
-
-#define outpw(port,value)	*((volatile unsigned int *)(port))=value
-#define inpw(port)			(*((volatile unsigned int *)(port)))
-#define outpb(port,value)	*((volatile unsigned char *)(port))=value
-#define inpb(port)			(*((volatile unsigned char *)(port)))
-#define outps(port,value)	*((volatile unsigned short *)(port))=value
-#define inps(port)			(*((volatile unsigned short *)(port)))
-
-#define E_SUCCESS 	0
-#define NULL         0
-
-#define TRUE	   	1
-#define FALSE   	0
-
-#define ENABLE     1
-#define DISABLE    0
-
-// Define one bit mask
-#define BIT0	0x00000001
-#define BIT1	0x00000002
-#define BIT2	0x00000004
-#define BIT3	0x00000008
-#define BIT4	0x00000010
-#define BIT5	0x00000020
-#define BIT6	0x00000040
-#define BIT7	0x00000080
-#define BIT8	0x00000100
-#define BIT9	0x00000200
-#define BIT10	0x00000400
-#define BIT11	0x00000800
-#define BIT12	0x00001000
-#define BIT13	0x00002000
-#define BIT14	0x00004000
-#define BIT15	0x00008000
-#define BIT16	0x00010000
-#define BIT17	0x00020000
-#define BIT18	0x00040000
-#define BIT19	0x00080000
-#define BIT20	0x00100000
-#define BIT21	0x00200000
-#define BIT22	0x00400000
-#define BIT23	0x00800000
-#define BIT24	0x01000000
-#define BIT25	0x02000000
-#define BIT26	0x04000000
-#define BIT27	0x08000000
-#define BIT28	0x10000000
-#define BIT29	0x20000000
-#define BIT30	0x40000000
-#define BIT31	0x80000000
-
-#endif
-                                                                                                 

+ 0 - 470
bsp/nuc140/CMSIS/CM0/core_cm0.c

@@ -1,470 +0,0 @@
-/******************************************************************************
- * @file:    core_cm0.c
- * @purpose: CMSIS Cortex-M0 Core Peripheral Access Layer Source File
- * @version: V1.10
- * @date:    24. Feb. 2009
- *----------------------------------------------------------------------------
- *
- * Copyright (C) 2009 ARM Limited. All rights reserved.
- *
- * ARM Limited (ARM) is supplying this software for use with Cortex-Mx 
- * processor based microcontrollers.  This file can be freely distributed 
- * within development tools that are supporting such ARM based processors. 
- *
- * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
- * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
- * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
- * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
- *
- ******************************************************************************/
-
-
-
-#include <stdint.h>
-
-
-/* define compiler specific symbols */
-#if defined   ( __CC_ARM   )
-  #define __ASM            __asm           /*!< asm keyword for armcc          */
-  #define __INLINE         __inline        /*!< inline keyword for armcc        */
-
-#elif defined ( __ICCARM__ )
-  #define __ASM           __asm            /*!< asm keyword for iarcc           */
-  #define __INLINE        inline           /*!< inline keyword for iarcc. Only avaiable in High optimization mode! */
-  #define __nop           __no_operation   /*!< no operation intrinsic in iarcc */
-
-#elif defined (  __GNUC__  )
-  #define __ASM             asm            /*!< asm keyword for gcc            */
-  #define __INLINE          inline         /*!< inline keyword for gcc         */
-#endif
-
-
-
-#if defined ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/
-
-/**
- * @brief  Return the Process Stack Pointer
- *
- * @param  none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-__ASM uint32_t __get_PSP(void)
-{
-  mrs r0, psp
-  bx lr
-}
-
-/**
- * @brief  Set the Process Stack Pointer
- *
- * @param  uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP 
- * (process stack pointer) Cortex processor register
- */
-__ASM void __set_PSP(uint32_t topOfProcStack)
-{
-  msr psp, r0
-  bx lr
-}
-
-/**
- * @brief  Return the Main Stack Pointer
- *
- * @param  none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-__ASM uint32_t __get_MSP(void)
-{
-  mrs r0, msp
-  bx lr
-}
-
-/**
- * @brief  Set the Main Stack Pointer
- *
- * @param  uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP 
- * (main stack pointer) Cortex processor register
- */
-__ASM void __set_MSP(uint32_t mainStackPointer)
-{
-  msr msp, r0
-  bx lr
-}
-
-/**
- * @brief  Reverse byte order in unsigned short value
- *
- * @param  uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-__ASM uint32_t __REV16(uint16_t value)
-{
-  rev16 r0, r0
-  bx lr
-}
-
-/**
- * @brief  Reverse byte order in signed short value with sign extension to integer
- *
- * @param  int16_t value to reverse
- * @return int32_t reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-__ASM int32_t __REVSH(int16_t value)
-{
-  revsh r0, r0
-  bx lr
-}
-
-
-#if (__ARMCC_VERSION < 400000)
-
-
-/**
- * @brief  Return the Priority Mask value
- *
- * @param  none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-__ASM uint32_t __get_PRIMASK(void)
-{
-  mrs r0, primask
-  bx lr
-}
-
-/**
- * @brief  Set the Priority Mask value
- *
- * @param  uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-__ASM void __set_PRIMASK(uint32_t priMask)
-{
-  msr primask, r0
-  bx lr
-}
-
-
-/**
- * @brief  Return the Control Register value
- * 
- * @param  none
- * @return uint32_t Control value
- *
- * Return the content of the control register
- */
-__ASM uint32_t  __get_CONTROL(void)
-{
-  mrs r0, control
-  bx lr
-}
-
-/**
- * @brief  Set the Control Register value
- *
- * @param  uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-__ASM void __set_CONTROL(uint32_t control)
-{
-  msr control, r0
-  bx lr
-}
-
-#endif /* __ARMCC_VERSION  */ 
-
-
-#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
-#pragma diag_suppress=Pe940
-
-/**
- * @brief  Return the Process Stack Pointer
- *
- * @param  none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-uint32_t __get_PSP(void)
-{
-  __ASM("mrs r0, psp");
-  __ASM("bx lr");
-}
-
-/**
- * @brief  Set the Process Stack Pointer
- *
- * @param  uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP 
- * (process stack pointer) Cortex processor register
- */
-void __set_PSP(uint32_t topOfProcStack)
-{
-  __ASM("msr psp, r0");
-  __ASM("bx lr");
-}
-
-/**
- * @brief  Return the Main Stack Pointer
- *
- * @param  none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-uint32_t __get_MSP(void)
-{
-  __ASM("mrs r0, msp");
-  __ASM("bx lr");
-}
-
-/**
- * @brief  Set the Main Stack Pointer
- *
- * @param  uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP 
- * (main stack pointer) Cortex processor register
- */
-void __set_MSP(uint32_t topOfMainStack)
-{
-  __ASM("msr msp, r0");
-  __ASM("bx lr");
-}
-
-/**
- * @brief  Reverse byte order in unsigned short value
- *
- * @param  uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-uint32_t __REV16(uint16_t value)
-{
-  __ASM("rev16 r0, r0");
-  __ASM("bx lr");
-}
-
-
-#pragma diag_default=Pe940
-
-
-
-
-#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
-
-/**
- * @brief  Return the Process Stack Pointer
- *
- * @param  none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-uint32_t __get_PSP(void)
-{
-  uint32_t result=0;
-
-  __ASM volatile ("MRS %0, psp" : "=r" (result) );
-  return(result);
-}
-
-/**
- * @brief  Set the Process Stack Pointer
- *
- * @param  uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP 
- * (process stack pointer) Cortex processor register
- */
-void __set_PSP(uint32_t topOfProcStack)
-{
-  __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) );
-}
-
-/**
- * @brief  Return the Main Stack Pointer
- *
- * @param  none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-uint32_t __get_MSP(void)
-{
-  uint32_t result=0;
-
-  __ASM volatile ("MRS %0, msp" : "=r" (result) );
-  return(result);
-}
-
-/**
- * @brief  Set the Main Stack Pointer
- *
- * @param  uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP 
- * (main stack pointer) Cortex processor register
- */
-void __set_MSP(uint32_t topOfMainStack)
-{
-  __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) );
-}
-
-
-/**
- * @brief  Return the Priority Mask value
- *
- * @param  none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-uint32_t __get_PRIMASK(void)
-{
-  uint32_t result=0;
-
-  __ASM volatile ("MRS %0, primask" : "=r" (result) );
-  return(result);
-}
-
-/**
- * @brief  Set the Priority Mask value
- *
- * @param  uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-void __set_PRIMASK(uint32_t priMask)
-{
-  __ASM volatile ("MSR primask, %0" : : "r" (priMask) );
-}
-
-
-/**
- * @brief  Reverse byte order in integer value
- *
- * @param  uint32_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in integer value
- */
-uint32_t __REV(uint32_t value)
-{
-  uint32_t result=0;
-  
-  __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) );
-  return(result);
-}
-
-/**
- * @brief  Reverse byte order in unsigned short value
- *
- * @param  uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-uint32_t __REV16(uint16_t value)
-{
-  uint32_t result=0;
-  
-  __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) );
-  return(result);
-}
-
-/**
- * @brief  Reverse byte order in signed short value with sign extension to integer
- *
- * @param  int32_t value to reverse
- * @return int32_t reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-int32_t __REVSH(int16_t value)
-{
-  uint32_t result=0;
-  
-  __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) );
-  return(result);
-}
-
-
-/**
- * @brief  Return the Control Register value
- * 
- * @param  none
- * @return uint32_t Control value
- *
- * Return the content of the control register
- */
-uint32_t __get_CONTROL(void)
-{
-  uint32_t result=0;
-
-  __ASM volatile ("MRS %0, control" : "=r" (result) );
-  return(result);
-}
-
-/**
- * @brief  Set the Control Register value
- *
- * @param  uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-void __set_CONTROL(uint32_t control)
-{
-  __ASM volatile ("MSR control, %0" : : "r" (control) );
-}
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 801
bsp/nuc140/CMSIS/CM0/core_cm0.h

@@ -1,801 +0,0 @@
-/******************************************************************************
- * @file:    core_cm0.h
- * @purpose: CMSIS Cortex-M0 Core Peripheral Access Layer Header File
- * @version: V1.10
- * @date:    24. Feb. 2009
- *----------------------------------------------------------------------------
- *
- * Copyright (C) 2009 ARM Limited. All rights reserved.
- *
- * ARM Limited (ARM) is supplying this software for use with Cortex-Mx 
- * processor based microcontrollers.  This file can be freely distributed 
- * within development tools that are supporting such ARM based processors. 
- *
- * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
- * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
- * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
- * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
- *
- ******************************************************************************/
-
-
-
-
-#ifndef __CM0_CORE_H__
-#define __CM0_CORE_H__
-
-
-#define __CM0_CMSIS_VERSION_MAIN  (0x01)                                                       /*!< [31:16] CMSIS HAL main version */
-#define __CM0_CMSIS_VERSION_SUB   (0x10)                                                       /*!< [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 core                    */
-
-
-
-#include <stdint.h>                           /* Include standard types */
-
-#if defined (__ICCARM__)
-  #include <intrinsics.h>                     /* IAR Intrinsics   */
-#endif
-
-
-#ifndef __NVIC_PRIO_BITS
-  #define __NVIC_PRIO_BITS    2               /*!< standard definition for NVIC Priority Bits */
-#endif
-
-
-
-
-/**
- * IO definitions
- *
- * define access restrictions to peripheral registers
- */
-
-#define     __I     volatile const            /*!< defines 'read only' permissions      */
-#define     __O     volatile                  /*!< defines 'write only' permissions     */
-#define     __IO    volatile                  /*!< defines 'read / write' permissions   */
-
-
-
-/*******************************************************************************
- *                 Register Abstraction
- ******************************************************************************/
-
-
-/* System Reset */
-#define NVIC_VECTRESET              0         /*!< Vector Reset Bit             */
-#define NVIC_SYSRESETREQ            2         /*!< System Reset Request         */
-#define NVIC_AIRCR_VECTKEY    (0x5FA << 16)   /*!< AIRCR Key for write access   */
-#define NVIC_AIRCR_ENDIANESS        15        /*!< Endianess                    */
-
-
-
-
-/* memory mapping struct for Nested Vectored Interrupt Controller (NVIC) */
-typedef struct
-{
-  __IO uint32_t ISER[1];                      /*!< Interrupt Set Enable Register            */
-       uint32_t RESERVED0[31];
-  __IO uint32_t ICER[1];                      /*!< Interrupt Clear Enable Register          */
-       uint32_t RSERVED1[31];
-  __IO uint32_t ISPR[1];                      /*!< Interrupt Set Pending Register           */
-       uint32_t RESERVED2[31];
-  __IO uint32_t ICPR[1];                      /*!< Interrupt Clear Pending Register         */
-       uint32_t RESERVED3[31];
-       uint32_t RESERVED4[64];
-  __IO uint32_t IP[8];                        /*!< Interrupt Priority Register              */
-}  NVIC_Type;
-
-
-/* memory mapping struct for System Control Block */
-typedef struct
-{
-  __I  uint32_t CPUID;                        /*!< CPU ID Base Register                                     */
-  __IO uint32_t ICSR;                         /*!< Interrupt Control State Register                         */
-       uint32_t RESERVED0;
-  __IO uint32_t AIRCR;                        /*!< Application Interrupt / Reset Control Register           */
-  __IO uint32_t SCR;                          /*!< System Control Register                                  */
-  __IO uint32_t CCR;                          /*!< Configuration Control Register                           */
-       uint32_t RESERVED1;
-  __IO uint32_t SHP[2];                       /*!< System Handlers Priority Registers. [0] is RESERVED      */
-  __IO uint32_t SHCSR;                        /*!< System Handler Control and State Register                */
-       uint32_t RESERVED2[2];
-  __IO uint32_t DFSR;                         /*!< Debug Fault Status Register                              */
-} SCB_Type;
-
-
-/* memory mapping struct for SysTick */
-typedef struct
-{
-  __IO uint32_t CTRL;                         /*!< SysTick Control and Status Register */
-  __IO uint32_t LOAD;                         /*!< SysTick Reload Value Register       */
-  __IO uint32_t VAL;                          /*!< SysTick Current Value Register      */
-  __I  uint32_t CALIB;                        /*!< SysTick Calibration Register        */
-} SysTick_Type;
-
-
-
-/* Core Debug Register */
-typedef struct
-{
-  __IO uint32_t DHCSR;                        /*!< Debug Halting Control and Status Register       */
-  __O  uint32_t DCRSR;                        /*!< Debug Core Register Selector Register           */
-  __IO uint32_t DCRDR;                        /*!< Debug Core Register Data Register               */
-  __IO uint32_t DEMCR;                        /*!< Debug Exception and Monitor Control Register    */
-} CoreDebug_Type;
-
-
-/* Memory mapping of Cortex-M0 Hardware */
-#define SCS_BASE            (0xE000E000)                              /*!< System Control Space Base Address    */
-#define CoreDebug_BASE      (0xE000EDF0)                              /*!< Core Debug Base Address              */
-#define SysTick_BASE        (SCS_BASE +  0x0010)                      /*!< SysTick Base Address                 */
-#define NVIC_BASE           (SCS_BASE +  0x0100)                      /*!< NVIC Base Address                    */
-#define SCB_BASE            (SCS_BASE +  0x0D00)                      /*!< System Control Block Base Address    */
-
-#define SCB                 ((SCB_Type *)           SCB_BASE)         /*!< SCB configuration struct             */
-#define SysTick             ((SysTick_Type *)       SysTick_BASE)     /*!< SysTick configuration struct         */
-#define NVIC                ((NVIC_Type *)          NVIC_BASE)        /*!< NVIC configuration struct            */
-#define CoreDebug           ((CoreDebug_Type *)     CoreDebug_BASE)   /*!< Core Debug configuration struct      */
-
-
-/*******************************************************************************
- *                Hardware Abstraction Layer
- ******************************************************************************/
-
-
-#if defined ( __CC_ARM   )
-  #define __ASM            __asm                                      /*!< asm keyword for ARM Compiler          */
-  #define __INLINE         __inline                                   /*!< inline keyword for ARM Compiler       */
-
-#elif defined ( __ICCARM__ )
-  #define __ASM           __asm                                       /*!< asm keyword for IAR Compiler           */
-  #define __INLINE        inline                                      /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */
-  #define __NOP           __no_operation                              /*!< no operation intrinsic in IAR Compiler */
-
-#elif defined   (  __GNUC__  )
-  #define __ASM            asm                                        /*!< asm keyword for GNU Compiler          */
-  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler       */
-
-#endif
-
-
-/* ###################  Compiler specific Intrinsics  ########################### */
-
-#if defined ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/
-/* ARM armcc specific functions */
-
-#define __enable_fault_irq                __enable_fiq
-#define __disable_fault_irq               __disable_fiq
-
-#define __NOP                             __nop
-#define __WFI                             __wfi
-#define __WFE                             __wfe
-#define __SEV                             __sev
-#define __ISB()                           __isb(0)
-#define __DSB()                           __dsb(0)
-#define __DMB()                           __dmb(0)
-#define __REV                             __rev
-
-
-  /* intrinsic void __enable_irq();     */
-  /* intrinsic void __disable_irq();    */
-
-
-/**
- * @brief  Return the Process Stack Pointer
- *
- * @param  none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief  Set the Process Stack Pointer
- *
- * @param  uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP 
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief  Return the Main Stack Pointer
- *
- * @param  none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief  Set the Main Stack Pointer
- *
- * @param  uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP 
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief  Reverse byte order in unsigned short value
- *
- * @param  uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/*
- * @brief  Reverse byte order in signed short value with sign extension to integer
- *
- * @param  int16_t value to reverse
- * @return int32_t reversed value
- *
- * Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-
-#if (__ARMCC_VERSION < 400000)
-
-/**
- * @brief  Return the Priority Mask value
- *
- * @param  none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-extern uint32_t __get_PRIMASK(void);
-
-/**
- * @brief  Set the Priority Mask value
- *
- * @param  uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief  Return the Control Register value
- * 
- * @param  none
- * @return uint32_t Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief  Set the Control Register value
- *
- * @param  uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-#else  /* (__ARMCC_VERSION >= 400000)  */
-
-
-/**
- * @brief  Return the Priority Mask value
- *
- * @param  none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-static __INLINE uint32_t __get_PRIMASK(void)
-{
-  register uint32_t __regPriMask         __ASM("primask");
-  return(__regPriMask);
-}
-
-/**
- * @brief  Set the Priority Mask value
- *
- * @param  uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-static __INLINE void __set_PRIMASK(uint32_t priMask)
-{
-  register uint32_t __regPriMask         __ASM("primask");
-  __regPriMask = (priMask);
-}
-
-/**
- * @brief  Return the Control Register value
- * 
- * @param  none
- * @return uint32_t Control value
- *
- * Return the content of the control register
- */
-static __INLINE uint32_t __get_CONTROL(void)
-{
-  register uint32_t __regControl         __ASM("control");
-  return(__regControl);
-}
-
-/**
- * @brief  Set the Control Register value
- *
- * @param  uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-static __INLINE void __set_CONTROL(uint32_t control)
-{
-  register uint32_t __regControl         __ASM("control");
-  __regControl = control;
-}
-
-#endif /* __ARMCC_VERSION  */ 
-
-
-
-#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
-/* IAR iccarm specific functions */
-
-#define __enable_irq                              __enable_interrupt        /*!< global Interrupt enable */
-#define __disable_irq                             __disable_interrupt       /*!< global Interrupt disable */
-
-static __INLINE void __enable_fault_irq()         { __ASM ("cpsie f"); }
-static __INLINE void __disable_fault_irq()        { __ASM ("cpsid f"); }
-
-static __INLINE  void __WFI()                     { __ASM ("wfi"); }
-static __INLINE  void __WFE()                     { __ASM ("wfe"); }
-static __INLINE  void __SEV()                     { __ASM ("sev"); }
-
-//static __INLINE  void __ISB(arg)                  { __ASM ("isb"); }
-//static __INLINE  void __DSB(arg)                  { __ASM ("dsb"); }
-//static __INLINE  void __DMB(arg)                  { __ASM ("dmb"); }
-
-/**
- * @brief  Return the Process Stack Pointer
- *
- * @param  none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief  Set the Process Stack Pointer
- *
- * @param  uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP 
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief  Return the Main Stack Pointer
- *
- * @param  none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief  Set the Main Stack Pointer
- *
- * @param  uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP 
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief  Reverse byte order in unsigned short value
- *
- * @param  uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-
-
-/* intrinsic void __set_PRIMASK();                                    */
-/* intrinsic void __get_PRIMASK();                                    */
-/* intrinsic uint32_t __REV(uint32_t value);                          */
-/* intrinsic uint32_t __REVSH(uint32_t value);                        */
-
-
-#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
-/* GNU gcc specific functions */
-
-static __INLINE void __NOP()                      { __ASM volatile ("nop"); }
-static __INLINE void __enable_irq()               { __ASM volatile ("cpsie i"); }
-static __INLINE void __disable_irq()              { __ASM volatile ("cpsid i"); }
-
-static __INLINE void __enable_fault_irq()         { __ASM volatile ("cpsie f"); }
-static __INLINE void __disable_fault_irq()        { __ASM volatile ("cpsid f"); }
-
-static __INLINE void __WFI()                      { __ASM volatile ("wfi"); }
-static __INLINE void __WFE()                      { __ASM volatile ("wfe"); }
-static __INLINE void __SEV()                      { __ASM volatile ("sev"); }
-static __INLINE void __ISB(arg)                   { __ASM volatile ("isb"); }
-static __INLINE void __DSB(arg)                   { __ASM volatile ("dsb"); }
-static __INLINE void __DMB(arg)                   { __ASM volatile ("dmb"); }
-
-
-/**
- * @brief  Return the Process Stack Pointer
- *
- * @param  none
- * @return uint32_t ProcessStackPointer
- *
- * Return the actual process stack pointer
- */
-extern uint32_t __get_PSP(void);
-
-/**
- * @brief  Set the Process Stack Pointer
- *
- * @param  uint32_t Process Stack Pointer
- * @return none
- *
- * Assign the value ProcessStackPointer to the MSP 
- * (process stack pointer) Cortex processor register
- */
-extern void __set_PSP(uint32_t topOfProcStack);
-
-/**
- * @brief  Return the Main Stack Pointer
- *
- * @param  none
- * @return uint32_t Main Stack Pointer
- *
- * Return the current value of the MSP (main stack pointer)
- * Cortex processor register
- */
-extern uint32_t __get_MSP(void);
-
-/**
- * @brief  Set the Main Stack Pointer
- *
- * @param  uint32_t Main Stack Pointer
- * @return none
- *
- * Assign the value mainStackPointer to the MSP 
- * (main stack pointer) Cortex processor register
- */
-extern void __set_MSP(uint32_t topOfMainStack);
-
-/**
- * @brief  Return the Priority Mask value
- *
- * @param  none
- * @return uint32_t PriMask
- *
- * Return the state of the priority mask bit from the priority mask
- * register
- */
-extern uint32_t  __get_PRIMASK(void);
-
-/**
- * @brief  Set the Priority Mask value
- *
- * @param  uint32_t PriMask
- * @return none
- *
- * Set the priority mask bit in the priority mask register
- */
-extern void __set_PRIMASK(uint32_t priMask);
-
-/**
- * @brief  Return the Control Register value 
- * 
- * @param  none
- * @return uint32_t Control value
- *
- * Return the content of the control register
- */
-extern uint32_t __get_CONTROL(void);
-
-/**
- * @brief  Set the Control Register value
- *
- * @param  uint32_t Control value
- * @return none
- *
- * Set the control register
- */
-extern void __set_CONTROL(uint32_t control);
-
-/**
- * @brief  Reverse byte order in integer value
- *
- * @param  uint32_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in integer value
- */
-extern uint32_t __REV(uint32_t value);
-
-/**
- * @brief  Reverse byte order in unsigned short value
- *
- * @param  uint16_t value to reverse
- * @return uint32_t reversed value
- *
- * Reverse byte order in unsigned short value
- */
-extern uint32_t __REV16(uint16_t value);
-
-/*
- * Reverse byte order in signed short value with sign extension to integer
- *
- * @param  int16_t value to reverse
- * @return int32_t reversed value
- *
- * @brief  Reverse byte order in signed short value with sign extension to integer
- */
-extern int32_t __REVSH(int16_t value);
-
-
-#endif
-
-
-
-/* ##########################   NVIC functions  #################################### */
-
-/* Interrupt Priorities are WORD accessible only under ARMv6M                   */
-/* The following MACROS handle generation of the register offset and byte masks */
-
-#define _BIT_SHIFT(IRQn)         (  (((uint32_t)(IRQn)       )    &  0x03) * 8 )
-#define _SHP_IDX(IRQn)           ( ((((uint32_t)(IRQn) & 0x0F)-8) >>    2)     )
-#define _IP_IDX(IRQn)            (   ((uint32_t)(IRQn)            >>    2)     )
-
-
-
-/**
- * @brief  Set the Priority Grouping in NVIC Interrupt Controller
- *
- * @param  uint32_t priority_grouping is priority grouping field
- * @return  
- *
- * Set the priority grouping field using the required unlock sequence.
- * The parameter priority_grouping is assigned to the field 
- * SCB->AIRCR [10:8] PRIGROUP field.
- */
-static __INLINE void NVIC_SetPriorityGrouping(uint32_t priority_grouping)
-{
-  uint32_t reg_value=0;
-  
-  reg_value  = SCB->AIRCR;                                                                            /* read old register configuration    */
-  reg_value &= ~((0xFFFFU << 16) | (0x0F << 8));                                                      /* clear bits to change               */
-  reg_value  = ((reg_value | NVIC_AIRCR_VECTKEY | (priority_grouping << 8)));                         /* Insert write key and priorty group */
-  SCB->AIRCR = reg_value;
-}
-
-/**
- * @brief  Enable Interrupt in NVIC Interrupt Controller
- *
- * @param  IRQn_Type IRQn specifies the interrupt number
- * @return none 
- *
- * Enable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
-{
-  NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));                             /* enable interrupt */
-}
-
-/**
- * @brief  Disable the interrupt line for external interrupt specified
- * 
- * @param  IRQn_Type IRQn is the positive number of the external interrupt
- * @return  none
- * 
- * Disable a device specific interupt in the NVIC interrupt controller.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
-{
-  NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));                             /* disable interrupt */
-}
-
-/**
- * @brief  Read the interrupt pending bit for a device specific interrupt source
- * 
- * @param  IRQn_Type IRQn is the number of the device specifc interrupt
- * @return IRQn_Type Number of pending interrupt or zero
- *
- * Read the pending register in NVIC and return the number of the
- * specified interrupt if its status is pending, otherwise it returns 
- * zero. The interrupt number cannot be a negative value.
- */
-static __INLINE IRQn_Type NVIC_GetPendingIRQ(IRQn_Type IRQn)
-{
-  return((IRQn_Type) (NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))));         /* Return Interrupt bit or 'zero' */
-}
-
-/**
- * @brief  Set the pending bit for an external interrupt
- * 
- * @param  IRQn_Type IRQn is the Number of the interrupt
- * @return  none
- *
- * Set the pending bit for the specified interrupt.
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
-{
-  NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));                             /* set interrupt pending */
-}
-
-/**
- * @brief  Clear the pending bit for an external interrupt
- *
- * @param  IRQn_Type IRQn is the Number of the interrupt
- * @return  none
- *
- * Clear the pending bit for the specified interrupt. 
- * The interrupt number cannot be a negative value.
- */
-static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
-{
-  NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));                             /* Clear pending interrupt */
-}
-
-/**
- * @brief  Set the priority for an interrupt
- *
- * @param  IRQn_Type IRQn is the Number of the interrupt
- * @param  priority is the priority for the interrupt
- * @return  none
- *
- * Set the priority for the specified interrupt. The interrupt 
- * number can be positive to specify an external (device specific) 
- * interrupt, or negative to specify an internal (core) interrupt. \n
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, int32_t priority)
-{
-  if(IRQn < 0) {
-    SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) | 
-        (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }
-  else {
-    NVIC->IP[_IP_IDX(IRQn)] =  (NVIC->IP[_IP_IDX(IRQn)]  & ~(0xFF << _BIT_SHIFT(IRQn))) |
-        (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }
-}
-
-/**
- * @brief  Read the priority for an interrupt
- *
- * @param  IRQn_Type IRQn is the Number of the interrupt
- * @return priority is the priority for the interrupt
- *
- * Read the priority for the specified interrupt. The interrupt 
- * number can be positive to specify an external (device specific) 
- * interrupt, or negative to specify an internal (core) interrupt.
- *
- * The returned priority value is automatically aligned to the implemented
- * priority bits of the microcontroller.
- *
- * Note: The priority cannot be set for every core interrupt.
- */
-static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
-{
-
-  if(IRQn < 0) {
-    return((uint32_t)((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS)));  } /* get priority for Cortex-M0 system interrupts */
-  else {
-    return((uint32_t)((NVIC->IP[_IP_IDX(IRQn)]  >> _BIT_SHIFT(IRQn) ) >> (8 - __NVIC_PRIO_BITS)));  } /* get priority for device specific interrupts    */
-}
-
-
-
-/* ##################################    SysTick function  ############################################ */
-
-#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)
-
-/* SysTick constants */
-#define SYSTICK_ENABLE              0                                          /* Config-Bit to start or stop the SysTick Timer                         */
-#define SYSTICK_TICKINT             1                                          /* Config-Bit to enable or disable the SysTick interrupt                 */
-#define SYSTICK_CLKSOURCE           2                                          /* Clocksource has the offset 2 in SysTick Control and Status Register   */
-#define SYSTICK_MAXCOUNT       ((1<<24) -1)                                    /* SysTick MaxCount                                                      */
-
-/**
- * @brief  Initialize and start the SysTick counter and its interrupt.
- *
- * @param  uint32_t ticks is the number of ticks between two interrupts
- * @return  none
- *
- * Initialise the system tick timer and its interrupt and start the
- * system tick timer / counter in free running mode to generate 
- * periodical interrupts.
- */
-static __INLINE uint32_t SysTick_Config(uint32_t ticks)
-{ 
-  if (ticks > SYSTICK_MAXCOUNT)  return (1);                                                /* Reload value impossible */
-
-  SysTick->LOAD  =  (ticks & SYSTICK_MAXCOUNT) - 1;                                         /* set reload register */
-  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);                               /* set Priority for Cortex-M0 System Interrupts */
-  SysTick->VAL   =  (0x00);                                                                 /* Load the SysTick Counter Value */
-  SysTick->CTRL = (1 << SYSTICK_CLKSOURCE) | (1<<SYSTICK_ENABLE) | (1<<SYSTICK_TICKINT);    /* Enable SysTick IRQ and SysTick Timer */
-  return (0);                                                                               /* Function successful */
-}
-
-#endif
-
-
-
-
-
-/* ##################################    Reset function  ############################################ */
-
-/**
- * @brief  Initiate a system reset request.
- *
- * @param   none
- * @return  none
- *
- * Initialize a system reset request to reset the MCU
- */
-static __INLINE void NVIC_SystemReset(void)
-{
-  SCB->AIRCR  = (NVIC_AIRCR_VECTKEY | (1<<NVIC_SYSRESETREQ));                               /* Keep priority group unchanged */
-}
-
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 381
bsp/nuc140/CMSIS/CM0/startup/arm/startup_NUC1xx.s

@@ -1,381 +0,0 @@
-;/*---------------------------------------------------------------------------------------------------------*/
-;/*                                                                                                         */
-;/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved.                                         */
-;/*                                                                                                         */
-;/*---------------------------------------------------------------------------------------------------------*/
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-CLK_BA_base      EQU 0x50000200
-PWRCON			 EQU 0x00
-AHBCLK			 EQU 0x04
-APBCLK			 EQU 0x08
-CLKSEL0			 EQU 0x10
-CLKSEL1			 EQU 0x14
-CLKDIV			 EQU 0x18
-PLLCON			 EQU 0x20
-TEST_S			 EQU 0x30
-
-CLK_BA_APBCLK    EQU 0x50000208
-
-;// Define clock enable registers  
-
-ADC_COMP_CLK     EQU 0x50000208
-ADC_enable		 EQU 0x10000000
-COMP_enable      EQU 0x40000000
-
-PDMA_CLK         EQU 0x50000204 
-PDMA_enable      EQU 0x00000003
-
-;;  bit 0  CPU_EN
-;;	bit 1  PDMA_EN
-
-
-
-
-;// Define COMP registers base
-COMP_base        EQU  0x400D0000
-CMP1CR           EQU  0x00
-CMP2CR           EQU  0x04
-CMPSR            EQU  0x08
-
-;// Define ADC registers base
-ADC_base         EQU  0x400E0000
-ADDR0            EQU  0x00
-ADDR1            EQU  0x04
-ADDR2            EQU  0x08
-ADDR3            EQU  0x0c
-ADDR4            EQU  0x10
-ADDR5            EQU  0x14
-ADDR6            EQU  0x18
-ADDR7            EQU  0x1c
-ADCR             EQU  0x20
-ADCHER           EQU  0x24
-ADCMPR0          EQU  0x28
-ADCMPR1          EQU  0x2c
-ADSR             EQU  0x30
-ADCALR           EQU  0x34
-ADCFCR           EQU  0x38
-ADCALD           EQU  0x3c
-
-;// Pattern Table
-pattern_55555555 EQU  0x55555555
-pattern_aaaaaaaa EQU  0xaaaaaaaa
-pattern_00005555 EQU  0x00005555
-pattern_0000aaaa EQU  0x0000aaaa
-pattern_05550515 EQU  0x05550515
-pattern_0aaa0a2a EQU  0x0aaa0a2a
-
-;// Define PDMA regsiter base
-PDMA_BA_ch0_base        EQU  0x50008000
-PDMA_BA_ch1_base        EQU  0x50008100
-PDMA_BA_ch2_base        EQU  0x50008200
-PDMA_BA_ch3_base        EQU  0x50008300
-PDMA_BA_ch4_base        EQU  0x50008400
-PDMA_BA_ch5_base        EQU  0x50008500
-PDMA_BA_ch6_base        EQU  0x50008600
-PDMA_BA_ch7_base        EQU  0x50008700
-
-PDMA_BA_GCR             EQU 0x50008F00
-PDMA_BA_GCR_base        EQU 0x50008F00
-
-PDMA_GCRCSR		 EQU  0X00
-PDMA_PDSSR2		 EQU  0X04
-PDMA_PDSSR1		 EQU  0X08  ;; PDMA channel select   0x77000000
-PDMA_GCRISR		 EQU  0X0C
-
-PDMA_GLOBAL_enable      EQU 0x0000FF00
-
-
-PDMA_CSR         EQU  0X00
-PDMA_SAR         EQU  0X04
-PDMA_DAR         EQU  0X08
-PDMA_BCR         EQU  0X0C
-PDMA_CSAR        EQU  0X14
-PDMA_CDAR        EQU  0X18
-PDMA_CBSR        EQU  0X1C
-PDMA_IER         EQU  0X20
-PDMA_ISR         EQU  0X24
-PDMA_CTCSR       EQU  0X28
-PDMA_SASOCR		 EQU  0X2C
-PDMA_DASOCR      EQU  0X30
-PDMA_SBUF0       EQU  0X80
-PDMA_SBUF1       EQU  0X84
-PDMA_SBUF2       EQU  0X88
-PDMA_SBUF3       EQU  0X8C
-
-
-;// Define VIC control register
-VIC_base         EQU  0xFFFF0000
-VIC_SCR15        EQU  0x003c
-VIC_SVR15        EQU  0x00bc
-VIC_SCR16        EQU  0x0040
-VIC_SVR16        EQU  0x00c0
-VIC_SCR30        EQU  0x0078
-VIC_SVR30        EQU  0x00f8
-VIC_MECR         EQU  0x0318
-VIC_MDCR         EQU  0x031c
-VIC_EOSCR        EQU  0x0130
-
-;//==================================
-INT_BA_base      EQU  0x50000300
-
-
-;// Parameter table
-ADC_PDMA_CFG     EQU  0x00002980  
-ADC_PDMA_DST     EQU  0xC0000000
-ADC_PDMA_SRC     EQU  0xE0024200
-ADC_PDMA_TCBL    EQU  0x00030008
-
-;//==================================
-
-
-GPIO_base        EQU  0x50004000
-GPIOB_PMD		 EQU  0x0040
-GPIOB_OFFD		 EQU  0x0044
-GPIOB_DOUT		 EQU  0x0048
-GPIOB_DMASK		 EQU  0x004C
-GPIOB_PIN		 EQU  0x0050
-GPIOB_DBEN		 EQU  0x0054
-GPIOB_IMD		 EQU  0x0058
-GPIOB_IEN		 EQU  0x005C
-GPIOB_ISRC		 EQU  0x0060
-
-;//==================================
-
-
-GCR_base         EQU  0x50000000
-GPB_MFP          EQU  0x0034
-
-
-
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
-
-
-
-
-
-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     0x00000000
-
-                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
-
-__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
-
-                ; External Interrupts
-                                                  ; maximum of 32 External Interrupts are possible
-                DCD     BOD_IRQHandler  
-                DCD     WDT_IRQHandler  
-                DCD     EINT0_IRQHandler
-                DCD     EINT1_IRQHandler
-                DCD     GPAB_IRQHandler 
-                DCD     GPCDE_IRQHandler
-                DCD     PWMA_IRQHandler 
-                DCD     PWMB_IRQHandler 
-                DCD     TMR0_IRQHandler 
-                DCD     TMR1_IRQHandler 
-                DCD     TMR2_IRQHandler 
-                DCD     TMR3_IRQHandler 
-                DCD     UART0_IRQHandler
-                DCD     UART1_IRQHandler
-                DCD     SPI0_IRQHandler 
-                DCD     SPI1_IRQHandler 
-                DCD     SPI2_IRQHandler 
-                DCD     SPI3_IRQHandler 
-                DCD     I2C0_IRQHandler 
-                DCD     I2C1_IRQHandler 
-                DCD     CAN0_IRQHandler 
-                DCD     CAN1_IRQHandler
-                DCD     Default_Handler 
-                DCD     USBD_IRQHandler  
-                DCD     PS2_IRQHandler  
-                DCD     ACMP_IRQHandler 
-                DCD     PDMA_IRQHandler
-                DCD     Default_Handler 
-                DCD     PWRWU_IRQHandler
-                DCD     ADC_IRQHandler
-                DCD     Default_Handler  
-                DCD     RTC_IRQHandler  
-                
-                
-                
-                
-                
-                
-                
-                AREA    |.text|, CODE, READONLY
-                
-                
-                
-; Reset Handler 
-                
-                ENTRY
-                
-Reset_Handler   PROC
-                EXPORT  Reset_Handler             [WEAK]
-                IMPORT  __main
-                
-                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
-SVC_Handler     PROC
-                EXPORT  SVC_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  BOD_IRQHandler            [WEAK]
-                EXPORT  WDT_IRQHandler            [WEAK]
-                EXPORT  EINT0_IRQHandler          [WEAK]
-                EXPORT  EINT1_IRQHandler          [WEAK]
-                EXPORT  GPAB_IRQHandler           [WEAK]
-                EXPORT  GPCDE_IRQHandler          [WEAK]
-                EXPORT  PWMA_IRQHandler           [WEAK]
-                EXPORT  PWMB_IRQHandler           [WEAK]
-                EXPORT  TMR0_IRQHandler           [WEAK]
-                EXPORT  TMR1_IRQHandler           [WEAK]
-                EXPORT  TMR2_IRQHandler           [WEAK]
-                EXPORT  TMR3_IRQHandler           [WEAK]
-                EXPORT  UART0_IRQHandler          [WEAK]
-                EXPORT  UART1_IRQHandler          [WEAK]
-                EXPORT  SPI0_IRQHandler           [WEAK]
-                EXPORT  SPI1_IRQHandler           [WEAK]
-                EXPORT  SPI2_IRQHandler           [WEAK]
-                EXPORT  SPI3_IRQHandler           [WEAK]
-                EXPORT  I2C0_IRQHandler           [WEAK]
-                EXPORT  I2C1_IRQHandler           [WEAK]
-                EXPORT  CAN0_IRQHandler           [WEAK]
-                EXPORT  CAN1_IRQHandler           [WEAK]
-                EXPORT  USBD_IRQHandler           [WEAK]
-                EXPORT  PS2_IRQHandler            [WEAK]
-                EXPORT  ACMP_IRQHandler           [WEAK]
-                EXPORT  PDMA_IRQHandler           [WEAK]
-                EXPORT  PWRWU_IRQHandler          [WEAK]
-                EXPORT  ADC_IRQHandler            [WEAK]
-                EXPORT  RTC_IRQHandler            [WEAK]
-                
-BOD_IRQHandler
-WDT_IRQHandler
-EINT0_IRQHandler
-EINT1_IRQHandler
-GPAB_IRQHandler
-GPCDE_IRQHandler
-PWMA_IRQHandler
-PWMB_IRQHandler
-TMR0_IRQHandler
-TMR1_IRQHandler
-TMR2_IRQHandler
-TMR3_IRQHandler
-UART0_IRQHandler
-UART1_IRQHandler
-SPI0_IRQHandler
-SPI1_IRQHandler
-SPI2_IRQHandler
-SPI3_IRQHandler
-I2C0_IRQHandler
-I2C1_IRQHandler
-CAN0_IRQHandler
-CAN1_IRQHandler
-USBD_IRQHandler
-PS2_IRQHandler
-ACMP_IRQHandler
-PDMA_IRQHandler
-PWRWU_IRQHandler
-ADC_IRQHandler
-RTC_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
-
-                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

+ 0 - 37
bsp/nuc140/CMSIS/CM0/system_NUC1xx.c

@@ -1,37 +0,0 @@
-/*---------------------------------------------------------------------------------------------------------*/
-/*                                                                                                         */
-/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved.                                         */
-/*                                                                                                         */
-/*---------------------------------------------------------------------------------------------------------*/
-#include <stdint.h>
-#include "NUC1xx.h"
-
-/*----------------------------------------------------------------------------
-  Define SYSCLK
- *----------------------------------------------------------------------------*/
-#define __HSI (50000000UL)
-
-/*----------------------------------------------------------------------------
-  Clock Definitions
- *----------------------------------------------------------------------------*/
-uint32_t SystemFrequency  = __HSI;   /*!< System Clock Frequency (Core Clock) */
-
-
-/*---------------------------------------------------------------------------------------------------------*/
-/* Function: SystemInit                                                                                    */
-/*                                                                                                         */
-/* Parameters:                                                                                             */
-/*      None                                                                                               */
-/*                                                                                                         */
-/* Returns:                                                                                                */
-/*      None                                                                                               */
-/*                                                                                                         */
-/* Description:                                                                                            */
-/*      The necessary initializaiton of systerm.                                                           */
-/*                                                                                                         */
-/*---------------------------------------------------------------------------------------------------------*/
-void SystemInit (void)
-{
-
-}
-

+ 0 - 39
bsp/nuc140/CMSIS/CM0/system_NUC1xx.h

@@ -1,39 +0,0 @@
-/******************************************************************************
- * @file:    system_armikmcu.h
- * @purpose: CMSIS ARM Cortex-M0 Device Peripheral Access Layer Header File
- * @version: V0.01
- * @date:    17. Feb. 2009
- *----------------------------------------------------------------------------
- *
- * Copyright (C) 2009 ARM Limited. All rights reserved.
- *
- * ARM Limited (ARM) is supplying this software for use with Cortex-Mx 
- * processor based microcontrollers.  This file can be freely distributed 
- * within development tools that are supporting such ARM based processors. 
- *
- * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
- * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
- * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
- * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
- *
- ******************************************************************************/
-
-
-#ifndef __SYSTEM_ARMCM0_H
-#define __SYSTEM_ARMCM0_H
-
-extern uint32_t SystemFrequency;                   /*!< System Clock Frequency (Core Clock) */
-
-
-/**
- * Initialize the system
- *
- * @param  none
- * @return none
- *
- * @brief  Setup the microcontroller system
- *         Initialise GPIO directions and values
- */
-extern                   void SystemInit     (void);
-#endif

+ 0 - 1204
bsp/nuc140/CMSIS/Documentation/CMSIS_Core.htm

@@ -1,1204 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"><head>
-  
-  <title>CMSIS: Cortex Microcontroller Software Interface Standard</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-  <meta name="ProgId" content="FrontPage.Editor.Document">
-  <style>
-<!--
-/*-----------------------------------------------------------Keil Software CHM Style Sheet
------------------------------------------------------------*/
-body { color: #000000; background-color: #FFFFFF; font-size: 75%; font-family: Verdana, Arial, 'Sans Serif' }
-a:link { color: #0000FF; text-decoration: underline }
-a:visited { color: #0000FF; text-decoration: underline }
-a:active { color: #FF0000; text-decoration: underline }
-a:hover { color: #FF0000; text-decoration: underline }
-h1 { font-family: Verdana; font-size: 18pt; color: #000080; font-weight: bold; text-align: Center; margin-right: 3 }
-h2 { font-family: Verdana; font-size: 14pt; color: #000080; font-weight: bold; background-color: #CCCCCC; margin-top: 24; margin-bottom: 3; padding: 6 }
-h3 { font-family: Verdana; font-size: 10pt; font-weight: bold; background-color: #CCCCCC; margin-top: 24; margin-bottom: 3; padding: 6 }
-pre { font-family: Courier New; font-size: 10pt; background-color: #CCFFCC; margin-left: 24; margin-right: 24 }
-ul { list-style-type: square; margin-top: 6pt; margin-bottom: 0 }
-ol { margin-top: 6pt; margin-bottom: 0 }
-li { clear: both; margin-bottom: 6pt }
-table { font-size: 100%; border-width: 0; padding: 0 }
-th { color: #FFFFFF; background-color: #000080; text-align: left; vertical-align: bottom; padding-right: 6pt }
-tr { text-align: left; vertical-align: top }
-td { text-align: left; vertical-align: top; padding-right: 6pt }
-.ToolT { font-size: 8pt; color: #808080 }
-.TinyT { font-size: 8pt; text-align: Center }
-code { color: #000000; background-color: #E0E0E0; font-family: 'Courier New', Courier; line-height: 120%; font-style: normal }
-/*-----------------------------------------------------------Notes
------------------------------------------------------------*/
-p.note { font-weight: bold; clear: both; margin-bottom: 3pt; padding-top: 6pt }
-/*-----------------------------------------------------------Expanding/Contracting Divisions
------------------------------------------------------------*/
-#expand { text-decoration: none; margin-bottom: 3pt }
-img.expand { border-style: none; border-width: medium }
-div.expand { display: none; margin-left: 9pt; margin-top: 0 }
-/*-----------------------------------------------------------Where List Tags
------------------------------------------------------------*/
-p.wh { font-weight: bold; clear: both; margin-top: 6pt; margin-bottom: 3pt }
-table.wh { width: 100% }
-td.whItem { white-space: nowrap; font-style: italic; padding-right: 6pt; padding-bottom: 6pt }
-td.whDesc { padding-bottom: 6pt }
-/*-----------------------------------------------------------Keil Table Tags
------------------------------------------------------------*/
-table.kt { width: 100%; border: 1pt solid #000000 }
-th.kt { white-space: nowrap; border-bottom: 1pt solid #000000; padding-left: 6pt; padding-right: 6pt; padding-top: 4pt; padding-bottom: 4pt }
-tr.kt { }
-td.kt { color: #000000; background-color: #E0E0E0; border-top: 1pt solid #A0A0A0; padding-left: 6pt; padding-right: 6pt; padding-top: 2pt; padding-bottom: 2pt }
-/*----------------------------------------------------------------------------------------------------------------------*/
-    .style1 {
-	background-color: #E0E0E0;
-}
-.O
-	{color:#1D315B;
-	font-size:149%;}
-    -->
-  </style></head>
-<body>
-<h1>Cortex Microcontroller Software Interface Standard</h1>
-
-<p align="center">This file describes the Cortex Microcontroller Software Interface Standard (CMSIS).</p>
-<p align="center">Version: 1.10 - 24. Feb. 2009</p>
-
-<p class="TinyT">Information in this file, the accompany manuals, and software is<br>
-                 Copyright © ARM Ltd.<br>All rights reserved.
-</p>
-
-<hr>
-
-<p><span style="FONT-WEIGHT: bold">Revision History</span></p>
-<ul>
-	<li>Version 1.00: initial release. </li>
-	<li>Version 1.01: added __LDREX<em>x</em>, __STREX<em>x</em>, and __CLREX.</li>
-	<li>Version 1.02: added Cortex-M0. </li>
-	<li>Version 1.10: second review. </li>
-</ul>
-
-<hr>
-
-<h2>Contents</h2>
-
-<ol>
-  <li class="LI2"><a href="#1">About</a></li>
-  <li class="LI2"><a href="#2">Coding Rules and Conventions</a></li>
-  <li class="LI2"><a href="#3">CMSIS Files</a></li>
-  <li class="LI2"><a href="#4">Core Peripheral Access Layer</a></li>
-  <li class="LI2"><a href="#5">CMSIS Example</a></li>
-</ol>
-
-<h2><a name="1"></a>About</h2>
-
-<p>
-  The <strong>Cortex Microcontroller Software Interface Standard (CMSIS)</strong> answers the challenges
-  that are faced when software components are deployed to physical microcontroller devices based on a
-  Cortex-M0 / Cortex-M1 or Cortex-M3 processor. The CMSIS will be also expanded to future Cortex-M 
-  processor cores (the term Cortex-Mx is used to indicate that). The CMSIS is defined in close co-operation
-  with various silicon and software vendors and provides a common approach to interface to peripherals, 
-  real-time operating systems, and middleware components.
-</p>
-
-<p>ARM provides as part of the CMSIS the following software layers that are
-available for various compiler implementations:</p>
-<ul>
-  <li><strong>Core Peripheral Access Layer</strong>: contains name definitions, 
-    address definitions and helper functions to
-    access core registers and peripherals. It defines also an device
-    independent interface for RTOS Kernels that includes debug channel
-    definitions.</li>
-  <li><strong>Middleware Access Layer:</strong> provides common methods to
-    access peripherals for the software industry. The Middleware Access Layer
-    is adapted by the Silicon Vendor for the device specific peripherals used
-    by middleware components. The middleware access layer is currently in 
-	development and not yet part of this documentation</li>
-</ul>
-
-<p>These software layers are expanded by Silicon partners with:</p>
-<ul>
-  <li><strong>Device Peripheral Access Layer</strong>: provides definitions
-    for all device peripherals</li>
-  <li><strong>Access Functions for Peripherals (optional)</strong>: provides
-    additional helper functions for peripherals</li>
-</ul>
-
-<p>CMSIS defines for a Cortex-Mx Microcontroller System:</p>
-<ul>
-  <li style="text-align: left;">A common way to access peripheral registers
-    and a common way to define exception vectors.</li>
-  <li style="text-align: left;">The register names of the <strong>Core
-    Peripherals</strong> and<strong> </strong>the names of the <strong>Core
-    Exception Vectors</strong>.</li>
-  <li>An device independent interface for RTOS Kernels including a debug
-    channel.</li>
-  <li style="text-align: left;">Interfaces for middleware components (TCP/IP
-    Stack, Flash File System).</li>
-</ul>
-
-<p>
-  By using CMSIS compliant software components, the user can easier re-use template code. 
-  CMSIS is intended to enable the combination of software components from multiple middleware vendors.
-</p>
-
-<h2><a name="2"></a>Coding Rules and Conventions</h2>
-
-<p>
-  The following section describes the coding rules and conventions used in the CMSIS 
-  implementation. It contains also information about data types and version number information.
-</p>
-
-<h3>Essentials</h3>
-<ul>
-  <li>The CMSIS C code conforms to MISRA 2004 rules. In case of MISRA violations, 
-      there are disable and enable sequences for PC-LINT inserted.</li>
-  <li>ANSI standard data types defined in the ANSI C header file
-    <strong>&lt;stdint.h&gt;</strong> are used.</li>
-  <li>#define constants that include expressions must be enclosed by
-    parenthesis.</li>
-  <li>Variables and parameters have a complete data type.</li>
-  <li>All functions in the <strong>Core Peripheral Access Layer</strong> are
-    re-entrant.</li>
-  <li>The <strong>Core Peripheral Access Layer</strong> has no blocking code
-    (which means that wait/query loops are done at other software layers such as 
-    the <strong>Middleware Access Layer</strong>).</li>
-  <li>For each exception/interrupt there is definition for:
-  <ul>
-    <li>an exception/interrupt handler with the postfix <strong>_Handler </strong>
-	(for exceptions) or <strong>_IRQHandler</strong> (for interrupts).</li>
-    <li>a default exception/interrupt handler (weak definition) that contains an endless loop.</li>
-    <li>a #define of the interrupt number with the postfix <strong>_IRQn</strong>.</li>
-  </ul></li>
-</ul>
-
-<h3>Recommendations</h3>
-
-<p>The CMSIS recommends the following conventions for identifiers.</p>
-<ul>
-  <li><strong>CAPITAL</strong> names to identify Core Registers, Peripheral Registers, and CPU Instructions.</li>
-  <li><strong>CamelCase</strong> names to identify peripherals access functions and interrupts.</li>
-  <li><strong>PERIPHERAL_</strong> prefix to identify functions that belong to specify peripherals.</li>
-  <li><strong>Doxygen</strong> comments for all functions are included as described under <strong>Function Comments</strong> below.</li>
-</ul>
-
-<b>Comments</b>
-
-<ul>
-  <li>Comments use the ANSI C90 style (<em>/* comment */</em>) or C++ style 
-  (<em>// comment</em>). It is assumed that the programming tools support today 
-	consistently the C++ comment style.</li>
-  <li><strong>Function Comments</strong> provide for each function the following information:
-  <ul>
-    <li>one-line brief function overview.</li>
-    <li>detailed parameter explanation.</li>
-    <li>detailed information about return values.</li>
-    <li>detailed description of the actual function.</li>
-  </ul>
-  <p><b>Doxygen Example:</b></p>
-  <pre>
-/** 
- * @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.
- */</pre>
-  </li>
-</ul>
-
-<h3>Data Types and IO Type Qualifiers</h3>
-
-<p>
-  The <strong>Cortex-Mx HAL</strong> uses the standard types from the standard ANSI C header file
-  <strong>&lt;stdint.h&gt;</strong>. <strong>IO Type Qualifiers</strong> 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.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt" nowrap="nowrap">IO Type Qualifier</th>
-      <th class="kt">#define</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">__I</td>
-      <td class="kt">volatile const</td>
-      <td class="kt">Read access only</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">__O</td>
-      <td class="kt">volatile</td>
-      <td class="kt">Write access only</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">__IO</td>
-      <td class="kt">volatile</td>
-      <td class="kt">Read and write access</td>
-    </tr>
-  </tbody>
-</table>
-
-<h3>CMSIS Version Number</h3>
-<p>
-  File <strong>core_cm3.h</strong> contains the version number of the CMSIS with the following define:
-</p>
-
-<pre>
-#define __CM3_CMSIS_VERSION_MAIN  (0x00)      /* [31:16] main version       */
-#define __CM3_CMSIS_VERSION_SUB   (0x03)      /* [15:0]  sub version        */
-#define __CM3_CMSIS_VERSION       ((__CM3_CMSIS_VERSION_MAIN &lt;&lt; 16) | __CM3_CMSIS_VERSION_SUB)</pre>
-
-<p>
-  File <strong>core_cm0.h</strong> contains the version number of the CMSIS with the following define:
-</p>
-
-<pre>
-#define __CM0_CMSIS_VERSION_MAIN  (0x00)      /* [31:16] main version       */
-#define __CM0_CMSIS_VERSION_SUB   (0x00)      /* [15:0]  sub version        */
-#define __CM0_CMSIS_VERSION       ((__CM0_CMSIS_VERSION_MAIN &lt;&lt; 16) | __CM0_CMSIS_VERSION_SUB)</pre>
-
-
-<h3>CMSIS Cortex Core</h3>
-<p>
-  File <strong>core_cm3.h</strong> contains the type of the CMSIS Cortex-Mx with the following define:
-</p>
-
-<pre>
-#define __CORTEX_M                (0x03)</pre>
-
-<p>
-  File <strong>core_cm0.h</strong> contains the type of the CMSIS Cortex-Mx with the following define:
-</p>
-
-<pre>
-#define __CORTEX_M                (0x00)</pre>
-
-
-<h2><a name="3"></a>CMSIS Files</h2>
-<p>
-  This section describes the Files provided in context with the CMSIS to access the Cortex-Mx
-  hardware and peripherals.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt" nowrap="nowrap">File</th>
-      <th class="kt">Provider</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap"><i>device.h</i></td>
-      <td class="kt">Device specific (provided by silicon partner)</td>
-      <td class="kt">Defines the peripherals for the actual device. The file may use 
-        several other include files to define the peripherals of the actual device.</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">core_cm0.h</td>
-      <td class="kt">ARM (for RealView ARMCC, IAR, and GNU GCC)</td>
-      <td class="kt">Defines the core peripherals for the Cortex-M0 CPU and core peripherals.</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">core_cm3.h</td>
-      <td class="kt">ARM (for RealView ARMCC, IAR, and GNU GCC)</td>
-      <td class="kt">Defines the core peripherals for the Cortex-M3 CPU and core peripherals.</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">core_cm0.c</td>
-      <td class="kt">ARM (for RealView ARMCC, IAR, and GNU GCC)</td>
-      <td class="kt">Provides helper functions that access core registers.</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">core_cm0.c</td>
-      <td class="kt">ARM (for RealView ARMCC, IAR, and GNU GCC)</td>
-      <td class="kt">Provides helper functions that access core registers.</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">startup<i>_device</i></td>
-      <td class="kt">ARM (adapted by compiler partner / silicon partner)</td>
-      <td class="kt">Provides the Cortex-Mx startup code and the complete (device specific) Interrupt Vector Table</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">system<i>_device</i></td>
-      <td class="kt">ARM (adapted by silicon partner)</td>
-      <td class="kt">Provides a device specific configuration file for the device. It configures the device initializes 
-        typically the oscillator (PLL) that is part of the microcontroller device</td>
-    </tr>
-  </tbody>
-</table>
-
-<h3><em>device.h</em></h3>
-
-<p>
-  The file <em><strong>device.h</strong></em> is provided by the silicon vendor and is the 
-  <u><strong>central include file</strong></u> that the application programmer is using in 
-  the C source code. This file contains:
-</p>
-<ul>
-  <li>
-	<p><strong>Interrupt Number Definition</strong>: provides interrupt numbers 
-	(IRQn) for all core and device specific exceptions and interrupts.</p>
-	</li>
-	<li>
-	<p><strong>Configuration for core_cm0.h / core_cm3.h</strong>: reflects the 
-	actual configuration of the Cortex-Mx processor that is part of the actual 
-	device. As such the file <strong>core_cm0.h / core_cm3.h</strong> is included that 
-	implements access to processor registers and core peripherals. </p>
-	</li>
-	<li>
-	<p><strong>Device Peripheral Access Layer</strong>: provides definitions
-    for all device peripherals. It contains all data structures and the address 
-	mapping for the device specific peripherals. </p>
-	</li>
-  <li><strong>Access Functions for Peripherals (optional)</strong>: provides
-    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.</li>
-</ul>
-
-
-<h4><strong>Interrupt Number Definition</strong></h4>
-
-<p>To access the device specific interrupts the device.h file defines IRQn 
-numbers for the complete device using a enum typedef as shown below:</p>
-<pre>
-typedef enum IRQn
-{
-/******  Cortex-M3 Processor Exceptions/Interrupt Numbers ************************************************/
-  NonMaskableInt_IRQn             = -14,      /*!&lt; 2 Non Maskable Interrupt                              */
-  MemoryManagement_IRQn           = -12,      /*!&lt; 4 Cortex-M3 Memory Management Interrupt               */
-  BusFault_IRQn                   = -11,      /*!&lt; 5 Cortex-M3 Bus Fault Interrupt                       */
-  UsageFault_IRQn                 = -10,      /*!&lt; 6 Cortex-M3 Usage Fault Interrupt                     */
-  SVCall_IRQn                     = -5,       /*!&lt; 11 Cortex-M3 SV Call Interrupt                        */
-  DebugMonitor_IRQn               = -4,       /*!&lt; 12 Cortex-M3 Debug Monitor Interrupt                  */
-  PendSV_IRQn                     = -2,       /*!&lt; 14 Cortex-M3 Pend SV Interrupt                        */
-  SysTick_IRQn                    = -1,       /*!&lt; 15 Cortex-M3 System Tick Interrupt                    */
-/******  STM32 specific Interrupt Numbers ****************************************************************/
-  WWDG_STM_IRQn                   = 0,        /*!&lt; Window WatchDog Interrupt                             */
-  PVD_STM_IRQn                    = 1,        /*!&lt; PVD through EXTI Line detection Interrupt             */
-  :
-  :
-  } IRQn_Type;</pre>
-
-
-<h4>Configuration for core_cm0.h / core_cm3.h</h4>
-<p>
-  The Cortex-Mx core configuration options which are defined for each device implementation. Some 
-  configuration options are reflected in the CMSIS layer using the #define settings described below.
-</p>
-<p>
-  To access core peripherals file <em><strong>device.h</strong></em> includes file <b>core_cm0.h / core_cm3.h</b>.
-  Several features in <strong>core_cm0.h / core_cm3.h</strong> are configured by the following defines that must be 
-  defined before <strong>#include &lt;core_cm0.h&gt;</strong> / <strong>#include &lt;core_cm3.h&gt;</strong>
-  preprocessor command.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt" nowrap="nowrap">#define</th>
-      <th class="kt" nowrap="nowrap">File</th>
-      <th class="kt" nowrap="nowrap">Value</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">__NVIC_PRIO_BITS</td>
-      <td class="kt">core_cm0.h</td>
-      <td class="kt" nowrap="nowrap">(2)</td>
-      <td class="kt">Number of priority bits implemented in the NVIC (device specific)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">__NVIC_PRIO_BITS</td>
-      <td class="kt">core_cm3.h</td>
-      <td class="kt" nowrap="nowrap">(2 ... 8)</td>
-      <td class="kt">Number of priority bits implemented in the NVIC (device specific)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">__MPU_PRESENT</td>
-      <td class="kt">core_cm0.h, core_cm3.h</td>
-      <td class="kt" nowrap="nowrap">(0, 1)</td>
-      <td class="kt">Defines if an MPU is present or not</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">__Vendor_SysTickConfig</td>
-      <td class="kt">core_cm0.h, core_cm3.h</td>
-      <td class="kt" nowrap="nowrap">(1)</td>
-      <td class="kt">When this define is setup to 1, the <strong>SysTickConfig</strong> function 
-		in <strong>core_cm3.h</strong> is excluded. In this case the <em><strong>device.h</strong></em> 
-		file must contain a vendor specific implementation of this function.</td>
-    </tr>
-  </tbody>
-</table>
-
-
-<h4>Device Peripheral Access Layer</h4>
-<p>
-  Each peripheral uses a <strong>PERIPHERAL_</strong> prefix to identify peripheral registers 
-  and functions that access this specific peripheral. If more than one peripheral of the same 
-  type exists, identifiers have a postfix (digit or letter). For example:
-</p>
-<ul>
-	<li>UART_Type: defines the generic register layout for all UART channels in a device.</li>
-	<li>UART1: is a pointer to a register structure that refers to a specific UART. 
-      For example UART1-&gt;DR is the data register of UART1.</li>
-	<li>UART_SendChar(UART1, c): is a generic function that works with all UART's in the device. 
-      To communicate the UART that it accesses the first parameter is a pointer to the actual 
-      UART register structure.</li>
-	<li>UART1_SendChar(c): is an UART1 specific implementation (in this case the send function).</li>
-</ul>
-
-<h5>Minimal Requiements</h5>
-<p>
-  To access the peripheral registers and related function in a device the files <strong><em>device.h</em></strong> 
-  and <strong>core_cm0.h</strong> / <strong>core_cm3.h</strong> defines as a minimum:
-</p>
-<ul>
-  <li>The <strong>Register Layout Typedef</strong> for each peripheral that defines all register names.
-      Names that start with RESERVE are used to introduce space into the structure to adjust the addresses of
-      the peripheral registers. For example:
-      <pre>
-typedef struct {
-  __IO uint32_t CTRL;      /* SysTick Control and Status Register */
-  __IO uint32_t LOAD;      /* SysTick Reload Value Register       */
-  __IO uint32_t VAL;       /* SysTick Current Value Register      */
-  __I  uint32_t CALIB;     /* SysTick Calibration Register        */
-  } SysTick_Type;</pre>
-  </li>
-
-  <li><strong>Base Address</strong> for each peripheral (in case of multiple peripherals 
-       that use the same <strong>register layout typedef</strong> multiple base addresses are defined). For example:
-    <pre>
-#define SysTick_BASE (SCS_BASE + 0x0010)            /* SysTick Base Address */</pre>
-  </li>
-
-  <li><strong>Access Definition</strong> for each peripheral (in case of multiple peripherals that use 
-      the same <strong>register layout typedef</strong> multiple access definitions exist, i.e. UART0, 
-      UART1). For Example:
-    <pre>
-#define SysTick ((SysTick_Type *) SysTick_BASE)     /* SysTick access definition */</pre>
-  </li>
-</ul>
-
-<p>
-  These definitions allow to access the peripheral registers from user code with simple assignments like:
-</p>
-<pre>SysTick-&gt;CTRL = 0;</pre>
-
-<h5>Optional Features</h5>
-<p>In addition the <em> <strong>device.h </strong></em>file may define:</p>
-<ul>
-	<li>#define constants that simplify access to the peripheral registers. 
-	These constant define bit-positions or other specific patterns are that 
-	required for the programming of the peripheral registers. The identifiers 
-	used start with the name of the <strong>PERIPERHAL_</strong>. It is 
-	recommended to use CAPITAL letters for such #define constants.</li>
-	<li>Functions that perform more complex functions with the peripheral (i.e. 
-	status query before a sending register is accessed). Again these function 
-	start with the name of the <strong>PERIPHERAL_</strong>. </li>
-</ul>
-
-<h3>core_cm0.h and core_cm0.c</h3>
-<p>
-  File <b>core_cm0.h</b> describes the data structures for the Cortex-M0 core peripherals and does 
-  the address mapping of this structures. It also provides basic access to the Cortex-M0 core registers 
-  and core peripherals with efficient functions (defined as <strong>static inline</strong>).
-</p>
-<p>
-  File <b>core_cm0.c</b> defines several helper functions that access processor registers.
-</p>
-<p>Together these files implement the <a href="#4">Core Peripheral Access Layer</a> for a Cortex-M0.</p>
-
-<h3>core_cm3.h and core_cm3.c</h3>
-<p>
-  File <b>core_cm3.h</b> describes the data structures for the Cortex-M3 core peripherals and does 
-  the address mapping of this structures. It also provides basic access to the Cortex-M3 core registers 
-  and core peripherals with efficient functions (defined as <strong>static inline</strong>).
-</p>
-<p>
-  File <b>core_cm3.c</b> defines several helper functions that access processor registers.
-</p>
-<p>Together these files implement the <a href="#4">Core Peripheral Access Layer</a> for a Cortex-M3.</p>
-
-<h3>startup_<em>device</em></h3>
-<p>
-  A template file for <strong>startup_<em>device</em></strong> is provided by ARM for each supported
-  compiler. It is adapted by the silicon vendor to include interrupt vectors for all device specific 
-  interrupt handlers. Each interrupt handler is defined as <strong><em>weak</em></strong> function 
-  to an dummy handler. Therefore the interrupt handler can be directly used in application software 
-  without any requirements to adapt the <strong>startup_<em>device</em></strong> file.
-</p>
-<p>
-  The following exception names are fixed and define the start of the vector table for a Cortex-M0:
-</p>
-<pre>
-__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</pre>
-
-<p>
-  The following exception names are fixed and define the start of the vector table for a Cortex-M3:
-</p>
-<pre>
-__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</pre>
-
-<p>
-  In the following examples for device specific interrupts are shown:
-</p>
-<pre>
-; External Interrupts
-                DCD     WWDG_IRQHandler           ; Window Watchdog
-                DCD     PVD_IRQHandler            ; PVD through EXTI Line detect
-                DCD     TAMPER_IRQHandler         ; Tamper</pre>
-
-<p>
-  Device specific interrupts must have a dummy function that can be overwritten in user code. 
-  Below is an example for this dummy function.
-</p>
-<pre>
-Default_Handler PROC
-                EXPORT WWDG_IRQHandler   [WEAK]
-                EXPORT PVD_IRQHandler    [WEAK]
-                EXPORT TAMPER_IRQHandler [WEAK]
-                :
-                :
-                WWDG_IRQHandler
-                PVD_IRQHandler
-                TAMPER_IRQHandler
-                :
-                :
-                B .
-                ENDP</pre>
-                
-<p>
-  The user application may simply define an interrupt handler function by using the handler name
-  as shown below.
-</p>
-<pre>
-void WWDG_IRQHandler(void)
-{
-  :
-  :
-}</pre>
-
-
-<h3><a name="4"></a>system_<em>device</em>.c</h3>
-<p>
-  A template file for <strong>system_<em>device</em>.c</strong> is provided by ARM but adapted by 
-  the silicon vendor to match their actual device. As a <strong>minimum requirement</strong> 
-  this file must provide a device specific system configuration function and a global variable 
-  that contains the system frequency. It configures the device and initializes typically the 
-  oscillator (PLL) that is part of the microcontroller device.
-</p>
-<p>
-  The file <strong>system_</strong><em><strong>device</strong></em><strong>.c</strong> must provide
-  as a minimum requirement the SystemInit function as shown below.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt">Function Definition</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void SystemInit (void)</td>
-      <td class="kt">Setup the microcontroller system. Typically this function configures the 
-                     oscillator (PLL) that is part of the microcontroller device. For systems 
-                     with variable clock speed it also updates the variable SystemFrequency.</td>
-    </tr>
-  </tbody>
-</table>
-
-<p>
-  Also part of the file <strong>system_</strong><em><strong>device</strong></em><strong>.c</strong> 
-  is the variable <strong>SystemFrequency</strong> which contains the current CPU clock speed shown below.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt">Variable Definition</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t SystemFrequency</td>
-      <td class="kt">Contains the system frequency (which is the system clock	frequency supplied 
-                     to the SysTick timer and the processor core clock). This variable can be 
-                     used by the user application after the call to the function SystemInit() 
-                     to setup the SysTick timer or configure other parameters. It may also be 
-                     used by debugger to query the frequency of the debug timer or configure 
-                     the trace clock speed.<br><br>
-		                 This variable may also be defined in the <strong>const</strong> space. 
-		                 The compiler must be configured to avoid the removal of this variable in 
-		                 case that the application program is not using it. It is important for 
-		                 debug systems that the variable is physically present in memory so that 
-		                 it can be examined to configure the debugger.</td>
-    </tr>
-  </tbody>
-</table>
-
-<p class="Note">Note</p>
-<ul>
-  <li><p>The above definitions are the minimum requirements for the file <strong>
-	system_</strong><em><strong>device</strong></em><strong>.c</strong>. This 
-	file may export more functions or variables that provide a more flexible 
-	configuration of the microcontroller system.</p>
-  </li>
-</ul>
-
-
-<h2>Core Peripheral Access Layer</h2>
-
-<h3>Cortex-Mx Core Register Access</h3>
-<p>
-  The following functions are defined in <strong>core_cm0.h</strong> / <strong>core_cm3.h</strong>
-  and provide access to Cortex-Mx core registers.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt">Function Definition</th>
-      <th class="kt">Core</th>
-      <th class="kt">Core Register</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __enable_irq (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">PRIMASK = 0</td>
-      <td class="kt">Global Interrupt enable (using the instruction <strong>CPSIE 
-		i</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __disable_irq (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">PRIMASK = 1</td>
-      <td class="kt">Global Interrupt disable (using the instruction <strong>
-		CPSID i</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __set_PRIMASK (uint32_t value)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">PRIMASK = value</td>
-      <td class="kt">Assign value to Priority Mask Register (using the instruction 
-		<strong>MSR</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __get_PRIMASK (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">return PRIMASK</td>
-      <td class="kt">Return Priority Mask Register (using the instruction 
-		<strong>MRS</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __enable_fault_irq (void)</td>
-      <td class="kt">M3</td>
-      <td class="kt">FAULTMASK = 0</td>
-      <td class="kt">Global Fault exception and Interrupt enable (using the 
-		instruction <strong>CPSIE 
-		f</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __disable_fault_irq (void)</td>
-      <td class="kt">M3</td>
-      <td class="kt">FAULTMASK = 1</td>
-      <td class="kt">Global Fault exception and Interrupt disable (using the 
-		instruction <strong>CPSID f</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __set_FAULTMASK (uint32_t value)</td>
-      <td class="kt">M3</td>
-      <td class="kt">FAULTMASK = value</td>
-      <td class="kt">Assign value to Fault Mask Register (using the instruction 
-		<strong>MSR</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __get_FAULTMASK (void)</td>
-      <td class="kt">M3</td>
-      <td class="kt">return FAULTMASK</td>
-      <td class="kt">Return Fault Mask Register (using the instruction <strong>MRS</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __set_BASEPRI (uint32_t value)</td>
-      <td class="kt">M3</td>
-      <td class="kt">BASEPRI = value</td>
-      <td class="kt">Set Base Priority (using the instruction <strong>MSR</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uiuint32_t __get_BASEPRI (void)</td>
-      <td class="kt">M3</td>
-      <td class="kt">return BASEPRI</td>
-      <td class="kt">Return Base Priority (using the instruction <strong>MRS</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __set_CONTROL (uint32_t value)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">CONTROL = value</td>
-      <td class="kt">Set CONTROL register value (using the instruction <strong>MSR</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __get_CONTROL (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">return CONTROL</td>
-      <td class="kt">Return Control Register Value (using the instruction
-		<strong>MRS</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __set_PSP (uint32_t TopOfProcStack)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">PSP = TopOfProcStack</td>
-      <td class="kt">Set Process Stack Pointer value (using the instruction
-		<strong>MSR</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __get_PSP (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">return PSP</td>
-      <td class="kt">Return Process Stack Pointer (using the instruction <strong>MRS</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __set_MSP (uint32_t TopOfMainStack)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">MSP = TopOfMainStack</td>
-      <td class="kt">Set Main Stack Pointer (using the instruction <strong>MSR</strong>)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __get_MSP (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">return MSP</td>
-      <td class="kt">Return Main Stack Pointer (using the instruction <strong>MRS</strong>)</td>
-    </tr>
-  </tbody>
-</table>
-
-<h3>Cortex-Mx Instruction Access</h3>
-<p>
-  The following functions are defined in <strong>core_cm0.h</strong> / <strong>core_cm3.h</strong>and
-  generate specific Cortex-Mx instructions. The functions are implemented in the file 
-  <strong>core_cm0.c</strong> / <strong>core_cm3.c</strong>.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt">Name</th>
-      <th class="kt">Core</th>
-      <th class="kt">Generated CPU Instruction</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __WFI (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">WFI</td>
-      <td class="kt">Wait for Interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __WFE (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">WFE</td>
-      <td class="kt">Wait for Event</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __SEV (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">SEV</td>
-      <td class="kt">Set Event</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __ISB (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">ISB</td>
-      <td class="kt">Instruction Synchronization Barrier</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __DSB (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">DSB</td>
-      <td class="kt">Data Synchronization Barrier</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void __DMB (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">DMB</td>
-      <td class="kt">Data Memory Barrier</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __REV (uint32_t value)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">REV</td>
-      <td class="kt">Reverse byte order in integer value.</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __REV16 (uint16_t value)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">REV16</td>
-      <td class="kt">Reverse byte order in unsigned short value. </td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">sint32_t __REVSH (sint16_t value)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">REVSH</td>
-      <td class="kt">Reverse byte order in signed short value with sign extension to integer.</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __RBIT (uint32_t value)</td>
-      <td class="kt">M3</td>
-      <td class="kt">RBIT</td>
-      <td class="kt">Reverse bit order of value</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint8_t __LDREXB (uint8_t *addr)</td>
-      <td class="kt">M3</td>
-      <td class="kt">LDREXB</td>
-      <td class="kt">Load exclusive byte</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint16_t __LDREXH (uint16_t *addr)</td>
-      <td class="kt">M3</td>
-      <td class="kt">LDREXH</td>
-      <td class="kt">Load exclusive half-word</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __LDREXW (uint32_t *addr)</td>
-      <td class="kt">M3</td>
-      <td class="kt">LDREXW</td>
-      <td class="kt">Load exclusive word</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __STREXB (uint8_t value, uint8_t *addr)</td>
-      <td class="kt">M3</td>
-      <td class="kt">STREXB</td>
-      <td class="kt">Store exclusive byte</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __STREXB (uint16_t value, uint16_t *addr)</td>
-      <td class="kt">M3</td>
-      <td class="kt">STREXH</td>
-      <td class="kt">Store exclusive half-word</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t __STREXB (uint32_t value, uint32_t *addr)</td>
-      <td class="kt">M3</td>
-      <td class="kt">STREXW</td>
-      <td class="kt">Store exclusive word</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void  __CLREX (void)</td>
-      <td class="kt">M3</td>
-      <td class="kt">CLREX</td>
-      <td class="kt">Remove the exclusive lock created by __LDREXB, __LDREXH, or __LDREXW</td>
-    </tr>
-  </tbody>
-</table>
-
-
-<h3>NVIC Access Functions</h3>
-<p>
-  The CMSIS provides access to the NVIC via the register interface structure and several helper
-  functions that simplify the setup of the NVIC. The CMSIS HAL uses IRQ numbers (IRQn) to 
-  identify the interrupts. The first device interrupt has the IRQn value 0. Therefore negative 
-  IRQn values are used for processor core exceptions.
-</p>
-<p>
-  For the IRQn values of core exceptions the file <strong><em>device.h</em></strong> provides 
-  the following enum names.
-</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt" nowrap="nowrap">Core Exception enum Value</th>
-      <th class="kt">Core</th>
-      <th class="kt">IRQn</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">NonMaskableInt_IRQn</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">-14</td>
-      <td class="kt">Cortex-Mx Non Maskable Interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">MemoryManagement_IRQn</td>
-      <td class="kt">M3</td>
-      <td class="kt">-12</td>
-      <td class="kt">Cortex-Mx Memory Management Interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">BusFault_IRQn</td>
-      <td class="kt">M3</td>
-      <td class="kt">-11</td>
-      <td class="kt">Cortex-Mx Bus Fault Interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">UsageFault_IRQn</td>
-      <td class="kt">M3</td>
-      <td class="kt">-10</td>
-      <td class="kt">Cortex-Mx Usage Fault Interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">SVCall_IRQn</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">-5</td>
-      <td class="kt">Cortex-Mx SV Call Interrupt </td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">DebugMonitor_IRQn</td>
-      <td class="kt">M3</td>
-      <td class="kt">-4</td>
-      <td class="kt">Cortex-Mx Debug Monitor Interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">PendSV_IRQn</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">-2</td>
-      <td class="kt">Cortex-Mx Pend SV Interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">SysTick_IRQn</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">-1</td>
-      <td class="kt">Cortex-Mx System Tick Interrupt</td>
-    </tr>
-  </tbody>
-</table>
-
-<p>The following functions simplify the setup of the NVIC.
-The functions are defined as <strong>static inline</strong>.</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt" nowrap="nowrap">Name</th>
-      <th class="kt">Core</th>
-      <th class="kt">Parameter</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void NVIC_SetPriorityGrouping(uint32_t priority_grouping)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">Priority Grouping Value</td>
-      <td class="kt">Set the Priority Grouping (Groups . Subgroups)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void NVIC_EnableIRQ(IRQn_Type IRQn)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">IRQ Number</td>
-      <td class="kt">Enable IRQn</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void NVIC_DisableIRQ(IRQn_Type IRQn)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">IRQ Number</td>
-      <td class="kt">Disable IRQn</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t NVIC_GetPendingIRQ (IRQn_Type IRQn)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">IRQ Number</td>
-      <td class="kt">Return true (IRQ-Number) if IRQn is pending</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void NVIC_SetPendingIRQ (IRQn_Type IRQn)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">IRQ Number</td>
-      <td class="kt">Set IRQn Pending</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void NVIC_ClearPendingIRQ (IRQn_Type IRQn)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">IRQ Number</td>
-      <td class="kt">Clear IRQn Pending Status</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t NVIC_GetActive (IRQn_Type IRQn)</td>
-      <td class="kt">M3</td>
-      <td class="kt">IRQ Number</td>
-      <td class="kt">Return the IRQn of the active interrupt</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void NVIC_SetPriority (IRQn_Type IRQn, uint32_t priority)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">IRQ Number, Priority</td>
-      <td class="kt">Set Priority for IRQn<br>
-                     (not threadsafe for Cortex-M0)</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t NVIC_GetPriority (IRQn_Type IRQn)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">IRQ Number</td>
-      <td class="kt">Get Priority for IRQn</td>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void NVIC_SystemReset (void)</td>
-      <td class="kt">M0, M3</td>
-      <td class="kt">(void)</td>
-      <td class="kt">Resets the System</td>
-    </tr>
-  </tbody>
-</table>
-<p class="Note">Note</p>
-<ul>
-  <li><p>The processor exceptions have negative enum values. Device specific interrupts 
-	have positive enum values and start with 0. The values are defined in
-    <b><em>device.h</em></b> file.</p>
-  </li>
-</ul>
-
-
-<h3>SysTick Configuration Function</h3>
-
-<p>The following function is used to configure the SysTick timer and start the 
-SysTick interrupt.</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt" nowrap="nowrap">Name</th>
-      <th class="kt">Parameter</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">uint32_t Sys<span class="style1">TickConfig 
-		(uint32_t ticks)</span></td>
-      <td class="kt">ticks is SysTick counter reload value</td>
-      <td class="kt">Setup the SysTick timer and enable the SysTick interrupt. After this 
-		call the SysTick timer creates interrupts with the specified time 
-		interval. <br>
-		<br>
-		Return: 0 when successful, 1 on failure.<br>
-		</td>
-    </tr>
-  </tbody>
-</table>
-
-
-<h3>Cortex-M3 ITM Debug Access</h3>
-
-<p>The Cortex-M3 incorporates the Instrumented Trace Macrocell (ITM) that 
-provides together with the Serial Viewer Output 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:</p>
-<ul>
-	<li>ITM Channel 0: implements the <strong>ITM_putchar</strong> function 
-	which can be used for printf-style output via the debug interface.</li>
-	<li>ITM Channel 31: is reserved for the RTOS kernel and can be used for 
-	kernel awareness debugging.</li>
-</ul>
-<p class="Note">Note</p>
-<ul>
-  <li><p>The ITM channel 31 is selected for the RTOS kernel since some kernels 
-	may use the Privileged level for program execution. 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 
-	may be therefore enabled for the user task whereas ITM channel 31 may be 
-	accessible only in Privileged level from the RTOS kernel itself.</p>
-  </li>
-</ul>
-
-<p>The prototype of the <strong>ITM_putchar</strong> routine is shown in the 
-table below.</p>
-
-<table class="kt" border="0" cellpadding="0" cellspacing="0">
-  <tbody>
-    <tr>
-      <th class="kt" nowrap="nowrap">Name</th>
-      <th class="kt">Parameter</th>
-      <th class="kt">Description</th>
-    </tr>
-    <tr>
-      <td class="kt" nowrap="nowrap">void uint32_t ITM_putchar(uint32_t chr)</td>
-      <td class="kt">character to output</td>
-      <td class="kt">The function outputs a character via the ITM channel 0. The 
-		                 function returns when no debugger is connected that has booked the 
-		                 output. It is blocking when a debugger is connected, but the 
-		                 previous character send is not transmitted. <br><br>
-		                 Return: the input character 'chr'.</td>
-    </tr>
-  </tbody>
-</table>
-
-
-<p>
-  Example for the usage of the ITM Channel 31 for RTOS Kernels:
-</p>
-<pre>
-  // check if debugger connected and ITM channel enabled for tracing
-  if ((CoreDebug-&gt;DEMCR &amp; CoreDebug_DEMCR_TRCENA) &amp;&amp;
-  (ITM-&gt;TCR &amp; ITM_TCR_ITMENA) &amp;&amp;
-  (ITM-&gt;TER &amp; (1UL &lt;&lt; 31))) {
-    // transmit trace data
-    while (ITM-&gt;PORT31_U32 == 0);
-    ITM-&gt;PORT[31].u8 = task_id;      // id of next task
-    while (ITM-&gt;PORT[31].u32 == 0);
-    ITM-&gt;PORT[31].u32 = task_status; // status information
-  }</pre>
-
-
-<h2><a name="5"></a>CMSIS Example</h2>
-<p>
-  The following section shows a typical example for using the CMSIS layer in user applications.
-</p>
-<pre>
-#include &lt;device.h&gt;                              // file name depends on the device used.
-
-void SysTick_Handler (void)  {                   // SysTick Interrupt Handler
-  ;
-}
-
-void TIM1_UP_IRQHandler (void)  {                // Timer Interrupt Handler
-  ;
-}
-
-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 main (void) {
-  SystemInit ();
-
-  if (SysTick_Config (SystemFrequency / 1000)) { // Setup SysTick Timer for 1 msec interrupts
-    :                                            // Handle Error
-    :
-    while (1);
-  }
-
-  timer1_init ();                                // device specific timer
-
-  while (1);
-}</pre>
-
-
-</body></html>

+ 0 - 26
bsp/nuc140/application.c

@@ -1,26 +0,0 @@
-/*
- * File      : app.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Development Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
- *
- * Change Logs:
- * Date           Author       Notes
- * 2010-01-25     Bernard      first version
- */
-
-/**
- * @addtogroup LPC1100
- */
-/*@{*/
-#include <rtthread.h>
-
-int rt_application_init()
-{
-	return 0;
-}
-
-/*@}*/

+ 0 - 65
bsp/nuc140/board.c

@@ -1,65 +0,0 @@
-/*
- * File      : board.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Develop Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
- *
- * Change Logs:
- * Date           Author       Notes
- * 2010-01-25     Bernard      first version
- */
-
-#include <rtthread.h>
-#include <rthw.h>
-
-#include "board.h"
-#include "uart.h"
-
-#include "CMSIS/CM0/NUC1xx.h"
-#include "CMSIS/CM0/core_cm0.h"
-
-/**
- * @addtogroup NUC100
- */
-/*@{*/
-
-/**
- * This is the timer interrupt service routine.
- */
-void rt_hw_timer_handler()
-{
-	/* enter interrupt */
-	rt_interrupt_enter();
-
-	rt_tick_increase();
-
-	/* leave interrupt */
-	rt_interrupt_leave();
-}
-
-/**
- * This function will initial sam7s64 board.
- */
-void rt_hw_board_init()
-{
-	SystemInit();
-
-	/* init systick */
-	SysTick_Config(SystemFrequency/RT_TICK_PER_SECOND - 1);
-
-	/* set pend exception priority */
-	NVIC_SetPriority(PendSV_IRQn, (1<<__NVIC_PRIO_BITS) - 1);
-
-#ifdef RT_USING_UART
-	/* init hardware UART device */
-	rt_hw_uart_init();
-#endif
-#ifdef RT_USING_CONSOLE
-	/* set console device */
-	rt_console_set_device("uart1");
-#endif
-}
-/*@}*/

+ 0 - 20
bsp/nuc140/board.h

@@ -1,20 +0,0 @@
-/*
- * File      : board.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Develop Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
- *
- * Change Logs:
- * Date           Author       Notes
- * 2010-01-25     Bernard      first version
- */
-
-#ifndef __BOARD_H__
-#define __BOARD_H__
-
-void rt_hw_board_init(void);
-
-#endif

+ 0 - 2096
bsp/nuc140/project.uvopt

@@ -1,2096 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
-
-  <SchemaVersion>1.0</SchemaVersion>
-
-  <Header>### uVision Project, (C) Keil Software</Header>
-
-  <Extensions>
-    <cExt>*.c</cExt>
-    <aExt>*.s*; *.src; *.a*</aExt>
-    <oExt>*.obj</oExt>
-    <lExt>*.lib</lExt>
-    <tExt>*.txt; *.h; *.inc</tExt>
-    <pExt>*.plm</pExt>
-    <CppX>*.cpp</CppX>
-  </Extensions>
-
-  <DaveTm>
-    <dwLowDateTime>0</dwLowDateTime>
-    <dwHighDateTime>0</dwHighDateTime>
-  </DaveTm>
-
-  <Target>
-    <TargetName>RT-Thread NUC100</TargetName>
-    <ToolsetNumber>0x4</ToolsetNumber>
-    <ToolsetName>ARM-ADS</ToolsetName>
-    <TargetOption>
-      <CLKADS>12000000</CLKADS>
-      <OPTTT>
-        <gFlags>1</gFlags>
-        <BeepAtEnd>1</BeepAtEnd>
-        <RunSim>1</RunSim>
-        <RunTarget>0</RunTarget>
-      </OPTTT>
-      <OPTHX>
-        <HexSelection>1</HexSelection>
-        <FlashByte>65535</FlashByte>
-        <HexRangeLowAddress>0</HexRangeLowAddress>
-        <HexRangeHighAddress>0</HexRangeHighAddress>
-        <HexOffset>0</HexOffset>
-      </OPTHX>
-      <OPTLEX>
-        <PageWidth>79</PageWidth>
-        <PageLength>66</PageLength>
-        <TabStop>8</TabStop>
-        <ListingPath>.\</ListingPath>
-      </OPTLEX>
-      <ListingPage>
-        <CreateCListing>1</CreateCListing>
-        <CreateAListing>1</CreateAListing>
-        <CreateLListing>1</CreateLListing>
-        <CreateIListing>0</CreateIListing>
-        <AsmCond>1</AsmCond>
-        <AsmSymb>1</AsmSymb>
-        <AsmXref>0</AsmXref>
-        <CCond>1</CCond>
-        <CCode>0</CCode>
-        <CListInc>0</CListInc>
-        <CSymb>0</CSymb>
-        <LinkerCodeListing>0</LinkerCodeListing>
-      </ListingPage>
-      <OPTXL>
-        <LMap>1</LMap>
-        <LComments>1</LComments>
-        <LGenerateSymbols>1</LGenerateSymbols>
-        <LLibSym>1</LLibSym>
-        <LLines>1</LLines>
-        <LLocSym>1</LLocSym>
-        <LPubSym>1</LPubSym>
-        <LXref>0</LXref>
-        <LExpSel>0</LExpSel>
-      </OPTXL>
-      <OPTFL>
-        <tvExp>1</tvExp>
-        <tvExpOptDlg>0</tvExpOptDlg>
-        <IsCurrentTarget>1</IsCurrentTarget>
-      </OPTFL>
-      <CpuCode>255</CpuCode>
-      <DllOpt>
-        <SimDllName>SARMCM3.DLL</SimDllName>
-        <SimDllArguments></SimDllArguments>
-        <SimDlgDllName>DARMCM1.DLL</SimDlgDllName>
-        <SimDlgDllArguments></SimDlgDllArguments>
-        <TargetDllName>SARMCM3.DLL</TargetDllName>
-        <TargetDllArguments></TargetDllArguments>
-        <TargetDlgDllName>TARMCM1.DLL</TargetDlgDllName>
-        <TargetDlgDllArguments></TargetDlgDllArguments>
-      </DllOpt>
-      <DebugOpt>
-        <uSim>0</uSim>
-        <uTrg>1</uTrg>
-        <sLdApp>1</sLdApp>
-        <sGomain>1</sGomain>
-        <sRbreak>1</sRbreak>
-        <sRwatch>1</sRwatch>
-        <sRmem>1</sRmem>
-        <sRfunc>1</sRfunc>
-        <sRbox>1</sRbox>
-        <tLdApp>1</tLdApp>
-        <tGomain>0</tGomain>
-        <tRbreak>1</tRbreak>
-        <tRwatch>1</tRwatch>
-        <tRmem>1</tRmem>
-        <tRfunc>0</tRfunc>
-        <tRbox>1</tRbox>
-        <sRunDeb>0</sRunDeb>
-        <sLrtime>0</sLrtime>
-        <nTsel>1</nTsel>
-        <sDll></sDll>
-        <sDllPa></sDllPa>
-        <sDlgDll></sDlgDll>
-        <sDlgPa></sDlgPa>
-        <sIfile></sIfile>
-        <tDll></tDll>
-        <tDllPa></tDllPa>
-        <tDlgDll></tDlgDll>
-        <tDlgPa></tDlgPa>
-        <tIfile></tIfile>
-        <pMon>BIN\UL2CM3.DLL</pMon>
-      </DebugOpt>
-      <TargetDriverDllRegistry>
-        <SetRegEntry>
-          <Number>0</Number>
-          <Key>DLGDARM</Key>
-          <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)</Name>
-        </SetRegEntry>
-        <SetRegEntry>
-          <Number>0</Number>
-          <Key>DLGTARM</Key>
-          <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)</Name>
-        </SetRegEntry>
-        <SetRegEntry>
-          <Number>0</Number>
-          <Key>ARMDBGFLAGS</Key>
-          <Name>-T0</Name>
-        </SetRegEntry>
-        <SetRegEntry>
-          <Number>0</Number>
-          <Key>DLGUARM</Key>
-          <Name>(105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0)</Name>
-        </SetRegEntry>
-        <SetRegEntry>
-          <Number>0</Number>
-          <Key>UL2CM3</Key>
-          <Name>-UV0704M0Z -O78 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(0BB11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC4000 -FN1 -FF0NUC1xx_128 -FS00 -FL020000</Name>
-        </SetRegEntry>
-      </TargetDriverDllRegistry>
-      <DebugFlag>
-        <trace>0</trace>
-        <periodic>1</periodic>
-        <aLwin>0</aLwin>
-        <aCover>0</aCover>
-        <aSer1>0</aSer1>
-        <aSer2>0</aSer2>
-        <aPa>0</aPa>
-        <viewmode>1</viewmode>
-        <vrSel>0</vrSel>
-        <aSym>0</aSym>
-        <aTbox>0</aTbox>
-        <AscS1>0</AscS1>
-        <AscS2>0</AscS2>
-        <AscS3>0</AscS3>
-        <aSer3>0</aSer3>
-        <eProf>0</eProf>
-        <aLa>0</aLa>
-        <aPa1>0</aPa1>
-        <AscS4>0</AscS4>
-        <aSer4>0</aSer4>
-        <StkLoc>1</StkLoc>
-        <TrcWin>0</TrcWin>
-        <newCpu>0</newCpu>
-        <uProt>0</uProt>
-      </DebugFlag>
-      <LintExecutable></LintExecutable>
-      <LintConfigFile></LintConfigFile>
-    </TargetOption>
-  </Target>
-
-  <Group>
-    <GroupName>Startup</GroupName>
-    <tvExp>1</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>1</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>.\board.c</PathWithFileName>
-      <FilenameWithoutPath>board.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>2</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>7</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>.\startup.c</PathWithFileName>
-      <FilenameWithoutPath>startup.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>3</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>15</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>.\uart.c</PathWithFileName>
-      <FilenameWithoutPath>uart.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>4</FileNumber>
-      <FileType>5</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>.\rtconfig.h</PathWithFileName>
-      <FilenameWithoutPath>rtconfig.h</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>5</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>6</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>5</TopLine>
-      <CurrentLine>26</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>.\application.c</PathWithFileName>
-      <FilenameWithoutPath>application.c</FilenameWithoutPath>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>NUC100</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>6</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\libcpu\arm\nuc1xx\fault.c</PathWithFileName>
-      <FilenameWithoutPath>fault.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>7</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\libcpu\arm\nuc1xx\interrupt.c</PathWithFileName>
-      <FilenameWithoutPath>interrupt.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>8</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\libcpu\arm\nuc1xx\stack.c</PathWithFileName>
-      <FilenameWithoutPath>stack.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>9</FileNumber>
-      <FileType>2</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\libcpu\arm\nuc1xx\context_rvds.S</PathWithFileName>
-      <FilenameWithoutPath>context_rvds.S</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>10</FileNumber>
-      <FileType>2</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\libcpu\arm\nuc1xx\fault_rvds.S</PathWithFileName>
-      <FilenameWithoutPath>fault_rvds.S</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>11</FileNumber>
-      <FileType>2</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\libcpu\arm\nuc1xx\start_rvds.S</PathWithFileName>
-      <FilenameWithoutPath>start_rvds.S</FilenameWithoutPath>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>CMSIS</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>12</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>.\CMSIS\CM0\system_NUC1xx.c</PathWithFileName>
-      <FilenameWithoutPath>system_NUC1xx.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>13</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>.\CMSIS\CM0\core_cm0.c</PathWithFileName>
-      <FilenameWithoutPath>core_cm0.c</FilenameWithoutPath>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>Kernel</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>14</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\timer.c</PathWithFileName>
-      <FilenameWithoutPath>timer.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>15</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\clock.c</PathWithFileName>
-      <FilenameWithoutPath>clock.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>16</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\device.c</PathWithFileName>
-      <FilenameWithoutPath>device.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>17</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\idle.c</PathWithFileName>
-      <FilenameWithoutPath>idle.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>18</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\ipc.c</PathWithFileName>
-      <FilenameWithoutPath>ipc.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>19</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\irq.c</PathWithFileName>
-      <FilenameWithoutPath>irq.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>20</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\kservice.c</PathWithFileName>
-      <FilenameWithoutPath>kservice.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>21</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\mem.c</PathWithFileName>
-      <FilenameWithoutPath>mem.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>22</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\mempool.c</PathWithFileName>
-      <FilenameWithoutPath>mempool.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>23</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\object.c</PathWithFileName>
-      <FilenameWithoutPath>object.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>24</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\scheduler.c</PathWithFileName>
-      <FilenameWithoutPath>scheduler.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>25</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\slab.c</PathWithFileName>
-      <FilenameWithoutPath>slab.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>26</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\src\thread.c</PathWithFileName>
-      <FilenameWithoutPath>thread.c</FilenameWithoutPath>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>finsh</GroupName>
-    <tvExp>1</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>27</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\symbol.c</PathWithFileName>
-      <FilenameWithoutPath>symbol.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>28</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\cmd.c</PathWithFileName>
-      <FilenameWithoutPath>cmd.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>29</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_compiler.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_compiler.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>30</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>47</TopLine>
-      <CurrentLine>60</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_error.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_error.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>31</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_heap.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_heap.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>32</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_init.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_init.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>33</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_node.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_node.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>34</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_ops.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_ops.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>35</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_parser.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_parser.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>36</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_token.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_token.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>37</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_var.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_var.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>38</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\finsh_vm.c</PathWithFileName>
-      <FilenameWithoutPath>finsh_vm.c</FilenameWithoutPath>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>39</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <Focus>0</Focus>
-      <ColumnNumber>0</ColumnNumber>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>0</TopLine>
-      <CurrentLine>0</CurrentLine>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\components\finsh\shell.c</PathWithFileName>
-      <FilenameWithoutPath>shell.c</FilenameWithoutPath>
-    </File>
-  </Group>
-
-  <WinLayout>
-    <sActiveDebugView>Default</sActiveDebugView>
-    <iActiveDebugViewLocation>1</iActiveDebugViewLocation>
-    <sActiveBuildView>Build</sActiveBuildView>
-    <iActiveBuildViewLocation>0</iActiveBuildViewLocation>
-    <View>
-      <ViewName>Default</ViewName>
-      <ViewType>1</ViewType>
-      <Window>
-        <WinId>35824</WinId>
-        <ItemNo>1</ItemNo>
-        <Name>Logic Analyzer</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>6</DockType>
-        <DockLocation>0</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>0</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>210</DockedRect_bottom>
-        <DockedRect_right>600</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>1</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>59392</WinId>
-        <ItemNo>2</ItemNo>
-        <Name>File</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>3</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>24</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>50</DockedRect_bottom>
-        <DockedRect_right>893</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>0</FloatingRect_bottom>
-        <FloatingRect_right>0</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>1</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>59398</WinId>
-        <ItemNo>3</ItemNo>
-        <Name>Build</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>3</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>50</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>76</DockedRect_bottom>
-        <DockedRect_right>384</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>0</FloatingRect_bottom>
-        <FloatingRect_right>0</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>59399</WinId>
-        <ItemNo>4</ItemNo>
-        <Name>Debug</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>3</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>50</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>76</DockedRect_bottom>
-        <DockedRect_right>626</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>0</FloatingRect_bottom>
-        <FloatingRect_right>0</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>1</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>197</WinId>
-        <ItemNo>5</ItemNo>
-        <Name>Build Output</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>4</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>198</WinId>
-        <ItemNo>6</ItemNo>
-        <Name>Command</Name>
-        <AnchorWinID>197</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>199</WinId>
-        <ItemNo>7</ItemNo>
-        <Name>Find in Files</Name>
-        <AnchorWinID>198</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>38007</WinId>
-        <ItemNo>8</ItemNo>
-        <Name>Browse</Name>
-        <AnchorWinID>199</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1939</WinId>
-        <ItemNo>9</ItemNo>
-        <Name>UART #1</Name>
-        <AnchorWinID>38007</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1940</WinId>
-        <ItemNo>10</ItemNo>
-        <Name>UART #2</Name>
-        <AnchorWinID>1939</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1941</WinId>
-        <ItemNo>11</ItemNo>
-        <Name>UART #3</Name>
-        <AnchorWinID>1940</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1942</WinId>
-        <ItemNo>12</ItemNo>
-        <Name>UART #4</Name>
-        <AnchorWinID>1941</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1944</WinId>
-        <ItemNo>13</ItemNo>
-        <Name>Call Stack</Name>
-        <AnchorWinID>197</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1507</WinId>
-        <ItemNo>14</ItemNo>
-        <Name>Call Stack</Name>
-        <AnchorWinID>1944</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>1</ActiveTab>
-        <Visible>1</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1935</WinId>
-        <ItemNo>15</ItemNo>
-        <Name>Locals</Name>
-        <AnchorWinID>1507</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>1</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1936</WinId>
-        <ItemNo>16</ItemNo>
-        <Name>Watch 1</Name>
-        <AnchorWinID>1935</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1937</WinId>
-        <ItemNo>17</ItemNo>
-        <Name>Watch 2</Name>
-        <AnchorWinID>1936</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1465</WinId>
-        <ItemNo>18</ItemNo>
-        <Name>Memory 1</Name>
-        <AnchorWinID>1937</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1466</WinId>
-        <ItemNo>19</ItemNo>
-        <Name>Memory 2</Name>
-        <AnchorWinID>1465</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1467</WinId>
-        <ItemNo>20</ItemNo>
-        <Name>Memory 3</Name>
-        <AnchorWinID>1466</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1468</WinId>
-        <ItemNo>21</ItemNo>
-        <Name>Memory 4</Name>
-        <AnchorWinID>1467</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1506</WinId>
-        <ItemNo>22</ItemNo>
-        <Name>Symbols</Name>
-        <AnchorWinID>1468</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>197</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>465</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>659</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>0</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1005</WinId>
-        <ItemNo>23</ItemNo>
-        <Name>Project</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>1</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>210</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>1</ActiveTab>
-        <Visible>1</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>109</WinId>
-        <ItemNo>24</ItemNo>
-        <Name>Books</Name>
-        <AnchorWinID>1005</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>210</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>195</WinId>
-        <ItemNo>25</ItemNo>
-        <Name>Functions</Name>
-        <AnchorWinID>109</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>210</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>196</WinId>
-        <ItemNo>26</ItemNo>
-        <Name>Templates</Name>
-        <AnchorWinID>195</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>210</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>38003</WinId>
-        <ItemNo>27</ItemNo>
-        <Name>Registers</Name>
-        <AnchorWinID>196</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>210</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>1</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35885</WinId>
-        <ItemNo>28</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35886</WinId>
-        <ItemNo>29</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35885</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35887</WinId>
-        <ItemNo>30</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35886</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35888</WinId>
-        <ItemNo>31</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35887</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35889</WinId>
-        <ItemNo>32</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35888</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35890</WinId>
-        <ItemNo>33</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35889</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35891</WinId>
-        <ItemNo>34</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35890</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35892</WinId>
-        <ItemNo>35</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35891</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35893</WinId>
-        <ItemNo>36</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35892</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35894</WinId>
-        <ItemNo>37</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35893</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35895</WinId>
-        <ItemNo>38</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35894</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35896</WinId>
-        <ItemNo>39</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35895</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35897</WinId>
-        <ItemNo>40</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35896</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35898</WinId>
-        <ItemNo>41</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35897</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35899</WinId>
-        <ItemNo>42</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35898</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35900</WinId>
-        <ItemNo>43</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35899</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35901</WinId>
-        <ItemNo>44</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35900</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35902</WinId>
-        <ItemNo>45</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35901</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35903</WinId>
-        <ItemNo>46</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35902</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35904</WinId>
-        <ItemNo>47</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35903</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>35905</WinId>
-        <ItemNo>48</ItemNo>
-        <Name>not set</Name>
-        <AnchorWinID>35904</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>76</DockedRect_top>
-        <DockedRect_left>814</DockedRect_left>
-        <DockedRect_bottom>461</DockedRect_bottom>
-        <DockedRect_right>1024</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>600</FloatingRect_bottom>
-        <FloatingRect_right>250</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>203</WinId>
-        <ItemNo>49</ItemNo>
-        <Name>Disassembly</Name>
-        <AnchorWinID>0</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>2</DockType>
-        <DockLocation>3</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>0</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>210</DockedRect_bottom>
-        <DockedRect_right>810</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>1913</WinId>
-        <ItemNo>50</ItemNo>
-        <Name>Instruction Trace</Name>
-        <AnchorWinID>203</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>0</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>210</DockedRect_bottom>
-        <DockedRect_right>810</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>343</WinId>
-        <ItemNo>51</ItemNo>
-        <Name>Performance Analyzer</Name>
-        <AnchorWinID>1913</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>0</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>210</DockedRect_bottom>
-        <DockedRect_right>810</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>204</WinId>
-        <ItemNo>52</ItemNo>
-        <Name>Performance Analyzer</Name>
-        <AnchorWinID>343</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>0</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>210</DockedRect_bottom>
-        <DockedRect_right>810</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-      <Window>
-        <WinId>346</WinId>
-        <ItemNo>53</ItemNo>
-        <Name>Code Coverage</Name>
-        <AnchorWinID>204</AnchorWinID>
-        <AnchorWinName></AnchorWinName>
-        <OtherWinID>0</OtherWinID>
-        <OtherWinName></OtherWinName>
-        <WinType>1</WinType>
-        <DockType>4</DockType>
-        <DockLocation>2</DockLocation>
-        <Pinned>0</Pinned>
-        <DockedRect_top>0</DockedRect_top>
-        <DockedRect_left>0</DockedRect_left>
-        <DockedRect_bottom>210</DockedRect_bottom>
-        <DockedRect_right>810</DockedRect_right>
-        <FloatingRect_top>0</FloatingRect_top>
-        <FloatingRect_left>0</FloatingRect_left>
-        <FloatingRect_bottom>250</FloatingRect_bottom>
-        <FloatingRect_right>600</FloatingRect_right>
-        <ContainerPercent>100</ContainerPercent>
-        <ActiveTab>0</ActiveTab>
-        <Visible>0</Visible>
-        <Dynamic>0</Dynamic>
-      </Window>
-    </View>
-  </WinLayout>
-
-</ProjectOpt>

+ 0 - 609
bsp/nuc140/project.uvproj

@@ -1,609 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
-
-  <SchemaVersion>1.0</SchemaVersion>
-
-  <Header>### uVision Project, (C) Keil Software</Header>
-
-  <Targets>
-    <Target>
-      <TargetName>RT-Thread NUC100</TargetName>
-      <ToolsetNumber>0x4</ToolsetNumber>
-      <ToolsetName>ARM-ADS</ToolsetName>
-      <TargetOption>
-        <TargetCommonOption>
-          <Device>Cortex-M0</Device>
-          <Vendor>ARM</Vendor>
-          <Cpu>CLOCK(12000000) CPUTYPE("Cortex-M0")</Cpu>
-          <FlashUtilSpec></FlashUtilSpec>
-          <StartupFile></StartupFile>
-          <FlashDriverDll></FlashDriverDll>
-          <DeviceId>4803</DeviceId>
-          <RegisterFile></RegisterFile>
-          <MemoryEnv></MemoryEnv>
-          <Cmp></Cmp>
-          <Asm></Asm>
-          <Linker></Linker>
-          <OHString></OHString>
-          <InfinionOptionDll></InfinionOptionDll>
-          <SLE66CMisc></SLE66CMisc>
-          <SLE66AMisc></SLE66AMisc>
-          <SLE66LinkerMisc></SLE66LinkerMisc>
-          <UseEnv>0</UseEnv>
-          <BinPath></BinPath>
-          <IncludePath></IncludePath>
-          <LibPath></LibPath>
-          <RegisterFilePath></RegisterFilePath>
-          <DBRegisterFilePath></DBRegisterFilePath>
-          <TargetStatus>
-            <Error>0</Error>
-            <ExitCodeStop>0</ExitCodeStop>
-            <ButtonStop>0</ButtonStop>
-            <NotGenerated>0</NotGenerated>
-            <InvalidFlash>1</InvalidFlash>
-          </TargetStatus>
-          <OutputDirectory>.\objs\</OutputDirectory>
-          <OutputName>rtthread-nuc140</OutputName>
-          <CreateExecutable>1</CreateExecutable>
-          <CreateLib>0</CreateLib>
-          <CreateHexFile>0</CreateHexFile>
-          <DebugInformation>1</DebugInformation>
-          <BrowseInformation>1</BrowseInformation>
-          <ListingPath>.\</ListingPath>
-          <HexFormatSelection>1</HexFormatSelection>
-          <Merge32K>0</Merge32K>
-          <CreateBatchFile>0</CreateBatchFile>
-          <BeforeCompile>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-          </BeforeCompile>
-          <BeforeMake>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-          </BeforeMake>
-          <AfterMake>
-            <RunUserProg1>0</RunUserProg1>
-            <RunUserProg2>0</RunUserProg2>
-            <UserProg1Name></UserProg1Name>
-            <UserProg2Name></UserProg2Name>
-            <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
-            <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
-          </AfterMake>
-          <SelectedForBatchBuild>0</SelectedForBatchBuild>
-          <SVCSIdString></SVCSIdString>
-        </TargetCommonOption>
-        <CommonProperty>
-          <UseCPPCompiler>0</UseCPPCompiler>
-          <RVCTCodeConst>0</RVCTCodeConst>
-          <RVCTZI>0</RVCTZI>
-          <RVCTOtherData>0</RVCTOtherData>
-          <ModuleSelection>0</ModuleSelection>
-          <IncludeInBuild>1</IncludeInBuild>
-          <AlwaysBuild>0</AlwaysBuild>
-          <GenerateAssemblyFile>0</GenerateAssemblyFile>
-          <AssembleAssemblyFile>0</AssembleAssemblyFile>
-          <PublicsOnly>0</PublicsOnly>
-          <StopOnExitCode>3</StopOnExitCode>
-          <CustomArgument></CustomArgument>
-          <IncludeLibraryModules></IncludeLibraryModules>
-        </CommonProperty>
-        <DllOption>
-          <SimDllName>SARMCM3.DLL</SimDllName>
-          <SimDllArguments></SimDllArguments>
-          <SimDlgDll>DARMCM1.DLL</SimDlgDll>
-          <SimDlgDllArguments></SimDlgDllArguments>
-          <TargetDllName>SARMCM3.DLL</TargetDllName>
-          <TargetDllArguments></TargetDllArguments>
-          <TargetDlgDll>TARMCM1.DLL</TargetDlgDll>
-          <TargetDlgDllArguments></TargetDlgDllArguments>
-        </DllOption>
-        <DebugOption>
-          <OPTHX>
-            <HexSelection>1</HexSelection>
-            <HexRangeLowAddress>0</HexRangeLowAddress>
-            <HexRangeHighAddress>0</HexRangeHighAddress>
-            <HexOffset>0</HexOffset>
-            <Oh166RecLen>16</Oh166RecLen>
-          </OPTHX>
-          <Simulator>
-            <UseSimulator>0</UseSimulator>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
-            <RunToMain>1</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>1</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-            <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
-          </Simulator>
-          <Target>
-            <UseTarget>1</UseTarget>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
-            <RunToMain>0</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>0</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-          </Target>
-          <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>1</TargetSelection>
-          <SimDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile></InitializationFile>
-          </SimDlls>
-          <TargetDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile></InitializationFile>
-            <Driver>BIN\UL2CM3.DLL</Driver>
-          </TargetDlls>
-        </DebugOption>
-        <Utilities>
-          <Flash1>
-            <UseTargetDll>1</UseTargetDll>
-            <UseExternalTool>0</UseExternalTool>
-            <RunIndependent>0</RunIndependent>
-            <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
-            <Capability>1</Capability>
-            <DriverSelection>4097</DriverSelection>
-          </Flash1>
-          <Flash2>BIN\UL2CM3.DLL</Flash2>
-          <Flash3>"" ()</Flash3>
-          <Flash4></Flash4>
-        </Utilities>
-        <TargetArmAds>
-          <ArmAdsMisc>
-            <GenerateListings>0</GenerateListings>
-            <asHll>1</asHll>
-            <asAsm>1</asAsm>
-            <asMacX>1</asMacX>
-            <asSyms>1</asSyms>
-            <asFals>1</asFals>
-            <asDbgD>1</asDbgD>
-            <asForm>1</asForm>
-            <ldLst>0</ldLst>
-            <ldmm>1</ldmm>
-            <ldXref>1</ldXref>
-            <BigEnd>0</BigEnd>
-            <AdsALst>1</AdsALst>
-            <AdsACrf>1</AdsACrf>
-            <AdsANop>0</AdsANop>
-            <AdsANot>0</AdsANot>
-            <AdsLLst>1</AdsLLst>
-            <AdsLmap>1</AdsLmap>
-            <AdsLcgr>1</AdsLcgr>
-            <AdsLsym>1</AdsLsym>
-            <AdsLszi>1</AdsLszi>
-            <AdsLtoi>1</AdsLtoi>
-            <AdsLsun>1</AdsLsun>
-            <AdsLven>1</AdsLven>
-            <AdsLsxf>1</AdsLsxf>
-            <RvctClst>0</RvctClst>
-            <GenPPlst>0</GenPPlst>
-            <AdsCpuType>"Cortex-M0"</AdsCpuType>
-            <RvctDeviceName></RvctDeviceName>
-            <mOS>0</mOS>
-            <uocRom>0</uocRom>
-            <uocRam>0</uocRam>
-            <hadIROM>0</hadIROM>
-            <hadIRAM>0</hadIRAM>
-            <hadXRAM>0</hadXRAM>
-            <uocXRam>0</uocXRam>
-            <RvdsVP>0</RvdsVP>
-            <hadIRAM2>0</hadIRAM2>
-            <hadIROM2>0</hadIROM2>
-            <StupSel>8</StupSel>
-            <useUlib>1</useUlib>
-            <EndSel>0</EndSel>
-            <uLtcg>0</uLtcg>
-            <RoSelD>3</RoSelD>
-            <RwSelD>5</RwSelD>
-            <CodeSel>0</CodeSel>
-            <OptFeed>1</OptFeed>
-            <NoZi1>0</NoZi1>
-            <NoZi2>0</NoZi2>
-            <NoZi3>0</NoZi3>
-            <NoZi4>0</NoZi4>
-            <NoZi5>0</NoZi5>
-            <Ro1Chk>0</Ro1Chk>
-            <Ro2Chk>0</Ro2Chk>
-            <Ro3Chk>0</Ro3Chk>
-            <Ir1Chk>1</Ir1Chk>
-            <Ir2Chk>0</Ir2Chk>
-            <Ra1Chk>0</Ra1Chk>
-            <Ra2Chk>0</Ra2Chk>
-            <Ra3Chk>0</Ra3Chk>
-            <Im1Chk>1</Im1Chk>
-            <Im2Chk>0</Im2Chk>
-            <OnChipMemories>
-              <Ocm1>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm1>
-              <Ocm2>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm2>
-              <Ocm3>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm3>
-              <Ocm4>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm4>
-              <Ocm5>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm5>
-              <Ocm6>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </Ocm6>
-              <IRAM>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </IRAM>
-              <IROM>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </IROM>
-              <XRAM>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </XRAM>
-              <OCR_RVCT1>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT1>
-              <OCR_RVCT2>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT2>
-              <OCR_RVCT3>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT3>
-              <OCR_RVCT4>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x20000</Size>
-              </OCR_RVCT4>
-              <OCR_RVCT5>
-                <Type>1</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT5>
-              <OCR_RVCT6>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT6>
-              <OCR_RVCT7>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT7>
-              <OCR_RVCT8>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT8>
-              <OCR_RVCT9>
-                <Type>0</Type>
-                <StartAddress>0x20000000</StartAddress>
-                <Size>0x4000</Size>
-              </OCR_RVCT9>
-              <OCR_RVCT10>
-                <Type>0</Type>
-                <StartAddress>0x0</StartAddress>
-                <Size>0x0</Size>
-              </OCR_RVCT10>
-            </OnChipMemories>
-            <RvctStartVector></RvctStartVector>
-          </ArmAdsMisc>
-          <Cads>
-            <interw>1</interw>
-            <Optim>3</Optim>
-            <oTime>0</oTime>
-            <SplitLS>0</SplitLS>
-            <OneElfS>1</OneElfS>
-            <Strict>0</Strict>
-            <EnumInt>0</EnumInt>
-            <PlainCh>0</PlainCh>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <wLevel>0</wLevel>
-            <uThumb>0</uThumb>
-            <VariousControls>
-              <MiscControls></MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath>.;..\..\include;..\..\components\finsh</IncludePath>
-            </VariousControls>
-          </Cads>
-          <Aads>
-            <interw>1</interw>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <thumb>1</thumb>
-            <SplitLS>0</SplitLS>
-            <SwStkChk>0</SwStkChk>
-            <NoWarn>0</NoWarn>
-            <VariousControls>
-              <MiscControls></MiscControls>
-              <Define></Define>
-              <Undefine></Undefine>
-              <IncludePath></IncludePath>
-            </VariousControls>
-          </Aads>
-          <LDads>
-            <umfTarg>1</umfTarg>
-            <Ropi>0</Ropi>
-            <Rwpi>0</Rwpi>
-            <noStLib>0</noStLib>
-            <RepFail>1</RepFail>
-            <useFile>0</useFile>
-            <TextAddressRange>0x00000000</TextAddressRange>
-            <DataAddressRange>0x20000000</DataAddressRange>
-            <ScatterFile></ScatterFile>
-            <IncludeLibs></IncludeLibs>
-            <IncludeLibsPath></IncludeLibsPath>
-            <Misc>--entry Reset_Handler --keep __fsym_* --keep __vsym_*</Misc>
-            <LinkerInputFile></LinkerInputFile>
-            <DisabledWarnings></DisabledWarnings>
-          </LDads>
-        </TargetArmAds>
-      </TargetOption>
-      <Groups>
-        <Group>
-          <GroupName>Startup</GroupName>
-          <Files>
-            <File>
-              <FileName>board.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>.\board.c</FilePath>
-            </File>
-            <File>
-              <FileName>startup.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>.\startup.c</FilePath>
-            </File>
-            <File>
-              <FileName>uart.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>.\uart.c</FilePath>
-            </File>
-            <File>
-              <FileName>rtconfig.h</FileName>
-              <FileType>5</FileType>
-              <FilePath>.\rtconfig.h</FilePath>
-            </File>
-            <File>
-              <FileName>application.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>.\application.c</FilePath>
-            </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>NUC100</GroupName>
-          <Files>
-            <File>
-              <FileName>fault.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\libcpu\arm\nuc1xx\fault.c</FilePath>
-            </File>
-            <File>
-              <FileName>interrupt.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\libcpu\arm\nuc1xx\interrupt.c</FilePath>
-            </File>
-            <File>
-              <FileName>stack.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\libcpu\arm\nuc1xx\stack.c</FilePath>
-            </File>
-            <File>
-              <FileName>context_rvds.S</FileName>
-              <FileType>2</FileType>
-              <FilePath>..\..\libcpu\arm\nuc1xx\context_rvds.S</FilePath>
-            </File>
-            <File>
-              <FileName>fault_rvds.S</FileName>
-              <FileType>2</FileType>
-              <FilePath>..\..\libcpu\arm\nuc1xx\fault_rvds.S</FilePath>
-            </File>
-            <File>
-              <FileName>start_rvds.S</FileName>
-              <FileType>2</FileType>
-              <FilePath>..\..\libcpu\arm\nuc1xx\start_rvds.S</FilePath>
-            </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>CMSIS</GroupName>
-          <Files>
-            <File>
-              <FileName>system_NUC1xx.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>.\CMSIS\CM0\system_NUC1xx.c</FilePath>
-            </File>
-            <File>
-              <FileName>core_cm0.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>.\CMSIS\CM0\core_cm0.c</FilePath>
-            </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>Kernel</GroupName>
-          <Files>
-            <File>
-              <FileName>timer.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\timer.c</FilePath>
-            </File>
-            <File>
-              <FileName>clock.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\clock.c</FilePath>
-            </File>
-            <File>
-              <FileName>device.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\device.c</FilePath>
-            </File>
-            <File>
-              <FileName>idle.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\idle.c</FilePath>
-            </File>
-            <File>
-              <FileName>ipc.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\ipc.c</FilePath>
-            </File>
-            <File>
-              <FileName>irq.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\irq.c</FilePath>
-            </File>
-            <File>
-              <FileName>kservice.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\kservice.c</FilePath>
-            </File>
-            <File>
-              <FileName>mem.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\mem.c</FilePath>
-            </File>
-            <File>
-              <FileName>mempool.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\mempool.c</FilePath>
-            </File>
-            <File>
-              <FileName>object.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\object.c</FilePath>
-            </File>
-            <File>
-              <FileName>scheduler.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\scheduler.c</FilePath>
-            </File>
-            <File>
-              <FileName>slab.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\slab.c</FilePath>
-            </File>
-            <File>
-              <FileName>thread.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\src\thread.c</FilePath>
-            </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>finsh</GroupName>
-          <Files>
-            <File>
-              <FileName>symbol.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\symbol.c</FilePath>
-            </File>
-            <File>
-              <FileName>cmd.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\cmd.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_compiler.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_error.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_error.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_heap.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_init.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_init.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_node.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_node.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_ops.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_parser.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_token.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_token.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_var.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_var.c</FilePath>
-            </File>
-            <File>
-              <FileName>finsh_vm.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
-            </File>
-            <File>
-              <FileName>shell.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\components\finsh\shell.c</FilePath>
-            </File>
-          </Files>
-        </Group>
-      </Groups>
-    </Target>
-  </Targets>
-
-</Project>

+ 0 - 74
bsp/nuc140/rtconfig.h

@@ -1,74 +0,0 @@
-/* RT-Thread config file */
-#ifndef __RTTHREAD_CFG_H__
-#define __RTTHREAD_CFG_H__
-
-/* RT_NAME_MAX*/
-#define RT_NAME_MAX		4
-
-/* RT_ALIGN_SIZE*/
-#define RT_ALIGN_SIZE	4
-
-/* PRIORITY_MAX*/
-#define RT_THREAD_PRIORITY_MAX	8
-
-/* Tick per Second*/
-#define RT_TICK_PER_SECOND	100
-
-/* SECTION: RT_DEBUG */
-/* Thread Debug*/
-/* #define RT_THREAD_DEBUG */
-
-/* Using Hook*/
-/* #define RT_USING_HOOK */
-
-/* SECTION: IPC */
-/* Using Semaphore*/
-#define RT_USING_SEMAPHORE
-
-/* Using Mutex*/
-/* #define RT_USING_MUTEX */
-
-/* Using Event*/
-/* #define RT_USING_EVENT */
-
-/* Using MailBox*/
-#define RT_USING_MAILBOX
-
-/* Using Message Queue*/
-/* #define RT_USING_MESSAGEQUEUE */
-
-/* SECTION: Memory Management */
-/* Using Memory Pool Management*/
-/* #define RT_USING_MEMPOOL */
-
-/* Using Dynamic Heap Management*/
-#define RT_USING_HEAP
-
-/* Using Small MM*/
-#define RT_USING_SMALL_MEM
-#define RT_USING_TINY_SIZE
-
-/* SECTION: Device System */
-/* Using Device System */
-#define RT_USING_DEVICE
-
-/* buffer size for UART reception */
-#define RT_UART_RX_BUFFER_SIZE	64
-
-/* Using UART */
-#define RT_USING_UART
-
-/* SECTION: Console options */
-/* use console for rt_kprintf */
-#define RT_USING_CONSOLE
-/* the buffer size of console */
-#define RT_CONSOLEBUF_SIZE	80
-
-/* SECTION: finsh, a C-Express shell */
-/* Using FinSH as Shell*/
-/* #define RT_USING_FINSH */
-/* Using symbol table */
-#define FINSH_USING_SYMTAB
-#define FINSH_USING_DESCRIPTION
-
-#endif

+ 0 - 111
bsp/nuc140/startup.c

@@ -1,111 +0,0 @@
-/*
- * File      : startup.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Develop Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
- *
- * Change Logs:
- * Date           Author       Notes
- * 2010-01-25     Bernard      first version
- */
-
-#include <rthw.h>
-#include <rtthread.h>
-
-#include "board.h"
-#ifdef RT_USING_FINSH
-#include "finsh.h"
-extern void finsh_system_init(void);
-#endif
-
-/**
- * @addtogroup NUC100
- */
-
-/*@{*/
-#if defined(__CC_ARM)
-extern int Image$$RW_IRAM1$$ZI$$Limit;
-#elif defined(__GNUC__)
-extern unsigned char __bss_start;
-extern unsigned char __bss_end;
-#endif
-
-extern int  rt_application_init(void);
-
-/**
- * This function will startup RT-Thread RTOS.
- */
-void rtthread_startup(void)
-{
-	/* init kernel object */
-	rt_system_object_init();
-
-	/* init board */
-	rt_hw_board_init();
-	rt_show_version();
-
-	/* init tick */
-	rt_system_tick_init();
-
-	/* init timer system */
-	rt_system_timer_init();
-
-#ifdef RT_USING_HEAP
-#ifdef __CC_ARM
-	rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)0x20004000);
-#elif __ICCARM__
-    rt_system_heap_init(__segment_end("HEAP"), (void*)0x20004000);
-#else
-	rt_system_heap_init((void*)&__bss_end, (void*)0x20004000);
-#endif
-#endif
-
-	/* init scheduler system */
-	rt_system_scheduler_init();
-
-#ifdef RT_USING_HOOK /* if the hook is used */
-	/* set idle thread hook */
-	rt_thread_idle_sethook(rt_hw_led_flash);
-#endif
-
-#ifdef RT_USING_DEVICE
-	/* init all device */
-	rt_device_init_all();
-#endif
-
-	/* init application */
-	rt_application_init();
-
-#ifdef RT_USING_FINSH
-	/* init finsh */
-	finsh_system_init();
-	finsh_set_device("uart1");
-#endif
-
-	/* init idle thread */
-	rt_thread_idle_init();
-
-	/* start scheduler */
-	rt_system_scheduler_start();
-
-	/* never reach here */
-	return ;
-}
-
-int main (void)
-{
-	rt_uint32_t UNUSED level;
-
-	/* disable interrupt first */
-	level = rt_hw_interrupt_disable();
-
-	/* invoke rtthread_startup */
-	rtthread_startup();
-
-	return 0;
-}
-
-/*@}*/

+ 0 - 226
bsp/nuc140/uart.c

@@ -1,226 +0,0 @@
-#include <rthw.h>
-#include <rtthread.h>
-#include "CMSIS/CM0/NUC1xx.h"
-
-/**
- * @addtogroup NUC1xx
- */
-
-/*@{*/
-#if defined(RT_USING_UART) && defined(RT_USING_DEVICE)
-
-#define UART_BAUDRATE   115200
-struct rt_uart_nuc
-{
-	struct rt_device parent;
-
-	/* buffer for reception */
-	rt_uint8_t read_index, save_index;
-	rt_uint8_t rx_buffer[RT_UART_RX_BUFFER_SIZE];
-}uart_device;
-
-void UART0_IRQHandler(void)
-{
-	rt_ubase_t level;
-    struct rt_uart_nuc* uart = &uart_device;
-
-	if (UART0->ISR.RDA_INT == 1)	    /* Receive Data Available */
-	{
-		while (UART0->ISR.RDA_IF == 1)
-		{
-			/* Receive Data Available */
-			uart->rx_buffer[uart->save_index] = UART0->DATA;
-
-			level = rt_hw_interrupt_disable();
-			uart->save_index ++;
-			if (uart->save_index >= RT_UART_RX_BUFFER_SIZE)
-				uart->save_index = 0;
-			rt_hw_interrupt_enable(level);
-		}
-
-		/* invoke callback */
-		if(uart->parent.rx_indicate != RT_NULL)
-		{
-		    rt_size_t length;
-		    if (uart->read_index > uart->save_index)
-                length = RT_UART_RX_BUFFER_SIZE - uart->read_index + uart->save_index;
-            else
-                length = uart->save_index - uart->read_index;
-
-            uart->parent.rx_indicate(&uart->parent, length);
-		}
-	}
-
-	return;
-}
-
-static rt_err_t rt_uart_init (rt_device_t dev)
-{
-    /* Multi-Function Pin: Enable UART0:Tx Rx */
-    SYS->GPBMFP.UART0_RX = 1;
-    SYS->GPBMFP.UART0_TX = 1;
-
-    /* Configure GCR to reset UART0 */
-    SYS->IPRSTC2.UART0_RST = 1;
-    SYS->IPRSTC2.UART0_RST = 0;
-
-    /* Enable UART clock */
-    SYSCLK->APBCLK.UART0_EN = 1;
-
-    /* Select UART clock source */
-    SYSCLK->CLKSEL1.UART_S = 0;
-
-    /* Data format */
-    UART0->LCR.WLS = 3;
-
-    /* Configure the baud rate */
-    *((__IO uint32_t *)&UART0->BAUD) = 0x3F000066; /* This setting is for 115200bsp with 12Mhz clock source */
-
-	return RT_EOK;
-}
-
-static rt_err_t rt_uart_open(rt_device_t dev, rt_uint16_t oflag)
-{
-	RT_ASSERT(dev != RT_NULL);
-	if (dev->flag & RT_DEVICE_FLAG_INT_RX)
-	{
-		/* open receive data available interrupt */
-		UART0->IER.RDA_IEN = 1;
-
-		/* Enable the UART Interrupt */
-		NVIC_EnableIRQ(UART0_IRQn);
-	}
-
-	return RT_EOK;
-}
-
-static rt_err_t rt_uart_close(rt_device_t dev)
-{
-	RT_ASSERT(dev != RT_NULL);
-	if (dev->flag & RT_DEVICE_FLAG_INT_RX)
-	{
-		/* Disable the UART Interrupt */
-		NVIC_DisableIRQ(UART0_IRQn);
-	}
-
-	return RT_EOK;
-}
-
-static rt_size_t rt_uart_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size)
-{
-	rt_uint8_t* ptr;
-	struct rt_uart_nuc *uart = (struct rt_uart_nuc*)dev;
-	RT_ASSERT(uart != RT_NULL);
-
-	/* point to buffer */
-	ptr = (rt_uint8_t*) buffer;
-	if (dev->flag & RT_DEVICE_FLAG_INT_RX)
-	{
-		while (size)
-		{
-			/* interrupt receive */
-			rt_base_t level;
-
-			/* disable interrupt */
-			level = rt_hw_interrupt_disable();
-			if (uart->read_index != uart->save_index)
-			{
-				*ptr = uart->rx_buffer[uart->read_index];
-
-				uart->read_index ++;
-				if (uart->read_index >= RT_UART_RX_BUFFER_SIZE)
-					uart->read_index = 0;
-			}
-			else
-			{
-				/* no data in rx buffer */
-
-				/* enable interrupt */
-				rt_hw_interrupt_enable(level);
-				break;
-			}
-
-			/* enable interrupt */
-			rt_hw_interrupt_enable(level);
-
-			ptr ++;
-			size --;
-		}
-
-		return (rt_uint32_t)ptr - (rt_uint32_t)buffer;
-	}
-
-	return 0;
-}
-
-static rt_size_t rt_uart_write(rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size)
-{
-	char *ptr;
-	ptr = (char*)buffer;
-
-	if (dev->flag & RT_DEVICE_FLAG_STREAM)
-	{
-		/* stream mode */
-		while (size)
-		{
-			if (*ptr == '\n')
-			{
-				/* check whether UART is empty */
-				while (UART0->FSR.TX_EMPTY !=1);
-				/* write data */
-				UART0->DATA = '\r';
-			}
-
-			/* check whether UART is empty */
-			while (UART0->FSR.TX_EMPTY !=1);
-			/* write data */
-			UART0->DATA = *ptr;
-
-			ptr ++;
-			size --;
-		}
-	}
-	else
-	{
-	while ( size != 0 )
-	{
-		/* check whether UART is empty */
-		while (UART0->FSR.TX_EMPTY !=1);
-		/* write data */
-		UART0->DATA = *ptr;
-
-		ptr++;
-		size--;
-	}
-	}
-
-	return (rt_size_t) ptr - (rt_size_t) buffer;
-}
-
-void rt_hw_uart_init(void)
-{
-	struct rt_uart_nuc* uart;
-
-	/* get uart device */
-	uart = &uart_device;
-
-	/* device initialization */
-	uart->parent.type = RT_Device_Class_Char;
-	rt_memset(uart->rx_buffer, 0, sizeof(uart->rx_buffer));
-	uart->read_index = uart->save_index = 0;
-
-	/* device interface */
-	uart->parent.init 	    = rt_uart_init;
-	uart->parent.open 	    = rt_uart_open;
-	uart->parent.close      = rt_uart_close;
-	uart->parent.read 	    = rt_uart_read;
-	uart->parent.write      = rt_uart_write;
-	uart->parent.control    = RT_NULL;
-	uart->parent.user_data  = RT_NULL;
-
-	rt_device_register(&uart->parent,
-		"uart1", RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_STREAM | RT_DEVICE_FLAG_INT_RX);
-}
-#endif /* end of UART */
-
-/*@}*/

+ 0 - 6
bsp/nuc140/uart.h

@@ -1,6 +0,0 @@
-#ifndef __UART_H__
-#define __UART_H__
-
-void rt_hw_uart_init(void);
-
-#endif