为什么学习RTOS
在单片机这条路上很难避免RTOS,除非你止步不前,或者另谋生计。学习RTOS是进阶之路,对于编程能力是一个很大提升。
很多人刚开始接触嵌入式的时候,首先去了解到的可能是单片机编程,肯恩是51入门,也可能是直接学习STM32,但是这里指的编程都是裸机编程,是没有加入RTOS(Real Time Operation System)也就是实时操作系统的编程。常见的RTOS有UCOS、FreeRTOS、RT-Thread,其中RT-Thread是国产操作系统。这其中FreeRTOS的市场占有率最高,因为他是免费的。UCOS的资料相对来说比较全,但是很多公司没有选择使用UCOS,因为商业使用,需要支付版权费。其中RT-Thread最近几年的热度也比较高。
值得一提的是,UCOS最近好像要免去商业版权费,不知是真是假。
传统的单片机编程,属于逻辑编程,几乎所有的程序都在while(1)循环里面,剩余的程序在中断里面。对于功能简单、外设较少的产品使用逻辑编程没有问题,但是随着社会的发展,人们对电子产品的要求越来越高,这就要求电子产品有更多的功能,更多的外设。
上述的原因势是比较官方的原因,相信大家了解、学习RTOS,并不是为了将来做产品,而是比赛或者项目需要。同时学习RTOS对于自己的编程能力也会有一定的提升,这也是一部分同学学习RTOS的动力。
怎么学习RTOS
关于怎么去学习,如果你有RTOS的基础的话,去掌握另一个操作系统,只需要去看相关的手册即可,不需要去看视频从头开始。但是如果你没有基础,那我还是建议从头看视频,不要急功近利,世界上没有速成的知识,速成都是假象。当然不包括学习能力特别强的人。
因为我学习的是UCOS,所以只能从这一类操作系统的角度来说。看视频的话,市面上比较主流的有野火和正点原子,野火的视频讲的比较基础,前面几节课几乎学不到实用的东西,但是去打下了理论基础,比较适合入门,从头学习(是真的从头学习),前几节课的学习反馈真是少的可怜,以至于你真的很想放弃。正点原子却不是这样,直接学习移植,然后就进入正题,但学起来有时候会比较废力,也是某种意义上的速成。
这两个视频比较适合结合起来看,学完之后,再去看技术文档,注重源码,会有很多收获,但也会很痛苦,对链表的要求真的很高。
RTOS选择
学习RTOS首先面临的选择就是选择哪一种RTOS,市面上的有很多。实际上,所有的RTOS都是在链表和定时器的基础上来实现相应的功能,只不过是代码风格不同,或者是安全性上不同(对于咱们来说,好像这个原因和没有一样)。所以说,只要掌握了一款RTOS,以后换到其他型号的 RTOS,使用起来自然也得心应手。
我学习的是UCOS,主要原因是看到文档里说他比较安全,发展历史比较早,相关资料比较全,组件也很丰富,更重要的是里面还说UCOS上过太空,我当时下定决心就学它^_^。FreeRTOS也很合适,相关资料也这几年也完善了起来(谁不喜欢白嫖呢)。
审核编辑黄宇
-
嵌入式
+关注
关注
5092文章
19176浏览量
307322 -
操作系统
+关注
关注
37文章
6889浏览量
123671 -
RTOS
+关注
关注
22文章
819浏览量
119863 -
uCOS
+关注
关注
7文章
175浏览量
78482
发布评论请先 登录
相关推荐
Flexible Safety RTOS的技术特征
深入解析Zephyr RTOS的技术细节
![深入解析Zephyr <b class='flag-5'>RTOS</b>的技术细节](https://file1.elecfans.com/web2/M00/0A/E1/wKgaomcXZ22AeVJgAABvcLxtcWM071.png)
RTOS正在缩小与Linux的差距
![<b class='flag-5'>RTOS</b>正在缩小与Linux的差距](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
freertos和rtos区别是什么
RTOS与Linux有什么区别
RTOS的特性和类型
RTOS开发最佳实践
简单认识RTOS实时操作系统
从菜鸟到大牛!嵌入式完整学习路线:STM32单片机-RTOS-Linux
![从菜鸟到大牛!嵌入式完整<b class='flag-5'>学习</b>路线:STM32单片机-<b class='flag-5'>RTOS</b>-Linux](https://file1.elecfans.com/web2/M00/FE/CB/wKgaomafZYSAYjM1AAB9R__vzlQ049.png)
如何在RTOS SDK中将FRC1计时器附加到NMI的信息?
risc-v的mcu对RTOS兼容性如何
RTOS+LwIP Socket不工作的原因?
CMSIS-RTOS V1与V2的区别是什么?
基于RTOS的应用进程中的典型线程
![基于<b class='flag-5'>RTOS</b>的应用进程中的典型线程](https://file1.elecfans.com/web2/M00/C2/99/wKgZomXmdqyABnTCAAAd3L3-gXs236.png)
评论