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