注:本文章参考朱有鹏老师单片机第四季课件
1、RTOS的来龙去脉
1.1、操作系统是什么?
操作系统的出现是专业分工的体现,编程有了分层的概念,建立了一个系统,有了“指挥部”。
1.2、为什么需要RTOS
(1)简单单片机资源少、并行需求小,纯裸机程序即可 (2)复杂单片机资源多、并行需求和实时需求均有,需要RTOS来帮助开发
1.3、如何学习操作系统
(1)学习操作系统本身的基本理论,学着去看懂简单的OS内核设计和实现 (2)重点在于使用操作系统来工作:对接自己硬件、管理自己资源、实现自己的项目功能 (3)不必过分关注OS内核,不必尝试自己写OS内核,但要会看、会移植、会用、会解决bug
2、主流RTOS和我们的课程规划
2.1、RTOS的技术特征
(1)RTOS(实时操作系统)和linux、windows、android等(非实时操作系统)的差异 本质区别在于任务调度的确定性
大多数操作系统都允许多个程序同时执行,称为多任务处理。 但实际上每个处理器在同一时刻只能处理单个执行线程,而操作系统的调度程序来选择在何时运行哪个程序,并通过在每个程序之前快速切换从而提供同时执行的假象。 RTOS(Real-time operating system)实时操作系统和非实时操作系统主要区别就在于调度机制的不同。 实时操作系统要旨在于确定性的执行模式。因为认为只有在可预测操作系统行为(确定)时,才能够满足实时的需求。大部分的RTOS操作系统是通过用户设定每个执行线程的优先级来实现确定性。在调度时,一定会优先执行高优先级的程序。而非实时操作系统是保证每个执行线程都不会饿死,只是尽量保证高优先级的程序较多运行,在高低优先级线程同时就绪时,调度系统仍可能会执行低优先级线程。
作者:ZRB 链接:https://www.zhihu.com/question/291405354/answer/535829364 来源:知乎
(2)RTOS的关键点:稳定性、license、开发成本、外部扩展资源、实时性、效率、市场占有率等
2.2、主流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火
2.3、课程讲解规划
(1)uCOS2配合ARM3.0开发板讲解,有空的话可以移植到PZ6806L开发板上 (2)uCOS3配合PZ6808L开发板讲解(STM32F407) (3)freertos在第5季讲STM32Cube HAL库时再讲,其实和uCOS大同小异 (4)rtx以后看需求,可以考虑以专题形式来讲 (5)其他的暂时没考虑
3、uC/OS全面介绍
3.1、uC/OS介绍
(1)micrium官网:https://www.micrium.com/ ucos网页:https://www.micrium.com/rtos/ (2)全面介绍见 https://www.micrium.com/rtos/ (3)kernel有2和3共两个版本,配件覆盖USB、CAN、TCPIP、FS、GUI等 (4)被移植到各种主流MCU平台,https://www.micrium.com/downloadcenter/ uC/OSii和uC/OSiii (1) https://www.micrium.com/rtos/rtos-comparison/
4、uCOS的学习方法和要点
4.1 学习的思路和方法
(1)源码级学习,read the fucking source code (2)分层和分模块的理念 (3)C语言功底得过硬《嵌入式linux核心课程》第4部分:C语言高级专题 (4)大脑的复杂度得跟上 (5)STM32本身的外设编程和标准库等基本功得过硬 纠正并强调几个观念 (1)在学中练,在练中学,不是会什么以后才去学而是在学中去会xx (2)先会看,然后会移植,最后才会创造
5、uCOS学习前的准备工作
5.1、开发板准备
(1)用ARM3.0开发板+STM32F103C8T6核心板作为开发板 (2)串口硬件改造以方便ISP下载同时串口输出监测 (3)LED接线用作调试,后续按键等其他接线同前面课程讲解
5.2 源码浏览工具
(1)测试和体验源码用我提供的移植过的可以运行的源码 (2)待移植源码用ARM3.0开发板光盘自带的uCOS2工程 (3)源码浏览用SourceInsight (4)移植时SI + MDK5
|