资料下载&百问网技术交流群,百万嵌入式工程师聚集地:
https://www.100ask.net/page/2248041

文章目录

  • 单片机\_RTOS\_架构
    • 1. RTOS的概念
      • 1.1 用人来类比单片机程序和RTOS
        • 1.1.1 我无法一心多用
        • 1.2.2 我可以一心多用
      • 1.2 程序简单示例
    • 2. 架构的概念
      • 2.1 用人来类比电子产品
      • 2.2 要深入理解RTOS就必须深入理解CPU架构
    • 3. 课程重点

5分钟拿下你的三连,RTOS的最通俗理解!

单片机_RTOS_架构

1. RTOS的概念

1.1 用人来类比单片机程序和RTOS

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

1.1.1 我无法一心多用

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

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

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

1.2.2 我可以一心多用

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

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

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

RTOS的意思是:Real-time operating system,实时操作系统。

我们使用的Windows也是操作系统,被称为通用操作系统。使用Windows时,我们经常碰到程序卡死、停顿的现象,日常生活中这可以忍受。

但是在电梯系统中,你按住开门键时如果没有即刻反应,即使只是慢个1秒,也会夹住人。

在专用的电子设备中,“实时性”很重要。

1.2 程序简单示例

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

2. 架构的概念

2.1 用人来类比电子产品

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

常见的有:

  • ARM:
    目前主流的架构,用得最广,芯片公司需要付费购买,再搭配各种模块才能设计出芯片。
    目前华为被美国制裁,无法获得最新的ARM架构;
    对于其他公司,购买ARM新架构的价格也不低。
  • RISC-V:
    后起之秀,开源、免费。
    目前华为海思的HI3861、乐鑫的ESP32-C3等芯片,都是使用RISC-V的单片机芯片;
    平头哥和全志的D1芯片,是使用RISC-V的、能运行Linux的芯片;
    RISC-V作为全新的架构,没有历史包袱,设计优美,在技术上大有可为,另外它开源无需授权,能摆脱技术的卡脖子问题。

2.2 要深入理解RTOS就必须深入理解CPU架构

如果只是使用别人移植好的RTOS来写程序,当然不需要了解CPU架构。

甚至编写驱动程序时,也不需要了解CPU架构:因为我们操作的是CPU之外的设备,不是操作CPU。

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

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

3. 课程重点

对于同一个电子产品,编写程序时:

  • 不使用RTOS时,处理多个事情就像单线条的妈妈一样,一件一件地顺序做事,前后有影响。
  • 使用RTOS时,就像可以一心多用的妈妈一样,事情之间的影响可以降到最低,多件事可以“同时”进行。

我们要讲的内容就是:

  • RTOS部分:怎么在单片机上,移植、使用ROTS,RTOS的内部实现
  • CPU架构:深入理解CPU架构,才能移植RTOS、深入理解RTOS

资料下载&百问网技术交流群,百万嵌入式工程师聚集地:
https://www.100ask.net/page/2248041

百问网技术论坛:
http://bbs.100ask.net/

百问网嵌入式视频官网:
https://www.100ask.net/index

百问网开发板:
淘宝:https://100ask.taobao.com/
天猫:https://weidongshan.tmall.com/

