NuttX操作系統(tǒng)
NuttX是免費的開源RTOS,專注于標準合規(guī)性和小尺寸。NuttX的基本版本可以在低成本和低內存微控制器(MCU)上運行。
由于NuttX是一個POSIX RTOS,你可以在POSIX操作系統(tǒng)(如Linux或MacOS)中編寫一個應用程序,并對其進行驗證和編譯以在NuttX上運行,而無需學習新的API。
NuttX也有許多與Linux并行的子系統(tǒng)。幾個示例包括虛擬文件系統(tǒng) (VFS)、內存技術設備 (MTD)、音頻子系統(tǒng)和支持 USB 復合的 USB 系統(tǒng)。一些主要功能包括:
模塊 化
微內核
完全搶占
自然可擴展
高度可配置
可輕松擴展到新的處理器架構
實時
確定性
支持優(yōu)先級繼承
極火?芯片芯片
Linux 操作系統(tǒng) (OS) 的靈活性和實時系統(tǒng)控制硬件的確定性是安全關鍵系統(tǒng)、系統(tǒng)控制和安全應用的關鍵。盡管典型的對稱多處理 (SMP) 實現(xiàn)提供了靈活性,但它們對于確定性性能并不理想。
PolarFire SoC FPGA 支持確定性非對稱多處理 (AMP) Linux 應用和與內存子系統(tǒng)兼容的多核 Linux 處理器。這支持在單個多核中央處理器單元集群中混合使用確定性實時系統(tǒng)和 Linux 操作系統(tǒng),該集群可以在運行 Linux 操作系統(tǒng)的同時以最高性能運行實時應用程序。也就是說,此解決方案提供了一個不完全確定的高性能系統(tǒng)。
PolarFire SoC FPGA 中的 NuttX
使用AMP模式,我們現(xiàn)在能夠在PolarFire SoC FPGA中同時運行NuttX RTOS和Linux,這有助于將NuttX和Linux的優(yōu)勢整合到一個系統(tǒng)中。
NuttX RTOS在航空無人機行業(yè)非常受歡迎;它還用于各種應用,例如智能手機和錄音機。
無人機對PX4自動駕駛軟件的需求不斷增長,Microchip的PolarFire SoC FPGA的電源效率使得在PolarFire SoC FPGA上實現(xiàn)NuttX端口非常相關和必要。
阿聯(lián)酋阿布扎比技術創(chuàng)新研究所(TII)的安全系統(tǒng)研究中心(SSRC)擁有并領導了該集成項目。SSRC首先將基本端口分包給Offcode,Offcode是為該項目提供基本編碼服務的Mi-V生態(tài)系統(tǒng)合作伙伴。這要歸功于公共RISC-V標準,開源代碼,強大的硬件,現(xiàn)有的工具鏈以及有價值的供應商工具,如SoftConsole和Libero? SoC設計套件。NuttX組織良好,進一步提升了移植任務本身。
SSRC進一步定義了NuttX工作所需的驅動程序和功能,并在NuttX實施之前測試了PX4功能和環(huán)境。該中心與開源社區(qū)密切合作,上游內容。SSRC的工程師也為上游NuttX內核的開發(fā)做出了貢獻。
SSRC對內核開發(fā)的主要貢獻包括:
RISC-V Sv39 MMU 驅動程序
在S模式下運行NuttX的配置選項
RISC-V PMP功能改進
支持CONFIG_BUILD_PROTECTED和CONFIG_BUILD_KERNEL
用于地址環(huán)境和頁面分配器的RISC-V實現(xiàn)
NuttX CONFIG_BUILD_KERNEL任務環(huán)境初始化、elf 加載器、Crt0 編譯和進程退出的更正
用于 SBI 集成的膠水邏輯
初始端口的詳細信息可在此 GitHub 社區(qū)中找到。
大多數(shù)代碼位于以下文件夾中:
arch/risc-v/src/mpfs/
板/RISC-V/MPFS/冰柱/
程序集文件mpfs_head。S 位于 arch/risc-v/src/mpfs -directory 下,包含代碼執(zhí)行的起點。安裝機器陷阱-矢量基址寄存器(mtvec)也是其中的主要步驟。它指向所有中斷和異常的陷阱處理程序。
Microchip有一個名為Hart軟件系統(tǒng)(HSS)的引導加載程序。它包含 DDR 內存訓練序列和其他硬件塊初始化,在處理任何內存訪問之前必須到位。因此,HSS最初用于加快移植速度。
后來,所有必需的設備驅動程序和功能也被整合到NuttX中。截至 2022 年 <> 月,NuttX 還可以作為支持 OpenSBI 的引導加載程序。這意味著基于 NuttX 的引導加載程序可以在其他 harts 上啟動 U-boot 和 Linux。
現(xiàn)在,PolarFire Icicle套件支持NuttX的以下外圍驅動程序:
串行端口
通用信息總組織
SPI
脈寬調制
DMA(內存到內存)
除了外圍驅動程序外,它還具有所有必要的時鐘設置,計時器,DDR培訓,OpenSBI支持,通過哈特間通信(IHC)的RPMSG和其他一些功能。
AMP將Linux內核和NuttX粘合在一起。此功能是通過遠程處理器消息傳遞 (RPMSG) 構建的。如果一個操作系統(tǒng)使用網(wǎng)絡硬件,則另一個操作系統(tǒng)不會通過同時初始化和使用硬件來沖突。不過,可以做的是通過RPMSG框架使用該接口。但是,出于任何原因,消息可能會在不同的操作系統(tǒng)之間共享。
2022 年 <> 月,一個補丁被合并到 NuttX 中,該補丁支持兩個不同的 NuttX 操作系統(tǒng)通過自己的 RPMSG 路徑與 Linux 內核進行通信。當然,這也需要一些小的 Linux 內核修改。測試的設置具有以下 hart 設置:
哈特0:NuttX引導加載程序
Hart1:NuttX OS(獨立),使用 RPMSG 通道 1
Hart2:NuttX OS(獨立),使用 RPMSG 通道 2
Hart3:Linux 內核
Hart4:Linux 內核
Linux 內核與 harts 1 和 2 上的兩個 NuttX 進行通信。如果需要編寫任何實時車輛、無人機或任何時間關鍵型任務,我們建議考慮使用 NuttX 作為選項。
我們強烈推薦NuttX操作系統(tǒng)。
考慮一下將時間關鍵層合并到 NuttX 中,同時保持對 Linux 的良好關注是否對您來說是一個可行的選擇。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
8190瀏覽量
160287 -
usb
+關注
關注
60文章
8327瀏覽量
279769 -
Linux
+關注
關注
88文章
11579瀏覽量
217019
發(fā)布評論請先 登錄
Microchip發(fā)布業(yè)界首款基于 RISC-V 指令集架構的 SoC FPGA 開發(fā)工具包
Microchip FPGA 和基于 SoC 的 RISC-V 生態(tài)系統(tǒng)簡介
嵌入式實時操作系統(tǒng)μC_OS_在LPC1788上的移植及應用

Microchip將啟動PolarFire片上系統(tǒng)FPGA EAP
Microchip計劃啟動PolarFire片上系統(tǒng)FPGA
嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植實現(xiàn)

評論