学习目标:
了解嵌入式实时操作系统的原理及分类
学习内容:
1、 操作系统分类
操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入/输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
操作系统分类:桌面操作系统、服务器操作系统、移动操作系统、嵌入式操作系统。
桌面操作系统:Windows操作系统,Linux,Mac OS
服务器操作系统:Linux服务器操作系统,微软Windows服务器操作系统
移动操作系统:谷歌的Android,苹果的iOS,Harmony OS
嵌入式操作系统:除上述的计算机系统软件(军用,消费电子,工业控制,网络应用)
2、 嵌入式硬件组成
主控芯片、电源管理、开发调试接口、数据采集模块、通信模块、音频/视频模块
3、 实时操作系统特点
3.1 等级系统抢占性:对于实时的任务需要在第一时间内做出反应。
3.2 时间的正确性和功能的正确性:系统的正确性不仅取决于计算的逻辑结果,还依赖于产生结果的时间。
3.3 可确定性:系统可以在给定的时间内对一个给定的时间做出相应。
3.4 实时系统:分为软实时系统(可以微微超出给定的时间)和硬实时系统(严格限定)
3.5 嵌入式操作系统和裸机循环:
3.6 嵌入式操作系统是应用于嵌入式系统的软件,用来对嵌入式底层硬件与上层应用软件,操作系统将底层驱动封装起来为开发者提供功能接口。
3.7 实时操作系统:uC/OS、FreeRTOS、RT-Thread
3.8 RT-Thread支持的编译工具:IAR、GCC、Keil
3.9 RT-Thread支持硬件架构:ARM Cortex-M0、ARM Cortex-M3/M4/7、 ARM Cortex-R4、ARM Cortex-A8/A9、ARM920T/ARM926 etc、MIPS32、x86、Andes、C-Sky、RISC-V、PowerPC
3.10 进入物联网之后,可靠性、长待机、低成本、通信方式和传输协议、手机兼容性、二次开发、云端对接等成为必须考虑与解决的问题。
4、了解与快速上手RT-Thread
随着深入接触,你会逐渐发现RT-Thread的魅力和它相比较其他同类型RTOS的优越之处。
4.1 RT-Thread概述
RT-Thread,全称是Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统, 基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。
RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。它把面向对象的设计方法应用到实时系统设计中, 使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。
相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。
4.2 RT-Thread的架构
近年来,物联网(Internet Of Things,IoT)概念广为普及,物联网市场发展迅猛, 嵌入式设备的联网已是大势所趋。终端联网使得软件复杂性大幅增加,传统的 RTOS 内核已经越来越难满足市场的需求,在这种情况下,物联网操作系统(IoT OS)的概念应运而生。 物联网操作系统是指以操作系统内核(可以是 RTOS、Linux 等)为基础, 包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、 通信协议支持和云端连接能力的软件平台,RT-Thread 就是一个 IoT OS。
RT-Thread 与其他很多 RTOS 如 FreeRTOS、uC/OS 的主要区别之一是, 它不仅仅是一个实时内核,还具备丰富的中间层组件,如下图所示。
它具体包括以下部分:
内核层:RT-Thread 内核,是 RT-Thread 的核心部分,包括了内核系统中对象的实现, 例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等; libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
组件与服务层:组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、 网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。
RT-Thread 软件包:运行于 RT-Thread 物联网操作系统平台上,面向不同应用领域的通用软件组件, 由描述信息、源代码或库文件组成。RT-Thread 提供了开放的软件包平台, 这里存放了官方提供或开发者提供的软件包,该平台为开发者提供了众多可重用软件包的选择, 这也是 RT-Thread 生态的重要组成部分。软件包生态对于一个操作系统的选择至关重要, 因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内, 打造出自己想要的系统。RT-Thread 已经支持的软件包数量已经达到 60+,如下举例:
物联网相关的软件包:Paho MQTT、WebClient、mongoose、WebTerminal 等等。
脚本语言相关的软件包:目前支持 JerryScript、MicroPython。
多媒体相关的软件包:Openmv、mupdf。
工具类软件包:CmBacktrace、EasyFlash、EasyLogger、SystemView。
系统相关的软件包:RTGUI、Persimmon UI、lwext4、partition、SQLite 等等。
外设库与驱动类软件包:RealTek RTL8710BN SDK。
学习时间:
提示:这里可以添加计划学习的时间
例如:
1、 周一至周五晚上 7 点—晚上9点
2、 周六上午 9 点-上午 11 点
3、 周日下午 3 点-下午 6 点
学习产出:
提示:这里统计学习计划的总量
例如:
1、 技术笔记 2 遍
2、CSDN 技术博客 3 篇
3、 学习的 vlog 视频 1 个