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

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

?? probe_com.c

?? 飛思卡爾HCS12的OS移植(ucosII),實現了三個任務,IDE:CODEWARRIOR
?? C
?? 第 1 頁 / 共 5 頁
字號:
#endif


/*
*********************************************************************************************************
*                                         ProbeCom_TelemetryInit()
*
* Description : Initialize telemetry buffer pools.
*
* Argument(s) : none.
*
* Return(s)   : none.
*
* Caller(s)   : ProbeCom_Init().
*
* Note(s)     : none.
*********************************************************************************************************
*/

#if (PROBE_COM_SUPPORT_TELEMETRY == DEF_TRUE)
static  void  ProbeCom_TelemetryInit (void)
{
    CPU_INT08U                i;
    PROBE_COM_TELEMETRY_BUF  *pbuf;


                                                                /* ---------------- INIT TELEMETRY TBL ---------------- */
                                                                /* Init-clr telemetry pool.                             */
    ProbeCom_TelemetryFreePoolPtr = (PROBE_COM_TELEMETRY_BUF *)0;
    ProbeCom_TelemetryRdyPoolPtr  = (PROBE_COM_TELEMETRY_BUF *)0;

    pbuf = &ProbeCom_TelemetryBufTbl[0];
    for (i = 0; i < PROBE_COM_TELEMETRY_NBR; i++) {             /* Free each vol to pool.                               */
                                                                /* Init doubly-linked list.                             */
        pbuf->PrevBufPtr = (void     *)0;
        pbuf->NextBufPtr = (void     *)ProbeCom_TelemetryFreePoolPtr;

        pbuf->ID         = (CPU_INT32U)0;
        pbuf->Timestamp  = (CPU_INT32U)0;
        pbuf->BufLen     = (CPU_INT16U)0;
        pbuf->BufIx      = (CPU_INT16U)0;

        if (ProbeCom_TelemetryFreePoolPtr != (PROBE_COM_TELEMETRY_BUF *)0) {
            ProbeCom_TelemetryFreePoolPtr->PrevBufPtr = (void *)pbuf;
        }
        ProbeCom_TelemetryFreePoolPtr = pbuf;
        pbuf++;
    }

    ProbeCom_TelemetryBufNbrFree = PROBE_COM_TELEMETRY_NBR;
    ProbeCom_TelemetryBufNbrRdy  = 0;
}
#endif


/*
*********************************************************************************************************
*********************************************************************************************************
**                                  STATIC PACKET-HANDLING FUNCTIONS
*********************************************************************************************************
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                         ProbeCom_PktModifier()
*
* Description : Get packet modfier byte.
*
* Argument(s) : none.
*
* Return(s)   : The modifier byte.
*
* Caller(s)   : Various command handlers (ProbeCom_Cmd????()).
*
* Note(s)     : none.
*********************************************************************************************************
*/

static  CPU_INT08U  ProbeCom_PktModifier (void)
{
    CPU_INT08U  mod;


    mod = PROBE_COM_MODIFIER_NONE;

#if (PROBE_COM_SUPPORT_STR == DEF_TRUE)
    if (ProbeCom_StrRdy() == DEF_TRUE) {
        DEF_BIT_SET(mod, PROBE_COM_MODIFIER_STR_HAVE);
    }
#endif

#if (PROBE_COM_SUPPORT_TELEMETRY == DEF_TRUE)
    if (ProbeCom_TelemetryRdy() == DEF_TRUE) {
        DEF_BIT_SET(mod, PROBE_COM_MODIFIER_TELEMETRY_HAVE);
    }
#endif

    return (mod);
}


/*
*********************************************************************************************************
*                                           ProbeCom_CmdErr()
*
* Description : Formulate error response when the target receives a request it cannot handle.
*
* Argument(s) : ptx_buf      Pointer to the transmit buffer
*
*               comm_err     Error that occurred
*
* Return(s)   : The number of bytes written to the tx buffer.
*
* Caller(s)   : Various command handlers (ProbeCom_Cmd????()).
*
* Note(s)     : (1) The TX format:
*
*                   (A) A 2-byte format  , indicating the data segment format;
*                   (B) A 1-byte constant, PROBE_RS232_OK,   if the location can    be read;
*                       A 1-byte constant, PROBE_RS232_FAIL, if the location cannot be read.
*                   (C) A 1-byte modifier.
*
*                         +-------------------------+------------+------------+
*                         |          Format         |   Status   |  Modifier  |
*                         +-------------------------+------------+------------+
*********************************************************************************************************
*/

