RTOS那些你得知道的事儿(一)
注:本文章参考朱有鹏老师单片机第四季课件
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那些你得知道的事儿(一)相关推荐
- ARM学习视频观後感:ARM那些你得知道的事儿 1-5
前言 偶然间给我看到csdn学院内的一个免费教学视频.视频作者是朱有鹏.从视频里听得出,他是个实事求事,很实际的人,不喜欢做些无谓事.他的讲解很有系统,且对国内社会.民生.教育都有颇为"独特 ...
- 提升用户体验,你不得不知道的事儿——三种提醒框的微技巧
大家都知道无论是android开发还是其他的开发,用户的体验都是很重要的事儿,下面就android开发中的三种提醒方式,Toast,SnackBar,Dialog做一些细节上的处理,或许能让你的产品更 ...
- 站长得知道的九种工具
一.信息收集:问卷网 运营网站肯定要有内容吧,若想得到更多流量,内容肯定得是访问者感兴趣的,这时网民的意见和反馈就很重要啦.而且很多网站还会利用表单来收集感兴趣的访问者的资料,以更好的改善自己的商品 ...
- MySQL最左匹配原则,道儿上兄弟都得知道的原则
自MySQL5.5版本起,主流的索引结构转为B+树.B+树的节点存储索引顺序是从左向右存储,在检索匹配的时候也要满足自左向右匹配. 目录 一.最左匹配原则的原理 二.违背最左原则导致索引失效的情况 ...
- MySQL最左匹配原则,道儿上兄弟都得知道的原则,字节跳动算法工程师面试总结
目录 一.最左匹配原则的原理 二.违背最左原则导致索引失效的情况 三.查询优化器偷偷干了哪些事儿 四.需要你mark的知识点 1.如何通过有序索引排序,避免冗余执行order by 2.like 语句 ...
- MySQL最左匹配原则,程序员都得知道的原则
通常我们在建立联合索引的时候,相信建立过索引的同学们会发现,无论是Oracle还是 MySQL 都会让我们选择索引的顺序,比如我们想在a,b,c三个字段上建立一个联合索引,我们可以选择自己想要的优先级 ...
- 【有美女看】提升用户体验,你不得不知道的事儿——巧用全屏与沉浸式体验,让用户更舒心~...
最近公司项目中要求写一个视频直播录像及视频观看的功能,额,就本能地去看了一波当下主流的一些视频类APP,发现在爱奇艺等播放器中,在播放视频的时候都是fullScreen的,而这个在各大手游中也体现的比 ...
- [C#]关于Distinct与重写IEqualityComparer时得知道的二三事
我们在想对一个可枚举的对象集合进行去重操作时,一般第一个想到的就是就是Linq的Distinct方法. 先定义一个类,然后使用Distinct方法去重 class Man{public int Age ...
- MATLAB小技巧整理-那些你必须得知道的matlab技巧
众所周知Matlab功能全面而强大,那么多知识点要记下来是有亿点点难的哈,那么是时候整理一波了,温故而知新嘛~ 系统:windows MATLAB版本:2016b 1. 随机数.随机噪声 close ...
- python大神能干什么_Python这么火,能干什么?这四大主要用途是你必须得知道的!...
如果你想学Python,或者你刚开始学习Python,那么你可能会问:"我能用Python做什么?" 这个问题不好回答,因为Python有很多用途. 大家都知道,当下全栈工程师的概 ...
最新文章
- 1亿参数4万样本BERT仍听不懂人话,我们离通用NLP能还有多远?
- C#实现枚举的相关操作
- 华为轮值主席鸿蒙,鸿蒙2.0已开源 华为轮值董事长:今年至少3亿设备搭载鸿蒙系统...
- led数字字体_技术丨体育场馆LED显示屏设计与安装要求
- SQL 判断 临时表是否存在
- 昨天发现,博客排名进行了两次
- 强化学习从入门到放弃的资料
- ec12编码器电路图_光电编码器的电路原理图详解
- 基于三维点云的机器人杆件目标识别与抓取(三)
- 服务器篇 使用Windows Server 2012R2搭建DHCP服务器-01
- 静态路由——手写路由表及综合实验
- Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To
- excel表格怎么拆分成多个表格?
- 心理学和人工智能 第一部分 心理学(一)—— 心理学的研究范围
- linux 内核 mtd读取,MTD坏块管理(二)-内核获取Nandflash的参数过程
- docker第二节点无法启动报错xtrabackup_checkpoints missing. xtrabackup/SST failed on DONOR. Check DONOR log解决方案
- 中文乱码字幕视频观看的免费网站
- 前端H5项目部署到OSS-利用jenkins实现自动发布【生产环境实战】
- Python的前景和意义
- android smb 文件夹,如何从您的Android设备连接到SMB共享