【RTOS的最通俗理解】行业大佬用一篇文章带你快速理解RTOS相关推荐

  1. 一篇文章带你快速理解JVM运行时数据区 、程序计数器详解 (手画详图)值得收藏!!!

    受多种情况的影响,又开始看JVM 方面的知识. 1.Java 实在过于内卷,没法不往深了学. 2.面试题问的多,被迫学习. 3.纯粹的好奇. 很喜欢一句话:"八小时内谋生活,八小时外谋发展. ...

  2. 两个相邻盒子的边框怎么只显示一个_一篇文章带你快速理解盒子模型「经典案例」...

    今天带大家快速理解盒子模型,直接上代码: css盒子 我的css盒子测试模型 上面代码没有任何难度,只是写了一个div标签,大家已经知道,div标签是块级元素,所以会占满一行: 但是我们也注意到了图片 ...

  3. 一篇文章带你快速理解微服务架构,由浅入深带你走进微服务架构的核心

    戳蓝字"CSDN云计算"关注我们哦! 文章来自:Java和Android架构 什么是微服务 首先微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应 ...

  4. 一篇文章带你深入理解漏洞之 XXE 漏洞

    目录 一.XXE 是什么 二.简单介绍一下背景知识: 三.基础知识 重点来了: 四.我们能做什么 实验一:有回显读本地敏感文件(Normal XXE) 新的问题出现 新的解决方法 实验二:无回显读取本 ...

  5. 一篇文章带你深入理解什么是负载测试

    介绍 任何软件开发项目接近完成的时候,它可能已经通过无数次测试了,特别是在测试和开发同时发生的敏捷测试环境下.无论你已经进行过多少轮测试,一旦你的应用程序已接近完成,那么只有一个办法知道你的软件是否可 ...

  6. 一篇文章带你深入理解 Object 类和 Class 类

    在Java中,无论是类还是接口,它们在JVM的内存逻辑模型中都会存在Super和Class指针,分别指向根类(Object类)和反射类(Class类) Object类 和 Class 类都位于 jav ...

  7. 简书大佬的笔记:一篇文章带你详解 HTTP 协议(网络协议篇一)

    一篇文章带你详解 HTTP 协议(网络协议篇一) 本篇文章篇幅比较长,先来个思维导图预览一下. 一张图带你看完本篇文章 一.概述 1.计算机网络体系结构分层 计算机网络体系结构分层 2.TCP/IP ...

  8. 01背包问题:图表法带你快速理解动态规划解决01背包问题 附C++源码

    0-1背包问题 所谓0-1背包问题,也就是给你一个重量为M的背包和n种物品,每种物品有一定的重量和价值,在每种物品均可装入背包1次或不装入(不能仅装入物品的一部分)且不超过背包载重量的前提下,问你怎样 ...

  9. 详细解读Spatial Transformer Networks(STN)-一篇文章让你完全理解STN了

    Spatial Transformer Networks https://blog.jiangzhenyu.xyz/2018/10/06/Spatial-Transformer-Networks/ 2 ...

最新文章

  1. 【DeepLearning】Exercise:Sparse Autoencoder
  2. java(1)——用notepad++编译java(javac.exe)
  3. redis的常用命令及实例讲解
  4. python动态柱状图_Python+matplotlib绘制动态更新的柱状图
  5. Koa 2 基础(仿知乎)
  6. 如何优化Mysql执行查询数据的速度
  7. java 内存泄露监控,Linux下实用的JAVA内存泄露监控命令
  8. Javascript实现前端简单路由
  9. 《C++ Primer》第五版课后习题解答_第六章(1)(01-07)
  10. Qt学习-------常用控件
  11. 金钏跳井,凸显贾府主子冷血,下人们离心离德是必然。
  12. VMware安装Linux详细教程
  13. 这篇文章来告诉你几个实用的视频转文字的方法
  14. 玩客云刷linuxARMBIAN当服务器过程记录
  15. PHP 调用浏览器下载文件
  16. Activity 每个生命周期函数
  17. 基于搜索指数预测各城市首轮感染高峰期;AI+眼镜:失聪者看字幕盲人听语音;ChatGPT VSCode插件教程;谷歌开源注意力中心模型 | ShowMeAI资讯日报
  18. java操作mysql导表_java导出数据库的全部表到excel
  19. 全球及中国熔融碳酸盐燃料电池行业前景展望及市场全景调研报告2022-2028年版
  20. IE无法打开网页的原因

热门文章

  1. 胜利Victor 86E 手持万用表 上位机开发 labview
  2. BUI框架中 使用Jpush极光推送,单推跟群推,尽量让小白都能看懂
  3. 【从 0 开始学架构】学习笔记 Day5 高性能基本概念
  4. SOLIDWORKS保存不同格式的区别
  5. AssemblyInfo.cs文件的作用
  6. 两个TCHAR数组“拼接”
  7. android仿地铁行进线路图
  8. 昆山农商行手机银行服务器证书,昆山农商行网上银行常见问题处理
  9. javase安装win1064位
  10. 怎样使用七牛云CDN加速并绑定阿里云域名