static  CPU_INT16U  ProbeCom_CmdErr (CPU_INT08U  *ptx_buf,
                                     CPU_INT08U   comm_err)
{
#if (PROBE_COM_STAT_EN == DEF_ENABLED)
    ProbeCom_ErrPktCtr++;
#endif

    ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_TX_ERROR);       /* TX pkt format.                                  */
    ProbeCom_StoINT8U( &ptx_buf, comm_err);                     /* Target status.                                  */
    ProbeCom_StoINT8U( &ptx_buf, ProbeCom_PktModifier());       /* Modifier.                                       */
    return (PROBE_COM_SIZE_TX_HDR);                             /* Rtn TX data segment size =  4 (= Tx hdr size).  */
}


/*
*********************************************************************************************************
*                                           ProbeCom_CmdQuery()
*
* Description : Parse the FMT_QUERY command & formulate response.  This command asks the target
*               about its capabilities, which are returned in response.
*
* Argument(s) : prx_buf         Pointer to the receive  buffer
*
*               ptx_buf         Pointer to the transmit buffer
*
*               rx_pkt_size     Size of the receive  packet
*
*               tx_buf_size     Size of the transmit buffer
*
* Return(s)   : The number of bytes written to the tx buffer.
*
* Caller(s)   : ProbeCom_ParseRxPkt().
*
* Note(s)     : (1) The RX format:
*
*                   (A) A 2-byte format, indicating the data segment format;
*                   (B) A 2-byte query , indicating the query type.
*
*                         +-------------------------+-------------------------+
*                         |          Format         |          Query          |
*                         +-------------------------+-------------------------+
*
*              (2) The TX format:
*
*                   (A) A 2-byte format, indicating the data segment format;
*                   (B) A 1-byte status, indicating the status after the request;
*                   (C) A 1-byte modifier;
*                   (E) A n-byte answer, the answer to the query.
*
*                         +-------------------------+------------+------------+
*                         |          Format         |   Status   |  Modifier  |
*                         +-------------------------+------------+------------+
*                         |                       Answer                      |
*                         |                         .                         |
*                         |                         .                         |
*                         |                         .                         |
*                         +---------------------------------------------------+
*
*********************************************************************************************************
*/

static  CPU_INT16U  ProbeCom_CmdQuery (CPU_INT08U  *prx_buf,
                                       CPU_INT08U  *ptx_buf,
                                       CPU_INT16U   rx_pkt_size,
                                       CPU_INT16U   tx_buf_size)
{
    CPU_INT16U  query;
    CPU_INT16U  nbytes;
    CPU_INT32U  version;


    query  = 0;
    nbytes = 0;

                                                                /* ------------------- CHK PKT SIZE ------------------- */
                                                                /* Expected size =  2 (= Rx header size)                */
                                                                /*               +  2 (= Query         ).               */
    if (rx_pkt_size != 4) {
        return (ProbeCom_CmdErr(ptx_buf, PROBE_COM_STATUS_RX_PKT_WRONG_SIZE));
    }

                                                                /* ------------------- HANDLE QUERY ------------------- */
    query = ProbeCom_GetINT16U(&prx_buf);                       /* Read the query.                                      */

    switch (query) {
        case PROBE_COM_QUERY_MAX_RX_SIZE:
        case PROBE_COM_QUERY_MAX_TX_SIZE:
        case PROBE_COM_QUERY_FMT_SUPPORT:
        case PROBE_COM_QUERY_ENDIANNESS_TEST:
             break;

        default:
             return (ProbeCom_CmdErr(ptx_buf, PROBE_COM_STATUS_QUERY_NOT_SUPPORTED));
    }

                                                                /* Store TX pkt header :                                */
    ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_TX_QUERY);       /*  (a) TX pkt format.                                  */
    ProbeCom_StoINT8U( &ptx_buf, PROBE_COM_STATUS_OK);          /*  (b) Target status.                                  */
    ProbeCom_StoINT8U( &ptx_buf, ProbeCom_PktModifier());       /*  (c) Modifier.                                       */

                                                                /* Store TX data segment data.                          */
    switch (query) {

        case PROBE_COM_QUERY_MAX_RX_SIZE:
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_RX_MAX_SIZE);
             ProbeCom_StoINT16U(&ptx_buf, 0);
             nbytes  = 4;
             break;

        case PROBE_COM_QUERY_MAX_TX_SIZE:
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_TX_MAX_SIZE);
             ProbeCom_StoINT16U(&ptx_buf, 0);
             nbytes  = 4;
             break;

        case PROBE_COM_QUERY_FMT_SUPPORT:
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_QUERY      );
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_INFO       );
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_SIMPLE_RD  );
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_MULTIPLE_RD);
             nbytes  = 8;
