` 本帖最后由 lzr858585 于 2021-4-1 16:20 编辑
有不少人问到如何学习RT-Thread,有没有推荐的学习方法。在知乎上RT-Thread创始人熊谱翔做出了回应:
好像有些人问到,我大体说下可能的方式。
首先一个,你学习的目的是什么?有学习最好是有实践,仅是学习没有最终的实践会很快就忘了的。所以总体的步骤是:学习,实践;实践中遇到问题,再回过头来究些细节;如此反复,终能够掌握/精通整个系统。
言归正传,说说如何有效学习RT-Thread。
0. 请预备好C语言基础知识;知道基础的C语言代码应该如何编写;写了代码,编译出错时知道如何进行修正;
1. 找一套开发板进行上手;因为考虑到代码调试的缘故,建议选择STM32或nxp lpc系列处理器的开发板。花些时间,基本上不用怎么修改代码的,把kernel + shell跑起来。<这个也是熟悉开发环境、建立工程的过程(也可以了解如何用命令行生成出Keil MDK/IAR等的工程文件)>
2. 能够把基本的kernel + shell跑起来,实际上已经进入了RT-Thread的门槛了,加个小代码,写个"Hello RT-thread
"的打印应该是没问题了。在这个基础上,下一步就是实时操作系统学习的范畴了。经典的(实时)操作系统问题可以是两个:生产者消费者问题;哲学家问题。可以查找相应的问题描述,然后在开发板上都实现了(最好是能够以多种方式)。<通过使用RT-Thread提供的机制解决这些问题,应该基本上能够了解如何在RT-Thread中创建多任务,多任务之间同步,及任务间通信可以怎么进行等> 在这个过程中如果对操作系统一些基础知识还有不明白的地方,可以找一些书籍查看下。2017年,基于RT-Thread应该也会有一本这样的书出来,可以对照着阅读。
3. 解决了生产者/消费者、哲学家的问题,基本上应该说对RTOS已经入门了(这里可不仅仅是说RT-Thread哦)。那么接下去可以浏览熟悉、使用一些RT-Thread其他的部分,例如定时器,内存管理等,当然也有必要了解下RT-Thread的设备框架,最简单的:如何使用一个串口设备,也可以看看shell中是如何操作串口设备的。这里,那份《RT-Thread编程指南》是最重要的参考,可以好好读读,有问题大多也能在其中得到答案。<如果打算长期使用RT-Thread,其中的设备框架还是很有必要去了解(不一定说非常熟悉),因为RT-Thread的一个原则是能够以一个整体的方式来使用,相互之间能够融为一体;外围周边组件当要涉及到底层操作时都是基于RT-Thread的设备模型来进行,从而实现各个芯片平台的可移植性>
4. 了解RT-Thread的组件。RT-Thread的核心组件包括:实时内核;命令行shell;文件系统;TCP/IP网络协议栈等。再之后的,则是围绕着这些试图兼容POSIX的标准接口。按照这样的原则,针对文件系统、TCP/IP网络协议栈,RT-Thread(试图)提供的都是标准的接口,希望能够做到快速上手快速迁移,所以当使用这部分组件而不知道如何使用时,可以交叉着寻找些POSIX资料也是非常有帮助的。到了这步,实际上应该是和实践密切相关的了,没有实践,这部分也会非常快速忘掉。
学习RT-Thread的步骤基本上可以按照类似的方式来,到了第4步,则是进入到学习/使用的长期过程。前面的入门时间应该不长的,特别是有一定指导下,这个时间应该更短。以往我的经验是可以制定出一个个小任务的方式来进行,完成它快速获得实战经验。原来也编写过一份简短的《RT-Thread实验手册》,不过只有题目,没有答案,公开到网上大家多只是浏览浏览,缺少实际的动手环节。
转自RT-Thread社区
`
|