注:本文章参考朱有鹏老师单片机第四季课件

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

RTOS那些你得知道的事儿(一)相关推荐

  1. ARM学习视频观後感:ARM那些你得知道的事儿 1-5

    前言 偶然间给我看到csdn学院内的一个免费教学视频.视频作者是朱有鹏.从视频里听得出,他是个实事求事,很实际的人,不喜欢做些无谓事.他的讲解很有系统,且对国内社会.民生.教育都有颇为"独特 ...

  2. 提升用户体验,你不得不知道的事儿——三种提醒框的微技巧

    大家都知道无论是android开发还是其他的开发,用户的体验都是很重要的事儿,下面就android开发中的三种提醒方式,Toast,SnackBar,Dialog做一些细节上的处理,或许能让你的产品更 ...

  3. 站长得知道的九种工具

    一.信息收集:问卷网  运营网站肯定要有内容吧,若想得到更多流量,内容肯定得是访问者感兴趣的,这时网民的意见和反馈就很重要啦.而且很多网站还会利用表单来收集感兴趣的访问者的资料,以更好的改善自己的商品 ...

  4. MySQL最左匹配原则,道儿上兄弟都得知道的原则

      自MySQL5.5版本起,主流的索引结构转为B+树.B+树的节点存储索引顺序是从左向右存储,在检索匹配的时候也要满足自左向右匹配. 目录 一.最左匹配原则的原理 二.违背最左原则导致索引失效的情况 ...

  5. MySQL最左匹配原则,道儿上兄弟都得知道的原则,字节跳动算法工程师面试总结

    目录 一.最左匹配原则的原理 二.违背最左原则导致索引失效的情况 三.查询优化器偷偷干了哪些事儿 四.需要你mark的知识点 1.如何通过有序索引排序,避免冗余执行order by 2.like 语句 ...

  6. MySQL最左匹配原则,程序员都得知道的原则

    通常我们在建立联合索引的时候,相信建立过索引的同学们会发现,无论是Oracle还是 MySQL 都会让我们选择索引的顺序,比如我们想在a,b,c三个字段上建立一个联合索引,我们可以选择自己想要的优先级 ...

  7. 【有美女看】提升用户体验,你不得不知道的事儿——巧用全屏与沉浸式体验,让用户更舒心~...

    最近公司项目中要求写一个视频直播录像及视频观看的功能,额,就本能地去看了一波当下主流的一些视频类APP,发现在爱奇艺等播放器中,在播放视频的时候都是fullScreen的,而这个在各大手游中也体现的比 ...

  8. [C#]关于Distinct与重写IEqualityComparer时得知道的二三事

    我们在想对一个可枚举的对象集合进行去重操作时,一般第一个想到的就是就是Linq的Distinct方法. 先定义一个类,然后使用Distinct方法去重 class Man{public int Age ...

  9. MATLAB小技巧整理-那些你必须得知道的matlab技巧

    众所周知Matlab功能全面而强大,那么多知识点要记下来是有亿点点难的哈,那么是时候整理一波了,温故而知新嘛~ 系统:windows MATLAB版本:2016b 1. 随机数.随机噪声 close ...

  10. python大神能干什么_Python这么火,能干什么?这四大主要用途是你必须得知道的!...

    如果你想学Python,或者你刚开始学习Python,那么你可能会问:"我能用Python做什么?" 这个问题不好回答,因为Python有很多用途. 大家都知道,当下全栈工程师的概 ...

最新文章

  1. 1亿参数4万样本BERT仍听不懂人话,我们离通用NLP能还有多远?
  2. C#实现枚举的相关操作
  3. 华为轮值主席鸿蒙,鸿蒙2.0已开源 华为轮值董事长:今年至少3亿设备搭载鸿蒙系统...
  4. led数字字体_技术丨体育场馆LED显示屏设计与安装要求
  5. SQL 判断 临时表是否存在
  6. 昨天发现,博客排名进行了两次
  7. 强化学习从入门到放弃的资料
  8. ec12编码器电路图_光电编码器的电路原理图详解
  9. 基于三维点云的机器人杆件目标识别与抓取(三)
  10. 服务器篇 使用Windows Server 2012R2搭建DHCP服务器-01
  11. 静态路由——手写路由表及综合实验
  12. Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To
  13. excel表格怎么拆分成多个表格?
  14. 心理学和人工智能 第一部分 心理学(一)—— 心理学的研究范围
  15. linux 内核 mtd读取,MTD坏块管理(二)-内核获取Nandflash的参数过程
  16. docker第二节点无法启动报错xtrabackup_checkpoints missing. xtrabackup/SST failed on DONOR. Check DONOR log解决方案
  17. 中文乱码字幕视频观看的免费网站
  18. 前端H5项目部署到OSS-利用jenkins实现自动发布【生产环境实战】
  19. Python的前景和意义
  20. android smb 文件夹,如何从您的Android设备连接到SMB共享

热门文章

  1. 介绍一下xgb_珍藏版 | 20道XGBoost面试题,你会几个?(上篇)
  2. 如何让excel说话,vba的speak功能
  3. 开关电源中输出电容的ESR会影响负载的动态响应
  4. 推荐系统三十六式:矩阵分解 总结
  5. matlab中对一个数求余,matlab中求余、求模运算方法总结
  6. 网络爬虫:Scrapy爬虫框架
  7. sigar 监控服务器硬件信息
  8. AI健身房真的存在?比炒概念更可怕的是VENTO已经做出来了
  9. SDL —— SDL_mixer
  10. ssl免费证书的申请