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

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

?? vxworks使用說明書.txt

?? VxWorks使用說明書
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
卸載一個加載的模塊 
Shell命令unld 
刪除任務 
Shell命令td 
復位目標機 
Shell命令reboot 
用該命令的好處:目標服務器自動與目標代理重新鏈接,Shell自動重啟 
查看任務 
在Browser對象信息窗口輸入待查看的任務名或ID 
查看信號量 
在Browser對象信息窗口輸入待查看的信號量名或ID 
查看消息隊列 
在Browser對象信息窗口輸入待查看的消息隊列命或ID 
內存分區 
在Browser對象信息窗口輸入待查看的內存分區ID 
看門狗 
在Browser對象信息窗口輸入待查看的看門狗ID 
類(class) 
在Browser對象信息窗口輸入待查看的類的ID 
查看內存使用(模塊使用內存的情況) 
Browser的內存使用窗口 
查看任務列表(系統里的所有任務) 
Browser的任務列表窗口 
查看CPU占用率 
Browser的Spy窗口 
查看堆棧使用情況 
Browser的堆棧檢查窗口 

注: 
* Shell可以通過菜單命令Debug | Shell啟動 
* Shell的原語可以通過在Shell中輸入help列出 
* Browser可以通過菜單命令Debug | Browser啟動 
* Debugger命令窗口的命令可以通過在命令窗口輸入help列出 

8、任務調試模式下的多任務調試 

在任務調試模式下,在一個集成環境中,在一個任務中調試,在另一個任務中設置斷點,設置的斷點不起作用。這是因為一個調試器只
能處理一個TCB(任務控制塊),每個任務都有一個TCB,因此一個調試器只能調試一個任務,要調試幾個任務就要啟動幾個調試器。一
個集成環境只能啟動一個調試器,所以要調試幾個任務就要啟動幾個集成環境。另外,需要在被調試的任務的待調試的第一條語句前加
入taskSuspend(0)語句,掛起該任務,否則任務就可能會在調試前被執行。 

下面是多任務調試的測試用例的源代碼 
/* VxWorks includes */ 
#include        "vxWorks.h" 
#include        "taskLib.h" 
#include        "stdio.h" 
#include        "msgQLib.h" 

int g_lTaskATid; 
int g_lTaskBTid; 
MSG_Q_ID g_MsgQ1id; 
MSG_Q_ID g_MsgQ2id; 

void MultiTaskTestTaskA(void)  
{ 
    char cMsgToTaskB[100]; 
    char cMsgFromTaskB[100]; 

    sprintf(cMsgToTaskB,"To TaskB \n"); 

    printf(" Hello from MultiTaskTestTaskA \n"); 

    /*start point of debugging for  MultiTaskTestTaskA*/ 
    taskSuspend(0); 
     
    for(;;) 
    {     
        printf(" Hello from MultiTaskTestTaskA \n"); 

        /*Send message to MultiTaskTestTaskB*/ 
             
       msgQSend(g_MsgQ1id,cMsgToTaskB,sizeof(cMsgToTaskB),WAIT_FOREVER,MSG_PRI_NORMAL);  

        /*Receive message from MultiTaskTestTaskB*/ 
        msgQReceive(g_MsgQ2id,cMsgFromTaskB,100,WAIT_FOREVER); 
        printf("%s",cMsgFromTaskB); 
    } 
     
} 

void MultiTaskTestTaskB(void)   
{ 
    char cMsgToTaskA[100]; 
    char cMsgFromTaskA[100]; 

    sprintf(cMsgToTaskA,"To TaskA \n"); 

    printf(" Hello from MultiTaskTestTaskB \n"); 

    /*start point of debugging for  MultiTaskTestTaskA*/ 
    taskSuspend(0); 

    for(;;) 
    { 
        printf(" Hello from MultiTaskTestTaskB \n"); 
         
        /*Send message to MultiTaskTestTaskA*/ 
        msgQSend(g_MsgQ2id,cMsgToTaskA,sizeof(cMsgToTaskA),WAIT_FOREVER,                  MSG_PRI_NORMAL);  

        /*Receive message from MultiTaskTestTaskA*/ 
        msgQReceive(g_MsgQ1id,cMsgFromTaskA,100,WAIT_FOREVER); 
        printf("%s",cMsgFromTaskA); 
    } 
} 


