如何让 iStoreOS 支持新的硬件?E20C为例子

4个月前发布 SanS三石
18 0 0

如何让 iStoreOS 支持新的硬件?E20C为例子

哈喽,大家好,今天和大家聊聊如何让 iStoreOS 支持新的硬件?

不管你懂不懂技术,应该都会给你一些收获。

不管有多少个硬件,多少个电脑,从大家的习惯来说,选择一个文件安装系统就行。

为何 arm 要按硬件型号分开那么多文件?

要解释这个问题,我们核心要知道,CPU 是如何发现外围设备的?本质就是一句话:CPU 作为控制中心,需要通路去触达外网设备。这种通路,叫总线。

CPU 需要通过总线去寻找外围设备,并记录每个设备的地址跟能力,以及对应的驱动。

而之所以大家更喜欢买 X86 的原因在于,X86 可以自动找到外围设备,并记录地址,最后驱动他们工作。所以 X86 机器可以换内存,换显卡,换网卡等等。只要有合适的驱动,一个系统可以让不同的X86机器运行起来。

解决问题不一样,每家公司做产品也不一样。X86那套自动发现的能力太复杂了。

当要做小硬件的时候,还搞得那么复杂,耗电高,成本贵,研发贵,这样就不合理。arm 的思路很简单,它认为每个硬件都是针对特定功能的。

把CPU固定,网口固定,内存固定这样考虑的情况少了,也更简单,也更省钱了。因为这种思想,还需要啥 CPU 自动发现外围设备,去逐个等级设备的地址?

所有都固定了,直接约定好每个设备的地址就完事了。

所以每个 arm 做的硬件型号,都需要提前写入好外围设备的地址,能力。

最后编译出来一个针对这个硬件型号的系统文件,也叫固件。

以上科普信息就到这里。我给大家简单找到两篇文章

https://unix.stackexchange.com/questions/399619/why-do-embedded-systems-need-device-tree-while-pcs-dont

https://www.zhihu.com/question/475730584/answer/2974259137

前面科普讲完了,现在给大家提供一些思路,如何来适配新的一款硬件?

我们还是拿 E20C 作为例子,大家不需要学习太多的知识,核心就是多动手,多实践当然我不是这方面的专家,接下来我讲讲我的思路:

首先,E20C 跟哪个硬件最接近?和H28K最接近。

如何让 iStoreOS 支持新的硬件?E20C为例子

这样我们就可以参考h28k的相关代码,大体就是参考rk给的电路板的设计,找一个相近的适配的好的h28k,来修改相关参数,进行适配;

如何让 iStoreOS 支持新的硬件?E20C为例子

先新建一个e20c的dts文件,复制h28k的dts内容,然后再rk35xx.mk里增加e20c的编译选项;

如何让 iStoreOS 支持新的硬件?E20C为例子

修改灯的相关代码;

如何让 iStoreOS 支持新的硬件?E20C为例子

设置e20c的cpumask,为啥要这样?多看看相近硬件的参数,多看;

这期我们就只是简单的讲讲大的方向来移植系统,不可能手把手的教,更多的靠大家自己的兴趣,懂一些硬件相关的知识,自己多实践。

大家如果有兴趣,可以仔细研究下我前面推荐的两篇文章,让自己有个深刻的认识。

大家如果对我们的内容感兴趣,请大家多多关注我们。

对 iStoreOS 固件感兴趣,可以刷入固件进行体验。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...