亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bsp.c

?? Micrium提供的專門針對(duì)ucos操作系統(tǒng)的TCP/IP協(xié)議棧 ucip
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
*********************************************************************************************************
*
*                                     MICRIUM BOARD SUPPORT PACKAGE
*
*                          (c) Copyright 2003-2007; Micrium, Inc.; Weston, FL
*
*               All rights reserved.  Protected by international copyright laws.
*
*               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) FUNCTIONS
*
*                                           CSB ARM MAIN FILE
*
* Filename      : bsp.c
* Version       : V1.89
* Programmer(s) : Jean-Denis Hatier
*********************************************************************************************************
*/

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

#include  <includes.h>
#include  <reg_AT91RM9200.h>


/*
*********************************************************************************************************
*                                                DEFINES
*********************************************************************************************************
*/

                                                                /* C-Spy patch to unlock flash bus.                     */
#define  BSP_FLASH_UNLOCK_ADDR    (*(CPU_INT32U *)0x107FFFF0)
                                                                /* Micromonitor services entry point.                   */
#define  BSP_uMON_ENTRY_POINT     (*(CPU_INT32U *)0x10000020)

                                                                /* CSBx37 memory map.                                   */
#define  BSP_REMAP_ADDR                           0x00000000
#define  BSP_SRAM_ADDR                            0x00200000
#define  BSP_FLASH_ADDR                           0x10000000
#define  BSP_SDRAM_ADDR                           0x20000000


/*
*********************************************************************************************************
                                            TYPE DEFINITIONS
*********************************************************************************************************
*/

typedef  void  (*BSP_FNCT_PTR)(void);


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

static  CPU_INT08U  BSP_CSB_ARM_LED_RegImage;


/*
*********************************************************************************************************
*                                      LOCAL FUNCTIONS PROTOTYPES
*********************************************************************************************************
*/

static  void  Tmr_TickHandler (void);


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

/*
*********************************************************************************************************
*                                          BSP INITIALIZATION
*
* Description : BSP initialization.  This function should be called by your application code before
*               you make use of any of the functions found in this module.
*
* Arguments   : None.
*
* Return(s)   : None.
*
* Caller(s)   : Application.
*********************************************************************************************************
*/

void  BSP_Init (void)
{
    CPU_DATA    cpu_sr;
    CPU_INT32U  i;


    BSP_CSB_ARM_LED_RegImage = 0;

    OS_ENTER_CRITICAL();                                        /* Disable interrupts at processor level.               */

   *AT91C_AIC_IDCR        = ~0;                                 /* Disable interrupts at AIC level.                     */

    BSP_FLASH_UNLOCK_ADDR = ~0;                                 /* C-Spy patch to unlock flash bus.                     */

    i = 0;                                                      /* Determine if remappable address range 0x00000000     */
    while (*(CPU_INT32U*)(BSP_FLASH_ADDR + i) ==                /* to 0x0fffffff is mapped to FLASH or SRAM.            */
           *(CPU_INT32U*)(BSP_SRAM_ADDR  + i)) {
        i++;
    }

    if (*(CPU_INT32U*)(BSP_REMAP_ADDR + i) !=                   /* If mapped to FLASH, remap it to SRAM.                */
        *(CPU_INT32U*)(BSP_SRAM_ADDR  + i)) {
        *AT91C_MC_RCR = AT91C_MC_RCB;
    }

                                                                /* Activate i-cache.                                    */
    asm("MRC p15, 0,  r0, c1, c0, 0");
    asm("ORR r0,  r0, #0x00001000");
    asm("MCR p15, 0,  r0, c1, c0, 0");
    asm("nop");
    asm("nop");
    asm("nop");

                                                                /* Change BUS mode to synchronous.                      */
    asm("MRC p15, 0,  r0, c1, c0, 0");
    asm("ORR r0,  r0, #0x40000000");
    asm("MCR p15, 0,  r0, c1, c0, 0");
    asm("nop");
    asm("nop");
    asm("nop");

                                                                /* Switch to the slow clock unless we already are.      */
    if (PMC_REG(PMC_MCKR)) {
        PMC_REG(PMC_MCKR) = PMC_REG(PMC_MCKR) & ~PMC_MCKR_PRES_MASK;
        PMC_REG(PMC_MCKR) = PMC_REG(PMC_MCKR) & ~PMC_MCKR_CSS_MASK;
    }

                                                                /* Delay for slow clock synchronization.                */
    for (i = 0; i < 100; i++) {
        ;
    }

                                                                /* Set new CPU clock speed (core clock).                */
                                                                /* (3.6864 * 87 / 2 = 160.3584MHz).                     */
    PMC_REG(PMC_PLLAR)    = PMC_PLLAR_MUST_SET    |             /* This bit must be set according to the documentation. */
                            PMC_PLLAR_MUL(87-1)   |             /* Multiplier.                                          */
                            PMC_PLLAR_OUT_150_240 |             /* Select when PLL frequency is 150-240 MHz.            */
                            PMC_PLLAR_DIV(2);                   /* Divider,                                             */

                                                                /* Wait for PLLA lock bit.                              */
    for (i = 0; i < 1000; i++) {
        if (PMC_REG(PMC_SR) & PMC_INT_LCKA) {
            break;
        }
    }

                                                                /* MCK = PLLA clock / 2 = 80.1792MHz.                   */
    PMC_REG(PMC_MCKR)     = PMC_MCKR_CSS_PLLA |                 /* Core Source = PLL A.                                 */
                            PMC_MCKR_MDIV_2;                    /* MCK = Core / 2.                                      */

                                                                /* Set Debug (serial) port to 38400bps.                 */
    *AT91C_DBGU_BRGR      = BSP_CLK_AT91RM9200_MASTER_HZ / (16 * BSP_DBGU_RATE);

                                                                /* Initialize monitor services.                         */
    monConnect((int (*)())BSP_uMON_ENTRY_POINT, NULL, NULL);

    LED_Init();                                                 /* Initialize LEDs.                                     */

    OS_CPU_InitExceptVect();                                    /* Initialize exception vectors.                        */

    OS_EXIT_CRITICAL();                                         /* Enable interrupts at processor level.                */
}


