RT-Thread作为一款国产系统,代码完全开源,借鉴修改后可以闭源,深受我等借鉴抄袭之人所爱。特别是其软件生态相当丰富,直接上手拿来用也挺好用的。官方维护的社区也挺好玩,有各种开发者贡献各种软件包进一步壮大rtt,可以预见未来在国产雄起的号召下会越来越好。
话说目前IoT领域所用的实时系统基本都是FreeRTOS、uCOS之类,这些都是国外货,而且各家公司研发设计能力不同,大多数情况下使用了RTOS设计的软件包(SDK)仅仅是能用,丝毫没有架构、便利、友好等特性,在别提有啥软件生态。这里咱不提大公司和那些知名度太高的芯片,就中小型企业出品的SDK,那开发便利性上就差了一截,但是如果用了RTT,就可以随便动动手指在界面选一下就能把别人写好的软件包跟新进来使用,这开发无疑会简单许多,而且rtt的架构设计也比较清晰和有意思。
需要赞一下rtt近些年来的思路,他们一直在提升开发者体验、降低入门难度,从menuconfig到现在的中文IDE工具,尤其使用STM32时,直接一键就能编译下载,国人真的有福了。相比国内很多公司研发人员的思维还停留在 “使用我们的产品就默认使用者必须要有相当的开发基础” 程度,我觉得这很不利于国内软件产品的推广和使用。当然有好就有坏,rtt各方面我都挺喜欢,但是也有很多不足之处,比如说如何重头移植rtt到一个新的芯片上,官方文档就没有说的很清楚,需要自行研究摸索了,所以这里本人就以把rtt移植到andes d1088核上作为例子,希望帮助更多的人移植rtt到起芯片中来。
首先是下载一套rtt的代码,怎么下载不多说,重点提示最新版本要在其github上下,其他路线都更新不一定及时,选个release的版本,开发分支那是没保证的尽量不要选。
然后看看rtt的内核基础介绍,了解一下rtt系统工作的原理,这会方便咱移植。
再看看内核移植的篇章,大概了解一下要干些啥,虽然写的也不怎么清楚~~~
接下来就是对代码进行操作了,首先要做得就是内核移植,直白说就是适配rtt的任务调度机制。
先打开libcpu看看有没有现成的代码,显然没有任何andes相关的cpu核被适配,那么就需要我们自力更生实现了。
观察文档,一共需要实现这样的一些接口和变量:
🔒 本文后半部分需关注公众号解锁
请在公众号回复“文章解锁”获取验证码。

验证码 5 分钟内有效,单次使用