文章目录前言一、RTOS的概念1.1 用人来类比单片机程序和RTOS1.1.1 我无法一心多用1.2.2 我可以一心多用1.2 程序简单示例二、 架构的概念2.1 用人来类比电子产品2.2 要深入理解RTOS就必须深入理解CPU架构前言本系列文章基于百问网文档进行编写帮助我快速学习FreeRTOS。希望我可以坚持下来不断深入钻研不断有效学习进步一、RTOS的概念1.1 用人来类比单片机程序和RTOS妈妈要一边给小孩喂饭一边加班跟同事微信交流怎么办1.1.1 我无法一心多用对于单线条的人不能分心、不能同时做事她只能这样做给小孩喂一口饭瞄一眼电脑有信息就去回复再回来给小孩喂一口饭如果小孩吃这口饭太慢她回复同事的信息也就慢了被同事催你半天都不回我如果回复同事的信息要写一大堆小孩就着急得大哭起来。这种做法在软件开发上就是一般的单片机开发没有用操作系统。1.2.2 我可以一心多用对于眼明手快的人她可以一心多用她这样做左手拿勺子给小孩喂饭右手敲键盘回复同事两不耽误小孩“以为”妈妈在专心喂饭同事“以为”她在专心聊天但是脑子只有一个啊虽然说“一心多用”但是谁能同时思考两件事只是她反应快上一秒钟在考虑夹哪个菜给小孩下一秒钟考虑给同事回复什么信息这种做法在软件开发上就是使用操作系统在单片机里叫做使用RTOS。RTOS的意思是Real-time operating system实时操作系统。我们使用的Windows也是操作系统被称为通用操作系统。使用Windows时我们经常碰到程序卡死、停顿的现象日常生活中这可以忍受。但是在电梯系统中你按住开门键时如果没有即刻反应即使只是慢个1秒也会夹住人。在专用的电子设备中“实时性”很重要。1.2 程序简单示例// 经典单片机程序voidmain(){while(1){喂一口饭();回一个信息();}}------------------------------------------------------// RTOS程序喂饭(){while(1){喂一口饭();}}回信息(){while(1){回一个信息();}}voidmain(){create_task(喂饭);create_task(回信息);start_scheduler();while(1){sleep();}}二、 架构的概念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解决疑难问题