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

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

?? bsp.c

?? UCOS-II操作系統(tǒng)在ATMEL系列AT91SAM74S64平臺上的移植源代碼
?? C
字號:
//app.c

#include <includes.h>

#define  BSP_UNDEF_INSTRUCTION_VECTOR_ADDR   (*(INT32U *)0x00000004L)
#define  BSP_SWI_VECTOR_ADDR                 (*(INT32U *)0x00000008L)
#define  BSP_PREFETCH_ABORT_VECTOR_ADDR      (*(INT32U *)0x0000000CL)
#define  BSP_DATA_ABORT_VECTOR_ADDR          (*(INT32U *)0x00000010L)
#define  BSP_IRQ_VECTOR_ADDR                 (*(INT32U *)0x00000018L)
#define  BSP_FIQ_VECTOR_ADDR                 (*(INT32U *)0x0000001CL)
#define  BSP_IRQ_ISR_ADDR                    (*(INT32U *)0x00000038L)
#define  BSP_FIQ_ISR_ADDR                    (*(INT32U *)0x0000003CL)

typedef  void (*BSP_PFNCT)(void); 

static  void  BSP_DummyISR_Handler(void);
static  void  BSP_IntCtrlInit(void);
static  void  Tmr_TickInit(void);
static  void  Tmr_TickISR_Handler(void);

/********************************************************************************************************
 * 說明:BSP_DummyISR_Handler函數(shù),啞元IRQ句柄,用于處理非法IRQ異常
 * 參數(shù):無
 * 返回值:無
********************************************************************************************************/
static  void  BSP_DummyISR_Handler (void) {
    AT91C_BASE_AIC->AIC_IVR = 0;
}

/*******************************************************************************************************
* 說明: BSP_Init函數(shù),完成初始化,用戶的應(yīng)用程序在調(diào)用本模塊內(nèi)其它任何函數(shù)之前應(yīng)先調(diào)用本函數(shù)。
 * 參數(shù):無
 * 返回值:無
********************************************************************************************************/
void  BSP_Init (void) {
    BSP_IntCtrlInit();                               // 初始化中斷控制器
    Tmr_TickInit();                                  // 初始化 uC/OS-II 的節(jié)拍速度
    LED_Init();                                      // 初始化用于 LED 的 I/O 端口
}

/********************************************************************************************************
 * 說明:BSP_IntCtrlInit函數(shù),初始化中斷控制器。調(diào)用本函數(shù)將禁止所有中斷。
 * 參數(shù):無
 * 返回值:無
********************************************************************************************************/
static  void  BSP_IntCtrlInit (void) {
    INT16U  i;

    BSP_IRQ_VECTOR_ADDR               =  0xE59FF018;               // LDR PC,[PC,#0x18] 指令
    BSP_IRQ_ISR_ADDR                  =  (INT32U)OS_CPU_IRQ_ISR;   // IRQ 異常向量地址
    BSP_FIQ_VECTOR_ADDR               =  0xE59FF018;               // LDR PC,[PC,#0x18] 指令
    BSP_FIQ_ISR_ADDR                  =  (INT32U)OS_CPU_FIQ_ISR;   // FIQ 異常向量地址
    BSP_UNDEF_INSTRUCTION_VECTOR_ADDR =  0xEAFFFFFE;               // 跳轉(zhuǎn)到自身
    BSP_SWI_VECTOR_ADDR               =  0xEAFFFFFE;
    BSP_PREFETCH_ABORT_VECTOR_ADDR    =  0xEAFFFFFE;
    BSP_DATA_ABORT_VECTOR_ADDR        =  0xEAFFFFFE;
    BSP_FIQ_VECTOR_ADDR               =  0xEAFFFFFE;

    AT91C_BASE_AIC->AIC_EOICR         =  0x00000000;               // 結(jié)束中斷命令

    for (i = 0; i < 32; i++) {                                     // 禁止所有中斷
        AT91C_BASE_AIC->AIC_SVR[i] = (INT32U)BSP_DummyISR_Handler;
        AT91C_BASE_AIC->AIC_SMR[i] = 0;
    }
}