/*This function spawns MultiTaskTestTaskA and MultiTaskTestTaskB , creates g_MsgQ1id and g_MsgQ2id , is entry for 
debugging.*/ 
void  MultiTaskTestInit(void) 
{ 
    printf(" Hello from MultiTaskTestInit \n"); 

    g_MsgQ1id=msgQCreate(20,100,MSG_Q_FIFO); 
    if(g_MsgQ1id==NULL) 
    { 
        printf(" ERROR: create g_MsgQ1 error \n"); 
    } 

    g_MsgQ2id=msgQCreate(20,100,MSG_Q_FIFO); 
    if(g_MsgQ1id==NULL) 
    { 
        printf(" ERROR: create g_MsgQ2 error \n"); 
    } 
  
     
    printf(" Spawning a new task called MultiTaskTestTaskA \n\n"); 
    g_lTaskATid = taskSpawn("MultiTaskTestTaskA", 100,0,10000,                                                                                          (FUNCPTR)MultiTaskTestTaskA, 0,0,0,0,0,0,0,0,0,0); 
    if(g_lTaskATid == ERROR) 
    {  
        printf(" ERROR: task did not spawn \n"); 
        exit(1); 
    } 

    printf(" Spawning a new task called MultiTaskTestTaskB  
\n"); 
    g_lTaskBTid = taskSpawn("MultiTaskTestTaskB", 100,0,10000,                                                                                           (FUNCPTR)MultiTaskTestTaskB, 0,0,0,0,0,0,0,0,0,0);                                                              
   if(g_lTaskBTid == ERROR) 
    {  
        printf(" ERROR: task did not spawn \n"); 
        exit(1); 
    } 
  
  exit(0); 
} 

多任務調試步驟: 
* 用-g選項編譯源代碼產生目標文件 
* 下載產生的目標文件 
* 在MultiTaskTestInit函數的開始設置斷點 
* 把MultiTaskTestInit設置為調試任務的人口函數 
* 單步執行產生MultiTaskTestTaskA任務的語句后可以在串口(超級終端)上看到字符串Hello from MultiTaskTestTaskA,用Browser
查看任務,可以看到任務MultiTaskTestTaskA出于掛起態(suspended),表明程序執行了taskSuspend(0)語句。 
* 運行另一個Tornado集成環境 
* Attach任務MultiTaskTestTaskA, 
* 在語句msgQReceive(g_MsgQ2id,cMsgFromTaskB,100,WAIT_FOREVER)的下一條語句處設置斷點 
* 運行任務MultiTaskTestTaskA。可以看到沒有執行到斷點處,用Browser查看任務狀態,MultiTaskTestTaskA出于阻塞態(pended),
因為它在等待消息。 
* 單步執行MultiTaskTestInit到產生MultiTaskTestTaskB任務的下一條語句,可以看到MultiTaskTestTaskB任務處于掛起態 
* 再運行另一個Tornado集成環境 
* Attach任務MultiTaskTestTaskB, 
* 在語句msgQReceive(g_MsgQ1id,cMsgFromTaskA,100,WAIT_FOREVER)下一條語句處設置斷點 
* 運行任務MultiTaskTestTaskB。可以看到執行到斷點處停下。這是因為MultiTaskTestTaskA任務已經發送一條消息到MultiTaskTestTaskB
的接收隊列中。 
* 此時,可以看到MultiTaskTestTaskA任務也運行到斷點處,因為為MultiTaskTestTaskB任務已經發送一條消息到MultiTaskTestTaskA的
接收隊列中。  

9、系統調試模式下程序的調試 
Tornado集成環境提供兩種調試模式:任務調試模式和系統調試模式。在任務調試模式下,在一個集成環境下一個時間內只能調試一個任務。
調試只影響當前被調試的任務,其它任務正常運行。在系統調試模式下,可以同時調試多個任務、中斷服務程序(ISR),調試影響整個
系統。 
Tornado1.0集成環境下,在系統模式下進行程序調試,主機與目標機之間必須使用串口通信。Tornado2.0集成環境提供了通過網口進行系
統模式調試的功能。 
系統缺省使用網口通信,如果需要使用串口通信,需要修改文件C: \ Tornado \ target \ config  
} all \ configAll.h的一些宏定義,修改為: 
#define WDB_COMM_TYPE        WDB_COMM_SERIAL   /*使用串口通信*/ 
#define WDB_TTY_CHANNEL    0                                         /*使用第一個串口*/ 
#define WDB_TTY_BAUD          38400                                 /*波特率:38400bps*/ 

