打印
[应用相关]

RT-Thread读书笔记+启动流程

[复制链接]
956|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
研发工程师|  楼主 | 2019-5-22 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
收到《RT-Thread内核实现与应用开发实战指南》这本书快1周了,前段时间出差现在把读书笔记补上
步入正题,之前用的freertos,硬件的初始化都是在main()函数里面,而拿到rtt的例程后后发现主函数里面只是任务的创建。那硬件部分初始化的代码在哪呢?在没理清之前自己也是很懵逼,
之后在board.c文件里面void rt_hw_board_init()中找到了,但还有个问题,这个函数在哪里被调用呢?既然是板集初始化,那很有可能会在组建部分的代码中出现,果然在components.c文件中找到
int rtthread_startup(void)

   //代码就省略了

再往上找,rtt启动是在 int $Sub$$main(void)这个函数中,当时看的也是一懵,怎么还有$这东西,啥意思?不知道吧!看书啊或者去官网找,资料上说关于 $Sub$$$Super$$ 扩展功能的使用,详见 ARM® Compiler v5.06 for µVision®armlink User Guide。反正我也懒得去看(尴尬的是不一定能看懂啊),知道是个扩展功能就行。之后按照rtthread_startup函数往下走后发现
rt_application_init里面创建了一个线程,入口函数是main_thread_entry。至此整个启动流程就比较清晰了。先是利用MDK的扩展功能创建$Sub$$main函数,在函数里面调用rtthread_startup。之后是在rt_application_init中创建main线程在main_thread_entry中调用用户的main()函数。



使用特权

评论回复
沙发
nawu| | 2019-5-23 09:51 | 只看该作者
我也有一本不过我真的看不明白

使用特权

评论回复
板凳
研发工程师|  楼主 | 2019-5-23 10:24 | 只看该作者
nawu 发表于 2019-5-23 09:51
我也有一本不过我真的看不明白

火哥这本一开始确实难理解,不过结合配套例程还可以的。也推荐rtt作者的那本书,对入门有帮助。

使用特权

评论回复
地板
nawu| | 2019-5-23 10:45 | 只看该作者
研发工程师 发表于 2019-5-23 10:24
火哥这本一开始确实难理解,不过结合配套例程还可以的。也推荐rtt作者的那本书,对入门有帮助。 ...

是的 必须一边看一边跑程序才可以

使用特权

评论回复
5
zljiu| | 2019-5-24 09:16 | 只看该作者
我手头上也有一本 不过还没有利用起来

使用特权

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

本版积分规则

6

主题

90

帖子

1

粉丝