单片机第四季-第一课: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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/279574.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑马微服务p30踩坑

报错详情 : orderservice开不起来 : 发生报错 : 然后检查了以下端口啥的 ,配置啥的都是没有问题的 ; 解决办法 : 1 . 修改nacos1,2,3中的端口,将conf 中 cluster.conf中 的 127.0.0.1 全部改成自己本机的真实ipv4地址; 本机真实ipv4地址查看 :…

Git小乌龟安装及使用教程

一、Win7安装git 软件下载地址:git for windows 安装过程直接默认下一步,直到安装结束。 安装结束后重启一下。 安装完成后,在文件夹空白处右键出现以下几个标识,说明安装成功。 二、安装tortoise git(乌龟git&…

(css)vue 自定义背景 can‘t resolve

(css)vue 自定义背景 can’t resolve 旧写法: background-image: url(/assets/images/step-bg.jpg);background-size: 100% 100%; 新写法: background-image: url(~/assets/images/step-bg.jpg);background-size: 100% 100%; 解决参考:https…

robots协议详解:爬虫也要有边界感

随着互联网的迅猛发展,信息的获取变得越来越便捷,而网络爬虫(Spider)技术就是其中之一。网络爬虫是一种自动化程序,它能够遍历互联网上的网页,提取信息,用于各种用途,例如搜索引擎索引、数据挖掘、价格比较等。但是,爬虫技术虽然强大,但是也是一把双刃剑,在正当使用…

oops-framework框架 之 启动流程(三)

引擎: CocosCreator 3.8.0 环境: Mac Gitee: oops-game-kit 回顾 上篇博客中我们通过 oops-game-kit 模版构建了基础的项目,另外讲解了下assets目录结构和游戏配置文件的基本使用相关,详情内容可参考: oops-framewo…

Qt 多元素控件

Qt开发 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别 以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件. QTableView 自身不持有数据. 使用QTableView 的 …

Qt 容器类控件

Group Box 使用 QGroupBox 实现一个带有标题的分组框可以把其他的控件放到里面作为一组,这样看起来能更好看一点. 核心属性 属性说明title分组框的标题alignment分组框内部内容的对齐方式flat是否是 “扁平” 模式checkable是否可选择. 设为 true,则在…

基于nodejs+vue班级管理系统的设计与实现-flask-django-python-php

随着电子技术的普及和快速发展,线上管理系统被广泛的使用,有很多事业单位和商业机构都在实现电子信息化管理,班级管理系统也不例外,由比较传统的人工管理转向了电子化、信息化、系统化的管理。随着互联网技术的高速发展&#xff0…

Unity Toggle处理状态变化事件

Toggle处理状态变化事件,有两个方法。 法一、通过Inspector面板设置 实现步骤: 在Inspector面板中找到Toggle组件的"On Value Changed"事件。单击""按钮添加一个新的监听器。拖动一个目标对象到"None (Object)"字段&am…

【黑马头条】-day01环境搭建SpringBoot-Cloud-Nacos

文章目录 1 环境搭建及简介2 项目介绍2.1 应用2.2 业务说明2.3 技术栈2.4 收获2.5 大纲 3 Nacos准备3.1 安装Nacos 4 初始工程搭建4.1 环境准备4.1.1 导入项目4.1.2 设置本地仓库4.1.3 设置项目编码格式 4.2 全局异常4.2.1 自动装配 4.3 工程主体结构 5 登录功能开发5.1 需求分…

有什么ai写作神器?6个AI智能写作助手分享给你

随着人工智能技术的不断发展,自动生成文章的软件也逐渐成为了写作领域的一项重要工具。下面将介绍国内常用的6款AI写作助手,来看看它们的有什么不一样的地方。 爱制作AI写作 无需下载,直接在线使用,支持手机电脑操作,…

Android14音频进阶:AudioFlinger究竟如何混音?(六十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

Mac版Jmeter安装与使用模拟分布式环境

Mac版Jmeter安装与使用&模拟分布式环境 1 安装Jmeter 1.1 安装Java环境 国内镜像地址:https://repo.huaweicloud.com/java/jdk/11.0.29/jdk-11.0.2_osx-x64_bin.dmg 下载dmg后,双击进行安装。 配置环境变量: # 1 打开环境变量配置文件…

软考 网工 每日学习打卡 2024/3/18

学习内容 第8章 网络安全 本章主要讲解网络安全方面的基础知识和应用技术。针对考试应该掌握诸如数据加密、报文认 证、数字签名等基本理论,在此基础上深入理解网络安全协议的工作原理,并能够针对具体的 网络系统设计和实现简单的安全解决方案。 本章共有…

深入理解Java并发工具包中的CyclicBarrier

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在Java的并发编程世界中,协调和管理多个线程的执行是一项复杂而关键的任务。为了简化这一挑战,Java并发包…

三种简单方法教你手机mp4怎么转换成mp3!

在日常生活中,我们经常会遇到想要将手机上的MP4视频转换为MP3音频的情况。可能是想要提取音频内容,例如歌曲或录音,方便在其他设备上播放或分享;也可能是为了节省手机存储空间,将视频文件转换为更小的音频文件。 无论…

【HTTP完全注解】看了还搞不懂缓存你直接来打我

HTTP缓存 HTTP缓存是一种HTTP的性能优化机制,它是为了提高Web页面加载速度和减轻服务器负载而设计的,通过这种机制,Web浏览器或其他客户端可以存储先前获取的Web资源的副本,并在后续请求相同资源时使用这些副本,而不是…

Java学习笔记21——使用JDBC访问MySQL数据库

JDBC(Java Database Connectivity,Java数据库连接)是应用程序编程借口(API),描述了一套访问关系数据库的标准Java类库。可以在程序中使用这些API,连接到关系数据库,执行SQL语句&…

【技术栈】Redis 中的事务及持久化方式

SueWakeup 个人主页: SueWakeup 系列专栏:学习技术栈 个性签名:保留赤子之心也许是种幸运吧 本文封面由 凯楠📸 友情提供 目录 相关传送门 1. Redis 中的事务 2. Redis 持久化 2.1 RDB 方式 2.1.1 RDB手动 2.1.2 RDB自动 2.…

跨越时空的纽带:探索Facebook如何连接人与人

引言 Facebook作为全球最大的社交媒体平台之一,已经成为了人们日常生活中不可或缺的一部分。它不仅仅是一个社交网络,更是连接人与人、人与世界的纽带。在这篇文章中,我们将深入探讨Facebook如何跨越时空,连接人与人之间的关系&a…