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

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

?? os_view.c

?? 移植到freescale 9s12系列單片機(jī)的uCOSII
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
        case 't':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdGetTaskInfo();
             break;

        case 'l':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdGetTaskList();
             break;

        case 'S':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdTickStep();
             break;

        case 'T':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdTrace();
             break;

        case 'b':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdMemRdINT8U();
             break;

        case 'w':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdMemRdINT16U();
             break;

        case 0:
             OSView_TxStoINT8U(cmd0);
             OSView_CmdMemRdINT32U();
             break;

        case '1':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdMemWrINT8U();
             break;

        case '2':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdMemWrINT16U();
             break;

        case '4':
             OSView_TxStoINT8U(cmd0);
             OSView_CmdMemWrINT32U();
             break;

        default:
             break;
    }
    return (OSView_TxBufCnt);
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                         (Send to Application)
*
* Description: This routine transfers a character to the application.
*********************************************************************************************************
*/

static  void  OSView_CmdSendToApp (void)
{
    INT8U  rx_data;


    rx_data = OSView_RxGetINT8U();                               /* Read data typed at terminal                */
    if ((void *)OSView_TerminalRxCallbackFnct != (void *)0) {    /* See if callback is defined                 */
        (*OSView_TerminalRxCallbackFnct)(rx_data);               /* Pass character received to application     */
    }
}


/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                        (Get System Information)
*********************************************************************************************************
*/

