FreeRTOS --(0)简介
转载自https://blog.csdn.net/zhoutaopower/article/details/106541595
FreeRTOS 是一个嵌入式实时操作系统,具有相对(相对 Linux、Windows等)较小的体积,使用精简的代码实现了简单的进程调度,内存管理,消息发送,等,常常用在一些需要支持多任务的 MCU 上;
在没有 RTOS 的嵌入式小系统中,代码都跑在 while 1 中,我们称之为 “裸机”,也没有任务的概念;而 RTOS 的出现,使得可以支持多任务执行(宏观并行,微观串行),任务与任务,中断与任务,之间可以通过消息传递数据;
RTOS(Real Time Operation System)实时操作系统的目的是让关键的任务可以得到及时的执行,任务优先级和任务抢占是 RTOS 的特点;
既然是需要兼容跑在小型嵌入式系统中,那么就要求 RTOS 体积必须小,而且效率一定要高,否则引入 RTOS 对小型单片机来说就成为了一种拖累,FreeRTOS 针对性很强,较好的控制了代码体积(几千行),在有限的空间,实现了几乎所有常用到的小型嵌入式常用的特性,使得嵌入式开发变得更加容易和清晰;
FreeRTOS 发展得非常迅速,而且免费。与此同时,已经支持了许多不同编译器(Keil/IAR/GCC/LLVM)和不同的处理器(ARM/RISC-V等),而且有非常多的用户群:

FreeRTOS 中,主要由任务管理、内存管理、队列管理、定时器管理、中断管理、以及一些数据结构构成;FreeRTOS 提供了一个叫做 FreeRTOSConfig.h 的头文件,其中定义了很多 OS 相关的 Feature 开关,以支持根据不同的场景进行增加或者裁剪 Feature,已达到特定需求的最佳配置;
FreeRTOS 的源代码可以通过访问它的官方网站来下载:https://www.freertos.org/index.html
在官网的 Resources -> Books and Manuals 中有一些说明文档,主要是针对 FreeRTOS 的内核行为以及一篇 API 文档;
除了纯 RTOS 部分,还提供了一些第三方的组件,能够支持更多的功能(比如网络等);不在这里过多的介绍了;
一些参考:
https://blog.csdn.net/lxl584685501/article/details/46621991
FreeRTOS --(0)简介的更多相关文章
- IOS 网络浅析-(十一 三方 AFNetworking3.0简介)
AFNetworking3.0是目前最新的版本,本来打算介绍一下2.6,但是想想2.6名不久矣,就决定不介绍了,有兴趣的小伙伴可以上网查一查.下面我就开始进入正题了. 目前使用人数最多的第三方网络库, ...
- varnish4.0简介
Varnish 4.0 简介 Varnish 是一款开源的HTTP加速器和反向代理服务器,它的主要特点有: (1)是基于内存缓存,重启后数据将消失.(2)利用虚拟内存方式,io性能好.(3)支持设置0 ...
- 流风ASP.NET框架商业版-工作流1.0简介
流风ASP.NET框架商业版-工作流1.0简介 工作流简介 在流风ASP.NET框架商业版1.0推出后,就有集成工作流的想法,但是由于工作繁忙和其他事情的耽搁,时隔半年之久工作流1.0的版本才姗姗来迟 ...
- .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0简介
.NET Core 1.0.ASP.NET Core 1.0和EF Core 1.0简介 英文原文:Reintroducing .NET Core 1.0, ASP.NET Core 1.0, and ...
- 一个RtspServer的设计与实现和RTSP2.0简介
一个RtspServer的设计与实现和RTSP2.0简介 前段时间着手实现了一个RTSP Server,能够正常实现多路RTSP流的直播播放,因项目需要,只做了对H.264和AAC编码的支持,但是 ...
- Identity Server 4 预备知识 -- OAuth 2.0 简介
OAuth 2.0 简介 OAuth有一些定义: OAuth 2.0是一个委托协议, 它可以让那些控制资源的人允许某个应用以代表他们来访问他们控制的资源, 注意是代表这些人, 而不是假冒或模仿这些人. ...
- 第64节:Java中的Spring Boot 2.0简介笔记
Java中的Spring Boot 2.0简介笔记 spring boot简介 依赖java8的运行环境 多模块项目 打包和运行 spring boot是由spring framework构建的,sp ...
- ElasticSearch 5.0 简介
参考:http://blog.csdn.net/wzhg0508/article/details/52063676 Elasticsearch 5.0 简介(medcl微信直播实录) 大家好,非常高兴 ...
- 【HANA系列】SAP HANA 2.0简介
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA 2.0简介 ...
- ECMAScript 6.0 简介
ECMAScript 6.0 在es6中有 许多语法.还有lambda的使用.以及 class 的使用 还有一些新的对象来解决一些事情 可以提高开发效率 但更重要的是 颠覆 javascript 在你 ...
随机推荐
- java 学习笔记(一)
书 head first java 1. 2.加强版的FOR循环 3. 通过super引用父类 4.多态 5.接口和抽象类 接口 6.多线程锁 7.JDBC
- IDEA端口占用的解决方案
使用端口查找到对应的进程PID: netstat -ano | findstr "端口" 查找到对应PID的进程信息 tasklist /v /fi "PID eq &l ...
- Hibernate实体的三种状态是什么?各有什么特点?
瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value ...
- zookeeper 是如何保证事务的顺序一致性的?
zookeeper 采用了全局递增的事务 Id 来标识,所有的 proposal(提议)都在被 提出的时候加上了 zxid,zxid 实际上是一个 64 位的数字,高 32 位是 epoch(时 期; ...
- MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?
1.设计良好的数据库结构,允许部分数据冗余,尽量避免 join 查询,提高效率. 2.选择合适的表字段数据类型和存储引擎,适当的添加索引. 3.MySQL 库主从读写分离. 4.找规律分表,减少单表中 ...
- 服务注册和发现是什么意思?Spring Cloud 如何实现?
当我们开始一个项目时,我们通常在属性文件中进行所有的配置.随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂.有些服务可能会下降,而某些位置可能会发生变化.手动更改属性可能会产生问题.Eur ...
- JS Promise对象学习
Promise对象的三个状态 pending(进行中) fulfilled(已成功) rejected(已失败) Promise代表一个异步操作,对象的状态一旦改变,就不会再改变 Promise构造函 ...
- spring-boot-learning-事务处理
事务处理的重要性: 面对高井发场景, 掌握数据库事务机制是至关重要的,它能够帮助我们在一定程度上保证数据的一致性,并且有效提高系统性能,避免系统产生岩机,这对于互联网企业应用的成败是至关重要的. 以 ...
- vim的vimrc配置
windows "# modified by Neoh set helplang=cn "使用中文帮助文档 set encoding=utf-8 "查看utf-8格式的帮 ...
- 顺利通过EMC实验(20)