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

freertos和rtos區別是什么
RTOS的特性和類型
簡單認識RTOS實時操作系統
ESP8266_RTOS_SDK編譯錯誤的原因?
RTOS SDK v. 1.5編譯錯誤的原因?
為什么RTOS SDK的Rom指針比非OS SDK少?
keil用c++編譯含有rtos模塊時的錯誤問題怎么解決?
帶你認識實時操作系統(rtos)

評論