OERV 的實時操作系統小組(OERV-RTOS) 完成了 RISC-V 開發板 Milk-V Duo 小核的初步支持并與大核 Linux 一起進行部署通信驗證。這是 UniProton 首次在 RISC-V 實體開發板上進行 Linux + RTOS 的部署嘗試,此次部署基于 MailBox 驅動的簡易自定義協議,為后續在 Milk-V Duo 上進行基于 MICA 項目的混合關鍵性系統部署奠定了通信基礎。
OERV 團隊倉庫下的 duo-buildrootsdk 倉庫是 UniProton RISC-V 的第一個長期維護下游倉庫,由 OERV-RTOS 進行維護開發。Milk-V Duo 是一款 RISC-V 的多核異構處理器,并且擁有較完善的社區生態和非常龐大的 RISC-V 開發者群體。
下方是 OERV-RTOS 的工作路線框架圖:
在 Milk-V DUO 上運行 UniProton
OERV-RTOS 小組為 UniProton 在 RISC-V 架構的 PLIC 驅動 和 CLINT 驅動提供了 C906L 的支持方案,使其能夠正常將 UniProton 引導到內存并加載小核運行。
同時,小組在 Milk-V Duo 官方 SDK 的基礎上,融合了原 UniProton 構建系統,并引導了支持板載驅動的 UniProton-RISCV,同時通過了一系列官方測試。為了完成這一目標,小組對 UniProton 的構建系統進行了針對 RISC-V 的調整,添加了一鍵化構建腳本來支持工具鏈的自動下載,實現了一鍵構建帶有 Uniproton 的 libmilkvduol.a 靜態庫的功能。此外,小組還將 UniProton 的用戶接口(uapi)移植到了 duo-buildroot 小核構建系統,確保小核驅動部分可以使用 UniProton uapi,并對 duo-buildroot 系統進行了一定程度適配。
在板載驅動支持方面,OERV-RTOS 小組重構了原裸機驅動層實現,使用 UniProton 原生 API 來提供如硬件抽象(HAL)、時間獲取和延時等相關功能。小組還為 Milk-V Duo 增加了內核層小核啟動階段的代碼,在 Milk-V Duo 上正常運行啟動流程、硬件特性與內核配置等初始化過程。
如上圖,UniProton 成功和 Linux 一同部署到 Milk-V Duo 上面,讓 UniProton 默認啟動一個線程,持續打印字符串,和 Linux 使用同一個串口。
基于 RISC-V 的 MICA 框架
Linux + RTOS 的部署仍然是當前為 Linux 提供高實時性支持的一個重要的方式,同時也是實現Linux 和 RTOS 雙方應用落地的主要途徑。OERV-RTOS 小組目前正在全力推進 openEuler 社區的 MICA 項目的 RISC-V 支持和部署,對該項目的 RISC-V 的支持部署做出了相應的路線規劃。具體規劃路徑如下:
在現在的工作的基礎上, 團隊將進一步完善 UniProton 和 openEuler 在對 RISC-V 的支持和應用能力,并施行基于 MICA 項目的多操作系統部署策略??紤]到 RISC-V 處理器架構的特性,RTOS 小組將應用 rv64ilp32 工具鏈以優化 UniProton 的空間占用和性能表現。整體規劃涵蓋了 MilkvDuo 的小核與大核兩大部分。
對于 Milk-V Duo 的小核,工作重點包括開發與優化 UniProton 的相關文檔,支持 MICA 部署,評估與 UniProton 混合部署 RTOS 時的實時性能,以及提供 shell 和 gdb_stub 支持。此外,還將優化 UniProton 單獨部署時的各個組件。
對于大核方面,團隊計劃在 Milk-V Duo 上運行 openEuler 24.03LTS,并安裝MICA所需的依賴,根據板載的實際情況,編寫必要的字符設備模塊,提供關鍵的字符設備驅動文件 /dev/mcs,用于支持與Linux用戶進程的通信互動,從而實現對小核生命周期的管理和通信。
開發者說
OERV-RTOS 小組由羅君[1]組建,致力于 RISC-V 下 Linux + RTOS 多核異構部署,完善 oe 嵌入式分支在 RISC-V 上面的空缺,目前正在全力推動 MICA RISC-V 支持 和 UniProton RISC-V 的生態建設。羅君分享了他的展望:
"OERV-RTOS 小組在各個方面都在不斷地完善,已經有更多感興趣的小伙伴投入到了 UniProton 項目 和 MICA 項目相關的工作中。同時,在 UniProton RISC-V 和 MICA RISC-V 方面我們也制定了詳細的 RoadMap ,很快我們就能夠看到 openEuler + UniProton 基于 MICA 在開發板上的部署。相信在不久的未來, openEuler + UniProton 能夠基于 RISC-V 特性找到具有獨特優勢的應用落地場景!"
結語
OERV 將持續投入 UniProton RISC-V + openEuler RISC-V 方向的支持,進一步完善 UniProton 的生態,實現 openEuler + UniProton 的應用落地。對 openEuler RISC-V 生態建設感興趣的伙伴們,可以添加下面的微信,加入我們 openEuler RISC-V 開發群聊做進一步了解。
-
操作系統
+關注
關注
37文章
6822瀏覽量
123331 -
RTOS
+關注
關注
22文章
813瀏覽量
119632 -
RISC-V
+關注
關注
45文章
2277瀏覽量
46158
發布評論請先 登錄
相關推薦
評論