/********************************************************************************************************
 * 說明:BSP_IntDisAll函數(shù),調(diào)用本函數(shù)將禁止所有中斷。
 * 參數(shù):無
 * 返回值:無
********************************************************************************************************/
void  BSP_IntDisAll (void) {
    AT91C_BASE_AIC->AIC_IDCR = 0xFFFFFFFF;                         // 禁止所有中斷
}

/********************************************************************************************************
 * 說明:LED_Init函數(shù),用戶的應(yīng)用程序在調(diào)用本模塊內(nèi)其它任何函數(shù)之前應(yīng)先調(diào)用本函數(shù)。
 * 參數(shù):無
 * 返回值:無
********************************************************************************************************/
void  LED_Init (void) {
    AT91C_BASE_PIOA->PIO_PER  = BSP_LED4 | BSP_LED3 | BSP_LED2 | BSP_LED1; // 允許寄存器
    AT91C_BASE_PIOA->PIO_OER  = BSP_LED4 | BSP_LED3 | BSP_LED2 | BSP_LED1; // 允許輸出
    AT91C_BASE_PIOA->PIO_IDR  = BSP_LED4 | BSP_LED3 | BSP_LED2 | BSP_LED1;
    LED_Off(BSP_LED_ALL);                                                  // 熄滅所有LED
}

/********************************************************************************************************
 * 說明:LED_On函數(shù),用于控制電路板上LED的點亮。
 * 參數(shù):INT8U led
 *              0    點亮所有LED
 *              1-4  點亮 LED1-LED4
 * 返回值:無
********************************************************************************************************/
void  LED_On (INT8U led) {
    switch (led) {
        case 0:
             AT91C_BASE_PIOA->PIO_CODR = BSP_LED4 | BSP_LED3 | BSP_LED2 | BSP_LED1;
             break;
        case 1:
             AT91C_BASE_PIOA->PIO_CODR = BSP_LED1;
             break;
        case 2:
             AT91C_BASE_PIOA->PIO_CODR = BSP_LED2;
             break;
        case 3:
             AT91C_BASE_PIOA->PIO_CODR = BSP_LED3;
             break;
        case 4:
             AT91C_BASE_PIOA->PIO_CODR = BSP_LED4;
             break;
    }
}

/********************************************************************************************************
 * 說明:LED_Off函數(shù),用于控制電路板上LED的或熄滅。
 * 參數(shù):INT8U led
 *              0    熄滅所有LED
 *              1-4  熄滅 LED1-LED4
 * 返回值:無
********************************************************************************************************/
void  LED_Off (INT8U led) {
    switch (led) {
        case 0:
             AT91C_BASE_PIOA->PIO_SODR = BSP_LED4 | BSP_LED3 | BSP_LED2 | BSP_LED1;
             break;
        case 1:
             AT91C_BASE_PIOA->PIO_SODR = BSP_LED1;
             break;
        case 2:
             AT91C_BASE_PIOA->PIO_SODR = BSP_LED2;
             break;
        case 3:
             AT91C_BASE_PIOA->PIO_SODR = BSP_LED3;
             break;
        case 4:
             AT91C_BASE_PIOA->PIO_SODR = BSP_LED4;
             break;
    }
}

/********************************************************************************************************
 * 說明:LED_Toggle函數(shù),用于Toggle(交替點亮或熄滅)LED。
 * 參數(shù):INT8U led
 *              0    Toggle 所有LED
 *              1-4  Toggle LED1-LED4
 * 返回值:無
********************************************************************************************************/
void  LED_Toggle (INT8U led) {
    switch (led) {
        case 0:
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED1) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED1;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED1;
             }
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED2) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED2;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED2;
             }
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED3) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED3;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED3;
             }
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED4) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED4;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED4;
             }
             break;
        case 1:
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED1) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED1;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED1;
             }
             break;
        case 2:
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED2) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED2;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED2;
             }
             break;
        case 3:
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED3) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED3;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED3;
             }
             break;
        case 4:
             if (AT91C_BASE_PIOA->PIO_ODSR & BSP_LED4) {
                 AT91C_BASE_PIOA->PIO_CODR = BSP_LED4;
             } else {
                 AT91C_BASE_PIOA->PIO_SODR = BSP_LED4;
             }
             break;
    }
}

