⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsp.c

📁 lpc2478+ucosII+ucgui源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*
*********************************************************************************************************
*                                              uC/OS-II
*                                        The Real-Time Kernel
*
*                          (c) Copyright 2004-2008; Micrium, Inc.; Weston, FL               
*
*               All rights reserved.  Protected by international copyright laws.
*
*               uC/OS-II is provided in source form for FREE evaluation, for educational
*               use or peaceful research.  If you plan on using uC/OS-II in a commercial    
*               product you need to contact Micrium to properly license its use in your     
*               product.  We provide ALL the source code for your convenience and to        
*               help you experience uC/OS-II.  The fact that the source code is provided
*               does NOT mean that you can use it without paying a licensing fee.
*
*               Knowledge of the source code may NOT be used to develop a similar product.
*
*               Please help us continue to provide the Embedded community with the finest
*               software available.  Your honesty is greatly appreciated.
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*
*                                       BOARD SUPPORT PACKAGE (BSP)
*                                            NXP LPC2478 
*                                               on the 
*                                    IAR LPC2478-SK Kickstart Kit
*
* Filename      :bsp.c
* Version       :V1.00
* Programmer(s) :FT
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                             INCLUDE FILES
*********************************************************************************************************
*/

#define  BSP_MODULE
#include <includes.h>


/*
*********************************************************************************************************
*                                            LOCAL DEFINES
*********************************************************************************************************
*/
                                                               /* -------------------- GPIO PIN DEFINITION ----------------- */
#define  BSP_GPIO1_USB_UP_LED2                DEF_BIT_13       /* P1.13 USB_UP_LED2                                          */
#define  BSP_GPIO1_USB_UP_LED1                DEF_BIT_18       /* P1.18 USB_IP_LED1                                          */

#define  BSP_GPIO1_LED_GRP                    BSP_GPIO1_USB_UP_LED2 | \
                                              BSP_GPIO1_USB_UP_LED1

#define  BSP_GPIO2_PB1                        DEF_BIT_19        /* P2.19 BUT 1                                               */
#define  BSP_GPIO2_PB2                        DEF_BIT_21        /* P2.21 BUT 2                                               */
#define  BSP_GPIO2_PB_GRP                     BSP_GPIO2_PB1 | \
                                              BSP_GPIO2_PB2
                                                              /* -------------------- SDRAM PARAMETERS --------------------- */
#define  BSP_SDRAM_BASE_ADDR                  0xA0000000      /* SDRAM start address = 0xA0000000                            */
#define  BSP_SDRAM_REFRESH                          7813
#define  BSP_SDRAM_TRP                                20
#define  BSP_SDRAM_TRAS                               45
#define  BSP_SDRAM_TAPR                                1
#define  BSP_SDRAM_TDAL                                3
#define  BSP_SDRAM_TWR                                 3
#define  BSP_SDRAM_TRC                                65
#define  BSP_SDRAM_TRFC                               66
#define  BSP_SDRAM_TXSR                               67
#define  BSP_SDRAM_TRRD                               15
#define  BSP_SDRAM_TMRD                                3
                                                                /* --------- EMC DYNAMIC CTRL REGISTER BIT DEFINES --------- */
#define  BSP_EMC_DYNAMIC_CTRL_INIT_NORMAL       (0 << 7)
#define  BSP_EMC_DYNAMIC_CTRL_INIT_MODE         (1 << 7)
#define  BSP_EMC_DYNAMIC_CTRL_INIT_PALL         (2 << 7)
#define  BSP_EMC_DYNAMIC_CTRL_INIT_NOP          (3 << 7)
#define  BSP_EMC_DYNAMIC_CTRL_INIT_MASK         (3 << 7)
                                                                /* --------------- PCONP REGISTER BITS DEFINES ------------- */
#define  BSP_PCONP_ADC_EN                     DEF_BIT_12             
#define  BSP_PCONP_UART0_EN                   DEF_BIT_03
                                                                /* ------------- PINSEL0 REGISTER BITS DEFINES ------------- */
#define  BSP_PINSEL0_TXD0                     DEF_BIT_04               
#define  BSP_PINSEL0_RXD0                     DEF_BIT_06
#define  BSP_PINSEL0_U0_CLR                   DEF_BIT_05 | DEF_BIT_04 | \
                                              DEF_BIT_07 | DEF_BIT_06 

#define  BSP_PINSEL0_ADC7_VAL                 DEF_BIT_26 | DEF_BIT_27
                                                                /* --------------------- UART REGISTERS DEFINES ------------ */
                                                                /* ------- UART LINE CONTROL (LCR) REGISTER BIT DEFINES ---- */
