您好,登錄后才能下訂單哦!
小編給大家分享一下vxworks中系統任務有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
根據配置的不同,VxWorks系統在啟動時,會同步啟動一些系統任務,其中有的任務在完成自己的工作后就會退出,而有的會一直運行下去。常見的系統任務如下:
任務名稱:tRootTask
優先級:0
棧尺寸:ROOT_STACK_SIZE,具體數值與CPU架構有關,詳見configAll.h
觸發條件:系統啟動
組件:無
描述:這是內核啟動的第一個任務,隨后它會啟動其它系統任務。任務入口是函數usrRoot(),在這個函數里初始化了系統的大部分功能。通常情況下,在初始化完其它功能后,這個任務就自己退出了。為了查看它,我們在這個任務的最后位置添加一個taskSuspend(),把它掛起來
注意:實際產品里不要掛起、刪除,或調整這些系統任務的優先級。否則會導致系統行為不可預測
任務名稱:tLogTask
優先級:0
棧尺寸:5000
觸發條件:中斷或任務里調用logMsg()
組件:INCLUDE_LOGGING
描述:用于記錄系統信息,不使用當前任務的IO
最多排隊消息數量:MAX_LOG_MSGS,默認值50
格式化參數數量:6
任務名稱:tExcTask
優先級:0
棧尺寸:EXC_TASK_STACKSIZE,默認值8192
觸發條件:中斷里調用excJobAdd()
組件:INCLUDE_EXC_TASK
描述:這個任務用于執行中斷里不方便執行的工作,因此必須使用最高優先級。可以在這個任務上排隊的工作的最多為MAX_ISR_JOBS,取值必須為2的冪,默認值為16。如果中斷里需要排隊的工作超過這個限制,就會有溢出警告"messages from interrupt levellost"
任務名稱:tJobTask
優先級:啟動時為0,根據執行的工作而動態調整
棧尺寸:JOB_TASK_STACK_SIZE,默認8000
觸發條件:其它任務提交工作
組件:INCLUDE_JOB_TASK
描述:這個任務用于執行其它任務提交的工作。它使用優先級0等待工作,在執行工作時,動態調整為提交工作的任務的優先級。主要作用之一是處理任務的自我刪除
任務名稱:tIsrN
優先級:0
棧尺寸:8192
觸發條件:設備中斷調用isrDeferJobAdd()
組件:INCLUDE_ISR_DEFER
描述:這個(組)任務用于執行設備驅動通過isrDeferJobAdd()提交的工作。名稱中的字母N表示這個任務所使用的CPU的序號,在單核環境里,那就只有tIsr0了。這組任務創建時,每個都綁定到相應序號的CPU上。多核模式的設備驅動將需要推遲的工作綁定到當前的CPU上,用于避免跨CPU調度
任務名稱:tNet0
優先級:NET_TASK_PRIORITY,默認值50
棧尺寸:NET_TASK_STACKSIZE,默認值10000
觸發條件:數據包到達,傳輸完成,網絡協議里的定時器到時,socket應用的請求,等等
組件:INCLUDE_NET_DEAMON
描述:這是網絡驅動和網絡協議的守護線程
任務名稱:tWdbTask
優先級:WDB_TASK_PRIORITY,默認值3
棧尺寸:WDB_STACK_SIZE,默認值0x2000
觸發條件:無
組件:INCLUDE_WDB
描述:WDB的target agent程序,用于處理host tool通過target server發送的請求
任務名稱:tShellN
優先級:SHELL_TASK_PRIORITY,默認值1
棧尺寸:SHELL_STACK_SIZE,默認值0x10000
觸發條件:系統啟動
組件:INCLUDE_SHELL
描述:kernel shell以任務形式存在的,可以同時啟動多個,不同的shell使用不同的序號N為名稱后綴,名稱”tShell”是通過SHELL_TASK_NAME_BASE定義的。在shell里再調用的函數會使用這個shell的上下文。
任務名稱:ipcom_telnetd
優先級:50
棧尺寸:6144
觸發條件:新的Telnet連接
組件:INCLUDE_IPTELNETS
描述:這個守護線程允許遠程用戶通過Telnet登陸VxWorks的kernel shell。它會為每個Telnet連接啟動一組任務,包括ipcom_telnetspawn,tStdioProxyhexNum,tLoginhexNum,tShellRemdecNum
等介紹了任務調度之后,我們就會發現這些系統任務的優先級都是比較高的,我們自己應用程序的優先級盡量要低一些。
等介紹了VxWorks系統的啟動流程后,我們就會知道嵌入式硬件上電后,先是執行匯編語言的初始化程序,然后跳轉到C語言的程序,然后啟動第一個任務tRootTask,然后逐步加載其它系統任務。
這些高優先級的系統任務通常都是處于Pend狀態,只有外界(應用程序或外設)需要它們時,它們才會提供相應的功能。它們整體對外的表現就是一個提供了很多功能的強大的實時操作系統。
看完了這篇文章,相信你對“vxworks中系統任務有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。