一、单片机_RTOS_架构

news2024/9/20 18:53:06

1、RTOS的概念

        RTOS是实时操作系统(Real-Time Operating System)的缩写。它是一种专门为实时应用程序设计的操作系统,具有实时性、高可靠性和紧凑性等特性。RTOS可以在嵌入式系统、工业自动化、航空航天、科学仪器等领域应用,主要用于控制和监测各种硬件和软件系统。RTOS的主要功能包括任务管理、中断处理、定时器、存储管理、设备驱动等。由于其高可靠性和实时性,RTOS在许多关键应用领域中得到广泛的应用。

2、单片机程序与人脑类比

        妈妈要一边给小孩喂饭,一边加班跟同事微信交流,怎么办?

2.1、无RTOS

(1)对于单线条的人,不能分心、不能同时做事,她只能这样做:

  • 给小孩喂一口饭
  • 瞄一眼电脑,有信息就去回复
  • 再回来给小孩喂一口饭
  • 如果小孩吃这口饭太慢,她回复同事的信息也就慢了,被同事催:你半天都不回我?
  • 如果回复同事的信息要写一大堆,小孩就着急得大哭起来。

(2)这种做法,在软件开发上就是一般的单片机开发,没有用操作系统。

2.2、有RTOS

(1)对于眼明手快的人,她可以一心多用,她这样做:

  • 左手拿勺子,给小孩喂饭
  • 右手敲键盘,回复同事
  • 两不耽误,小孩“以为”妈妈在专心喂饭,同事“以为”她在专心聊天
  • 但是脑子只有一个啊,虽然说“一心多用”,但是谁能同时思考两件事?
  • 只是她反应快,上一秒钟在考虑夹哪个菜给小孩,下一秒钟考虑给同事回复什么信息

(2)这种做法,在软件开发上就是使用操作系统,在单片机里叫做使用RTOS。

(3)我们使用的Windows也是操作系统,被称为通用操作系统。使用Windows时,我们经常碰到程序卡死、停顿的现象,日常生活中这可以忍受。但是在电梯系统中,你按住开门键时如果没有即刻反应,即使只是慢个1秒,也会夹住人。在专用的电子设备中,“实时性”很重要。

2.3、简单示例程序

/*经典单片机程序*/
void main()
{
	while (1)
    {
        喂一口饭();
        回一个信息();
    }
}

--------------------------------------------------------------------------
/*RTOS程序*/    
喂饭()
{
    while (1)
    {
        喂一口饭();
    }
}

回信息()
{
    while (1)
    {
        回一个信息();
    }
}

void main()
{
    create_task(喂饭);      /*创建喂饭任务*/
    create_task(回信息);    /*创建回信息任务*/
    start_scheduler();     /*开始调度*/
    while (1)
    {
        sleep();           /*空闲状态*/          
    }
}

3、架构

3.1、架构的概念

        芯片架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。

3.2、用人来类比电子产品

(1)在电子系统中,CPU就是大脑,CPU有很多种类别,被称为架构。

(2)单片机中,常见的有ARM和RISC-V。

3.3、ARM架构

(1)目前主流的架构,用得最广,芯片公司需要付费购买,再搭配各种模块才能设计出芯片。

(2)目前华为被美国制裁,无法获得最新的ARM架构。

(3)对于其他公司,购买ARM新架构的价格也不低。

3.4、RISC-V架构

(1)后起之秀,开源、免费。

(2)目前华为海思的HI3861、乐鑫的ESP32-C3等芯片,都是使用RISC-V的单片机芯片。

(3)平头哥和全志的D1芯片,是使用RISC-V的、能运行Linux的芯片。

(4)RISC-V作为全新的架构,没有历史包袱,设计优美,在技术上大有可为,另外它开源无需授权,能摆脱技术的卡脖子问题。

4、RTOS与架构

(1)要深入理解RTOS就必须深入理解CPU架构。

(2)如果只是使用别人移植好的RTOS来写程序,当然不需要了解CPU架构。甚至编写驱动程序时,也不需要了解CPU架构:因为我们操作的是CPU之外的设备,不是操作CPU。