#if (PROBE_COM_SUPPORT_WR == DEF_TRUE)
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_SIMPLE_WR  );
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_MULTIPLE_WR);
             nbytes += 4;
#endif
#if (PROBE_COM_SUPPORT_STR == DEF_TRUE)
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_STR_RD);
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_STR_WR);
             nbytes += 4;
#endif
#if (PROBE_COM_SUPPORT_TELEMETRY == DEF_TRUE)
             ProbeCom_StoINT16U(&ptx_buf, PROBE_COM_FMT_RX_TELEMETRY_GET);
             nbytes += 2;
#endif
             break;

        case PROBE_COM_QUERY_ENDIANNESS_TEST:
             ProbeCom_EndiannessTest = 0x12345678;
             Mem_Copy((void     *) ptx_buf,
                      (void     *)&ProbeCom_EndiannessTest,
                      (CPU_SIZE_T) 4);
             nbytes  = 4;
             break;


        case PROBE_COM_QUERY_VERSION:
             version = PROBE_COM_VERSION;
             Mem_Copy((void     *) ptx_buf,
                      (void     *)&version,
                      (CPU_SIZE_T) 4);
             nbytes  = 4;
             break;

        default:
             nbytes  = 0;
             break;
    }

                                                                /* ------------------ RTN TX PKT SIZE ----------------- */
    return ((CPU_INT16U)(nbytes + PROBE_COM_SIZE_TX_HDR));      /* TX pkt size = nbytes (= Tx data   size)              */
                                                                /*             + 4      (= Tx header size).             */
}


