本文来源电子发烧友社区,作者:jf_58250416, 帖子地址:https://bbs.elecfans.com/jishu_2284990_1_1.html
上回说到最近申请到一块赛昉的RISCV架构开发板,想移植ohos系统在上面试一试,跟着一些已有的星星点点的教程边学边做弄了好几天也没有成功,不过也从中学到一点经验,不如总结一下再水一篇试用报告。
ohos全称是openharmony,它的整个架构很大,按照应用的设备可以分为轻量系统、小型系统和标准系统。个中区别各位看官可以自行百度,赛昉开发板这种能运行linxu的,假如说移植一般都是标准系统。移植整个系统的重中之重,便是移植内核,这里ohos对整个系统和内核的定义如下:
所以是不是把在别的设备上能用的装有img镜像的SD卡插到赛昉开发板就可以了呢,当然不是。首先,芯片必须是相同的架构,所以ohos在DAYU开发板上好像还不错了,ohos_riscv还很初级。其次,系统在不同开发板上的引导,还和其它硬件有关系,赛昉正好在一个文件里有个流程图:
我在开机时打印了一下几个关键log如下:
所以大概总结是这样,一个嵌入式板上电之后,会首先通过固件形式的bootloader(pc上是bios)引导,Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中然后跳转到操作系统所在的空间,启动操作系统运行。对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序 。
bootloader之后,ddrinit会对外部内存进行初始化,接下来就可以跑内存上的代码了。
而opensbi则是riscv架构下一个特有的产物,RISC-V指令集的SBI标准规定了类Unix平台下,操作系统运行环境的规范。这个规范拥有多种实现,OpenSBI是它的一种实现.RISC-V架构中,存在着定义于操作系统之下的运行环境。这个运行环境不仅将引导启动RISC-V下的操作系统, 还将常驻后台,为操作系统提供一系列二进制接口,以便其获取和操作硬件信息。 RISC-V给出了此类环境和二进制接口的规范,称为“操作系统二进制接口”,即“SBI”。SBI的实现是在M模式下运行的特定于平台的固件,它将管理S、U等特权上的程序或通用的操作系统。
下一步uboot就可以把代码引导到sd卡了,针对用户而言,可以是各个linux发行版,但是如果你的嵌入式开发板装载了好多个系统,这一步还需要一个引导工具,便是grub。
至此,赛昉的fedora应该就引导成功了。
那么话说回来,如果需要基于赛昉移植ohos_riscv的话,除了适配赛防的uboot,引导到ohos标准系统的linux内核上,还要实现ohos的系统特性,也是路漫漫其修远兮了。
期待赛昉在ohos上进一步的表现,可能我的观点比较浅薄,欢迎批评指正。
参考:
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架构开发板,想移植ohos系统在上面试一试,跟着一些已有的星星点点的教程边学边做弄了好几天也没有成功,不过也从中学到一点经验,不如总结一下再水一篇试用报告。
ohos全称是openharmony,它的整个架构很大,按照应用的设备可以分为轻量系统、小型系统和标准系统。个中区别各位看官可以自行百度,赛昉开发板这种能运行linxu的,假如说移植一般都是标准系统。移植整个系统的重中之重,便是移植内核,这里ohos对整个系统和内核的定义如下:
所以是不是把在别的设备上能用的装有img镜像的SD卡插到赛昉开发板就可以了呢,当然不是。首先,芯片必须是相同的架构,所以ohos在DAYU开发板上好像还不错了,ohos_riscv还很初级。其次,系统在不同开发板上的引导,还和其它硬件有关系,赛昉正好在一个文件里有个流程图:
我在开机时打印了一下几个关键log如下:
所以大概总结是这样,一个嵌入式板上电之后,会首先通过固件形式的bootloader(pc上是bios)引导,Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中然后跳转到操作系统所在的空间,启动操作系统运行。对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序 。
bootloader之后,ddrinit会对外部内存进行初始化,接下来就可以跑内存上的代码了。
而opensbi则是riscv架构下一个特有的产物,RISC-V指令集的SBI标准规定了类Unix平台下,操作系统运行环境的规范。这个规范拥有多种实现,OpenSBI是它的一种实现.RISC-V架构中,存在着定义于操作系统之下的运行环境。这个运行环境不仅将引导启动RISC-V下的操作系统, 还将常驻后台,为操作系统提供一系列二进制接口,以便其获取和操作硬件信息。 RISC-V给出了此类环境和二进制接口的规范,称为“操作系统二进制接口”,即“SBI”。SBI的实现是在M模式下运行的特定于平台的固件,它将管理S、U等特权上的程序或通用的操作系统。
下一步uboot就可以把代码引导到sd卡了,针对用户而言,可以是各个linux发行版,但是如果你的嵌入式开发板装载了好多个系统,这一步还需要一个引导工具,便是grub。
至此,赛昉的fedora应该就引导成功了。
那么话说回来,如果需要基于赛昉移植ohos_riscv的话,除了适配赛防的uboot,引导到ohos标准系统的linux内核上,还要实现ohos的系统特性,也是路漫漫其修远兮了。
期待赛昉在ohos上进一步的表现,可能我的观点比较浅薄,欢迎批评指正。
参考:
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
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
RISC-V
+关注
关注
41文章
1904浏览量
45052 -
赛昉科技
+关注
关注
3文章
126浏览量
14137
发布评论请先 登录
相关推荐
信用卡大小的 RISC-V 单板计算机介绍
信用卡大小的 RISC-V 单板计算机 —— Mars
Mars 由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载赛昉科技
发表于 04-12 16:39
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
目的
为了更好的利用星光2,决定使用容器
发表于 02-21 17:54
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
前言
很感谢赛
发表于 02-21 17:49
【昉·星光 2 高性能RISC-V单板计算机体验】在昉·星光2上安装配置新编译的OpenWRT
本文是《【昉·星光 2 高性能RISC-V单板计算机体验】在昉·星光2上编译OpenWRT》的下
发表于 11-18 11:22
【昉·星光 2 高性能RISC-V单板计算机体验】+6手把手实战Linux控制小车
位机。
昉·星光 2 高性能RISC-V单板计算机实战Linux控制小车的体验与收获——我的Linux嵌入式开发之旅:
首先,我要感谢电子发
发表于 10-12 10:05
【昉·星光 2 高性能RISC-V单板计算机体验】星光 2 功耗测评
星光 2是迄今最高性能单板机。 搭载高性能昉·惊鸿7110搭载64位高性能四核RISC-V CPU,2MB的二级缓存,工作频率最高可达1.5 GHz。
发表于 09-28 10:34
VisionFive 2单板计算机成功支持Docker容器解决方案
赛昉科技进一步获取。
关于 VisionFive 2
VisionFive 2 是全球第一款集成 3D GPU 的高性能量产 RISC-V 单板计算机,它优越的性能与合理的价格使其成为
发表于 09-08 11:45
【RISC-V + OpenCV 计算机视觉】用 VisionFive 2 昉·星光 2 进行物体识别
广泛应用于视频监控、自动驾驶等领域。
基于Debain操作系统和OpenCV框架,赛昉科技在VisionFive 2(昉·星光 2)
发表于 09-08 11:42
【昉·星光 2 高性能RISC-V单板计算机体验】原创3 控制螺旋桨电路的升力大小
控制螺旋桨电路的升力大小,昉·星光 2 高性能RISC-V单板计算机反应敏捷,控制到位,值得上手!
GPIO接口也非常多,非常全。如下图:
谢谢!
发表于 08-31 16:45
【昉·星光 2 高性能RISC-V单板计算机体验】2更换Debian操作系统
接上两篇:【昉·星光 2 高性能RISC-V单板计算机体验】1初识赛昉科技StarFive -
发表于 08-31 00:03
【昉·星光 2 高性能RISC-V单板计算机体验】+1控制小车前进后退
感谢 电子发烧友论坛网
感谢 上海赛昉科技有限公司
下面用GPIO方式控制小车前进与后退,如视频所示。
GPIO接口控制效果不错,接下来再用这款“单板计算机”做一些项目。
发表于 08-30 20:15
【昉·星光 2 高性能RISC-V单板计算机体验】使用之一:星光 2开箱之硬件分析
昉·星光 2 是全球首款集成了GPU的高性能RISC-V单板计算机。与昉·星光1 相比( J
发表于 07-28 15:02
【RISC-V专题】昉·星光 2(VisionFive 2)RISC-V单板计算机免费试用
VisionFive 2是全球首款集成3D GPU的高性能量产RISC-V 单板计算机 。与上一代相比,VisionFive 2全面升级,在处理器工作频率、多媒体处理能力、可扩展性等方面都有显着提升
发表于 05-16 11:26
评论