/*
*********************************************************************************************************
*                                          EXCEPTION HANDLER
*
* Arguments   : None.
*********************************************************************************************************
*/

void  OS_CPU_ExceptHndlr (CPU_DATA  except_type)
{
    BSP_FNCT_PTR   pfnct;
    CPU_INT32U    *sp;


    if (except_type == OS_CPU_ARM_EXCEPT_FIQ) {
        pfnct = (BSP_FNCT_PTR)*AT91C_AIC_FVR;                   /* Read the FIQ handler from the AIC.                   */
        while (pfnct != (BSP_FNCT_PTR)0) {                      /* Make sure we don't have a NULL pointer.              */
            (*pfnct)();                                         /* Execute the handler.                                 */
            *AT91C_AIC_EOICR = ~0;                              /* End of handler.                                      */
            pfnct = (BSP_FNCT_PTR)*AT91C_AIC_FVR;               /* Read the FIQ handler from the AIC.                   */
        }
        *AT91C_AIC_EOICR = ~0;                                  /* End of handler.                                      */

    } else if (except_type == OS_CPU_ARM_EXCEPT_IRQ) {
        pfnct = (BSP_FNCT_PTR)*AT91C_AIC_IVR;                   /* Read the IRQ handler from the AIC.                   */
        while (pfnct != (BSP_FNCT_PTR)0) {                      /* Make sure we don't have a NULL pointer.              */
            (*pfnct)();                                         /* Execute the handler.                                 */
            *AT91C_AIC_EOICR = ~0;                              /* End of handler.                                      */
            pfnct = (BSP_FNCT_PTR)*AT91C_AIC_IVR;               /* Read the IRQ handler from the AIC.                   */
        }
        *AT91C_AIC_EOICR = ~0;                                  /* End of handler.                                      */

    } else {
        sp = (CPU_INT32U *)OSTCBCur->OSTCBStkPtr;
        APP_TRACE_INFO(("\nCPU_ARM_EXCEPTION #%d trapped.\n", except_type));
        APP_TRACE_INFO(("R0  : 0x%08x\n", *(sp + 0x01)));
        APP_TRACE_INFO(("R1  : 0x%08x\n", *(sp + 0x02)));
        APP_TRACE_INFO(("R2  : 0x%08x\n", *(sp + 0x03)));
        APP_TRACE_INFO(("R3  : 0x%08x\n", *(sp + 0x04)));
        APP_TRACE_INFO(("R4  : 0x%08x\n", *(sp + 0x05)));
        APP_TRACE_INFO(("R5  : 0x%08x\n", *(sp + 0x06)));
        APP_TRACE_INFO(("R6  : 0x%08x\n", *(sp + 0x07)));
        APP_TRACE_INFO(("R7  : 0x%08x\n", *(sp + 0x08)));
        APP_TRACE_INFO(("R8  : 0x%08x\n", *(sp + 0x09)));
        APP_TRACE_INFO(("R9  : 0x%08x\n", *(sp + 0x0A)));
        APP_TRACE_INFO(("R10 : 0x%08x\n", *(sp + 0x0B)));
        APP_TRACE_INFO(("R11 : 0x%08x\n", *(sp + 0x0C)));
        APP_TRACE_INFO(("R12 : 0x%08x\n", *(sp + 0x0D)));
        APP_TRACE_INFO(("SP  : 0x%08x\n",   sp));
        APP_TRACE_INFO(("LR  : 0x%08x\n", *(sp + 0x0E)));
        APP_TRACE_INFO(("PC  : 0x%08x\n", *(sp + 0x0F)));
        APP_TRACE_INFO(("CPSR: 0x%08x\n", *(sp + 0x00)));

                                                                /* Infinite loop on other exceptions.                   */
                                                                /* Should be replaced by other behavior (reboot, etc.)  */
        while (DEF_TRUE) {
            ;
        }
    }
}


