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

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

?? queue.bak

?? 基于ARM7處理器的中斷與串口在ucos下切換的演示程序
?? BAK
?? 第 1 頁 / 共 2 頁
字號(hào):
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機(jī)發(fā)展有限公司
**                                     研    究    所
**                                        產(chǎn)品一部 
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: queue.c
**創(chuàng)   建   人: 陳明計(jì)
**最后修改日期: 2003年7月2日
**描        述: 數(shù)據(jù)隊(duì)列的中間件
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創(chuàng)建人: 陳明計(jì)
** 版  本: v1.0
** 日 期: 2003年7月2日
** 描 述: 原始版本
**
**--------------當(dāng)前版本修訂------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define IN_QUEUE
#include "config.h"
extern char RcvSendBuf[];
/*********************************************************************************************************
** 函數(shù)名稱: QueueCreate
** 功能描述: 初始化數(shù)據(jù)隊(duì)列
** 輸 入: Buf      :為隊(duì)列分配的存儲(chǔ)空間地址
**         SizeOfBuf:為隊(duì)列分配的存儲(chǔ)空間大小(字節(jié))
**         ReadEmpty:為隊(duì)列讀空時(shí)處理程序
**         WriteFull:為隊(duì)列寫滿時(shí)處理程序
** 輸 出: NOT_OK:參數(shù)錯(cuò)誤
**         QUEUE_OK:成功
** 全局變量: 無
** 調(diào)用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計(jì)
** 日 期: 2003年7月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 QueueCreate(void *Buf,
                          uint32 SizeOfBuf,
                          uint8 (* ReadEmpty)(),
                          uint8 (* WriteFull)()
                          )
{
    DataQueue *Queue;
    
    if (Buf != NULL && SizeOfBuf >= (sizeof(DataQueue)))        /* 判斷參數(shù)是否有效 */
    {
        Queue = (DataQueue *)Buf;

        OS_ENTER_CRITICAL();
                                                                /* 初始化結(jié)構(gòu)體數(shù)據(jù) */
        Queue->MaxData = (SizeOfBuf - (uint32)(((DataQueue *)0)->Buf)) / 
                         sizeof(QUEUE_DATA_TYPE);               /* 計(jì)算隊(duì)列可以存儲(chǔ)的數(shù)據(jù)數(shù)目 */
	    myprintf("maxdata:%d\r\n",Queue->MaxData);
        Queue->End = Queue->Buf + Queue->MaxData;               /* 計(jì)算數(shù)據(jù)緩沖的結(jié)束地址 */
        Queue->Out = Queue->Buf;
        Queue->In = Queue->Buf;
        Queue->NData = 0;
        Queue->ReadEmpty = ReadEmpty;
        Queue->WriteFull = WriteFull;
		Queue->MaxData = (SizeOfBuf - (uint32)(((DataQueue *)0)->Buf)) / 
                         sizeof(QUEUE_DATA_TYPE); 

        OS_EXIT_CRITICAL();
		myprintf("sizeof:%d  MaxData:%d Queue:%d\r\n",SizeOfBuf,Queue->MaxData,(uint32)(((DataQueue*)0)->Buf));
		myprintf("in:%i   out:%i  end :%i  ndata:%i\r\n",(uint32)(Queue->In),(uint32)(Queue->Out),(uint32)(Queue->End),Queue->NData);

        return QUEUE_OK;
    }
    else
    {
        return NOT_OK;
    }
}

