【STM32H7】第1章 選擇ThreadX的優勢


論壇原始地址(持續更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99514

第1章   選擇ThreadX的優勢

初學ThreadX,一般都比較關心這個問題,所以把這個問題放在第一章簡單的說說。 這里分為八個方面跟大家進行說明。

1.1 ThreadX移植的難易程度

1.2 ThreadX上手難用程度

1.3 ThreadX實時性

1.4 ThreadX完整的中間件

1.5 ThreadX高等級安全認證

1.6 ThreadX多核支持

1.7 ThreadX應用程序動態加載

1.8 ThreadX各行各業應用案例

1.9 總結

 

 

1.1   ThreadX移植的難易程度

ThreadX內核提供好了各種主流硬件平台和軟件平台的移植文件,如下圖所示:

 

對於STM32H7來說,使用的是cortex-m7內核的文件,里面已經提供了MDK AC5,MDK AC6,IAR和GCC。

 

有了提供好的port文件,移植也就比較省事,用戶僅需使能系統時鍾,使能相關宏定義即可使用。

1.2   ThreadX上手難易程度

ThreadX配套的官方手冊在RTOS 基礎知識、 API 函數及其舉例方面都做的不錯,用戶上手比較容易。隨着后面章節的學習,大家會體會到這一點。

1.3   ThreadX 實時性

ThreadX在大多數流行的處理器上實現了亞微秒的上下文切換時間。除了速度快之外,ThreadX還具有高度確定性。無論准備好200個線程還是僅准備一個線程,它都能實現相同的快速性能。

以下是ThreadX的一些典型性能特征:

  •   快速啟動:

ThreadX的啟動時間少於120個周期。

  •   可選的錯誤檢查機制:

當驗證了應用程序代碼並且不再需要對每個參數進行錯誤檢查時,可以在編譯時跳過ThreadX錯誤檢查,優化性能。

  •   Picokernel™ Design(微內核設計):

服務不會彼此套用,從而消       除了不必要的函數調用開銷。

  •   優化的中斷處理:

除非需要搶占,否則僅在ISR進入/退出時才保存/恢復暫存寄存器。

  •   優化的API處理:

 

測試平台:200MHz處理器。

1.4    ThreadX完善的中間件

ThreadX有自己完善的中間件,我們稱之為ThreadX全家桶:

 

包括文件系統FileX,GUI圖形設計GUIX,網絡協議棧NetX,USB協議棧USBX,GUIX上位機調試軟件GUIX Studio,跟蹤調試軟件TraceX等。

使用全家桶方案,最大的優勢是用戶無需倒騰各種組件與內核的兼容性,而且后期升級維護也非常方便。實際項目中,這種全家桶方式還是非常推薦的。

1.5   ThreadX高等級安全認證

ThreadX及其所有中間件的安全認證等級,至今沒有一款小型RTOS可以與其匹敵。這么多安全認證,公司要入大量財力,人力和物力才可以完成,早前Micrium的一篇文章還談過這個問題,投入了太多資金和人力了,還與風河的VxWorks做了簡單對比。

(1)醫療 - FDA510(k),IEC-62304 Class C,IEC-60601,ISO-14971

(2)工業 - UL-1998,IEC-61508 SIL 4

(3)運輸/鐵路 - EN50128 SIL 4,BS50128,  49CFR236,IEC-61508

(4)航空航天設備 - DO-178B,ED-12B,DO-278

(5)汽車 - IEC-61508 ASIL D

(6)核應用 - IEC-61508

(7)家電 - UL/IEC 60730/60335

 

ThreadX的安全認證基本都達到了最高等級,像工業級認證IEC-61508達到了最高等級的SIL4,而uCOS,RTX5,embOS都是SIL3。

除了ThreadX內核有安全認證,中間件GUIX,FileX,NetX,甚至是加密庫都有安全認證。在安全領域,ThreadX基本已經做到了登峰造極。

1.6   ThreadX多核支持(AMP&SMP)

ThreadX通常以非對稱多處理(Asymmetric Multiprocessing, AMP)方式使用,其中ThreadX和應用程序(或其它系統)的單獨在每個內核上執行,並通過共享內存或處理器間通信機制來相互通信,比如OpenAMP(ThreadX支持OpenAMP)。這是使用ThreadX的最典型多核配置,如果應用程序能夠有效地加載處理器,則它可能是最高效的。

對於處理器高度動態加載的環境,ThreadX對稱多處理(Symetric Multiprocessing,SMP)可用於以下內核:

  •   ARM Cortex-Ax
  •   ARM Cortex-Rx
  •   ARM Cortex-A5x 64位
  •   MIPS 34K,1004K和interAptiv
  •   PowerPC
  •   Synopsys ARC HS
  •   x86

ThreadX SMP在n個處理器之間執行動態負載平衡,並允許任何Core上的任何線程訪問所有ThreadX資源(隊列,信號量,事件標志,內存池等)。ThreadX SMP在所有內核上啟用完整的API,並引入了適用於SMP操作的API。

1.7   ThreadX應用程序動態加載

(注:類似安卓APP)

ThreadX MODULES可以使一個或多個應用程序線程捆綁到一個“模塊(MODULES)”中,該模塊可以在目標上動態加載和運行(或就地執行)。

ThreadX MODULES啟用現場升級(field upgrade),錯誤修復和程序分區,以允許大型應用程序僅占用活動線程所需的內存。

ThreadX MODULES還具有與ThreadX本身完全獨立的地址空間。這使ThreadX可以在MODULES周圍放置內存保護(通過MPU或MMU),這樣模塊外部的意外訪問將無法破壞任何其他軟件組件。

1.8   ThreadX各行各業應用案例

62億電子設備采用,是其它RTOS無法逾越的高山。ThreadX的產品涵蓋了各種領域,包括NASA的多個太空探測項目,飛機自動駕駛儀系統,火星偵察軌道器等。

 

對此,ThreadX官網給出了航空航天,工業,汽車,醫療,消費電子,物聯網,片上系統等方向的具體案例 : https://rtos.com/x-ware-showcase/

 

以消費電子方向為例,三星,NEST,HTC等都是其客戶,對應的產品也非常多。並且這些產品的直接使用ThreadX全套,基本ThreadX有的,就不再使用第三方組件:

 

1.9   總結

本章節就為大家介紹這么多,更多相關介紹,大家可以到ThreadX官網看看。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM