本文來源電子發(fā)燒友社區(qū),作者:jf_58250416, 帖子地址:https://bbs.elecfans.com/jishu_2284990_1_1.html
上回說到最近申請到一塊賽昉的RISCV架構(gòu)開發(fā)板,想移植ohos系統(tǒng)在上面試一試,跟著一些已有的星星點點的教程邊學邊做弄了好幾天也沒有成功,不過也從中學到一點經(jīng)驗,不如總結(jié)一下再水一篇試用報告。
ohos全稱是openharmony,它的整個架構(gòu)很大,按照應用的設備可以分為輕量系統(tǒng)、小型系統(tǒng)和標準系統(tǒng)。個中區(qū)別各位看官可以自行百度,賽昉開發(fā)板這種能運行l(wèi)inxu的,假如說移植一般都是標準系統(tǒng)。移植整個系統(tǒng)的重中之重,便是移植內(nèi)核,這里ohos對整個系統(tǒng)和內(nèi)核的定義如下:
所以是不是把在別的設備上能用的裝有img鏡像的SD卡插到賽昉開發(fā)板就可以了呢,當然不是。首先,芯片必須是相同的架構(gòu),所以ohos在DAYU開發(fā)板上好像還不錯了,ohos_riscv還很初級。其次,系統(tǒng)在不同開發(fā)板上的引導,還和其它硬件有關(guān)系,賽昉正好在一個文件里有個流程圖:
我在開機時打印了一下幾個關(guān)鍵log如下:
所以大概總結(jié)是這樣,一個嵌入式板上電之后,會首先通過固件形式的bootloader(pc上是bios)引導,Bootloader是嵌入式系統(tǒng)在加電后執(zhí)行的第一段代碼,在它完成CPU和相關(guān)硬件的初始化之后,再將操作系統(tǒng)映像或固化的嵌入式應用程序裝載到內(nèi)存中然后跳轉(zhuǎn)到操作系統(tǒng)所在的空間,啟動操作系統(tǒng)運行。對于嵌入式系統(tǒng),Bootloader是基于特定硬件平臺來實現(xiàn)的。因此,幾乎不可能為所有的嵌入式系統(tǒng)建立一個通用的Bootloader,不同的處理器架構(gòu)都有不同的Bootloader。Bootloader不但依賴于CPU的體系結(jié)構(gòu),而且依賴于嵌入式系統(tǒng)板級設備的配置。對于2塊不同的嵌入式板而言,即使它們使用同一種處理器,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,一般也都需要修改Bootloader的源程序 。
bootloader之后,ddrinit會對外部內(nèi)存進行初始化,接下來就可以跑內(nèi)存上的代碼了。
而opensbi則是riscv架構(gòu)下一個特有的產(chǎn)物,RISC-V指令集的SBI標準規(guī)定了類Unix平臺下,操作系統(tǒng)運行環(huán)境的規(guī)范。這個規(guī)范擁有多種實現(xiàn),OpenSBI是它的一種實現(xiàn).RISC-V架構(gòu)中,存在著定義于操作系統(tǒng)之下的運行環(huán)境。這個運行環(huán)境不僅將引導啟動RISC-V下的操作系統(tǒng), 還將常駐后臺,為操作系統(tǒng)提供一系列二進制接口,以便其獲取和操作硬件信息。 RISC-V給出了此類環(huán)境和二進制接口的規(guī)范,稱為“操作系統(tǒng)二進制接口”,即“SBI”。SBI的實現(xiàn)是在M模式下運行的特定于平臺的固件,它將管理S、U等特權(quán)上的程序或通用的操作系統(tǒng)。
下一步uboot就可以把代碼引導到sd卡了,針對用戶而言,可以是各個linux發(fā)行版,但是如果你的嵌入式開發(fā)板裝載了好多個系統(tǒng),這一步還需要一個引導工具,便是grub。
至此,賽昉的fedora應該就引導成功了。
那么話說回來,如果需要基于賽昉移植ohos_riscv的話,除了適配賽防的uboot,引導到ohos標準系統(tǒng)的linux內(nèi)核上,還要實現(xiàn)ohos的系統(tǒng)特性,也是路漫漫其修遠兮了。
期待賽昉在ohos上進一步的表現(xiàn),可能我的觀點比較淺薄,歡迎批評指正。
參考:
https://docs.openharmony.cn/pages/v3.1/zh-cn/device-dev/porting/porting-linux-kernel.md/
https://baike.baidu.com/item/U-Boot/10377075?fr=aladdin
https://rvspace.org/en/Product/VisionFive/Technical_Documents/VisionFive_Single_Board_Computer_Quick_Start_Guide
上回說到最近申請到一塊賽昉的RISCV架構(gòu)開發(fā)板,想移植ohos系統(tǒng)在上面試一試,跟著一些已有的星星點點的教程邊學邊做弄了好幾天也沒有成功,不過也從中學到一點經(jīng)驗,不如總結(jié)一下再水一篇試用報告。
ohos全稱是openharmony,它的整個架構(gòu)很大,按照應用的設備可以分為輕量系統(tǒng)、小型系統(tǒng)和標準系統(tǒng)。個中區(qū)別各位看官可以自行百度,賽昉開發(fā)板這種能運行l(wèi)inxu的,假如說移植一般都是標準系統(tǒng)。移植整個系統(tǒng)的重中之重,便是移植內(nèi)核,這里ohos對整個系統(tǒng)和內(nèi)核的定義如下:
所以是不是把在別的設備上能用的裝有img鏡像的SD卡插到賽昉開發(fā)板就可以了呢,當然不是。首先,芯片必須是相同的架構(gòu),所以ohos在DAYU開發(fā)板上好像還不錯了,ohos_riscv還很初級。其次,系統(tǒng)在不同開發(fā)板上的引導,還和其它硬件有關(guān)系,賽昉正好在一個文件里有個流程圖:
我在開機時打印了一下幾個關(guān)鍵log如下:
所以大概總結(jié)是這樣,一個嵌入式板上電之后,會首先通過固件形式的bootloader(pc上是bios)引導,Bootloader是嵌入式系統(tǒng)在加電后執(zhí)行的第一段代碼,在它完成CPU和相關(guān)硬件的初始化之后,再將操作系統(tǒng)映像或固化的嵌入式應用程序裝載到內(nèi)存中然后跳轉(zhuǎn)到操作系統(tǒng)所在的空間,啟動操作系統(tǒng)運行。對于嵌入式系統(tǒng),Bootloader是基于特定硬件平臺來實現(xiàn)的。因此,幾乎不可能為所有的嵌入式系統(tǒng)建立一個通用的Bootloader,不同的處理器架構(gòu)都有不同的Bootloader。Bootloader不但依賴于CPU的體系結(jié)構(gòu),而且依賴于嵌入式系統(tǒng)板級設備的配置。對于2塊不同的嵌入式板而言,即使它們使用同一種處理器,要想讓運行在一塊板子上的Bootloader程序也能運行在另一塊板子上,一般也都需要修改Bootloader的源程序 。
bootloader之后,ddrinit會對外部內(nèi)存進行初始化,接下來就可以跑內(nèi)存上的代碼了。
而opensbi則是riscv架構(gòu)下一個特有的產(chǎn)物,RISC-V指令集的SBI標準規(guī)定了類Unix平臺下,操作系統(tǒng)運行環(huán)境的規(guī)范。這個規(guī)范擁有多種實現(xiàn),OpenSBI是它的一種實現(xiàn).RISC-V架構(gòu)中,存在著定義于操作系統(tǒng)之下的運行環(huán)境。這個運行環(huán)境不僅將引導啟動RISC-V下的操作系統(tǒng), 還將常駐后臺,為操作系統(tǒng)提供一系列二進制接口,以便其獲取和操作硬件信息。 RISC-V給出了此類環(huán)境和二進制接口的規(guī)范,稱為“操作系統(tǒng)二進制接口”,即“SBI”。SBI的實現(xiàn)是在M模式下運行的特定于平臺的固件,它將管理S、U等特權(quán)上的程序或通用的操作系統(tǒng)。
下一步uboot就可以把代碼引導到sd卡了,針對用戶而言,可以是各個linux發(fā)行版,但是如果你的嵌入式開發(fā)板裝載了好多個系統(tǒng),這一步還需要一個引導工具,便是grub。
至此,賽昉的fedora應該就引導成功了。
那么話說回來,如果需要基于賽昉移植ohos_riscv的話,除了適配賽防的uboot,引導到ohos標準系統(tǒng)的linux內(nèi)核上,還要實現(xiàn)ohos的系統(tǒng)特性,也是路漫漫其修遠兮了。
期待賽昉在ohos上進一步的表現(xiàn),可能我的觀點比較淺薄,歡迎批評指正。
參考:
https://docs.openharmony.cn/pages/v3.1/zh-cn/device-dev/porting/porting-linux-kernel.md/
https://baike.baidu.com/item/U-Boot/10377075?fr=aladdin
https://rvspace.org/en/Product/VisionFive/Technical_Documents/VisionFive_Single_Board_Computer_Quick_Start_Guide
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
RISC-V
+關(guān)注
關(guān)注
45文章
2270瀏覽量
46127 -
賽昉科技
+關(guān)注
關(guān)注
3文章
152瀏覽量
14275
發(fā)布評論請先 登錄
相關(guān)推薦
賽昉科技亮相世界互聯(lián)網(wǎng)大會,精彩呈現(xiàn)RISC-V創(chuàng)新成果
豐富的RISC-V創(chuàng)新成果,包括昉·驚鴻-7110(JH-7110)RISC-V應用處理器,昉·星光2(VisionFive2)
預售啟動!昉·星光 2 AI套件正式發(fā)布,基于RISC-V構(gòu)建AI算力
10月24日,昉·星光2(VisionFive2)AI套件正式開啟預售。該套件由中國RISC-V軟硬件生態(tài)領導者賽昉科技攜手邊緣人工智能(A
Ubuntu現(xiàn)已適配RISC-V單板計算機Milk-V Mars
近期,Canonical宣布優(yōu)化的Ubuntu24.04鏡像已可用于RISC-V單板計算機Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載
開源套件免費申領!賽昉科技將攜RISC-V創(chuàng)新產(chǎn)品與方案亮相上海嵌入式展
。作為中國RISC-V軟硬件生態(tài)的領導者,賽昉科技將攜豐富的RISC-V產(chǎn)品與解決方案亮相此次大會,在展臺及論壇演講中分享RISC-V創(chuàng)新成
信用卡大小的 RISC-V 單板計算機介紹
信用卡大小的 RISC-V 單板計算機 —— Mars
Mars 由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載賽昉科技
發(fā)表于 04-12 16:39
賽昉科技VisionFive 2生態(tài)進展雙周報(2.1-2.29)
Image for VisionFive 2)
社區(qū)開發(fā)者發(fā)布4篇【昉·星光 2高性能RISC-V單板計算機體驗】系列文章,內(nèi)容包括:為Ubuntu安裝Docker及常用軟件;以容器
發(fā)表于 02-29 15:45
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
目的
為了更好的利用星光2,決定使用容器
發(fā)表于 02-21 17:54
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
前言
很感謝賽
發(fā)表于 02-21 17:49
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接 一、官方資料 RISC-V官網(wǎng): [https://rvspace.org]
昉·星光2 RISC-V單板計算機體驗(二) - 系統(tǒng)環(huán)境
昉·星光2 RISC-V單板計算機體驗(二) - 系統(tǒng)環(huán)境 一、官方資料 RISC-V官網(wǎng): [
【昉·星光 2 高性能RISC-V單板計算機試用體驗】開箱及裝載Debian系統(tǒng)
上周收到了昉·星光 2高性能RISC-V單板計算機開發(fā)板,在此非常感謝賽昉科技提供的
發(fā)表于 01-24 00:32
評論