打印
[其他]

【最疯狂的经历】+ (可能)世界上第一个在Cortex-M85平台运行linux

[复制链接]
79|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xhackerustc|  楼主 | 2025-1-12 12:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2024年国庆期间有一块RA生态工作室出品的RA8D1B-CPKCOR开发板到了,这块开发板主控是瑞萨的RA8D1B MCU,CPU是Cortex-M85,频率高达480MHZ。coremark测试显示Cortex-M85性能非常强悍已经超过Cortex-A7了,更重要的是RA8D1B-CPKCOR板载了32MB的SDRAM,我看到这个开发板当时就只有一个想法:跑个RTOS已经不够显得它的强大,最好把linux运行起来!点子来了,说干就干,加上笔者特别着迷于完成高技术挑战性后的大脑多巴胺奖励,所以一心想做成它。但笔者当时只有周末和晚上能有点空搞这个点子,周末说起来两天但白天还要给带娃,所以用于完成这个点子的时间并不多。当时笔者定下技术总原则是只向目标前进、前进、前进进!边边角角能绕过就绕过,看似粗糙猛,其实事后想来这是正确的技术路线--我们做每一个demo原型,不都是这么做的么,集中火力攻打核心目标,不在边边角角上浪费哪怕一颗子弹,把它们留在demo原型结束后去扫尾完善。也和历史上各种奇兵突击灭国之战一样,目标是对方首都的头头脑脑,去往敌方首都的路上敌方有各种屏障和防线,正儿八经的灭国之战都是扫清这些外围,最后瓮中捉鳖,但兵力不足(时间不够)时要速战速决能绕城而过就绕吧,事后笔者发了一篇帖子讲了下技术路径和代码:https://bbs.21ic.com/icview-3408348-1-1.html, 其实集火攻打目标过程中的曲折很多,碰到了一个又一个关卡,都要做抉择的,这篇帖子分享下背后的经历。

bootloader防线
玩其它能跑linux的板子,我们知道这些板子都有个bootloader(通常是uboot),负责一些必要的硬件初始化,比如设置好时钟、初始化内存等等,然后从外存如emmc、ufs、ssd、sd卡、nand flash、nor flash或者网络等等加载linux kernel Image等到内存,最后跳转linux内核入口启动。uboot其实任务 不难,但很繁琐费时的,记得笔者上面说的大原则:只向目标前进!我们能否绕过bootloader呢?其实仔细分析bootloader碎繁但只有最核心的两大功能:必要硬件初始化和加载linux内核Image等后跳转。其中硬件包括内存的初始化我们可以利用官方的sdk例子,加载linux内核Image后跳转可以用板载JLink调试器来做。至此bootloader防线绕过。

console防线
运行linux嘛,都要弄个shell终端出来才能大体证明linux跑起来了,终端么一般用uart做console简单。前方侦察发现linux主线中有瑞萨的类似uart驱动,看起来简单哦,是不是照葫芦画瓢来个攻城战就 能一鼓而下呢?仔细对比linux中的对应驱动和RA8D1B的uart硬件手册后发现,寄存器布局不太一致, 有些功能设置也不一样,能强攻(自己添代码增加RA8D1B支持)么?可以强攻,但RA8D1B的uart硬件功能很丰富,不信你可以去看看它的datasheet,所以强攻就要费兵力(费时间)。但是阿我们知道JLink有个稀奇玩意叫RTT(Real Time Terminal),这玩意比较简单而且通用,所以console这关笔者通过打JLink RTT这关过了。

clockevent和clocksource防线
一个linux系统至少要一个clockevent设备提供心跳中断,然后用jiffies模拟clocksource。clockevent说白了就是timer,但是RA8D1B的timer不少于二十几个,打哪一个呢?笔者最后选的是打armv8m自带 的systick,因为攻打(编程)简单。

proc-v7m防线
我们现在已经到了敌方首都城墙下面了。熟悉arm linux的都知道:linux对每一款cpu都要填写一个所 谓proc_info的结构体,要填一些cache操作函数、cpu setup函数等等。这关没办法,敌方首都城墙, 必须强攻拿下。笔者这一关是老实读cortex-m85的手册拿下的

exc_ret的bug防线
现在已经攻破首都到了皇宫啦,以为抓个鸟皇帝还不简单,谁知道皇宫大门一阵乱箭射出(linux内核 启动后发现init进程总是segment fault),调了一个晚上拿不下来,看起来这关不太好打。第二天晚 上结合JLink调试好久最后发现是linux内核一个bug,fix之后成功进入shell。这关是强攻拿下,抓到 皇帝,敌国灭国。

笔者最后很享受攻下技术难关后大脑给的多巴胺奖励,完整经历寥寥数语与君同享。

使用特权

评论回复
沙发
jack821119| | 2025-1-13 14:12 | 只看该作者
不错,精神可嘉!

使用特权

评论回复
板凳
shenxiaolin| | 2025-1-13 17:05 | 只看该作者
国产的很多的芯片 还是可以试试看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

94

帖子

0

粉丝