重新編譯鏈接vxWorks。 
在啟動目標服務器時,要選擇串口通信,并進行相應配置。 

9.1 系統調試模式下多任務的調試: 
調試使用的源代碼與任務調試模式中使用的代碼相同。但是,需要去掉為了能夠在任務調試模式下進行多任務調試的MultiTaskTestTaskA
和MultiTaskTestTaskB中的語句taskSuspend(0);。 

多任務調試步驟: 
* 用-g選項編譯源代碼產生目標文件。 
* 下載產生的目標文件。 
* 在MultiTaskTestInit函數的開始設置斷點。 
* 在Debugger命令窗口輸入命令attach system進入系統調試模式。 
* 在Shell窗口輸入命令sp MultiTaskTestInit產生一個以MultiTaskTestInit為入口函數的任務,因為整個系統都停下了,新產生的任務
還沒有執行,這可以通過在Debugger命令窗口輸入命令info threads顯示當前系統中的任務列表看出來。 
* 執行菜單命令Debug | Continue繼續運行程序。 
* 系統在設置的斷點處停下。 
* 在函數MultiTaskTestTaskA中的語句msgQReceive(g_MsgQ2id,cMsgFromTaskB, 100,WAIT_FOREVER)的下一條語句處設置斷點。 
* 在函數MultiTaskTestTaskB中的語句msgQReceive(g_MsgQ1id,cMsgFromTaskA, 100,WAIT_FOREVER)的下一條語句處設置斷點。 
* 執行菜單命令Debug | Continue繼續運行程序。 
* 程序在任務MultiTaskTestTaskB中的斷點處停下(為什么不是在任務MultiTaskTestTaskA中停下?請考慮)。 
* 執行菜單命令Debug | Continue繼續運行程序。 
* 程序在任務MultiTaskTestTaskA中的斷點處停下。 
* 執行菜單命令Debug | Continue繼續運行程序。 
* 程序又一次在任務MultiTaskTestTaskA中的斷點處停下(為什么停兩次?請考慮)。 
* 執行菜單命令Debug | Continue繼續運行程序。 
* 程序在任務MultiTaskTestTaskB中的斷點處停下。 

9.2 中斷服務程序的調試 
中斷服務程序只能在系統調試模式下調試,不能在任務調試模式下調試。因為中斷服務程序是作為系統的一部分運行,不是以任務方式運
行,因此不需要為它產生任務。 

中斷服務程序調試步驟: 
* 用-g選項編譯源代碼產生目標文件。 
* 下載產生的目標文件。 
* 在MultiTaskTestInit函數的開始設置斷點。 
* 在Debugger命令窗口輸入命令attach system進入系統調試模式。 
* 執行菜單命令Debug | Continue繼續運行程序。 
* 如果產生相應的中斷,程序就會在中斷服務程序的斷點處停下。進行需要的調試。 

------------------------全文完------------------------------  



應用示例分析(demo例子程序windDemo.c) 
   通過對一具體實例的分析,對任務的創建、任務間通信、內存分配、消息管理等VxWorks系統應用更進一步的了解。 

/* windDemo - repeatedly test various kernel function */ 

