10月底我們與Weston-embedded和Embedded office專家們成功舉辦μC/OS實時操作系統(tǒng)系列技術線上講座。
第二講是由麥克泰軟件技術總監(jiān)張愛華主講的μC/OS-II 和 μC/OS-III 內核原理,我們課后整理匯總了一些問答,方便學員以及感興趣的朋友了解μC/OS,下面就來一起看看有沒有你想了解的!
Q是否有μC/OS移植相關的參考資料?
A將μC/OS移植到具體的處理器,需要了解處理器的寄存器現(xiàn)場,堆棧處理方式,以實現(xiàn)正確的任務現(xiàn)場保存;需基于處理器匯編指令架構實現(xiàn)任務的上下文切換工作。
建議新手基于官方提供的開發(fā)例程,通過分析相同架構的處理器移植代碼,完成移植、驗證工作。
QμC/OS-III中沒有消息郵箱,那用什么服務替代?
A郵箱相當于長度為1的消息隊列,μC/OS-III中可以使用隊列服務替代郵箱的應用場景。
QμC/OS支持創(chuàng)建相同優(yōu)先級的任務嗎?
AμC/OS-III提供時間片輪詢算法,允許創(chuàng)建相同優(yōu)先級的任務。μC/OS-II僅支持搶占調度算法,任務必須設置獨立的優(yōu)先級別。
QμC/OS中如何實現(xiàn)低功耗?
A用戶任務阻塞時,μC/OS會運行最低優(yōu)先級的系統(tǒng)任務,即空閑任務。空閑任務執(zhí)行一個無限循環(huán),每次循環(huán)調用OSTaskIdleHook()。為了節(jié)省空閑任務的功耗,可以在hook函數(shù)中配置處理器工作在低功耗模式。μC/OS-III為滿足低功耗應用場景需求,增加了tickless模式和動態(tài)節(jié)拍模式。
Q使用μC/OS-II切換為μC/OS-III,要注意什么?
A將應用從μC/OS-II升級到μC/OS-III需要完成的工作。
Q內核配置是配置哪些內容?
AμC/OS配置文件的內容涉及具體應用需要的系統(tǒng)服務,支持的任務/優(yōu)先級等信息,獲取各個配置項的具體信息。
Q支持多核嗎?
A目前μC/OS還不支持SMP架構運行。
Q有支持cpu任務負載統(tǒng)計嗎?有棧大小的估計方法和自動化分析工具?
AμC/OS提供了統(tǒng)計任務,跟蹤任務的CPU利用率。用戶可以借助IDE提供的內核感知插件,可視化分析工具等獲取任務相關的信息。一些IDE提供了堆棧使用分析,可以幫助確定每個任務需要多少堆棧空間。還可以借助RTOS的可視化分析工具,如Tracealyzer,在運行時監(jiān)控堆棧使用情況,優(yōu)化任務堆棧設置。
Q內核怎樣訪問任務列表?
AμC/OS應用中定義了一個數(shù)據結構,即任務控制塊TCB,保存任務的關鍵信息,如優(yōu)先級,任務堆棧等,通過內核提供的全局變量,訪問列表結構,管理所有任務。具體內容可以參閱內核調度原理。
Q同等優(yōu)先級任務有分時間片執(zhí)行嗎?
AμC/OS-III中同等優(yōu)先級可以配置不同的時間片長度,在任務創(chuàng)建時設置。
QμC/OS-III有提供空間隔離和時間隔離嗎?
AμC/OS-III暫時沒有發(fā)布MPU版本,不支持空間隔離實現(xiàn)。μC/OS-II有提供空間隔離和時間監(jiān)控的版本,具體信息可以訪問https://www.embedded-office.com/products/flexible-safety-rtos。
QμC/OS-II還會繼續(xù)維護么?
AWeston Embedded Solutions公司負責μC/OS-II的更新及商業(yè)服務,關于版本更新信息。
QμC/OS有相關RISC-V架構的移植么?
AμC/OS支持RISC-V的移植示例,可以訪問
https://github.com/weston-embedded/uC-OS3/tree/develop/Ports/RISC-V/RV32/GCC
https://github.com/RISCV-on-Microsemi-FPGA/uCOS
Q浮點寄存器是默認任務切換時都進行保護和恢復嗎?
A如果處理器支持FPU,那移植代碼中包含對浮點寄存器的保護和恢復設置,這部分代碼通過配置開關控制,默認情況下不使能包含。
Q空閑任務里運行什么代碼?可以放功能進去嗎?
A空閑任務是一個空循環(huán),μC/OS-III中的實現(xiàn)如下:
用戶可以在OSIdleTaskHook()函數(shù)中增加用戶功能,注意,空閑任務不能調用阻塞服務函數(shù)。
QNKA KA中斷類型是什么意思?OS中斷向量表重定向了嗎?
ANKA指Non-kernel aware中斷,無需內核參與的中斷。KA指Kernel Aware中斷,即受OS管理的中斷。中斷處理方式不同。無需內核參與的中斷處理方式與裸機系統(tǒng)相同。受OS管理的中斷服務中,需要通知OS,示意代碼如下:
審核編輯:湯梓紅
-
內核
+關注
關注
3文章
1372瀏覽量
40289 -
移植
+關注
關注
1文章
379瀏覽量
28132 -
RTOS
+關注
關注
22文章
813瀏覽量
119636
原文標題:μC/OS實時RTOS技術線上講座匯總問答②
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論