如何給嵌入式Linux打實時補丁?
一、實時系統分類
實時系統可以分為硬實時(Safety-Critical,低延時,比如幾十個us內)和軟實時(幾百個us~幾個/幾十個ms),硬實時通常跟高確定性、可靠性要求同時出現,如果達不到,可能會造成重大生命或者財產損失,比如說航天飛控、汽車制動系統、精密儀器等都有較高的硬實時要求。對于軟實時,可靠性要求沒那么高,即使出現了延遲,造成的損失可控,比如說音頻失真,視頻不順暢。
二、已有方案
Linux 本身已經有硬實時的方案,比如來自風河的 RT Linux,或者西班牙一家研究所的 XtratuM + PartiKle,還有其他的比如 Xenomai,RTAI 等。另外,內核官方還有完全搶占內核(Preempt-RT Linux)的支持,這個在某些情況下也達到了硬實時要求,改補丁現在有OSADL維護。
然后就是各種優化,包括驅動(irq, preempt disable), spin lock 等使用,中斷函數線程化,mdelay 替換為 usleep_range() 等。優化時需要用到很多工具,比如 Ftrace, Perf, Cyclictest, Oscilloscope 等。
硬件本身的低延遲設計、可靠性設計等也會嚴重影響系統的實時性,比如說 ARM Cortex A/R/M 三系中的 R 就是專為高端嵌入式實時系統設計的,在中斷行為方面做了優化。
三、Linux RT-Preempt
飛凌FET335xD工業級核心板因為其出色的工業級品質和運行的穩定性在工業自動化及通訊、電力、軌道交通、醫療器械等多種領域受到用戶的認可。隨著市場產品競爭的不斷加劇,產品需要多樣化的優勢來體現產品價值。作為國內出貨量較大的核心板廠商,飛凌嵌入式同樣需要不斷的提升自己的產品特色以及市場競爭力,因為只有這樣,才能間接的使終端用戶的產品擁有更多的優勢。為此,飛凌的軟件工程師成功的在FET335xD工業級核心板上移植了Linux RT-Preempt版本,使用戶在不增加成本的基礎上擁有了硬實時操作系統。
飛凌移植的Linux RT-Preempt版本為3.2.88-RT126,擁有以下特點:
1、保證任務處理響應時間的確定性,線程可搶占,確保高優先級任務的響應時間,最快可達6μs
2、微秒級的任務切換時間與延遲,實測任務切換時間可達500μs,任務切換延遲在負載狀態下最大僅100μsposix標準的實時任務函數,通用性高,可移植性行強,具有高度兼容性
3、支持QT4.8.6,方便用戶界面開發
4、與普通版本Linux燒寫方式一樣,方便用戶生產與使用
5、開機啟動時間僅15秒(從上電到界面點亮)
飛凌嵌入式出品的FET335xD工業級核心板,采用TI AM3354處理器,核心板工業級標準以及雙獨立MAC千兆網,豐富的485、CAN、GPMC等多種總線接口使此款核心板本身就很非常適合工控領域,現在支持了實時操作系統Linux RT-Preempt,讓FET335xD核心板在工控領域更具適應性。可以說用戶選擇此款核心則免費獲得了實時操作系統的應用需求,不需要花費重金去購買付費的RTOS,也不需要自己進行高難度的系統移植工作。
相關產品 >
-
OK335xD開發板
飛凌AM335x開發板已經推出幾年,經過行業檢測,穩定性得到肯定。多年行業積累,AM335x的解決方案涉及各行各業,歡迎進店咨詢。飛凌AM335x開發板基于TI Cortex-A8 AM335x CPU設計開發,主頻800MHz,支持Linux、RTLinux。AM335x開發板工業級寬溫,配合豐富的外設接口,適用于各種惡劣環境應用。 了解詳情 -
OK62xx-C開發板
AM62x 開發板是圍繞飛凌AM62x核心板設計的獨立測試和開發平臺。AM62x處理器由四核64位Arm -Cortex -A53微處理器 和Cortex-M4F組成。AM62x開發板整板工業級設計,并在開發過程中進行嚴苛的環境溫度測試、壓力測試、長期穩定性運行測試,使AM62x可在各種嚴苛環境穩定運行 了解詳情