/********************************************************************************************************
 * 說明:OS_CPU_IRQ_ISR_Handler函數(shù),IRQ中斷句柄,由OS_CPU_IRQ_ISR()函數(shù)調(diào)用,確定中斷源并處理。
 * 參數(shù):無
 * 返回值:無
********************************************************************************************************/
void  OS_CPU_IRQ_ISR_Handler (void) {
    BSP_PFNCT  pfnct;
#if 1
    pfnct = (BSP_PFNCT)AT91C_BASE_AIC->AIC_IVR;     // 從AIC中讀取中斷向量
    if (pfnct != (BSP_PFNCT)0) {                    // 確保沒有 NULL 指針
        (*pfnct)();                                 // 執(zhí)行中斷函數(shù)
    }
#else
    pfnct = (BSP_PFNCT)AT91C_BASE_AIC->AIC_IVR;     // 從AIC中讀取中斷向量
    while (pfnct != (BSP_PFNCT)0) {                 // 確保沒有 NULL 指針
      (*pfnct)();                                   // 執(zhí)行中斷函數(shù)
        pfnct = (BSP_PFNCT)AT91C_BASE_AIC->AIC_IVR; // 從AIC中讀取中斷向量
    }
#endif
}

/*********************************************************************************************************
 *說明:OS_CPU_FIQ_ISR_Handler函數(shù),F(xiàn)IQ中斷句炳,由OS_CPU_IRQ_ISR()函數(shù)調(diào)用,確定中斷源并處理。
 * 參數(shù):無
 * 返回值:無
********************************************************************************************************/
void  OS_CPU_FIQ_ISR_Handler (void) {
    BSP_PFNCT  pfnct;
#if 1
    pfnct = (BSP_PFNCT)AT91C_BASE_AIC->AIC_FVR;     // 從AIC中讀取中斷向量
    if (pfnct != (BSP_PFNCT)0) {                    // 確保沒有 NULL 指針
        (*pfnct)();                                 // 執(zhí)行中斷函數(shù)
    }
#else
    pfnct = (BSP_PFNCT)AT91C_BASE_AIC->AIC_FVR;     // 從AIC中讀取中斷向量
    while (pfnct != (BSP_PFNCT)0) {                 // 確保沒有 NULL 指針
      (*pfnct)();                                   // 執(zhí)行中斷函數(shù)
        pfnct = (BSP_PFNCT)AT91C_BASE_AIC->AIC_FVR; // 從AIC中讀取中斷向量
    }
#endif
}

/*********************************************************************************************************
 *說明:Tmr_TickInit函數(shù),用于進行節(jié)拍初始化(通常使用一個定時器每1-100ms產(chǎn)生一次中斷)。
 * 參數(shù):無
 * 返回值:無
 * 注(1) PIT Interrupt frequency:
 *                         MCLK        1
 *               Freq =    ---- * -----------
 *                          16     (PIV + 1)
 *
 *                         MCLK      1
 *               PIV  =  ( ---- * ------ ) - 1
 *                          16     Freq
 *
 *其中:MCLK = 48 MHz (i.e 48,000,000)
 *      Freq = Desired frequency (i.e. OS_TICKS_PER_SEC)
********************************************************************************************************/
static  void  Tmr_TickInit (void) {
    INT32U  counts;
    // 設(shè)置PIT向量地址
    AT91C_BASE_AIC->AIC_SVR[AT91C_ID_SYS] = (INT32U)Tmr_TickISR_Handler;
    //AT91C_BASE_AIC->AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE
    AT91C_BASE_AIC->AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_PRIOR_LOWEST;
    AT91C_BASE_AIC->AIC_ICCR              = 1 << AT91C_ID_SYS;
    AT91C_BASE_AIC->AIC_IECR              = 1 << AT91C_ID_SYS;
    counts                                = (48000000 / 16 / OS_TICKS_PER_SEC) - 1;
    AT91C_BASE_PITC->PITC_PIMR            = AT91C_PITC_PITEN | AT91C_PITC_PITIEN | counts;
}