/*********************************************************************************************************
** 函數(shù)名稱: QueueRead
** 功能描述: 獲取隊(duì)列中的數(shù)據(jù)
** 輸 入: Ret:存儲(chǔ)返回的消息的地址
**         Buf:指向隊(duì)列的指針
** 輸 出: NOT_OK     :參數(shù)錯(cuò)誤
**         QUEUE_OK   :收到消息
**         QUEUE_EMPTY:無消息
** 全局變量: 無
** 調(diào)用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計(jì)
** 日 期: 2003年7月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 QueueRead(QUEUE_DATA_TYPE *Ret, void *Buf)
{
    uint8 err;
    DataQueue *Queue;

    err = NOT_OK;
    if (Buf != NULL)                                            /* 隊(duì)列是否有效 */
    {                                                           /* 有效 */
        Queue = (DataQueue *)Buf;
        
        OS_ENTER_CRITICAL();
        
        if (Queue->NData > 0)                                   /* 隊(duì)列是否為空 */
        {                                                       /* 不空         */
            *Ret = Queue->Out[0];                               /* 數(shù)據(jù)出隊(duì)     */
            Queue->Out++;                                       /* 調(diào)整出隊(duì)指針 */
            if (Queue->Out >= Queue->End)
            {
                Queue->Out = Queue->Buf;
            }
            Queue->NData--;                                     /* 數(shù)據(jù)減少      */
            err = QUEUE_OK;
        }
        else
        {                                                       /* 空              */
            err = QUEUE_EMPTY;
            if (Queue->ReadEmpty != NULL)                       /* 調(diào)用用戶處理函數(shù) */
            {
                err = Queue->ReadEmpty(Ret, Queue);
            }
        }
        OS_EXIT_CRITICAL();
    }
    return err;
}

/*********************************************************************************************************
** 函數(shù)名稱: QueueWrite
** 功能描述: FIFO方式發(fā)送數(shù)據(jù)
** 輸 入: Buf :指向隊(duì)列的指針
**         Data:消息數(shù)據(jù)
** 輸 出: NOT_OK   :參數(shù)錯(cuò)誤
**         OS_Q_FULL:隊(duì)列滿
**         OS_Q_OK  :發(fā)送成功
** 全局變量: 無
** 調(diào)用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計(jì)
** 日 期: 2003年7月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef EN_QUEUE_WRITE
#define EN_QUEUE_WRITE      0
#endif

#if EN_QUEUE_WRITE > 0

        uint8 QueueWrite(void *Buf, QUEUE_DATA_TYPE Data)
{
    uint8 err;
    DataQueue *Queue;

    err = NOT_OK;
    if (Buf != NULL)                                                    /* 隊(duì)列是否有效 */
    {
        Queue = (DataQueue *)Buf;
        
        OS_ENTER_CRITICAL();
        
        if (Queue->NData < Queue->MaxData)                              /* 隊(duì)列是否滿  */
        {                                                               /* 不滿        */
            Queue->In[0] = Data;                                        /* 數(shù)據(jù)入隊(duì)    */
            Queue->In++;                                                /* 調(diào)整入隊(duì)指針*/
            if (Queue->In >= Queue->End)
            {
                Queue->In = Queue->Buf;
            }
            Queue->NData++;                                             /* 數(shù)據(jù)增加    */
            err = QUEUE_OK;
        }
        else
        {                                                               /* 滿           */
            err = OS_Q_FULL;
            if (Queue->WriteFull != NULL)                               /* 調(diào)用用戶處理函數(shù) */
            {
                err = Queue->WriteFull(Queue, Data, Q_WRITE_MODE);
            }
        }
        OS_EXIT_CRITICAL();
    }
    return err;
}
#endif

