单片机第四季-第一课:RTOS

1,RTOS来龙去脉

操作系统是什么?

以人类社会类比,小公司三四个人都是干活的,大公司有几万人其中有几千人从事管理工作,他们的工作是让其他人的干活效率更高。

51单片机为什么没有操作系统,因为51的性能太低,资源太少,类似一个小公司,它上面运行的每一行代码都是干活的。

随着单片机性能提升,硬件更复杂,就像人类社会人越来越多,生产力不断提升,这时候就需要专门的代码管理这些资源(比如内存、flash、IO等)。类似于一个小公司只有几个人,老板可以直接管理这些人,一个几万人的公司老板是无法直接管理这么多人的,就需要设置各种中层职位来进行管理。

操作系统的出现是专业分工的体现。

(1)简单单片机资源少、并行需求小,纯裸机程序即可;
(2)复杂单片机资源多、并行需求和实时需求均有,需要RTOS来帮助开发。

如何学习操作系统?
(1)学习操作系统本身的基本理论,学着去看懂简单的OS内核设计和实现
(2)重点在于使用操作系统来工作:对接自己硬件、管理自己资源、实现自己的项目功能
(3)不必过分关注OS内核,不必尝试自己写OS内核,但要会看、会移植、会用、会解决bug

2,主流RTOS

RTOS(实时操作系统)和linux、windows、android等(非实时操作系统)的差异,RTOS主要应用在工业等领域,例如控制机械手臂的移动可能需要在us级做出反应,非实时操作系统android应用在消费电子领域,例如手机上,你可能会说我点了手机屏幕也很快就有变化啊,这是人的感受,有可能这个反应时间已经在10ms或100ms了,这个时间对人来说已经很快了,windows应用在电脑上同理。

RTOS的关键点:稳定性、license、开发成本、外部扩展资源、实时性、效率、市场占有率等。

主流RTOS:
(1)ucosii            Micrium(2016被Silabs收购)
(2)ucosiii
(3)freertos            英国Real Time Engineers Ltd,Richard Barry. 开源、免费商用,市占率最高
(4)rtx                Keil/ARM    官方支持,发展很快,将M3/M4内核性能充分发挥
(5)rawos            国内高质量rtos,商业化原因暂停维护中
(6)embOS            Segger        高品质,没emWin火

3,ucos介绍

micrium官网:https://www.micrium.com/    ucos网页:https://www.micrium.com/rtos/
全面介绍见 https://www.micrium.com/rtos/

uC/OSii和uC/OSiii对比:
https://www.micrium.com/rtos/rtos-comparison/

UCOS在一个工程中所处的位置如下图所示:

4,ucos学习方法和要点

学习的思路和方法:
(1)源码级学习,read the fucking source code
(2)分层和分模块的理念
(3)C语言功底得过硬《嵌入式linux核心课程》第4部分:C语言高级专题
(4)大脑的复杂度得跟上
(5)STM32本身的外设编程和标准库等基本功得过硬

5,ucos学习准备工作

ucos源码获取;

ucos源码的浏览,使用Source Insight;

相关推荐

  1. 第一章 - 1节-计算机概述 -

    2024-03-17 09:56:03       26 阅读
  2. 第一章 - 4节-计算机软件系统 -

    2024-03-17 09:56:03       24 阅读
  3. 第一章 - 7节- 信息编码表示 -

    2024-03-17 09:56:03       28 阅读
  4. 第一章 - 1节-计算机概述 - 后习题

    2024-03-17 09:56:03       30 阅读
  5. 第一章 - 10节- 计算机网络 - 后习题

    2024-03-17 09:56:03       27 阅读
  6. HormonyOS第一八章习题答案

    2024-03-17 09:56:03       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 09:56:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 09:56:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 09:56:03       82 阅读
  4. Python语言-面向对象

    2024-03-17 09:56:03       91 阅读

热门阅读

  1. CMake官方教程9--打包文件

    2024-03-17 09:56:03       42 阅读
  2. JWT令牌

    JWT令牌

    2024-03-17 09:56:03      39 阅读
  3. React懒加载

    2024-03-17 09:56:03       44 阅读
  4. awk命令——文本数据格式处理工具

    2024-03-17 09:56:03       45 阅读
  5. 门牌制作-蓝桥杯?-Lua 中文代码解题第3题

    2024-03-17 09:56:03       41 阅读
  6. 飞桨科学计算套件PaddleScience

    2024-03-17 09:56:03       46 阅读
  7. Redis列表:高效消息通信与实时数据处理的利器

    2024-03-17 09:56:03       41 阅读
  8. qt 使用有参数的信号和槽

    2024-03-17 09:56:03       46 阅读