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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_viewc.c

?? NXPLPC2138 平臺下使用UC/0S-II 操作系統. 在IAR工工程環境下的源代碼.帶有一此驅動程序,LCD驅動,還有原開發板的BSP包.
?? C
字號:
/*
*********************************************************************************************************
*                                               uC/OS-View
*
*                                 (c) Copyright 2005, Micrium, Weston, FL
*                                           All Rights Reserved
*
*                                            NXP LPC2000 (ARM7)
*                                             IAR C Compiler
*
*
* Filename   : OS_VIEWc.C
* Version    : V1.20
* Programmer : Jean J. Labrosse
*********************************************************************************************************
*/

#include <includes.h>

/*
*********************************************************************************************************
*                                              CONSTANTS
*********************************************************************************************************
*/

#define  BIT0      0x01
#define  BIT1      0x02
#define  BIT2      0x04
#define  BIT3      0x08
#define  BIT4      0x10
#define  BIT5      0x20
#define  BIT6      0x40
#define  BIT7      0x80

/*$PAGE*/
/*
*********************************************************************************************************
*                                           EXIT uC/OS-View
*
* Description: This function is called if your target needs to 'uninstall' uC/OS-View.
*
* Note(s)    :
*********************************************************************************************************
*/

void  OSView_Exit (void)
{
}

/*
*********************************************************************************************************
*                                           Obtain CPU name
*********************************************************************************************************
*/

void  OSView_GetCPUName (INT8U *s)
{
    INT8U  cpu_clk_freq;


    cpu_clk_freq = (INT8U)(BSP_CPU_ClkFreq() / 1000000L);
    (void)OS_StrCopy(s, "NXP LPC2000 (xx MHz)");
    s[13] = cpu_clk_freq / 10 + '0';
    s[14] = cpu_clk_freq % 10 + '0';
}

/*
*********************************************************************************************************
*                                  Obtain Interrupt Stack information
*********************************************************************************************************
*/

INT32U  OSView_GetIntStkBase (void)
{
    return (0);                                       /* We are not using an ISR stack                 */
}


INT32U  OSView_GetIntStkSize (void)
{
    return (0);                                       /* We are not using an ISR stack                 */
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                    INITIALISE uC/OS-View COM PORT
*
* Description: Initialize the hardware required for the OS to run. This will work on any target hardware,
*              but may have to be tailored a little (regarding the clock frequency). Of course the same
*              holds true if for some reason you choose to use another timer.
*
* Note(s)    : 1) This function assumes that a free running timer has been initialized.  The timer can
*                 either be a 16 bits or 32 bits timer.  Your application needs to provide a function
*                 called OSView_TmrRd() that reads the current counts of this timer.  The free running
*                 timer is initialized by the BSP function OSView_TmrInit().
*********************************************************************************************************
*/