#define  BSP_LCR_WLS_5                                 0        /* 5 bit character length                                    */
#define  BSP_LCR_WLS_6                                 1        /* 6 bit character length                                    */
#define  BSP_LCR_WLS_7                                 2        /* 7 bit character length                                    */
#define  BSP_LCR_WLS_8                                 3        /* 8 bit character length                                    */
#define  BSP_LCR_SBS_1                                 0        /* 1 stop bit                                                */
#define  BSP_LCR_SBS_2                        DEF_BIT_02        /* 2 stop bit                                                */
#define  BSP_LCR_PE                           DEF_BIT_03        /* Parity enable                                             */
#define  BSP_LCR_PS_ODD                                0        /* Parity select: ODD                                        */
#define  BSP_LCR_PS_EVEN                      DEF_BIT_04        /* Parity select: EVEN                                       */
#define  BSP_LCR_PS_STICK_1                   DEF_BIT_05        /* Parity select: '1' stick                                  */
#define  BSP_LCR_PS_STICK_0                   DEF_BIT_04 | \
                                              DEF_BIT_05 
#define  BSP_LCR_DLAB                         DEF_BIT_07        /* Divisor Latch Acces bit enable                            */
                                                                /* ----- UART FIFO CONTROL REGISTER (LCR) BIT DEFINES ------ */
#define  BSP_FCR_FIFO_EN                      DEF_BIT_00        /* FIFO enable                                               */
#define  BSP_FCR_RX_RST                       DEF_BIT_01        /* FIFO Rx reset                                             */
#define  BSP_FCR_TX_RST                       DEF_BIT_02        /* FIFO Tx reset                                             */                            
                                                                /* ---- UART LINE STATUS (LSR) REGISTER BITS DEFINES  ------ */
#define  BSP_LSR_RDR                          DEF_BIT_00        /* Receiver Data Ready Flag                                  */
#define  BSP_LSR_THRE                         DEF_BIT_05        /* Transmiter Holding Register Empty Flag                    */


                                                                /* ----------- ADC CONTROL REGISTER (ADCR) BIT DEFINES ----- */
#define  BSP_ADCR_BURST_EN                    DEF_BIT_16        /* ADC Conversion burst mode enable                          */
#define  BSP_ADCR_CH2_EN                      DEF_BIT_02        /* ADC Channel 0 Enable. Touch Screen  Y1                    */
#define  BSP_ADCR_CH1_EN                      DEF_BIT_01        /* ADC Channel 1 Enable. Touch Screen  X1                    */
#define  BSP_ADCR_CH7_EN                      DEF_BIT_07        /* ADC Channel 7 Enable. Potentiometer                       */

#define  BSP_ADCR_CH_EN_GRP                   BSP_ADCR_CH2_EN | \
                                              BSP_ADCR_CH1_EN | \
                                              BSP_ADCR_CH7_EN   

#define  BSP_ADCR_CLKS_11                     (0 << 17)         /* 11 clock ... 10bits                                       */
#define  BSP_ADCR_CLKS_10                     (1 << 17)         /* 10 clock ...  9bits                                       */
#define  BSP_ADCR_CLKS_09                     (2 << 17)         /*  9 clock ...  8bits                                       */
#define  BSP_ADCR_CLKS_08                     (3 << 17)         /*  8 clock ...  7bits                                       */
#define  BSP_ADCR_CLKS_07                     (4 << 17)         /*  7 clock ...  6bits                                       */
#define  BSP_ADCR_CLKS_06                     (5 << 17)         /*  6 clock ...  5bits                                       */
#define  BSP_ADCR_CLKS_05                     (6 << 17)         /*  5 clock ...  4bits                                       */
#define  BSP_ADCR_CLKS_04                     (7 << 17)         /*  4 clock ...  3bits                                       */
#define  BSP_ADCR_PDN_EN                      DEF_BIT_21        /* ADC enable bit                                            */

#define  BSP_ADC_MAX_FREQ                       450000          /* ADC Max operational frequency                             */

/*
*********************************************************************************************************
*                                           LOCAL CONSTANTS
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*                                          LOCAL DATA TYPES
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                            LOCAL TABLES
*********************************************************************************************************
*/

static CPU_INT32U const  BSP_CPU_FreqTbl[5] = {                 /* System frequency                                          */
    72000000L,
    57000000L,
    48000000L,
    36000000L,
    24000000L,
};

static CPU_FP32 const  BSP_SDRAM_PerTbl[5] = {                 /* SDRAM Period based on the System Frequency                 */
    13.8,                                                      /* SDRAM 13.8 period for 72Mhz                                */
    17.4,                                                      /* SDRAM 17.8 period for 57Mhz                                */
    20.8,                                                      /* SDRAM 20.8 period for 48Mhz                                */
    27.8,                                                      /* SDRAM 27.8 period for 36Mhz                                */
    41.7,                                                      /* SDRAM 41.7 period for 24Mhz                                */
};

