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

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

?? os_dcc.c

?? several peripheral examples of LPC2368 embedded chip
?? C
字號:
/*
*********************************************************************************************************
*                                               uC/OS-II
*                                         The Real-Time Kernel
*
*
*                             (c) Copyright 1992-2006, Micrium, Weston, FL
*                                          All Rights Reserved
*
*                                           Generic ARM Port
*                                          DCC Communication
*
* File      : OS_DCC.C
* Version   : V1.81
*
* For       : ARM7 or ARM9
* Mode      : ARM or Thumb
* Toolchain : IAR's EWARM V4.40a and higher
*********************************************************************************************************
*/

#include <ucos_ii.h>
                                                     /* This directive suppresses warnings for non-... */
#pragma  diag_suppress=Pe940                         /* ...void functions with no return values.       */

#if OS_CPU_ARM_DCC_EN > 0

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

#define  OS_DCC_OP_READ_U32     0x01000000
#define  OS_DCC_OP_READ_U16     0x02000000
#define  OS_DCC_OP_READ_U8      0x04000000
#define  OS_DCC_OP_GET_CAPS     0x08000000
#define  OS_DCC_OP_WRITE_U32    0x10000000
#define  OS_DCC_OP_WRITE_U16    0x20000000
#define  OS_DCC_OP_WRITE_U8     0x40000000
#define  OS_DCC_OP_ODD_ADDR     0x80000000
#define  OS_DCC_OP_COMMAND      0x00000001

#define  OS_DCC_COMM_CTRL_RD    0x00000001
#define  OS_DCC_COMM_CTRL_WR    0x00000002

#define  OS_DCC_SIGNATURE       0x91CA0000
#define  OS_DCC_CONFIG          0x00000077

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

static  INT32U  OSDCC_Cmd;
static  INT32U  OSDCC_Addr;
static  INT32U  OSDCC_ItemCnt;
static  INT32U  OSDCC_Data;

/*
*********************************************************************************************************
*                                       OSDCC_ReadCtrl()
*
* Description: This function retrieves data from the comms control register.
*
* Arguments  : none
*
* Returns    : The contents of the comms control register
*
* Notes      : 1) This function uses a coprocessor register transfer instruction to place the contents
*                 of the comms control register in R0.  Thus, the function does not contain an
*                 explicit return statement.  "#pragma diag_suppress=Pe940", which appears at the
*                 top of this file, is used to suppress the warning that normally results from non-
*                 void functions lacking return statements.
*********************************************************************************************************
*/

static  __arm  INT32U  OSDCC_ReadCtrl (void)
{
    __asm("mrc  P14,0,R0,C0,C0");
}

/*
*********************************************************************************************************
*                                         OSDCC_Read()
*
* Description: This function retrieves data from the comms data read register.
*
* Arguments  : none
*
* Returns    : The contents of the comms data read register
*
* Notes      : 1) This function uses a coprocessor register transfer instruction to place the contents
*                 of the comms data read register in R0.  Thus, the function does not contain an
*                 explicit return statement.  "#pragma diag_suppress=Pe940", which appears at the
*                 top of this file, is used to suppress the warning that normally results from non-
*                 void functions lacking return statements.
*********************************************************************************************************
*/

static  __arm  INT32U  OSDCC_Read (void)
{
    __asm("mrc  P14,0,R0,C1,C0");
}

/*
*********************************************************************************************************
*                                        OSDCC_Write()
*
* Description: This function places data in the comms data write register.
*
* Arguments  : none
*
* Returns    : none
*********************************************************************************************************
*/

static  __arm  void  OSDCC_Write (INT32U data)
{
    __asm("mcr  P14,0,R0,C1,C0");
}

/*
*********************************************************************************************************
*                                        OSDCC_Handler()
*
* Description: This function reads commands from the DCC comms data read register.  Data may be
*              transferred to or from memory based on those commands.
*
* Arguments  : none
*
* Returns    : none
*
* Notes      : 1) This function should be called periodically.  If OS_CPU_ARM_DCC_EN is '1', this
*                 function will be called from both the idle task hook and the tick interrupt hook.
*********************************************************************************************************
*/