void  OSView_InitTarget (INT32U baud_rate)
{
    INT16U     div;                                      /* Baud rate divisor                          */
    INT8U      divlo;
    INT8U      divhi;
    INT8U      lcr;										 /* Line Control Register                      */
    INT32U     pinsel;
    INT32U     pclk_freq;
#if OS_CRITICAL_METHOD == 3                              /* Allocate storage for CPU status register   */
    OS_CPU_SR  cpu_sr   = 0;
#endif


    OSView_TmrInit();                                    /* Initialize the free running timer          */

                                                         /* Compute divisor for desired baud rate      */
    pclk_freq = BSP_CPU_PclkFreq();
    div       = (INT16U)(((2 * pclk_freq / 16 / baud_rate) + 1) / 2);
    divlo     =  div & 0x00FF;                          /* Split divisor into LOW and HIGH bytes      */
    divhi     = (div >> 8) & 0x00FF;
    lcr       = 0x03;                                   /* 8 Bits, 1 Stop, No Parity                  */

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_0
    OS_ENTER_CRITICAL();
	pinsel              = PINSEL0;					     /* Enable UART0 I/Os                          */
	pinsel             &= 0xFFFFFFF0;
	pinsel             |= 0x00000005;
    PINSEL0             = pinsel;
    U0LCR               = BIT7;                          /* Set divisor access bit                     */
    U0DLL               = divlo;                         /* Load divisor                               */
    U0DLM               = divhi;
    U0LCR               = lcr;                           /* Set line control register (Bit 8 is 0)     */
    U0IER               = 0x00;                          /* Disable both Rx and Tx interrupts          */
    U0FCR               = 0x01;                          /* Enable FIFO, flush Rx & Tx                 */
    OS_EXIT_CRITICAL();
                                                         /* VIC UART #0 Initialization                 */
    VICIntSelect       &= ~(1 << VIC_UART0);             /* Enable interrupts                          */
    VICVectAddr15       = (INT32U)OSView_RxTxISRHandler; /* Set the vector address                     */
    VICVectCntl15       = 0x20 | VIC_UART0;              /* Enable vectored interrupts                 */
    VICIntEnable        =  (1 << VIC_UART0);             /* Enable Interrupts                          */
#endif

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_1
    OS_ENTER_CRITICAL();
	pinsel              = PINSEL0;						 /* Enable UART1 I/Os                          */
	pinsel             &= 0xFFF0FFFF;
	pinsel             |= 0x00050000;
    PINSEL0             = pinsel;
    U1LCR               = BIT7;                          /* Set divisor access bit                     */
    U1DLL               = divlo;                         /* Load divisor                               */
    U1DLM               = divhi;
    U1LCR               = lcr;                           /* Set line control register (Bit 8 is 0)     */
    U1IER               = 0x00;                          /* Disable both Rx and Tx interrupts          */
    U1FCR               = 0x01;                          /* Enable FIFO, flush Rx & Tx                 */
    OS_EXIT_CRITICAL();
                                                         /* VIC UART #1 Initialization                 */
    VICIntSelect       &= ~(1 << VIC_UART1);             /* Enable interrupts                          */
    VICVectAddr15       = (INT32U)OSView_RxTxISRHandler; /* Set the vector address                     */
    VICVectCntl15       = 0x20 | VIC_UART1;              /* Enable vectored interrupts                 */
    VICIntEnable        =  (1 << VIC_UART1);             /* Enable Interrupts                          */
#endif
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       Disable Rx Interrupts
*********************************************************************************************************
*/

void  OSView_RxIntDis (void)
{
#if OS_VIEW_COMM_SEL == OS_VIEW_UART_0
    U0IER = 0;
#endif

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_1
    U1IER = 0;
#endif
}

/*
*********************************************************************************************************
*                                       Enable Rx Interrupts
*********************************************************************************************************
*/

void  OSView_RxIntEn (void)
{
#if OS_VIEW_COMM_SEL == OS_VIEW_UART_0
    U0IER = BIT0;
#endif

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_1
    U1IER = BIT0;
#endif
}

/*
*********************************************************************************************************
*                                 Rx Communication handler for uC/OS-View
*
* Description: This function is called by OSView_RxISR (see OS_VIEWa.ASM) to process a received
*              character interrupt.
*
* Note(s)    : This adaptation of uC/OS-View assumes that a 'combined' interrupt is generated by the UART
*              and thus this function is not needed.
*********************************************************************************************************
*/

void  OSView_RxISRHandler (void)
{
}

/*
*********************************************************************************************************
*                                Rx/Tx Communication handler for uC/OS-View
*
* Description: This function is NOT called because the M16C has a separate Rx and Tx ISR.
*********************************************************************************************************
*/

void  OSView_RxTxISRHandler (void)
{
    volatile  INT8U  rx_data;
    volatile  INT8U  lsr;
    volatile  INT8U  iir;



#if OS_VIEW_COMM_SEL == OS_VIEW_UART_0
    iir = U0IIR & 0x0F;
    while (iir != 1) {
        switch (iir) {
            case  0:                                   /* Modem interrupt?                             */
                 break;

            case  2:                                   /* Transmitted character?                       */
                 OSView_TxHandler();
                 break;

            case  4:                                   /* Received a character?                        */
                 lsr     = U0LSR;
                 rx_data = U0RBR;
                 OSView_RxHandler(rx_data);            /* Call the generic Rx handler                  */
                 break;

            case  6:                                   /* Receive Line Status interrupt?               */
                 break;

            case 12:                                   /* CTI interrupt?                               */
                 break;
        }
        iir = U0IIR & 0x0F;
    }
#endif

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_1
    iir = U1IIR & 0x0F;
    while (iir != 1) {
        switch (iir) {
            case  0:                                   /* Modem interrupt?                             */
                 break;

            case  2:                                   /* Transmitted character?                       */
                 OSView_TxHandler();
                 break;

            case  4:                                   /* Received a character?                        */
                 lsr     = U1LSR;
                 rx_data = U1RBR;
                 OSView_RxHandler(rx_data);            /* Call the generic Rx handler                  */
                 break;

            case  6:                                   /* Receive Line Status interrupt?               */
                 break;

            case 12:                                   /* CTI interrupt?                               */
                 break;
        }
        iir = U1IIR & 0x0F;
    }
#endif

    VICVectAddr = 0x00000000L;                         /* Clear the vector address register            */
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                      Communication for uC/OS-View
*
* Description: Send 1 character to COM Port
*********************************************************************************************************
*/

void  OSView_Tx1 (INT8U c)
{
#if OS_VIEW_COMM_SEL == OS_VIEW_UART_0
    U0THR = c;
#endif

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_1
    U1THR = c;
#endif
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       Disable Tx Interrupts
*********************************************************************************************************
*/

void  OSView_TxIntDis (void)
{
#if OS_VIEW_COMM_SEL == OS_VIEW_UART_0
    U0IER = BIT0;                                /* Just enable the receive interrupts                 */
#endif

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_1
    U1IER = BIT0;                                /* Just enable the receive interrupts                 */
#endif
}

/*
*********************************************************************************************************
*                                       Enable Tx Interrupts
*********************************************************************************************************
*/

void  OSView_TxIntEn (void)
{
#if OS_VIEW_COMM_SEL == OS_VIEW_UART_0
    U0IER = BIT1 | BIT0;
#endif

#if OS_VIEW_COMM_SEL == OS_VIEW_UART_1
    U1IER = BIT1 | BIT0;
#endif
}

/*
*********************************************************************************************************
*                                 Tx Communication handler for uC/OS-View
*                                            (PORT SPECIFIC)
*
* Description: Handle transmission of a character
*
* Note(s)    : 1) This function is called by OSView_RxISR (see OS_VIEWa.ASM)
*              2) This adaptation of uC/OS-View assumes that a 'combined' interrupt is generated by the
*                 UART and thus this function is not needed.
*********************************************************************************************************
*/

void  OSView_TxISRHandler (void)
{
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区五区视频在线观看 | 香蕉影视欧美成人| 久久伊人中文字幕| 精品国产三级电影在线观看| 欧美精品色一区二区三区| 欧美日韩和欧美的一区二区| 欧美在线影院一区二区| 欧美日韩午夜在线| 欧美女孩性生活视频| 91精品国产欧美日韩| 日韩一区二区三区视频在线观看| 日韩欧美一区二区不卡| 精品对白一区国产伦| 久久久久久免费| 亚洲人成精品久久久久| 亚洲美女视频一区| 亚洲一区二区三区国产| 三级欧美在线一区| 精品制服美女丁香| 波多野结衣一区二区三区| a美女胸又www黄视频久久| 色哟哟一区二区| 在线不卡免费av| 久久久久久97三级| **网站欧美大片在线观看| 亚洲福利电影网| 老司机精品视频导航| 国产成人久久精品77777最新版本| 成人av资源下载| 欧美色欧美亚洲另类二区| 日韩美女一区二区三区四区| 日本一二三不卡| 天堂在线一区二区| 成人免费看的视频| 91精品国产品国语在线不卡 | 午夜欧美一区二区三区在线播放| 蜜桃av一区二区| 亚洲一区二区综合| 久久99精品久久只有精品| www.爱久久.com| 这里只有精品视频在线观看| 久久精品人人爽人人爽| 午夜视频一区在线观看| 高清不卡一区二区在线| 欧美三级日韩三级| 国产精品午夜在线观看| 视频在线观看91| 99精品热视频| 久久久亚洲精品石原莉奈| 亚洲成人动漫在线观看| 成人一区在线观看| 日韩欧美黄色影院| 亚洲永久免费视频| 成人丝袜高跟foot| 精品福利在线导航| 丝袜美腿高跟呻吟高潮一区| 不卡一区中文字幕| 国产亚洲欧美日韩日本| 日精品一区二区三区| 欧亚一区二区三区| 中文字幕中文字幕在线一区| 国产一区二区三区在线观看免费 | 亚洲综合免费观看高清完整版在线 | 精品一区二区三区香蕉蜜桃| 欧美日韩在线一区二区| 亚洲免费毛片网站| 99国产精品久久久久| 久久蜜桃av一区二区天堂| 老司机精品视频线观看86| 欧美区在线观看| 午夜免费欧美电影| 欧洲精品一区二区三区在线观看| 国产精品家庭影院| 成人丝袜视频网| 欧美激情在线看| 国产91精品一区二区麻豆网站| 日韩精品自拍偷拍| 美女看a上一区| 精品国产乱码久久久久久久| 麻豆成人免费电影| 精品嫩草影院久久| 麻豆久久久久久| 久久综合一区二区| 国产伦精品一区二区三区免费迷| 精品久久久久99| 国产成人在线影院| 国产精品久久久久久久久久久免费看 | 日韩三级视频中文字幕| 免费日韩伦理电影| 久久综合狠狠综合| av男人天堂一区| 一卡二卡三卡日韩欧美| 精品视频一区二区三区免费| 日韩国产欧美在线视频| 日韩久久免费av| 成人三级伦理片| 夜夜精品视频一区二区| 欧美日韩另类国产亚洲欧美一级| 日韩avvvv在线播放| 精品国产凹凸成av人网站| 成人丝袜高跟foot| 午夜视频在线观看一区二区三区| 日韩免费视频一区| 91色porny在线视频| 午夜免费久久看| 国产午夜精品一区二区三区视频 | 国产无一区二区| 色婷婷香蕉在线一区二区| 日韩二区在线观看| 日本一区免费视频| 欧美日韩国产成人在线免费| 精品亚洲成a人| 亚洲激情中文1区| 精品国产亚洲在线| 欧美曰成人黄网| 国内精品嫩模私拍在线| 亚洲欧美经典视频| 久久婷婷成人综合色| 在线视频一区二区三区| 国产精品综合网| 五月天一区二区| 国产精品国产a| 精品国产亚洲在线| 欧美精品三级在线观看| caoporn国产一区二区| 毛片一区二区三区| 一区二区三区不卡在线观看| 国产亚洲短视频| 欧美一区二区在线播放| 色88888久久久久久影院野外| 精品在线免费视频| 日韩**一区毛片| 亚洲福利一区二区| 亚洲欧美电影一区二区| 国产婷婷色一区二区三区| 欧美一二三四在线| 欧美美女一区二区三区| 91麻豆自制传媒国产之光| 国产成人精品亚洲日本在线桃色| 日韩精品一二三| 亚洲国产日韩av| 亚洲美女屁股眼交| 国产精品久久国产精麻豆99网站| 久久嫩草精品久久久久| 日韩欧美亚洲国产精品字幕久久久| 欧美亚洲国产一区二区三区| 97se狠狠狠综合亚洲狠狠| 国产69精品一区二区亚洲孕妇| 激情五月婷婷综合网| 青青青爽久久午夜综合久久午夜| 亚洲一二三级电影| 亚洲一区二区三区三| 一区av在线播放| 亚洲香肠在线观看| 午夜视频一区在线观看| 亚洲成a人片在线不卡一二三区 | 日韩一区二区免费电影| 6080午夜不卡| 欧美高清性hdvideosex| 911精品产国品一二三产区| 欧美人妇做爰xxxⅹ性高电影 | 久久久国产午夜精品| 精品日韩成人av| 国产亚洲欧美一级| 国产午夜精品一区二区三区嫩草| 欧美精品一区二区三区四区| 久久日韩粉嫩一区二区三区| 亚洲精品在线电影| 国产精品网曝门| 一区二区三区精品在线观看| 视频一区在线播放| 蜜芽一区二区三区| 国产精品18久久久久久久久久久久| 国产成人精品免费网站| 91麻豆免费视频| 欧美高清激情brazzers| 精品成人a区在线观看| 久久久国产综合精品女国产盗摄| 国产精品另类一区| 亚洲电影一级黄| 国产一区二区三区四区五区入口| 成人免费三级在线| 欧美剧在线免费观看网站| 欧美成人精品高清在线播放 | 国产精品日产欧美久久久久| 亚洲精品五月天| 五月激情综合网| 国产成人亚洲精品狼色在线| 91视频在线观看免费| 91精品国产福利在线观看| 国产丝袜在线精品| 偷窥少妇高潮呻吟av久久免费| 狠狠狠色丁香婷婷综合久久五月| 99久久久精品| 日韩精品资源二区在线| 亚洲麻豆国产自偷在线| 狠狠色丁香九九婷婷综合五月| 91成人在线免费观看| 国产午夜亚洲精品午夜鲁丝片| 亚洲一区二区三区自拍|