/*
*********************************************************************************************************
*                                         TICKER INITIALIZATION
*
* Description : This function is called to initialize uC/OS-II's tick source (typically a timer generating
*               interrupts every 1 to 100 mS).
*
*               We decided to use Timer #0 as the tick interrupt source.
*
* Arguments   : None.
*********************************************************************************************************
*/

void  Tmr_Init (void)
{
                                                                /* OS Timer is on interrupt #1.                         */
    AIC_SVR_REG(1 * 4) = (CPU_INT32U)Tmr_TickHandler;           /* Setup the interrupt vector for the tick ISR.         */
    AIC_SMR_REG(1 * 4) = AT91C_AIC_PRIOR_LOWEST |               /* Level sensitive, low priority.                       */
                         AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE;
    *AT91C_AIC_IECR    = DEF_BIT_01;                            /* Enable timer interrupt at AIC level.                 */

                                                                /* Initialize the timer to generate 100 Hz.             */
    *AT91C_ST_PIMR     = BSP_CLK_AT91RM9200_SLOW_HZ / OS_TICKS_PER_SEC;
    *AT91C_ST_IER      = AT91C_ST_PITS;                         /* Enable timer interrupt at ST level.                  */
}


/*
*********************************************************************************************************
*                                         TIMER #0 IRQ HANDLER
*
* Description : This function handles the timer interrupt that is used to generate TICKs for uC/OS-II.
*
* Arguments   : None.
*********************************************************************************************************
*/