(3)如果你想达到如下目标,就需要先了解CPU架构:

  • 深入理解RTOS的内部实现
  • 移植RTOS
  • 解决疑难问题

        

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML 基础标签

前言 当今互联网时代&#xff0c;网页是我们获取信息、交流和展示自己的重要渠道之一。而HTML&#xff08;超文本标记语言&#xff09;作为构建网页的基础&#xff0c;学习掌握HTML标签成为了必不可少的技能。 标题标签 <h1>~<h6>&#xff1a;这是用来定义标题的…

基于arcFace+faiss开发构建人脸识别系统

在上一篇博文《基于facenetfaiss开发构建人脸识别系统》中&#xff0c;我们实践了基于facenet和faiss的人脸识别系统开发&#xff0c;基于facenet后续提出来很多新的改进的网络模型&#xff0c;arcFace就是其中一款优秀的网络模型&#xff0c;本文的整体开发实现流程与前文相同…

vCenter Server Appliance(VCSA )7.0 部署指南

部署准备 1、下载VMware-VCSA-all-7.0.0-xxxx.iso文件&#xff0c;用虚拟光驱挂载或者解压运行&#xff0c;本地系统以win10拟光驱挂载为例&#xff0c;运行vcsa-ui-installer/win32/installer.exe。 2、选择“安装”&#xff0c;VCSA 7.0版本同时提供其他选项。 第一阶段 3、…

leetcode 35.搜索插入位置

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;搜索插入位置 ps&#xff1a; 题目给的是一个有序的数组&#xff0c;所以采用二分查找算法最优&#xff0c;只需要计算出如果目标值不存在则返回按顺序插入的位置&#xff0c;其实刚好是 left 位置。 代码&#xff1a; …

EtherCAT转Modbus网关连接TwinCAT3的配置方法

捷米JM-ECT-RTU 是自主研发的一款 ETHERCAT 从站功能的通讯网关。该产品主要功能是将 ETHERCAT 网络和 MODBUS-RTU 网络连接起来。 网关连接到 ETHERCAT 总线中做为从站使用&#xff0c;连接到 MODBUS-RTU 总线中做为主站或从站使用。 ​编辑切换为居中 添加图片注释&#x…

【计算机网络】NAT技术

文章目录 1. NAT技术简介2. 使用NAT技术转换IP的过程3. NAPT4. NAT技术的缺陷5. NAT和代理服务器 1. NAT技术简介 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术&#xff0c;是解决IP地址不足的主要手段&#xff0c;并且能够有效避免外…

合合信息通过ISO/IEC国际标准双认证,为全球用户提供高合规标准AI服务

互联网、AI等技术的全球普及为人们提供便捷服务的同时&#xff0c;也带来了信息安全领域的诸多挑战。保护用户隐私及数据安全&#xff0c;是科技企业规范、健康发展的重心。近期&#xff0c;上海合合信息科技股份有限公司&#xff08;简称“合合信息”&#xff09;顺利通过国际…

量子纠错跨越式发展!Quantinuum科学家成功模拟氢分子

​ &#xff08;图片来源&#xff1a;网络&#xff09; 量子计算公司Quantinuum表示&#xff0c;它能在该公司的H1量子计算机上使用“容错法”来模拟氢分子。这是一种新的错误检测代码&#xff0c;能准确地进行模拟&#xff0c;通过在量子处理器上成功模拟化学分子&#xff0c;…

yolov5中的best.pt是如何确定的

在yolov5 的使用过程中几乎都会发现的问题&#xff1a; 训练结果有last.pt和best.pt , last.pt好理解&#xff0c;就是最后一个epoch的输出&#xff0c;但是best是啥意思&#xff1f;怎么才算best&#xff1f; 我们来一行行看train.py源码 追溯到./utils/metrics.py中的fitn…

LeetCode541.反转字符串II

541.反转字符串II 简单的反转不够看&#xff0c;来一手花式反转 题目描述 给定一个字符串s和一个整数k&#xff0c;从字符串开头算起&#xff0c;每计数至2k个字符&#xff0c;就反转这2k个字符中的前k个字符。 1、如果剩余字符少于k个&#xff0c;则将剩余字符全部反转 2、…

