WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-11-06 09:41:45

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 322

树莓派的一个镜像是如何做到适配不同架构的芯片的,能否做一个f1c100s/v3s的通用镜像。

可能我们只知道傻傻按照官方教程烧录镜像,从来没有想过这个问题。我们都知道树莓派的一个镜像可以烧录树莓派的全系列板子,树莓派的cpu架构有armv6,armv7的区别,它是如何做到通用的?打开boot分区可以看到不只有一个zimage,启动时肯定根据不同的pi选择了不同的zimage和dtd,它是根据什么区分不同pi的?另外一个问题是它的文件系统是共用的,里面自带的软件是没有区分armv6和armv7,那也就是说这两个架构的应用都是通用的?是否可以根据树莓派的这个原理做一个f1c100s和v3s的通用镜像

最近编辑记录 kekemuyu (2019-11-06 09:42:54)

离线

#2 2019-11-06 09:54:28

超级萌新
会员
注册时间: 2018-05-04
累计积分: 305

Re: 树莓派的一个镜像是如何做到适配不同架构的芯片的,能否做一个f1c100s/v3s的通用镜像。

感觉有点麻烦,又有点容易。

假如是TF版本,
容易,就是搞定uboot就行。
麻烦,就是spl(boot0)都难做到兼容,一个spl走天下。

离线

#3 2019-11-06 09:57:23

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 322

Re: 树莓派的一个镜像是如何做到适配不同架构的芯片的,能否做一个f1c100s/v3s的通用镜像。

超级萌新 说:

感觉有点麻烦,又有点容易。

假如是TF版本,
容易,就是搞定uboot就行。
麻烦,就是spl(boot0)都难做到兼容,一个spl走天下。

愿闻其详,uboot如何区分不同的cpu?我觉得必须是cpu向uboot传达了某个参数,uboot才能知道启用那个zimage

最近编辑记录 kekemuyu (2019-11-06 09:59:36)

离线

#4 2019-11-06 10:09:41

ippen
会员
注册时间: 2018-07-22
累计积分: 250

Re: 树莓派的一个镜像是如何做到适配不同架构的芯片的,能否做一个f1c100s/v3s的通用镜像。

关键在u-boot,首先要u-boot最开始程序首先判断出cpu类型和板子型号然后选择性加载不同的uboot,也就是说uboot要有三个部分,一个是f1c100s的uboot,一个是v3s,在这两个之前,有一段汇编代码判断cpu型号,然后和决定加载后面的uboot版本

离线

#5 2019-11-06 10:15:09

kekemuyu
会员
注册时间: 2018-12-13
累计积分: 322

Re: 树莓派的一个镜像是如何做到适配不同架构的芯片的,能否做一个f1c100s/v3s的通用镜像。

ippen 说:

关键在u-boot,首先要u-boot最开始程序首先判断出cpu类型和板子型号然后选择性加载不同的uboot,也就是说uboot要有三个部分,一个是f1c100s的uboot,一个是v3s,在这两个之前,有一段汇编代码判断cpu型号,然后和决定加载后面的uboot版本

”汇编代码判断cpu型号“还有这操作,我记得cpu内部还有个brom,里面也有boot程序,是不是需要brom的支持才行

离线

#6 2019-11-06 10:31:59

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,219

Re: 树莓派的一个镜像是如何做到适配不同架构的芯片的,能否做一个f1c100s/v3s的通用镜像。

在 spl 用汇编指令可以判断 cpu 类型, 然后加载不同的 u-boot, 这个应该可行,至于brom 那个没有用吧。

离线

页脚