原创 RT-Thread入门学习笔记_1

2020-2-8 10:48 14437 17 3 分类: MCU/ 嵌入式 文集: RT-Thread入门学习文档

参考网址:https://www.rt-thread.org/document/site/

入门学习视频:https://www.bilibili.com/video/av79513262?p=1


1.什么是嵌入式系统

嵌入式系统是一种完全嵌入在装置或设备内部、为满足特定需求而设计的计算机系统。例如生活中常见的嵌入式系统:电视机机顶盒、路由器、电冰箱、微波炉与移动电话等等。


2.什么是嵌入式操作系统

嵌入式操作系统是应用于嵌入式系统的软件,它用来对接嵌入式底层硬件与上层应用。嵌入式操作系统在多任务管理、任务间通信、内存管理、定时器管理、设备管理等方面。提供给用户一套完整的机制,极大程度上便利了嵌入式应用程序的开发、管理和维护。


3.什么是RT0S系统

实时操作系统(real-time operating systemRTOS)又称及时操作系统,它会按照排序执行、管理系统资源, 并为开发应用程序提供一致的基础。

 

4.RT-Thread 简介

RT-Thread是一款完全由国内团队开发维护的嵌入式实时操作系统(real-time operating systemRTOS),具有完全自主知识产权。历经12年沉淀,伴随物联网(IOTInternet of thing)兴起,它正演变成为一个功能强大、阻值丰富物联网操作系统。

 

RT-Thread概述:

RT-Thread,全称Real Time-Thread。它是一个嵌入式实时多线程(任务)操作系统,允许多个任务同时运行,但同一时刻只能执行一个任务。由于每次对一个任务的执行时间非常短、任务与任务之间通过任务调度器进行快速地切换(调度器根据优先级决定此刻该执行的任务),则给人造成多个任务在一个时刻同时运行的错觉。在RT-Thread系统中,任务通过线程实现,RT-Thread中的线程调度器也就是以上提到的任务调度器。

  RT-Thread主要采用C语言编写,浅显易懂且方便移植。它把面向对象的设计方法应用到实时系统中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。针对资源受限的微处理器(MCU)系统,可通过方便易用的工具,裁剪出仅需3KBFlash1.2KB RAM内存资源的NANO版本(NANO RT-Thread 官方于 2017 7 月份发布的一个极简版内核);而对于资源丰富的物联网设备,RT-Thread 又能使用在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。

  相较于Linux操作系统,RT-Thread体积小、成本低、功耗低、启动快速优点。此外,还具有实时性高、占用资源小等特点。它非常适合用于各种资源受限(如成本、功耗等)的场合。虽然它是主要运行平台为32MCU,实际上很多带有MMU、基于ARM9ARM11甚至Cortex-A系列级别CPU的应用处理器在特定应用场合也适合使用RT-Thread

 

许可协议:

RT-Thread 系统完全开源,3.1.0 及以前的版本遵循 GPL V2 + 开源许可协议。从 3.1.0 以后的版本遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码。

 

RT-Thread 的架构:

  近年来,物联网(Internet Of ThingsIOT)概念广为普及,物联网市场发展迅猛,嵌入式设备的联网已是大势所趋。终端联网使得软件复杂性大幅度增加,传统的RTOS内核已经越来越难满足市场需求。因此,物联网操作系统(IOT OS)的概念应运而生。

物联网操作系统是指以操作系统内核(RTOSLinux等)为基础,包括如文件系统、图形库等较为完整的中间组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。

RT-Thread就是一个IOT OS

RT-Thread与其他很多RTOS(如FreeRTOSuC/OS)主要区别之一是:除实时内核,还具备丰富中间层组件。如下图所示:

 

具体包括内核层、组件与服务层、RT-Thread软件包。

内核层:RT-Thread内核是核心,包括内核系统中对象的实现(如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等);libcpu/BSP(芯片移植相关文件/板级支持包)与硬件密切相关,由外设驱动和CPU移植构成。

组件与服务层:组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。

RT-Thread 软件包:运行于 RT-Thread 物联网操作系统平台上,面向不同应用领域的通用软件组件,由描述信息、源代码或库文件组成。RT-Thread 提供了开放的软件包平台,这里存放了官方提供或开发者提供的软件包,该平台为开发者提供了众多可重用软件包的选择,这也是 RT-Thread 生态的重要组成部分。软件包生态对于一个操作系统的选择至关重要,因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内,打造出自己想要的系统。RT-Thread 已经支持的软件包数量已经达到 60+,如下举例:

² 物联网相关的软件包:Paho MQTTWebClientmongooseWebTerminal 等等。

² 脚本语言相关的软件包:目前支持 JerryScriptMicroPython

² 多媒体相关的软件包:Openmvmupdf

² 工具类软件包:CmBacktraceEasyFlashEasyLoggerSystemView

² 系统相关的软件包:RTGUIPersimmon UIlwext4partitionSQLite 等等。

² 外设库与驱动类软件包:RealTek RTL8710BN SDK

² 其他。


文章评论1条评论)

登录后参与讨论

curton 2020-2-8 11:35

学习了
相关推荐阅读
闵大 2020-02-23 18:17
RT-Thread入门学习笔记_6——空闲线程及两个常用钩子函数
笔记内容参考RT-Thread内核入门指南教程视频:https://www.bilibili.com/video/av79513262?p=6什么是空闲线程?由用户创建的线程称为用户线程,由系统本身具...
闵大 2020-02-22 16:28
RT-Thread入门学习笔记_5——优先级和时间片轮询
笔记内容参考RT-Thread内核入门指南教程视频:https://www.bilibili.com/video/av79513262?p=5什么是优先级和时间片 优先级和时间片是线程的两个重要参数...
闵大 2020-02-20 14:45
RT-Thread入门学习笔记_4——线程状态切换
笔记内容参考RT-Thread内核入门指南教程视频:https://www.bilibili.com/video/av79513262?p=4下图转自教程视频,笔者经消化吸收做出以下整理并画出流程图,...
闵大 2020-02-18 16:50
RT-Thread入门学习笔记_3
笔记内容参考RT-Thread内核入门指南教程视频:https://www.bilibili.com/video/av79513262?p=3 线程是什么? RT-Thread名为实时线程RTOS...
闵大 2020-02-17 19:23
RT-Thread入门学习笔记_2
笔记内容参考RT-Thread内核入门指南教程视频:https://www.bilibili.com/video/av79513262?p=2 什么是堆栈?在单片机应用中,人们常提及堆栈一词,实际上...
我要评论
1
17
关闭 站长推荐上一条 /2 下一条