/*********************************************************************************************************
 *說明:Tmr_TickISR_Handler函數(shù),PIT IRQ 句柄。用于處理產(chǎn)生uC/OS-II節(jié)拍的PIT中斷。
 * 參數(shù):無
 * 返回值:無
*********************************************************************************************************/
static  void  Tmr_TickISR_Handler (void) {
    volatile  INT32U  status;
    status                    = AT91C_BASE_PITC->PITC_PIVR;
    AT91C_BASE_AIC->AIC_IVR   = 0;
    AT91C_BASE_AIC->AIC_ICCR  = AT91C_ID_SYS; // 清除timer0 中斷
    AT91C_BASE_AIC->AIC_EOICR = 0;            // 中斷結(jié)束信號
    OSTimeTick();                             // 通知 uC/OS-II 時鐘節(jié)拍
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女高潮久久久| 亚洲男人电影天堂| 久久爱另类一区二区小说| 91麻豆精品91久久久久同性| 日韩电影一区二区三区四区| 91精品国产入口在线| 捆绑调教一区二区三区| 久久人人超碰精品| 成人一区在线看| 亚洲人成亚洲人成在线观看图片| 色狠狠一区二区| 青青草精品视频| 久久精品亚洲一区二区三区浴池| 成人午夜av电影| 亚洲综合自拍偷拍| 欧美成人精品1314www| 国v精品久久久网| 亚洲一区在线视频观看| 日韩三级视频中文字幕| 成人短视频下载| 亚洲国产精品天堂| 精品国产乱码久久| 91免费在线视频观看| 日韩电影在线观看网站| 中文字幕电影一区| 欧美日韩一区二区三区四区| 国产一区二区三区在线观看精品| 亚洲丝袜精品丝袜在线| 欧美一区二区三区白人| hitomi一区二区三区精品| 天天综合天天做天天综合| 国产婷婷一区二区| 欧美男男青年gay1069videost | 专区另类欧美日韩| 91 com成人网| 91色在线porny| 久久电影网电视剧免费观看| 亚洲你懂的在线视频| 久久嫩草精品久久久精品| 欧美午夜精品久久久| 国产成人aaa| 免费观看在线色综合| 日韩一区在线看| 欧美电影免费观看高清完整版在线观看| 99久久伊人网影院| 狠狠色狠狠色综合系列| 亚洲午夜三级在线| 中文字幕在线不卡一区| 久久综合99re88久久爱| 国产日韩av一区| 91精品国产一区二区三区香蕉| 99视频在线观看一区三区| 韩国精品久久久| 天天影视色香欲综合网老头| 亚洲另类春色国产| 日本一区二区三区国色天香 | 国产成人精品午夜视频免费| 日本中文在线一区| 亚洲综合视频网| 最新热久久免费视频| 久久久久99精品国产片| 欧美成人一级视频| 欧美日韩夫妻久久| 欧美婷婷六月丁香综合色| 成人18精品视频| 成人午夜在线视频| 国产精品一级二级三级| 国产麻豆视频一区| 国产真实精品久久二三区| 日本麻豆一区二区三区视频| 性做久久久久久久久| 亚洲成年人影院| 丝袜美腿亚洲综合| 图片区小说区国产精品视频| 亚洲国产日日夜夜| 五月综合激情网| 日韩vs国产vs欧美| 男人的j进女人的j一区| 麻豆国产欧美日韩综合精品二区| 日韩精品亚洲专区| 看电影不卡的网站| 久久99久久精品欧美| 国产尤物一区二区在线| 国内久久精品视频| 国产成人高清视频| 成人18精品视频| 在线观看成人小视频| 欧美亚洲国产怡红院影院| 欧美色倩网站大全免费| 91精品在线一区二区| 日韩欧美在线网站| 国产日韩欧美a| 中文字幕一区二区不卡| 美女性感视频久久| 乱中年女人伦av一区二区| 国产一区美女在线| 成人v精品蜜桃久久一区| 91女人视频在线观看| 欧美精品少妇一区二区三区| 欧美一级二级在线观看| 久久久国产精品不卡| 亚洲色图制服诱惑| 日一区二区三区| 国产精品资源网| 色综合久久久久综合体桃花网| 欧美日韩免费高清一区色橹橹 | 国产精品资源在线观看| 成人av网址在线| 欧洲精品一区二区三区在线观看| 欧美一三区三区四区免费在线看 | 亚洲欧洲美洲综合色网| 亚洲福利视频一区二区| 麻豆视频观看网址久久| av在线一区二区| 欧美丰满一区二区免费视频| 久久久久久一级片| 一片黄亚洲嫩模| 国产麻豆视频一区| 欧美影视一区在线| 久久久亚洲精华液精华液精华液| 最近中文字幕一区二区三区| 青青青伊人色综合久久| 成人的网站免费观看| 欧美一级在线免费| 亚洲女与黑人做爰| 国产高清在线精品| 91麻豆精品久久久久蜜臀| 国产精品国产自产拍高清av王其| 日韩专区欧美专区| 91视频免费看| 久久青草国产手机看片福利盒子| 亚洲成av人在线观看| 成人综合在线网站| 日韩免费一区二区| 亚洲国产精品自拍| 99麻豆久久久国产精品免费| 精品国产免费一区二区三区四区 | 成人高清av在线| 精品久久99ma| 天天综合色天天| 色婷婷综合中文久久一本| 2024国产精品| 日韩国产欧美视频| 欧美亚洲国产一区在线观看网站 | 樱桃视频在线观看一区| 国产精品996| 日韩欧美在线观看一区二区三区| 悠悠色在线精品| 97久久精品人人爽人人爽蜜臀| 亚洲精品一区二区三区香蕉| 日韩影视精彩在线| 欧美日韩一区二区三区高清| 国产精品家庭影院| 风间由美一区二区三区在线观看 | 精品视频在线看| 亚洲精品国产精华液| 91小视频免费看| 中文字幕日韩av资源站| 成人深夜视频在线观看| 欧美激情资源网| 国产福利91精品一区二区三区| 久久综合色之久久综合| 久久er精品视频| 日韩免费观看高清完整版在线观看| 午夜精品一区二区三区三上悠亚| 欧美在线观看一区二区| 一区二区视频在线| 欧美羞羞免费网站| 丝袜亚洲精品中文字幕一区| 欧美另类变人与禽xxxxx| 婷婷中文字幕一区三区| 欧美日韩国产色站一区二区三区| 亚洲一区在线观看网站| 欧美日韩三级在线| 成人久久18免费网站麻豆| 国产精品嫩草久久久久| 成人动漫一区二区在线| 亚洲美女视频在线| 欧美午夜精品一区二区蜜桃| 五月激情综合色| 日韩欧美中文一区二区| 国产精品69久久久久水密桃| 国产精品视频看| 在线视频一区二区三区| 亚洲成年人影院| 日韩欧美电影在线| 国产a精品视频| 亚洲精品精品亚洲| 日韩一区和二区| 国产精品羞羞答答xxdd| 亚洲色欲色欲www| 欧美一区二区三区播放老司机| 狠狠狠色丁香婷婷综合激情| 国产精品美女久久福利网站| 色综合av在线| 久久99深爱久久99精品| 国产精品美女久久久久高潮| 欧美性xxxxx极品少妇| 久久国产精品第一页| 国产精品国产成人国产三级|