/*
*********************************************************************************************************
*                                       LOCAL GLOBAL VARIABLES
*********************************************************************************************************
*/

        CPU_INT32U  BSP_VIC_SpuriousInt;


/*
*********************************************************************************************************
*                                      LOCAL FUNCTION PROTOTYPES
*********************************************************************************************************
*/

static  void  BSP_ADC_Init         (void);
static  void  BSP_LED_Init         (void);
static  void  BSP_MAM_Init         (void);
static  void  BSP_PB_Init          (void);
static  void  BSP_PLL_Init         (void);
static  void  BSP_RTC_Init         (void);
static  void  BSP_Tmr_TickInit     (void);
static  void  BSP_VIC_Init         (void);

static  void  BSP_VIC_Dummy        (void);                      /* Prototypes for dummy interrupt handlers.             */
static  void  BSP_VIC_DummyWDT     (void);
static  void  BSP_VIC_DummySW      (void);
static  void  BSP_VIC_DummyDEBUGRX (void);
static  void  BSP_VIC_DummyDEBUGTX (void);
static  void  BSP_VIC_DummyTIMER0  (void);
static  void  BSP_VIC_DummyTIMER1  (void);
static  void  BSP_VIC_DummyUART0   (void);
static  void  BSP_VIC_DummyUART1   (void);
static  void  BSP_VIC_DummyPWM01   (void);
static  void  BSP_VIC_DummyI2C0    (void);
static  void  BSP_VIC_DummySPI     (void);
static  void  BSP_VIC_DummySSP1    (void);
static  void  BSP_VIC_DummyPLL     (void);
static  void  BSP_VIC_DummyRTC     (void);
static  void  BSP_VIC_DummyEINT0   (void);
static  void  BSP_VIC_DummyEINT1   (void);
static  void  BSP_VIC_DummyEINT2   (void);
static  void  BSP_VIC_DummyEINT3   (void);
static  void  BSP_VIC_DummyAD0     (void);
static  void  BSP_VIC_DummyI2C1    (void);
static  void  BSP_VIC_DummyBOD     (void);
static  void  BSP_VIC_DummyETHERNET(void);
static  void  BSP_VIC_DummyUSB     (void);
static  void  BSP_VIC_DummyCAN01   (void);
static  void  BSP_VIC_DummyMMC     (void);
static  void  BSP_VIC_DummyGP_DMA  (void);
static  void  BSP_VIC_DummyTIMER2  (void);
static  void  BSP_VIC_DummyTIMER3  (void);
static  void  BSP_VIC_DummyUART2   (void);
static  void  BSP_VIC_DummyUART3   (void);
static  void  BSP_VIC_DummyI2C2    (void);
static  void  BSP_VIC_DummyI2S     (void);

/*
*********************************************************************************************************
*                                     LOCAL CONFIGURATION ERRORS
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*********************************************************************************************************
**                                         GLOBAL FUNCTIONS
*********************************************************************************************************
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                             BSP_Init()
*
* Description : Initialize the Board Support Package (BSP).
*
* Argument(s) : none.
*
* Return(s)   : none.
*
* Caller(s)   : Application.
*
* Note(s)     : (1) This function SHOULD be called before any other BSP function is called.
*********************************************************************************************************
*/

void  BSP_Init (void)
{
    BSP_PLL_Init();                                             /* Initialize the PLL.                                  */
   
    BSP_RTC_Init();                                             /* Initialize the Real Time Clock.                      */
    
    BSP_MAM_Init();                                             /* Initialize the Memory Acceleration Module.           */
        
    BSP_LED_Init();                                             /* Initialize LEDs I/O                                  */
     
    BSP_PB_Init();                                              /* Initialize PB I/O                                    */
        
    BSP_ADC_Init();                                             /* Initialize the board's ADCs.                         */
    
    BSP_VIC_Init();                                             /* Initialize the Vectored Interrupt Controller.        */   
    
    BSP_Tmr_TickInit();                                         /* Initialize uC/OS-II's tick source.                   */
}


/*
*********************************************************************************************************
*                                            BSP_CPU_ClkFreq()
*
* Description : Get the CPU clock frequency.
*
* Argument(s) : none.
*
* Return(s)   : The CPU clock frequency, in Hz.
*
* Caller(S)   : Application.
*
* Note(s)     : none.
*********************************************************************************************************
*/

CPU_INT32U  BSP_CPU_ClkFreq (void)
{
    CPU_INT32U  clk_src;                                        
    CPU_INT32U  clk_div;
    CPU_INT32U  clk_freq;
    CPU_INT32U  pll_stat;                                       /* PLL status                                           */
    CPU_INT32U  pll_clk_feq;                                    /* When the PLL is enabled, this is Fcco.               */
    CPU_INT32U  pll_msel;                                       /* PLL multipler and pre-dividier values                */
    CPU_INT32U  pll_nsel;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -