单片机第四季-第一课: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.hqwc.cn/news/545253.html

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

相关文章

鲸鱼优化算法双馈风电机组一次调频三机九节点虚拟惯量下垂控制DFIG matlab/simulink

以频率偏差变化最小为优化目标,采用鲸鱼算法优化风电机组一次调频控制系数。 采用matlab.m文件与simulink.slx文件联合。 系统频率优化结果 鲸鱼算法 时域模型

Gatling压力测试Springboot项目

Gatling压力测试Springboot项目 一、指定Java Spring 项目作为测试项二、下载Gatling三、配置测试代码四、打开bin目录下的gatling.bat文件进行测试 一、指定Java Spring 项目作为测试项 这里给出一个简单的示例:代码链接 下载maven依赖以后在8080端口运行这个项目…

章鱼网络 Community Call #19|​开启与 Eigenlayer 的合作

香港时间2024年3月8日12点,章鱼网络举行第19期 Community Call。 在过去的一个月,章鱼网络在成功完成 $NEAR Restaking 功能的安全审计之后,一直在稳步吸引关注。事实上,在整个行业中,我们是极少数已经推出 Restaking …

iOS常见崩溃简介

1. 崩溃 多指在移动设备(如iOS、Android设备)中或不可移动设备(如:Windows、Linux等设备), 在打开或使用应用程序时出现的突然退出中断的情况(类似于Windows的应用程序崩溃)。 多表现为&#…

基于springboot+vue实现艺术水平考级报名系统【项目源码+论文说明】计算机毕业设计

基于springbootvue实现艺术水平考级报名系统演示 摘要 本次毕业设计基于SpringBoot框架开发了一款艺术水平考级报名管理系统。该系统为考生提供了线上报名、准考证管理等核心功能,并为系统管理员提供了在线发布考试信息、对报名考生进行审核等管理功能。通过该系统…

从政府工作报告中的IT热词统计探计算机行业发展(二)人工智能+:3次

政府工作报告作为政府工作的全面总结和未来规划,不仅反映了国家整体的发展态势,也为各行各业提供了发展的指引和参考。随着信息技术的快速发展,计算机行业已经成为推动经济社会发展的重要引擎之一。因此,从政府工作报告中探寻计算…

基于VJ算法(Viola-Jones algorithm)的人面定位算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

Python之Web开发中级教程----搭建Web框架二

Python之Web开发中级教程----搭建Web框架二 搭建虚拟环境 虚拟环境的作用 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响. 搭建虚拟环境 (1)安装 sudo pip install virtualenv sudo pip install virtualenvwra…

JAVA13多行文本java14模式变量

文章目录 多行文本模式变量 多行文本 在JAVA13中,终于是支持多行文本字面量了。而且最关键的是为了源代码更加美观,还自动去掉了每行文本前面的空格。如下面的例子: public class MultilineStringDemo {public static void main(String[] ar…

静态库与动态库的制作和使用

个人主页:Lei宝啊 愿所有美好如期而遇 目录 前言 库? 为什么要使用库 静态库 静态库的制作和使用 动态库 动态库的制作和使用 四种方法: 直接将库拷贝(安装)到系统路径中 配置环境变量 软链接 添加配置文件 动态库和静态库同时…

【Hadoop大数据技术】——MapReduce经典案例实战(倒排索引、数据去重、TopN)

📖 前言:MapReduce是一种分布式并行编程模型,是Hadoop核心子项目之一。实验前需确保搭建好Hadoop 3.3.5环境、安装好Eclipse IDE 🔎 【Hadoop大数据技术】——Hadoop概述与搭建环境(学习笔记) 目录 &#…

蓝桥杯2023年省A(一波三折的)【买瓜】折半搜索+剪枝+排序

题目:洛谷 P9234 [蓝桥杯 2023 省 A] 买瓜 折半搜索 一开始觉得像dp,试着写了,显然过不了,但我实在觉得搜索也过不了啊,去看题解,发现使用了折半搜索(每天都觉得啥都不会捏 折半搜索就是先搜一…