void  OSDCC_Handler (void)
{
    INT32U  reg_val;

                                                     /* Check for the presence of new data             */
    if ((OSDCC_ReadCtrl() & OS_DCC_COMM_CTRL_RD) != 0) {
        reg_val = OSDCC_Read();                      /* Read the new data                              */

        if ((reg_val & OS_DCC_OP_COMMAND) != 0) {    /* Determine whether a command has been received  */
            OSDCC_Cmd = reg_val;
                                                     /* Check for an odd address in the next operation */
            if ((OSDCC_Cmd & OS_DCC_OP_ODD_ADDR) != 0) {
                OSDCC_Addr |= 1;
            }
                                                     /* If data will be read, adjust OSDCC_ItemCnt     */
            if ((OSDCC_Cmd & (OS_DCC_OP_READ_U32 | OS_DCC_OP_READ_U16 | OS_DCC_OP_READ_U8
                                                 |  OS_DCC_OP_GET_CAPS)) != 0) {
                OSDCC_ItemCnt = (OSDCC_Cmd >> 2) & 0xffff;
            } else {                                 /* Data will be written; initialize OSDCC_Data    */
                if ((OSDCC_Cmd & OS_DCC_OP_WRITE_U32) != 0) {
                    OSDCC_Data |= (OSDCC_Cmd << 14) & 0xffff0000;
                } else {
                    OSDCC_Data = (OSDCC_Cmd >> 2) & 0xffff;
                }
                                                     /* Write a single byte                            */
                if ((OSDCC_Cmd & OS_DCC_OP_WRITE_U8) != 0) {
                    *(INT8U *)OSDCC_Addr = OSDCC_Data;
                    OSDCC_Addr += 1;
                }
                                                     /* Write two bytes                                */
                if ((OSDCC_Cmd & OS_DCC_OP_WRITE_U16) != 0) {
                    *(INT16U *)OSDCC_Addr = OSDCC_Data;
                    OSDCC_Addr += 2;
                }
                                                     /* Write four bytes                               */
                if ((OSDCC_Cmd & OS_DCC_OP_WRITE_U32) != 0) {
                    *(INT32U *)OSDCC_Addr =OSDCC_Data;
                    OSDCC_Addr += 4;
                }
            }
            return;
        }
        OSDCC_Addr = reg_val;                        /* An address was received; OSDCC_Addr is updated */
    }
    if (OSDCC_ItemCnt != 0) {                        /* Determine whether data must be read            */
                                                     /* Confirm that the comms data write register...  */
                                                     /* ...is free from the processor point of view    */
        if ((OSDCC_ReadCtrl() & OS_DCC_COMM_CTRL_WR) == 0) {
            reg_val = (OS_DCC_CONFIG | OS_DCC_SIGNATURE);
                                                     /* Read a single byte                             */
            if ((OSDCC_Cmd & OS_DCC_OP_READ_U8) != 0) {
                reg_val = *(INT8U *)OSDCC_Addr;
                OSDCC_Addr += 1;
            }
                                                     /* Read two bytes                                 */
            if ((OSDCC_Cmd & OS_DCC_OP_READ_U16) != 0) {
                reg_val = *(INT16U *)OSDCC_Addr;
                OSDCC_Addr += 2;
            }
                                                     /* Read four bytes                                */
            if ((OSDCC_Cmd & OS_DCC_OP_READ_U32) != 0) {
                reg_val = *(INT32U *)OSDCC_Addr;
                OSDCC_Addr += 4;
            }

            OSDCC_Write(reg_val);                    /* Place data in the comms data write register    */
            OSDCC_ItemCnt--;                         /* Decrement the number of items to be read       */
        }
    }
}

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人综合婷婷国产精品久久蜜臀| 午夜精品久久久久久不卡8050| 国产在线精品一区二区不卡了| 日韩一区二区三区免费看 | 欧美日韩亚洲综合在线| 亚洲成人一二三| 在线成人av影院| 精品一区二区免费在线观看| 国产午夜精品一区二区| 99久久久精品| 日日夜夜精品视频天天综合网| 欧美一区二区三区四区五区| 国产一区二区免费看| 国产精品乱人伦一区二区| 欧美综合一区二区三区| 久久精品国产99国产精品| 国产免费成人在线视频| 色综合久久综合网欧美综合网 | 欧美日本韩国一区二区三区视频| 日韩av在线发布| 国产精品毛片无遮挡高清| 99国产精品一区| 奇米色一区二区| 国产精品超碰97尤物18| 欧美精品亚洲二区| 国产激情一区二区三区| 亚洲综合精品久久| 国产午夜亚洲精品午夜鲁丝片| 色偷偷久久人人79超碰人人澡| 美女在线一区二区| 亚洲色图制服诱惑 | 亚洲精品在线观看网站| 91婷婷韩国欧美一区二区| 日本欧美肥老太交大片| 国产精品国产三级国产三级人妇| 777午夜精品免费视频| 99久久精品一区| 久久精品国产999大香线蕉| 亚洲日本一区二区| 精品国产伦一区二区三区免费| 99热精品一区二区| 激情综合亚洲精品| 爽爽淫人综合网网站| 亚洲欧美国产77777| 欧美精品一区二区三区在线| 欧美日韩一区国产| 99久久国产综合色|国产精品| 麻豆精品在线观看| 亚洲成人免费视频| 亚洲欧美日韩一区| 中文字幕一区二区三区四区不卡 | 久久亚洲精品小早川怜子| 欧美午夜片在线看| av不卡免费电影| 国精品**一区二区三区在线蜜桃| 性做久久久久久久免费看| 亚洲免费观看高清完整| 国产精品天天摸av网| 337p日本欧洲亚洲大胆精品| 欧美草草影院在线视频| 欧美精品亚洲一区二区在线播放| 色噜噜狠狠一区二区三区果冻| jlzzjlzz国产精品久久| 国产成人综合在线观看| 国内精品伊人久久久久影院对白| 日韩精品成人一区二区在线| 一区二区三区.www| 亚洲精品成a人| 一区二区三区四区乱视频| 亚洲欧洲日产国产综合网| 国产精品美女久久久久高潮| 中文字幕乱码日本亚洲一区二区| 国产亚洲成aⅴ人片在线观看| 久久精品亚洲乱码伦伦中文| 欧美精品一区二区三区很污很色的| 日韩欧美自拍偷拍| 久久亚洲精华国产精华液| 精品久久久久久久一区二区蜜臀| 欧美一级日韩不卡播放免费| 欧美一级欧美三级在线观看| 欧美高清dvd| 日韩一区二区三区在线| 26uuu色噜噜精品一区| 26uuu国产日韩综合| 久久精品一区二区三区不卡牛牛| 日本一区二区三区在线观看| 国产精品三级电影| 亚洲欧洲成人自拍| 亚洲精品高清在线| 午夜免费欧美电影| 日韩精品欧美成人高清一区二区| 日韩成人免费在线| 黄一区二区三区| 成人av综合一区| 91麻豆免费看片| 欧美午夜精品理论片a级按摩| 日韩视频123| 欧美国产精品一区| 亚洲乱码国产乱码精品精可以看 | 美女视频黄久久| 国产裸体歌舞团一区二区| 不卡av在线网| 欧美色电影在线| 精品国产91洋老外米糕| 国产欧美一区视频| 一区二区三区高清| 狠狠色丁香久久婷婷综合_中| 成人av影视在线观看| 欧美日韩国产综合视频在线观看| 亚洲精品在线三区| 亚洲另类色综合网站| 奇米亚洲午夜久久精品| 成人激情免费网站| 777午夜精品免费视频| 日本一区二区免费在线观看视频| 一区二区三区av电影| 国产在线不卡视频| 在线播放一区二区三区| 久久久午夜精品理论片中文字幕| 国产精品美女久久久久aⅴ| 五月婷婷另类国产| 成人一区二区在线观看| 欧美主播一区二区三区| 久久久三级国产网站| 亚洲在线观看免费| 成人高清视频在线观看| 欧美videos大乳护士334| 亚洲黄色小说网站| 懂色av中文字幕一区二区三区 | 精品1区2区在线观看| 亚洲精品一二三| 国产激情精品久久久第一区二区| 欧美日韩电影在线播放| 国产精品美日韩| 狠狠狠色丁香婷婷综合激情| 欧美日韩国产精品成人| 国产精品久久久久久亚洲毛片| 久久国产精品一区二区| 欧美日韩高清不卡| 亚洲欧美日韩在线不卡| 国产风韵犹存在线视精品| 欧美日韩精品一区二区在线播放| 国产精品传媒视频| 国产精品99久久久久久有的能看 | 久久精品国产在热久久| 91成人网在线| 成人欧美一区二区三区白人 | 五月婷婷综合在线| 一本久久a久久精品亚洲| 国产精品视频看| 国产福利精品导航| 久久这里只有精品首页| 免费成人在线网站| 欧美日韩国产成人在线91| 亚洲福利一区二区三区| 色菇凉天天综合网| 一区二区三区精品在线观看| 成人sese在线| 亚洲人成在线播放网站岛国 | 国产宾馆实践打屁股91| 久久综合视频网| 精品亚洲成a人| 精品福利一区二区三区| 国产美女精品在线| 久久久久久免费毛片精品| 国产精品一区二区果冻传媒| 久久一留热品黄| 国产一区二区三区免费在线观看 | av不卡一区二区三区| 国产精品国产三级国产aⅴ无密码| 成人app网站| 亚洲欧美国产三级| 欧美伊人精品成人久久综合97| 一区二区三区日韩欧美精品| 在线观看一区二区视频| 亚洲第一久久影院| 欧美一区二区三区免费视频| 久久99久久99小草精品免视看| 日韩一区二区三区四区| 国内精品国产成人| 中文一区二区在线观看| 91天堂素人约啪| 亚洲午夜激情网页| 日韩一区二区在线看| 国内精品国产三级国产a久久| 久久精品视频免费| 成人av电影在线网| 亚洲国产综合91精品麻豆| 日韩欧美国产成人一区二区| 国产真实乱对白精彩久久| 国产精品免费网站在线观看| 91福利在线播放| 蜜臀91精品一区二区三区| 久久综合给合久久狠狠狠97色69| 丁香桃色午夜亚洲一区二区三区| 亚洲女性喷水在线观看一区| 制服丝袜在线91| 高清成人免费视频| 丝袜亚洲另类欧美综合| 中文字幕不卡三区|