HCIP-Storage-H13-624 v5.0 题库真题和机构资料

华为认证存储高级工程师HCIP-Storage V5.0&#xff08;中文版&#xff09;自2020年11月27日起&#xff0c;正式中国区发布。 机构的考试大纲、录播课程、考试题库&#xff0c;有需要的同学自行领取哈&#xff1a; HCIA、HCIP-storage存储资料---提取码:1234https://pan.baidu…

【Git】标签管理与Git Flow模型

目录 一、操作标签 二、推送标签 三、删除标签 四、Git Flow模型分支设计 一、操作标签 git tag # 查看有哪些标签 git tag [name] # 给最近一次commit打标签 git tag [name] [commitID] #给指定的commit打标签 git tag -a [name] -m desc # 打标签并添加描述 二、推送标…

深入了解 PostgreSQL 扩展插件

深入了解 PostgreSQL 扩展插件 在 PostgreSQL 数据库中&#xff0c;扩展插件是极具价值的工具&#xff0c;它们为我们提供了丰富多样的功能增强。本篇博客将深入介绍几个常用的 PostgreSQL 扩展插件&#xff0c;包括 pg_stat_statements、uuid、postgis 以及 postgis_raster。…

解决Linux下PyCharm无法新建文件

一、问题描述 如图&#xff0c;在Ubuntu Linux系统中使用pycharm管理项目时&#xff0c;提示无法新建.py源文件&#xff1a; 二、问题解决 将问题定性为文件夹&#xff08;目录&#xff09;权限问题&#xff0c;在终端中打开项目文件夹的上级目录&#xff0c;将整个项目目录的…

勒索软件Epsilon Red:Microsoft Exchange服务器新威胁

虽然Microsoft Exchange针对存在的代码漏洞一直更新补丁&#xff0c;但这并未能阻止网络黑客停手。最新发现&#xff0c;一种自称为 Epsilon Red的新型勒索软件&#xff0c;利用Microsoft Exchange服务器的系统漏洞对网络上的机器进行加密。在进入加密阶段之前&#xff0c;Epsi…

使用公式与格式控制Excel快速实现计划甘特图

项目中都会遇到做任务计划的需求&#xff0c;有的客户要求需要有甘特图的形式本文介绍如何使用excel 单元格实现甘特图显示&#xff0c;调整任务时间自动填充单元格填色实现甘特图效果。废话不多说&#xff0c;先看效果。 准备工作先创建两列开始时间与完成时间&#xff0c;这…

山西电力市场日前价格预测【2023-08-05】

日前价格预测 预测明日&#xff08;2023-08-05&#xff09;山西电力市场全天平均日前电价为445.97元/MWh。其中&#xff0c;最高日前电价为486.65元/MWh&#xff0c;预计出现在19: 30。最低日前电价为403.37元/MWh&#xff0c;预计出现在13: 15。 价差方向预测 1&#xff1a; 实…

牛客周赛 Round 5

# 游游的字母变换题目大意 对给定的字符串进行变换&#xff0c;将大写字母变为下一个字母&#xff0c;小写字母变为上一个字母&#xff0c;其他字符不做变换。 思路分析 如果字符是大写字母&#xff0c;则判断是否为’Z’&#xff0c;如果是则变为’A’&#xff0c;否则将其…

国内物流园区数字化改革趋势

随着科技的进步和物流业的发展&#xff0c;数字化技术在物流园区的应用逐渐普及。数字化管理和物联网技术使得物流园区的运营更加智能化、高效化&#xff0c;并提供更优质的服务&#xff0c;本文和大家一起了解一下国内物流园区数字化改革现状和进程。 国内数字化园区数字化改…

【C++】模拟实现string

目录 &#x1f31e;专栏导读 &#x1f31b;定义string类 &#x1f31b;构造函数 &#x1f31b;拷贝构造函数 &#x1f31b;赋值函数 &#x1f31b;析构函数 &#x1f31b;[]操作符重载 &#x1f31b;c_str、size、capacity函数 &#x1f31b;比较运算符重载 &#…