/*
*********************************************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久亚洲综合网| 国产日韩精品一区| 久久亚洲精精品中文字幕早川悠里| 精品国产一区二区三区忘忧草 | 精品欧美乱码久久久久久1区2区| 国产欧美综合色| 一区二区三区四区蜜桃| 美美哒免费高清在线观看视频一区二区| 麻豆国产欧美日韩综合精品二区 | 久久夜色精品国产欧美乱极品| 中文字幕乱码日本亚洲一区二区| 亚洲最新在线观看| 粉嫩aⅴ一区二区三区四区| 欧美色男人天堂| 国产人伦精品一区二区| 天天综合网天天综合色 | 亚洲国产精品v| 日韩国产欧美一区二区三区| 久久精品久久精品| 色爱区综合激月婷婷| 久久精品人人做人人综合 | 岛国精品一区二区| 日韩欧美亚洲国产另类| 亚洲综合丁香婷婷六月香| 麻豆精品一区二区综合av| 一本一本大道香蕉久在线精品| 日韩写真欧美这视频| 樱桃视频在线观看一区| 国产精品一二一区| 精品日产卡一卡二卡麻豆| 午夜精品一区二区三区三上悠亚| 不卡在线观看av| 久久久久久久久久久久久女国产乱 | 国产三级一区二区三区| 国产精品亚洲专一区二区三区| 日韩美女视频一区二区在线观看| 蜜桃av噜噜一区| 精品乱人伦一区二区三区| 国产在线精品免费av| 久久久蜜桃精品| 国产超碰在线一区| 国产精品国产成人国产三级| 99久久综合99久久综合网站| 国产精品麻豆久久久| 9l国产精品久久久久麻豆| 亚洲激情av在线| 欧美日韩高清一区二区三区| 日韩成人精品在线观看| 久久婷婷国产综合精品青草| 国产99久久久国产精品| 亚洲视频小说图片| 欧美做爰猛烈大尺度电影无法无天| 亚洲国产精品久久久久婷婷884| 欧美日韩一区成人| 久久福利视频一区二区| 欧美激情在线观看视频免费| 91麻豆.com| 免费国产亚洲视频| 中文字幕国产一区| 欧美日韩一区二区三区不卡 | 97se亚洲国产综合自在线观| 午夜婷婷国产麻豆精品| 精品国产1区2区3区| 99视频精品在线| 青青草原综合久久大伊人精品优势| 欧美videos大乳护士334| 成人精品高清在线| 性做久久久久久久免费看| 精品国产一二三| 色哟哟精品一区| 精品一区二区在线播放| 亚洲视频免费观看| 日韩欧美在线影院| 在线视频一区二区三| 国精产品一区一区三区mba视频| 亚洲色大成网站www久久九九| 日韩一级大片在线观看| 91麻豆国产香蕉久久精品| 精品一区二区免费看| 一区二区三区加勒比av| 久久亚洲欧美国产精品乐播| 在线观看日韩国产| 国产不卡视频一区二区三区| 日本亚洲视频在线| 一区二区高清免费观看影视大全 | 欧美日韩专区在线| 99国产精品视频免费观看| 久久福利资源站| 日韩国产成人精品| 亚洲国产视频网站| 亚洲丝袜另类动漫二区| 国产女同互慰高潮91漫画| 欧美一级二级在线观看| 一本到一区二区三区| 成人av在线播放网站| 国产ts人妖一区二区| 久久国产剧场电影| 日本不卡不码高清免费观看| 亚洲国产一区二区三区青草影视| 亚洲同性gay激情无套| 国产精品美女久久久久久久| 欧美大片在线观看一区二区| 88在线观看91蜜桃国自产| 欧美日本一区二区在线观看| 91久久精品网| 日本精品视频一区二区三区| 成人av免费观看| av一区二区久久| 91免费在线视频观看| 成a人片亚洲日本久久| av电影在线观看一区| 成人黄色电影在线| av高清不卡在线| eeuss影院一区二区三区| 福利一区二区在线| 成人亚洲一区二区一| 成人精品在线视频观看| 成人高清在线视频| 色综合久久天天| 欧美色综合天天久久综合精品| 色哟哟国产精品免费观看| 欧美综合一区二区三区| 欧美午夜精品久久久久久超碰 | 亚洲成人在线网站| 日韩制服丝袜先锋影音| 日韩成人dvd| 久久精品噜噜噜成人av农村| 精品亚洲国产成人av制服丝袜| 久久国产人妖系列| 成人免费毛片嘿嘿连载视频| 成人aaaa免费全部观看| 在线观看网站黄不卡| 欧美区在线观看| 日韩色在线观看| 国产午夜精品久久久久久久| 亚洲日本一区二区| 性欧美疯狂xxxxbbbb| 美女在线观看视频一区二区| 国产在线播放一区三区四| 成人aa视频在线观看| 欧美日产在线观看| 久久久久久久免费视频了| 综合激情网...| 日韩福利视频导航| 处破女av一区二区| 在线亚洲免费视频| 日韩欧美自拍偷拍| 成人欧美一区二区三区视频网页| 亚洲一区二区三区中文字幕| 韩国午夜理伦三级不卡影院| 99精品欧美一区二区三区小说| 欧美在线制服丝袜| 日韩一区二区三区电影| 中文字幕在线不卡国产视频| 午夜欧美在线一二页| 成人午夜精品一区二区三区| 欧美电影一区二区三区| 国产精品拍天天在线| 日本少妇一区二区| www.亚洲在线| 欧美zozozo| 婷婷成人激情在线网| 成人av网站在线| 日韩久久久久久| 亚洲综合一区二区| 成人黄色片在线观看| 精品国产区一区| 午夜精品影院在线观看| 成人av免费在线| 久久综合久久鬼色中文字| 午夜精品久久久久久久99樱桃| 波多野结衣亚洲一区| 精品国产凹凸成av人导航| 午夜伊人狠狠久久| 在线视频你懂得一区二区三区| 国产日韩欧美高清| 免费亚洲电影在线| 欧美日韩国产一区| 亚洲欧美区自拍先锋| 国产91露脸合集magnet| 精品少妇一区二区三区视频免付费 | 国产三区在线成人av| 美国精品在线观看| 欧美日韩国产小视频在线观看| 亚洲欧洲三级电影| 成人一区二区视频| 日本一区二区三区在线观看| 国产一区高清在线| 欧美成人免费网站| 青青国产91久久久久久| 欧美日韩国产经典色站一区二区三区| 136国产福利精品导航| 丁香天五香天堂综合| 久久久国产精品麻豆| 国产一本一道久久香蕉| 精品久久一区二区三区| 精品一区二区在线播放| 久久色.com| 东方欧美亚洲色图在线| 国产午夜亚洲精品午夜鲁丝片|