/*********************************************************************************************************
** 函數(shù)名稱: QueueWriteFront
** 功能描述: LIFO方式發(fā)送數(shù)據(jù)
** 輸 入: Buf:指向隊(duì)列的指針
**         Data:消息數(shù)據(jù)
** 輸 出: OS_Q_FULL:隊(duì)列滿
**         OS_Q_OK:發(fā)送成功
** 全局變量: 無
** 調(diào)用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計(jì)
** 日 期: 2003年7月2日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef EN_QUEUE_WRITE_FRONT
#define EN_QUEUE_WRITE_FRONT    0
#endif

#if EN_QUEUE_WRITE_FRONT > 0

        uint8 QueueWriteFront(void *Buf, QUEUE_DATA_TYPE Data)
{
    uint8 err;
    DataQueue *Queue;

    err = NOT_OK;
    if (Buf != NULL)                                                    /* 隊(duì)列是否有效 */
    {
        Queue = (DataQueue *)Buf;
        
        OS_ENTER_CRITICAL();
        
        if (Queue->NData < Queue->MaxData)                              /* 隊(duì)列是否滿  */
        {                                                               /* 不滿 */
            Queue->Out--;                                               /* 調(diào)整出隊(duì)指針 */
            if (Queue->Out < Queue->Buf)
            {
                Queue->Out = Queue->End - 1;
            }
            Queue->Out[0] = Data;                                       /* 數(shù)據(jù)入隊(duì)     */
            Queue->NData++;                                             /* 數(shù)據(jù)數(shù)目增加 */
            err = QUEUE_OK;
        }
        else
        {                                                               /* 滿           */
            err = OS_Q_FULL;
            if (Queue->WriteFull != NULL)                               /* 調(diào)用用戶處理函數(shù) */
            {
                err = Queue->WriteFull(Queue, Data, Q_WRITE_FRONT_MODE);
            }
        }
        OS_EXIT_CRITICAL();
    }
    return err;
}

#endif