/* 
modification history 
-------------------- 
02c,23aug93,jcf  fixed synchronization. 
02b,01aug93,dvs  fixed loop count printing. 
02a,18mar93,dvs  took out timer/benchmark information. 
                 ansified code. 
general cleanup of code to use as MicroWorks demo. 
01a,12nov90,shl  written. 
*/ 

/* 
DESCRIPTION 
This program repeatedly exercises different kernel facilities of  
the Wind kernel. 

The functions involved include the use of semaphores as sychronization 
and mutual exclusion primitives, the use of taskSuspend()/taskResume() for task control, the use of message queues for 
communication and the  
use of watchdogs for task timeouts. 

To exercise these kernel facilities two tasks are used, a high priority task and a low priority task. The high priority 
task executes functions with which the resources are not available. As the high priority task blocks, the low priority 
task takes over and makes available the resources that the high priority task is waiting for. This may sound simple at 
first but the underlying execution of this test program involves context switching, rescheduling of tasks, and shuffling 
of the ready queue, pend queue, and the timer queue. 

These functions are chosen because they are the most commonly used 
functions in sychronization, mutual exclusion, task control, inter-task communication and timer facilities. These are 
the basic building blocks of the operating system itself and also used in applications.  Repeatedly execution of this 
"death loop" is a good indication of how the system will perform in real-life as these functions are utiltized heavily
 in every application. 

The following is the thread of execution of this test program. 


     Higher Priority     Lower Priority 
  Task1     Task2 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产自产拍高清av王其| 91精品蜜臀在线一区尤物| 看电影不卡的网站| 五月天网站亚洲| 午夜精品免费在线| 亚洲国产成人va在线观看天堂 | 裸体健美xxxx欧美裸体表演| 亚洲国产视频在线| 日韩有码一区二区三区| 日日骚欧美日韩| 美腿丝袜亚洲一区| 国产精品夜夜嗨| www.色综合.com| 日本韩国精品在线| 欧美片网站yy| 精品国产亚洲在线| 欧美α欧美αv大片| 精品处破学生在线二十三| 久久久亚洲精华液精华液精华液| 久久久99精品久久| 亚洲青青青在线视频| 亚洲一级二级三级| 久久99蜜桃精品| 成人av在线资源| 欧美精品在线一区二区三区| 亚洲精品在线电影| 综合久久给合久久狠狠狠97色 | 日本亚洲最大的色成网站www| 麻豆精品一二三| 国产不卡在线视频| 欧美三级在线播放| 精品久久久久久亚洲综合网| 中文字幕欧美日韩一区| 亚洲成在线观看| 成人天堂资源www在线| 欧美日精品一区视频| 日韩欧美的一区| 亚洲黄网站在线观看| 免费观看一级欧美片| 99riav久久精品riav| 欧美顶级少妇做爰| 国产精品久久99| 亚洲动漫第一页| 成人免费视频视频在线观看免费 | 亚洲乱码精品一二三四区日韩在线| 香蕉成人啪国产精品视频综合网 | 一色屋精品亚洲香蕉网站| 亚洲成a人v欧美综合天堂下载| 激情深爱一区二区| 欧美日韩在线免费视频| 国产亚洲欧美中文| 久久成人综合网| 欧美人妇做爰xxxⅹ性高电影| 国产精品网站在线观看| 久久精品99国产精品| 欧美日韩亚洲综合在线| 亚洲天堂av一区| 国产v综合v亚洲欧| 久久网站最新地址| 久久aⅴ国产欧美74aaa| 欧美日韩国产大片| 亚洲美腿欧美偷拍| jlzzjlzz欧美大全| 久久久不卡网国产精品一区| 久久99精品国产.久久久久久| 欧美日韩国产综合草草| 亚洲少妇30p| 91蜜桃网址入口| 成人免费在线视频| 丁香婷婷综合五月| 欧美激情在线一区二区| 国产成人精品一区二区三区网站观看| 日韩一区二区不卡| 麻豆成人在线观看| 精品久久久影院| 极品美女销魂一区二区三区免费| 4438亚洲最大| 日韩高清一区二区| 91精品国产一区二区三区| 亚洲成av人片在线| 91精品国产品国语在线不卡| 亚洲韩国一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 日本一区二区免费在线观看视频| 欧美精品一区二区三区四区| 日韩福利电影在线| 欧美在线免费视屏| 亚洲三级电影网站| 国产成人亚洲综合色影视| 精品伊人久久久久7777人| 久久精品一区二区三区不卡牛牛| 91蝌蚪porny成人天涯| 性久久久久久久久久久久| 久久久久久久电影| 欧美一区二区三区免费视频| 波多野结衣精品在线| 美日韩黄色大片| 樱花影视一区二区| 国产欧美精品区一区二区三区| 欧美日产国产精品| 色噜噜狠狠色综合中国| 国产精品456| 国产中文字幕一区| 久久成人免费网站| 青青草91视频| 秋霞成人午夜伦在线观看| 亚洲高清久久久| 亚洲男同性视频| 亚洲精品菠萝久久久久久久| 亚洲视频一区二区免费在线观看| 国产免费观看久久| 国产女同性恋一区二区| 久久色中文字幕| 精品久久久久久久久久久院品网| 日韩欧美一级在线播放| 88在线观看91蜜桃国自产| 欧美日韩一区久久| 欧美日韩免费一区二区三区视频 | 一区二区三区欧美日韩| 最近中文字幕一区二区三区| 国产精品进线69影院| 国产精品每日更新在线播放网址 | 久久久欧美精品sm网站| 久久麻豆一区二区| 国产精品网站导航| 国产欧美日韩综合| 亚洲色图丝袜美腿| 亚洲一区二区三区四区在线观看 | 欧美午夜精品久久久久久孕妇| 色吧成人激情小说| 欧美曰成人黄网| 欧美日韩国产一级二级| 5566中文字幕一区二区电影| 欧美一级一区二区| 久久日一线二线三线suv| 欧美激情艳妇裸体舞| 亚洲日本欧美天堂| 伊人婷婷欧美激情| 丝袜亚洲另类丝袜在线| 琪琪久久久久日韩精品| 国产乱一区二区| 91蜜桃传媒精品久久久一区二区| 欧美日韩在线电影| 精品国产免费一区二区三区四区| 国产视频一区二区三区在线观看| 国产精品私人影院| 亚洲成人资源在线| 国产精品一区二区在线看| 色综合一区二区三区| 欧美日韩另类一区| 久久久不卡影院| 亚洲高清在线视频| 国产福利精品导航| 337p亚洲精品色噜噜| 欧美精品一区二区三区一线天视频| 国产精品色一区二区三区| 亚洲大片一区二区三区| 国产麻豆欧美日韩一区| 日本韩国欧美三级| 久久久亚洲精品一区二区三区| 夜夜嗨av一区二区三区中文字幕 | 久久精品日韩一区二区三区| 一区二区激情小说| 国产一区二区久久| 欧美视频完全免费看| 国产欧美日韩不卡免费| 五月天网站亚洲| 99久久国产综合色|国产精品| 日韩午夜在线观看视频| 樱花影视一区二区| 国产精品亚洲第一区在线暖暖韩国| 欧美日韩视频一区二区| 亚洲国产精品精华液2区45| 日韩av一区二区三区四区| 99国产欧美另类久久久精品| www国产精品av| 日产国产高清一区二区三区| 在线日韩一区二区| 日韩毛片精品高清免费| 国产揄拍国内精品对白| 美日韩一级片在线观看| 正在播放亚洲一区| 欧美一卡2卡3卡4卡| 亚洲激情综合网| 成人免费看的视频| 精品久久久三级丝袜| 麻豆国产91在线播放| 欧美顶级少妇做爰| 亚洲成人中文在线| 欧美视频日韩视频在线观看| 一区二区三区色| 色中色一区二区| 一区二区三区中文字幕| 色视频一区二区| 亚洲激情在线播放| 在线视频中文字幕一区二区| 亚洲狼人国产精品| 欧美色窝79yyyycom| 亚洲一区二区精品3399| 欧美主播一区二区三区|