static  void  Tmr_TickHandler (void)
{
    CPU_INT32U  reg_val;


    reg_val = *AT91C_ST_SR;
    if (reg_val & AT91C_ST_PITS) {                              /* If the interrupt is from the tick source, call       */
        OSTimeTick();                                           /* OSTimeTick().                                        */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩成人激情| 在线观看日韩高清av| 一区二区三区久久| 久久综合视频网| 欧美色综合久久| 成人av资源站| 国产在线精品一区二区三区不卡 | 一区二区欧美视频| 久久久国际精品| 91精品啪在线观看国产60岁| 99久久精品国产网站| 久久国产精品99久久久久久老狼| 亚洲乱码中文字幕| 国产精品妹子av| 日韩欧美在线1卡| 欧美日韩国产综合一区二区| 99久久综合99久久综合网站| 国产久卡久卡久卡久卡视频精品| 性做久久久久久久久| 亚洲人吸女人奶水| 欧美经典三级视频一区二区三区| 欧美一区二区三区在线观看视频| 一本一本大道香蕉久在线精品| 国产美女精品在线| 狠狠色狠狠色合久久伊人| 日本aⅴ精品一区二区三区 | 久久综合久久99| 日韩欧美一区中文| 在线91免费看| 69成人精品免费视频| 精品视频一区三区九区| 在线国产亚洲欧美| 在线视频亚洲一区| 日本高清不卡在线观看| 色婷婷综合久色| 色琪琪一区二区三区亚洲区| 色综合一个色综合亚洲| 色婷婷久久久亚洲一区二区三区| jlzzjlzz国产精品久久| aaa欧美日韩| 97久久人人超碰| 一本大道久久a久久综合婷婷| eeuss鲁片一区二区三区| jlzzjlzz亚洲女人18| 91热门视频在线观看| 91麻豆高清视频| 在线观看成人小视频| 欧美亚洲国产bt| 欧美视频一区在线| 91精品国产综合久久香蕉麻豆| 51精品秘密在线观看| 日韩一卡二卡三卡四卡| 精品av久久707| 欧美激情综合五月色丁香小说| 国产精品美女视频| 亚洲一区二区精品久久av| 亚洲高清免费在线| 蜜臀a∨国产成人精品| 九九在线精品视频| 成人黄色在线网站| 欧美无乱码久久久免费午夜一区| 欧美日韩一级黄| 精品欧美乱码久久久久久1区2区| 国产亚洲欧美色| 亚洲人成网站在线| 日本网站在线观看一区二区三区| 狠狠色丁香婷综合久久| 成人黄色av网站在线| 欧美视频在线观看一区| 2017欧美狠狠色| 亚洲精品欧美专区| 精品一区二区三区的国产在线播放| 韩国一区二区视频| 色综合色狠狠天天综合色| 538在线一区二区精品国产| 国产午夜精品在线观看| 亚洲一区二区三区四区中文字幕| 日韩av网站在线观看| 成人午夜短视频| 欧美日韩大陆在线| 国产女同互慰高潮91漫画| 亚洲午夜免费视频| 国产成人av电影在线播放| 在线精品国精品国产尤物884a| 精品久久久久久最新网址| 亚洲欧洲无码一区二区三区| 日本不卡123| 91色乱码一区二区三区| 久久综合狠狠综合久久综合88| 亚洲视频免费观看| 国产又粗又猛又爽又黄91精品| 94-欧美-setu| 久久九九久精品国产免费直播| 一区av在线播放| 国产成人在线影院 | 久久久久久99精品| 亚洲一区二区欧美日韩| 国产福利91精品| 337p亚洲精品色噜噜狠狠| 日韩久久一区二区| 国产在线日韩欧美| 日韩一级免费一区| 亚洲国产一二三| 91在线视频在线| 国产视频视频一区| 六月丁香综合在线视频| 欧美又粗又大又爽| 成人欧美一区二区三区白人| 韩国理伦片一区二区三区在线播放 | 日韩欧美国产麻豆| 亚洲高清在线视频| 91美女片黄在线| 中文字幕精品在线不卡| 欧美a级理论片| 欧美乱熟臀69xxxxxx| 亚洲美腿欧美偷拍| 91视视频在线观看入口直接观看www| 精品国一区二区三区| 日本一道高清亚洲日美韩| 日本韩国欧美国产| 玉米视频成人免费看| 成人h动漫精品一区二| 久久人人爽人人爽| 韩国av一区二区三区| 欧美成人vps| 久久99精品久久久久久动态图| 7777精品伊人久久久大香线蕉完整版 | 日韩欧美中文字幕制服| 蜜桃视频在线一区| 日韩一级完整毛片| 日本不卡在线视频| 欧美一级二级三级蜜桃| 日韩电影在线观看电影| 欧美精品tushy高清| 亚洲成人动漫在线观看| 欧美日韩一二三区| 天天色天天操综合| 91精品视频网| 久久精品国产精品亚洲红杏 | 欧美一区二区三区视频免费播放| 性做久久久久久免费观看欧美| 欧美日韩免费视频| 青青草精品视频| 日韩欧美一区二区在线视频| 毛片基地黄久久久久久天堂| 精品国产伦一区二区三区观看方式| 天堂一区二区在线| 欧美成人性福生活免费看| 国产一区二区三区免费看| 中文av一区二区| 91在线视频18| 亚洲一区二区精品久久av| 欧美一区二区三区四区久久| 国产在线精品一区二区| 国产精品拍天天在线| 成人av在线观| 亚洲综合在线视频| 欧美一区二区高清| 成人午夜碰碰视频| 亚洲午夜日本在线观看| 欧美电视剧免费观看| 成人午夜碰碰视频| 亚洲国产精品久久艾草纯爱| 日韩一级成人av| 成人黄色av电影| 午夜婷婷国产麻豆精品| 久久综合九色综合久久久精品综合| 成人a区在线观看| 午夜精品影院在线观看| 精品理论电影在线观看 | 精品国产制服丝袜高跟| 本田岬高潮一区二区三区| 亚洲国产精品一区二区久久| 日韩视频一区二区在线观看| 成人免费看的视频| 爽好久久久欧美精品| 国产欧美视频一区二区三区| 91久久香蕉国产日韩欧美9色| 免费高清成人在线| 一区二区在线观看免费视频播放| 91精品国产综合久久蜜臀| av一区二区三区| 蜜桃视频一区二区三区在线观看| 欧美国产一区二区在线观看| 欧美日韩久久一区二区| 欧美在线观看一区| 国产精品一区二区久久不卡| 亚洲一区二区三区精品在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久草av在线| 亚洲精品成人a在线观看| 精品久久免费看| 欧美日韩一区三区| 99这里只有精品| 日本欧美大码aⅴ在线播放| 亚洲你懂的在线视频| 国产日韩影视精品| 欧美一区二区免费视频| 日本道色综合久久| 成人小视频免费在线观看|