static  void  OSView_CmdGetSysInfo (void)
{
    INT8U   s[OS_VIEW_CPU_NAME_SIZE+1];
    INT8U   i;
    INT32U  stk_base;
    INT32U  stk_size;
    INT32U  time;


    time = OSTimeGet();                                     /* Send current value of tick counter              */
    OSView_TxStoINT32U(time);
    OSView_TxStoPtr(OSTCBCur);                              /* Current task's OS_TCB                           */
    OSView_TxStoINT16U(OS_VERSION);                         /* Send uC/OS-II's version number                  */
    OSView_TxStoINT8U(1);                                   /* Indicate profiling information will be sent     */

    for (i = 0; i < OS_VIEW_CPU_NAME_SIZE; i++) {           /* Clear buffer to help with debug.                */
        s[i] = 0x00;
    }
    OSView_GetCPUName(s);                                   /* Get Processor Name in string 's'                */
    OSView_TxStoStr(s, OS_VIEW_CPU_NAME_SIZE);

    stk_base = OSView_GetIntStkBase();                      /* Interrupt stack base from port specific file    */
    OSView_TxStoINT32U(stk_base);

    stk_size = OSView_GetIntStkSize();                      /* Interrupt stack size from port specific file    */
    OSView_TxStoINT32U(stk_size);
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                            (Get Task List)
*********************************************************************************************************
*/

static  void  OSView_CmdGetTaskList (void)
{
    INT8U   prio;
    OS_TCB *ptcb;


    OSView_TxStoINT8U('t');                                 /* Identifier for data type                        */
    for (prio = 0; prio <= OS_LOWEST_PRIO; prio++) {
        ptcb = OSTCBPrioTbl[prio];
        if (ptcb != (OS_TCB *)0 && ptcb != (OS_TCB *)1) {   /* Does task exist? (Not a Mutex reserved task)    */
            OSView_TxStoINT32U((INT32U)ptcb);               /* Yes, send the task's TCB address                */
        }
    }
}

/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                         (Get Task Information)
*********************************************************************************************************
*/

static  void  OSView_CmdGetTaskInfo (void)
{
    OS_TCB  *ptcb;
    INT32U   cycles;
    INT8U    stat;


    ptcb   = (OS_TCB *)OSView_RxGetINT32U();                         /* Get the desired task's TCB address     */
    cycles = OSView_TimeGetCycles();                                 /* Get timestamp                          */
    OSView_TxStoINT32U(cycles);
    if (ptcb != (OS_TCB *)0 && ptcb != (OS_TCB *)1) {                /* Make sure we have a valid TCB pointer  */
        if (ptcb == OSTCBCur) {
            ptcb->OSTCBCyclesTot  += cycles - ptcb->OSTCBCyclesStart;
            ptcb->OSTCBCyclesStart = cycles;
        }
        OSView_TxStoStr(ptcb->OSTCBTaskName, OS_TASK_NAME_SIZE - 1); /* Task name                              */
        OSView_TxStoINT8U(ptcb->OSTCBPrio);                          /* Prio                                   */
        stat = OSView_CmdGetTaskInfo_TCBStat(ptcb);                  /* Task status                            */
        OSView_TxStoINT8U(stat);
        OSView_TxStoINT32U((INT32U)ptcb->OSTCBEventPtr);             /* Pointer to event task is waiting for.  */
        OSView_TxStoINT32U((INT32U)ptcb->OSTCBDly);                  /* Timeout (i.e. ticks of delayed task)   */
        OSView_TxStoINT32U(ptcb->OSTCBCyclesTot);                    /* ExecTime                               */
        OSView_TxStoINT32U(ptcb->OSTCBCtxSwCtr);                     /* NumActivations                         */

        OSView_TxStoINT32U((INT32U)ptcb->OSTCBStkBase);              /* Stack base address                     */
        OSView_TxStoINT32U(ptcb->OSTCBStkSize * sizeof(OS_STK));     /* Stack size (in #bytes)                 */
        OSView_TxStoINT32U(ptcb->OSTCBStkUsed);                      /* Number of bytes used                   */
        OSView_TxStoINT32U((INT32U)ptcb->OSTCBStkPtr);               /* Current stack pointer address          */
    } else {
        OSView_CmdGetTaskInfo_InvalidTask();
    }
    OSView_TxStoINT16U((INT16U)OSTimeGet());
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                             (Invalid Task)
*********************************************************************************************************
*/

static  void  OSView_CmdGetTaskInfo_InvalidTask (void)
{
    OSView_TxStoStr((INT8U *)"INVALID TASK!", 30);          /* Task name                                       */
    OSView_TxStoINT8U(0);                                   /* Prio                                            */
    OSView_TxStoINT8U(0);                                   /* Stat                                            */
    OSView_TxStoINT32U(0);                                  /* Data                                            */
    OSView_TxStoINT32U(0);                                  /* Timeout                                         */
    OSView_TxStoINT32U(0);                                  /* StackBase                                       */
    OSView_TxStoINT32U(0);                                  /* StackSize                                       */
    OSView_TxStoINT32U(0);                                  /* #Bytes used on stack                            */
    OSView_TxStoINT32U(0);                                  /* Current SP address                              */
    OSView_TxStoINT32U(0);                                  /* ExecTime                                        */
    OSView_TxStoINT32U(0);                                  /* NumActivations                                  */
}

/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                         (Get ptcb->OSTCBStat)
*********************************************************************************************************
*/

static  INT8U  OSView_CmdGetTaskInfo_TCBStat (OS_TCB *ptcb)
{
    INT8U stat;


    if (ptcb->OSTCBStat != OS_STAT_RDY) {
        stat = ptcb->OSTCBStat;
    } else {
        if (ptcb->OSTCBDly > 0) {                           /* Task status                                     */
            stat = 0xF0;
        } else {
            stat = ptcb->OSTCBStat;
        }
    }
    return (stat);
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                              (Memory)
*********************************************************************************************************
*/

static  void  OSView_CmdMemRdINT8U (void)
{
    INT32U addr;
    INT8U  nbytes;


    addr   = OSView_RxGetINT32U();
    nbytes = OSView_RxGetINT8U();
    while (nbytes--) {
        OSView_TxStoINT8U(*(INT8U *)addr);
        addr++;
    }
}


static  void  OSView_CmdMemRdINT16U (void)
{
    INT32U addr;
    INT8U  nbytes;


    addr   = OSView_RxGetINT32U();
    nbytes = OSView_RxGetINT8U();
    while (nbytes--) {
        OSView_TxStoINT16U(*(INT16U *)addr);
        addr += 2;
    }
}


static  void  OSView_CmdMemRdINT32U (void)
{
    INT32U addr;
    INT8U  nbytes;


    addr   = OSView_RxGetINT32U();
    nbytes = OSView_RxGetINT8U();
    while (nbytes--) {
        OSView_TxStoINT32U(*(INT32U *)addr);
        addr += 4;
    }
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                           (Write Functions)
*********************************************************************************************************
*/

static  void  OSView_CmdMemWrINT8U (void)
{
    INT8U *p;


    p    = (INT8U *)OSView_RxGetINT32U();
    (*p) = OSView_RxGetINT8U();
}


static  void  OSView_CmdMemWrINT16U (void)
{
    INT16U *p;


    p    = (INT16U *)OSView_RxGetINT32U();
    (*p) = OSView_RxGetINT16U();
}


static  void  OSView_CmdMemWrINT32U (void)
{
    INT32U *p;


    p    = (INT32U *)OSView_RxGetINT32U();
    (*p) = OSView_RxGetINT32U();
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                          (Tick Step command)
*********************************************************************************************************
*/

static  void  OSView_CmdTickStep (void)
{
#if OS_TICK_STEP_EN > 0
    INT8U sub_cmd;


    sub_cmd = OSView_RxGetINT8U();
    switch (sub_cmd) {
        case 0:                                             /* Enable stepping                                 */
             OSTickStepState = OS_TICK_STEP_WAIT;
             break;

        case 1:                                             /* Disable stepping, let tick ISR handle the ticks */
             OSTickStepState = OS_TICK_STEP_DIS;
             break;

        case 2:                                             /* Simulate the occurrence of one tick             */
             OSTickStepState = OS_TICK_STEP_ONCE;
             break;
    }
#endif
}

/*
*********************************************************************************************************
*                                       uC/OS-View COMMAND HANDLER
*                                             (Trace command)
*
* Note(s): Command not currently supported.
*********************************************************************************************************
*/

static  void  OSView_CmdTrace (void)
{
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                              Rx Handler
*
* Description: This routine is called from the Rx interrupt service handler.
*********************************************************************************************************
*/

void  OSView_RxHandler (INT8U rx_data)
{
    OSView_RxCtr++;
    switch (OSView_RxState) {
        case OS_VIEW_RX_STATE_SD0:                          /* waiting for start first  start delimiter (SD0)  */
             if (rx_data == OS_VIEW_PROTOCOL_RX_SD0) {
                 OSView_RxState = OS_VIEW_RX_STATE_SD1;
                 OSView_RxBufClr();
             }
             break;

        case OS_VIEW_RX_STATE_SD1:                          /* waiting for start second start delimiter (SD1)  */
             if (rx_data == OS_VIEW_PROTOCOL_RX_SD1) {
                 OSView_RxState = OS_VIEW_RX_STATE_LEN;
             } else {
                 OSView_RxState = OS_VIEW_RX_STATE_SD0;
             }
             break;

        case OS_VIEW_RX_STATE_LEN:                          /* waiting for 'len' byte                          */
             if ((rx_data == 0x00) | (rx_data > OS_VIEW_RX_BUF_SIZE)) {
                 OSView_RxState  = OS_VIEW_RX_STATE_SD0;    /* Can not handle this size ...                    */
             } else {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频国产一区| 国产精品日韩精品欧美在线| 色欧美日韩亚洲| 99国产精品国产精品毛片| 国产高清一区日本| 粉嫩在线一区二区三区视频| 国产suv一区二区三区88区| 国产黄色91视频| 不卡视频在线观看| 91视频www| 色丁香久综合在线久综合在线观看| 不卡av在线免费观看| 一本到不卡免费一区二区| 色成年激情久久综合| 欧美日韩中文一区| 7777精品久久久大香线蕉| 亚洲欧美日韩精品久久久久| 中文无字幕一区二区三区| 国产精品国产三级国产aⅴ无密码| 亚洲国产高清在线| 亚洲精品久久久久久国产精华液| 洋洋成人永久网站入口| 污片在线观看一区二区| 久久99精品网久久| 处破女av一区二区| 日本精品视频一区二区| 欧美疯狂性受xxxxx喷水图片| 欧美成人乱码一区二区三区| 亚洲第一av色| 亚洲高清免费一级二级三级| 日本成人在线电影网| 国产一区在线观看麻豆| 波多野结衣在线aⅴ中文字幕不卡| 99视频超级精品| 欧美三级中文字| 26uuu亚洲综合色| 中文字幕在线观看一区| 亚洲国产视频在线| 黄色精品一二区| 91丨九色丨国产丨porny| 欧美日韩国产乱码电影| 久久久国产精品不卡| 亚洲欧美日韩综合aⅴ视频| 日韩电影在线观看电影| 国产成人自拍在线| 欧美视频中文字幕| 久久亚洲二区三区| 一区二区三区91| 狠狠色丁香久久婷婷综| 91免费观看视频在线| 欧美电视剧在线看免费| 日韩毛片视频在线看| 人人爽香蕉精品| 成人激情电影免费在线观看| 欧美久久久影院| 中文字幕不卡在线观看| 三级欧美韩日大片在线看| 成人网在线免费视频| 宅男噜噜噜66一区二区66| 国产精品国产自产拍高清av王其| 午夜久久久久久电影| 成人综合在线观看| 日韩欧美一级精品久久| 亚洲美女屁股眼交| 国产精品一区专区| 这里是久久伊人| 亚洲黄色性网站| 国产成人在线免费| 欧美一区二区三区爱爱| 亚洲自拍偷拍图区| 国产盗摄精品一区二区三区在线| 91精品国产综合久久久蜜臀图片| 国产精品久久久久一区二区三区共 | 91黄色激情网站| 久久众筹精品私拍模特| 五月激情六月综合| 色先锋aa成人| 中文字幕在线一区| 高清不卡一区二区在线| 欧美va在线播放| 日日欢夜夜爽一区| 欧美午夜影院一区| 精品一区二区在线看| 欧洲av在线精品| 中文字幕在线播放不卡一区| 国产精品资源在线看| 91麻豆精品国产无毒不卡在线观看| 亚洲猫色日本管| 96av麻豆蜜桃一区二区| 中文字幕va一区二区三区| 久久国产精品露脸对白| 欧美一区二区不卡视频| 日韩精品电影在线观看| 欧美日韩激情一区二区| 亚洲在线免费播放| 在线一区二区观看| 亚洲欧美电影院| 91美女视频网站| 亚洲色图欧洲色图婷婷| 91一区二区在线| 亚洲人吸女人奶水| 91色视频在线| 亚洲黄一区二区三区| 日本乱码高清不卡字幕| 一区二区三区在线观看欧美| 91色视频在线| 亚洲国产另类精品专区| 精品视频在线视频| 丝袜美腿亚洲一区| 制服视频三区第一页精品| 日本欧美在线观看| 日韩精品影音先锋| 国产精品综合网| 国产精品青草久久| 91在线国产福利| 亚洲乱码日产精品bd| 欧美亚洲另类激情小说| 首页亚洲欧美制服丝腿| 日韩欧美aaaaaa| 国产精品99久久久久久宅男| 国产精品区一区二区三区| www.成人网.com| 亚洲综合在线电影| 在线综合视频播放| 国产精品88888| 亚洲欧洲在线观看av| 欧美性猛交xxxx乱大交退制版| 亚洲va在线va天堂| 精品福利在线导航| 成人丝袜18视频在线观看| 一级特黄大欧美久久久| 3751色影院一区二区三区| 国产在线精品国自产拍免费| 国产精品私人自拍| 欧美日韩中文国产| 国产一区在线看| 亚洲欧美另类久久久精品2019| 欧美日韩免费视频| 国产麻豆成人传媒免费观看| 日韩1区2区日韩1区2区| 精品国产91乱码一区二区三区 | 久久先锋影音av| 99久久伊人精品| 日韩中文字幕一区二区三区| 26uuu久久天堂性欧美| 99re亚洲国产精品| 日产国产高清一区二区三区| 中文字幕精品一区二区精品绿巨人| 色域天天综合网| 久久se这里有精品| 日韩理论片一区二区| 欧美一区二区三区免费在线看 | 99精品视频一区| 日日摸夜夜添夜夜添国产精品| 国产日韩欧美制服另类| 欧美日韩午夜在线视频| 国产mv日韩mv欧美| 日本亚洲一区二区| 中文字幕视频一区| 日韩精品一区二区三区swag| 色综合久久88色综合天天免费| 久草在线在线精品观看| 亚洲三级在线观看| 精品福利视频一区二区三区| 欧洲色大大久久| 成人午夜精品一区二区三区| 日韩精品电影一区亚洲| 亚洲免费在线视频一区 二区| 欧美本精品男人aⅴ天堂| 欧美综合色免费| 不卡av电影在线播放| 蜜臀av在线播放一区二区三区| 亚洲欧美日韩一区二区三区在线观看| 日韩精品一区二区三区四区 | 69精品人人人人| 色综合久久99| 成人午夜视频网站| 韩国精品主播一区二区在线观看| 亚洲123区在线观看| 亚洲天堂2014| 中文av一区二区| 欧美精品一区二区三区在线播放| 欧美日本精品一区二区三区| 色婷婷av一区二区三区软件| 国产69精品一区二区亚洲孕妇| 欧美a一区二区| 水蜜桃久久夜色精品一区的特点| 亚洲精品五月天| 亚洲国产成人午夜在线一区| 久久亚洲私人国产精品va媚药| 日韩一区二区三免费高清| 欧美日韩一区二区三区四区五区| 一本大道久久a久久综合婷婷| www.欧美色图| av在线一区二区三区| 成人av片在线观看| 成人av网站免费| 99久久久久久99| 91麻豆国产在线观看| 91视频在线观看|