在二姨家的ST读书节活动中,本人有幸获得一本《嵌入式实时操作系统 RT-Thread设计与实现》,最近一段时间在断断续续的学习,现总结记录如下:
首先,书的前言很重要,前言很多时候会告诉我们如何学习或者使用该书籍。比如书中并没有配套光盘资料等等,那么相关的源代码、软件资料在哪里获得呢?其实前言里面说的很明白,资料可以关注微信公众号获得。没有获得赠书的小伙伴也可以关注该公众号,获取自己想要的学习资源。
现在我们看一下第一份例程,对RTT有个初始的印象。资料源码为《chapter1-9》的内容。
打开源码,我们可以看到main函数为空,按照我过去的编程思路,一个空的主函数能做什么?什么也做不了吧!!!
按照书中所讲,先配置一下KEIL为模拟器模式。
然后编译源码,并启动仿真。
调用串口1窗口
运行仿真,可以看到uart1窗口中显示内容与书中内容相同。
现在我们调整程序,给主函数增加内容。源码中已经编辑了函数,我们只需要声明一下,并在主函数中调用即可。
再次编译、仿真结果如下。与课本相同,可是有有伙伴考虑红框中两句的顺序吗?对比前次仿真,msh >落后了一行,这是为什么呢?
在学习了本书的其他相关内容后,使用“Find in Files ...”(快捷键ctrl+shift+f)功能查找$Sub$$main和$Super$$main,并使用鼠标右键的“Go To Definition Of ...”定位相关函数或者宏定义的内容。可以发现主线程优先级比Finsh线程的优先级高,如果调整下线程优先级呢?
我把直接Finsh的优先级调整成2,结果如下。说明 确实是线程优先级导致这样的结果。
以上是本人对于RTT的初步学习,也欢迎大神指导。谢谢大家!
|