/*********************************************************************************************************
** 函數(shù)名稱: QueueNData
** 功能描述: 取得隊(duì)列中數(shù)據(jù)數(shù)
** 輸 入: Buf:指向隊(duì)列的指針
** 輸 出: 消息數(shù)
** 全局變量: 無
** 調(diào)用模塊: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
**
** 作 者: 陳明計(jì)
** 日 期: 2003年7月2日
**-------------------------------------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区免费在线观看| 韩国成人在线视频| 北条麻妃国产九九精品视频| 精品裸体舞一区二区三区| 日本麻豆一区二区三区视频| 日韩一区二区免费电影| 久久99精品久久久久久动态图| 欧美成人艳星乳罩| 国产一区二区看久久| 久久久亚洲综合| av亚洲产国偷v产偷v自拍| 综合久久一区二区三区| 欧美日韩在线综合| 国内久久精品视频| 国产精品久久久久久久久免费丝袜| 黄色精品一二区| 亚洲天堂免费看| 777欧美精品| 高清日韩电视剧大全免费| 中文字幕一区免费在线观看| 欧美三级电影在线观看| 久久99精品久久久久久国产越南| 国产精品久久久久久久午夜片| 色婷婷久久综合| 国产一区二区在线看| 性做久久久久久免费观看欧美| 久久久国产午夜精品| 欧美精品九九99久久| 粉嫩aⅴ一区二区三区四区| 同产精品九九九| 麻豆成人综合网| 亚洲激情五月婷婷| 久久精品欧美日韩| 在线综合视频播放| 色狠狠av一区二区三区| 成人午夜电影网站| 国产尤物一区二区| 美女视频黄久久| 高清国产一区二区| 精品午夜久久福利影院| 男人的天堂亚洲一区| 亚洲一区二区在线播放相泽| 亚洲日本在线a| 亚洲色图色小说| 国产精品久久精品日日| 国产视频视频一区| 国产女人18水真多18精品一级做| 欧美精品一区二区三区在线播放| 欧美一区二区三区日韩视频| 91精品国产综合久久国产大片| 欧美日韩和欧美的一区二区| 欧美伊人久久久久久午夜久久久久| 欧美影院一区二区三区| 制服.丝袜.亚洲.中文.综合| 日韩三级高清在线| 久久精品欧美一区二区三区麻豆| 中文字幕不卡一区| 洋洋av久久久久久久一区| 亚洲国产美女搞黄色| 欧美a级理论片| 国产精品 日产精品 欧美精品| 成人性视频免费网站| 欧美日韩一区二区在线视频| 欧美va天堂va视频va在线| 欧美精品一区在线观看| 国产精品久久久久一区二区三区共| 亚洲精品国产视频| 91在线国内视频| 欧美老肥妇做.爰bbww视频| 精品国产凹凸成av人导航| **欧美大码日韩| 日本网站在线观看一区二区三区| 国产一区不卡在线| 欧美三级中文字幕在线观看| 精品国产网站在线观看| 亚洲女同ⅹxx女同tv| 美国欧美日韩国产在线播放| 在线精品视频一区二区| 久久婷婷一区二区三区| 日韩精品每日更新| 成人美女视频在线观看18| 日韩欧美你懂的| 丝袜亚洲另类欧美| 91网址在线看| 国产精品久久久一区麻豆最新章节| 天堂av在线一区| 欧美日韩精品一区二区三区蜜桃 | 精品日韩在线一区| 亚洲综合丁香婷婷六月香| 国产成人午夜精品5599 | 日本韩国精品一区二区在线观看| 国产亚洲欧美色| 国产成人av一区二区三区在线| 欧美成人综合网站| 国产真实乱子伦精品视频| 欧美mv日韩mv国产网站app| 免费精品视频在线| 日韩片之四级片| 久久99久久久欧美国产| 2020国产成人综合网| 国产精品白丝jk白祙喷水网站| 国产日韩欧美制服另类| 国产伦精品一区二区三区免费| 精品国产欧美一区二区| 成人精品免费网站| 洋洋av久久久久久久一区| 欧美日韩精品一区二区天天拍小说| 香蕉加勒比综合久久| 欧美一级午夜免费电影| 国内精品免费在线观看| 国产农村妇女精品| 欧美性受极品xxxx喷水| 精品一区二区三区免费观看 | 69堂成人精品免费视频| 国产一区二区女| 一区视频在线播放| 91精品国产一区二区三区蜜臀| 精品在线一区二区| 亚洲免费看黄网站| 久久男人中文字幕资源站| 色综合久久88色综合天天6| 日韩高清欧美激情| 亚洲欧美乱综合| 国产日韩欧美不卡| 日韩一区二区在线看| 一本一道久久a久久精品| 国内精品在线播放| 成人免费毛片片v| 免费在线看成人av| 一区二区免费在线播放| 国产日韩欧美在线一区| 日韩午夜精品视频| 91国产免费看| www.亚洲激情.com| 国产成人精品网址| 国产一二精品视频| 日本高清不卡aⅴ免费网站| 国产一区二区不卡在线| 久久超碰97中文字幕| 五月婷婷综合网| 视频一区二区中文字幕| 一区二区三区在线免费观看| 日本一区二区成人| 国产精品久久久久影视| 亚洲图片另类小说| 中文字幕欧美一| 中文字幕一区日韩精品欧美| 自拍偷在线精品自拍偷无码专区| 中文字幕日本不卡| 亚洲国产欧美在线| 美国十次综合导航| 国产一区欧美一区| 成人av影视在线观看| 91黄色激情网站| 3d动漫精品啪啪一区二区竹菊| 91精品国产一区二区| 国产亚洲一区二区三区在线观看| 欧美xxxxxxxx| 国产精品欧美一区喷水| 亚洲精品欧美激情| 午夜精品久久久久久久99水蜜桃 | 欧美午夜片在线观看| 日韩精品在线看片z| 国产精品久久久爽爽爽麻豆色哟哟 | 国产夫妻精品视频| 91在线国内视频| 日韩精品一区在线| 一区二区三区日韩欧美| 精品一区二区三区免费| 色综合天天综合网天天狠天天| 欧美日韩国产一级片| 国产校园另类小说区| 亚洲成人精品一区二区| 成人一区二区在线观看| 7878成人国产在线观看| 国产精品电影一区二区| 国产一区福利在线| 91精品欧美福利在线观看| 最新不卡av在线| 成人性生交大合| 26uuu国产日韩综合| 日韩精品乱码av一区二区| 一本到不卡免费一区二区| 国产日韩欧美精品电影三级在线| 日韩av网站在线观看| 欧美精品tushy高清| 一区二区三区在线观看动漫| 国产成人aaa| 国产精品视频一二| 99这里都是精品| 日本一区二区三级电影在线观看 | 美女一区二区在线观看| 在线电影欧美成精品| 日产国产高清一区二区三区| 欧美日韩一级大片网址| 午夜精品久久久久久不卡8050| 欧美夫妻性生活| 日韩在线一区二区三区| 日韩午夜电影av| 久久er99精品|