1. 引言

1.1. 为什么要学习RTOS

当我们进入嵌入式这个领域的时候,往往首先接触的都是单片机编程,单片机编程又首选51单片机来入门。这里 面说的单片机编程通常都是指裸机编程,即不加入任何RTOS(Real Time Operating System实时操作系统)的 程序。常用的RTOS有国外的FreeRTOS、μC/OS、RTX和国内的RT-Thread、Huawei LiteOS和AliOS-Things等, 其中尤以国外开源且免费的FreeRTOS的市场占有率最高。

在裸机系统中,所有的程序基本都是自己写的,所有的操作都是在一个无限的大循环里面实现。现实生活中的很 多中小型的电子产品用的都是裸机系统,而且也能够满足需求。但是为什么还要学习RTOS编程,偏偏还要整个操 作系统进来。一是项目需要,随着产品要实现的功能越来越多,单纯的裸机系统已经不能够完美地解决问题,反而 会使编程变得更加复杂,如果想降低编程的难度,我们可以考虑引入RTOS实现多任务管理,这是使用RTOS的最 大优势。二是学习的需要,必须学习更新的东西,实现更好的职业规划,为将来走向人生巅峰迎娶白富美做准 备,而不是一味的在裸机编程上面死磕。作为一个合格的嵌入式软件工程师,学习是永远不能停歇的事,时刻都 得为将来准备。书到用时方恨少,希望机会来临时你不要有这种感觉。

为了帮大家理清RTOS编程的套路,我们会在“裸机系统与多任务系统”章节简单的分析下这两种编程方式的区别, 这个区别我称它为学习RTOS的命门,只要打通这个任督二脉,以后的RTOS学习可以说是易如反掌。在讲解这两 种编程方法的区别的时候,我们主要讲方法论,不会涉及具体的代码编程,主要还是通过伪代码来讲解。

1.2. 如何学习RTOS

裸机编程和RTOS编程的风格有些不一样,而且有很多人说RTOS的学习很难,这就导致学习的人一听到RTOS编程就 在心理便忌惮三分,结果出师未捷身先死。以切身的学习经历来说这种担心是多余的。 学习RTOS的难度在于我们把它当成很难的一种东西,在心理上给自己造成这是一种不容易掌握的东西, 自己给自己造成了压力。 如今随着开发工具不断发展,越来越多的RTOS被集成在开发工具中,只有在开发工具中添加相对应的中间件即可省去各种移植的步骤, 想要最简单快速的入门,我们只要了解RTOS中各种内核概念,查看RTOS提供的API使用说明, 然后调用这些API实现自己想要的功能即可,这样做的好处是能够快速了解RTOS的使用方式实现对RTOS整体的认知。 在整体上掌握了RTOS的使用方式之后,如果学有余力可深入了解RTOS是怎么实现。