瑞芯微3568開發板實時作業系統

ningmengzier發表於2022-10-09
在工業4.0時代,人工智慧和工業物聯網的發展走上了快車道,越來越多的行業對實時作業系統有了更加迫切的需求。基於此,飛凌嵌入式推出了在OK3568-C開發板   飛凌嵌入式官網-ARM嵌入式核心板、開發板、工控機、微控制器解決方案-專注智慧裝置核心平臺研發與製造 - 保定飛凌嵌入式技術有限公司    上執行的實時作業系統,本文中小編將為大家介紹飛凌嵌入式在OK3568-C開發板上實現實時性的方式,以及實時核心的效果測試。


瑞芯微3568開發板實時作業系統
1
為什麼選擇實時作業系統 ?


我們都知道,作業系統可以分為實時作業系統和分時作業系統。分時作業系統其實就是將系統處理機時間與記憶體空間按一定的時間間隔輪流地切換給各終端使用者的程式使用。目前市面上絕大多數板卡上執行的Linux系統都是分時作業系統。

但是隨著自動駕駛、智慧機器人等行業的興起,對板載作業系統的實時性也提出了更高的要求。這時候,分時系統就無法滿足某些對實時性要求較高的行業的需求了,必須對Linux系統進行改進,使其具有更好的實時性,以順應行業的發展。


瑞芯微3568開發板實時作業系統
編輯 切換為居中



例如無人駕駛技術,系統需要根據複雜的路況情況及時做出分析判斷,做出反應,執行剎車或變道操作;又比如車載安全氣囊,在遇到突發事故時,系統必須第一時間做出反應彈出安全氣囊,保護車內乘客人身安全。這些實際應用場景都離不開實時作業系統。

2
如何實現“實時性” ?


Linux系統可以採用打補丁的方式來實現“實時性”。RT-Linux就是在Linux的基礎上加入了一個實時補丁,從而將Linux改進成實時作業系統。簡單地說,“實時補丁”的主要工作就是針對Linux系統的優先順序倒置、自旋鎖等問題進行改進,以達到實時作業系統的要求。

基於這個思路,我們就可以透過對核心打實時補丁的方法讓OK3568-C開發板上的Linux系統滿足實時性的需求。

飛凌提供了兩個補丁檔案:
0001-patch-patch-4.19.206-rt87.patch-fix-kernel-sched-cor.patch 0002-fix-kernel-sched-core.c.patch

將兩個補丁檔案複製到原始碼/OK3568-linux-source/kernel路徑下,執行以下命令:
patch-p1 <0001-patch-patch-4.19.206-rt87.patch-fix-kernel-sched-cor.patch patch-p1 < 0002-fix-kernel-sched-core.c.patch

然後,在原始碼執行./build.sh kernel命令,即可在/OK3568-linux-source/kernel目錄下生成boot.img映象檔案。

客戶也可以直接單步燒寫飛凌製作完成的boot.img映象檔案。

使用Type-C線連線開發板和主機,按住recover鍵不鬆開,然後再按reset鍵系統復位,大約兩秒後鬆開recover鍵。系統將提示發現一個loader裝置。

瑞芯微3568開發板實時作業系統
編輯 切換為居中
新增圖片註釋,不超過 140 字(可選)


點選“裝置分割槽表”按鈕,將自動讀取分割槽地址。

瑞芯微3568開發板實時作業系統
編輯 切換為居中
新增圖片註釋,不超過 140 字(可選)


點選左側勾選boot分割槽。

瑞芯微3568開發板實時作業系統
編輯 切換為居中
新增圖片註釋,不超過 140 字(可選)


最後,點選右側選擇您編譯生成的boot映象檔案路徑,點選“執行”按鈕將自動燒寫並重新啟動。

想要了解有關實時補丁的詳細資料,您可以在公眾號留言聯絡飛凌嵌入式銷售工程師。

3
實時核心效果測試


測試實時性的關鍵指標便是“延時”,延時指的是不論系統執行在程式碼的什麼位置,當事件發生時,系統響應該事件的時間。

其中 中斷延時指的是中斷觸發到中斷服務函式執行完畢的時間; 排程延時指的是程式在佇列中等待直到獲取CPU控制權被執行的時間。

實時性,也可以表現為對這兩段延時最大的容忍程度。這裡透過cyclictest軟體測量中斷延時和排程延時時間。

由於在真實的使用環境下並不能觸發最大的延時時間,因此在沒有合適負載的情況下執行cyclictest所測得的延時統計資料是沒有意義的。這裡我們採用官方提供的hackbench工具來模擬部分型別的負載,然後在此基礎上執行cyclictest軟體來測試事件發生時,系統響應該事件的時間。

先來看一下 未打實時補丁的測試結果

瑞芯微3568開發板實時作業系統
編輯 切換為居中

再來看一下 打實時補丁後的測試結果

瑞芯微3568開發板實時作業系統
編輯 切換為居中


這裡我們著重比較兩者Max得出的引數,因為系統的實時效能是由最大延時時間決定的。透過對打實時補丁前後測試結果進行對比, 打實時補丁以後,可以明顯看出延時從213μs降低到80μs以內,實時效果還是十分明顯的。(不同測試條件下的延時不同,這裡的測試結果僅供大家參考)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2917354/,如需轉載,請註明出處,否則將追究法律責任。

相關文章