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
最新文章
- Good Bye 2016
- About next_permutation
- mysql+ibatis 批量插入
- mac下用ruby安装sass &;&; webstorm下给scss文件添加watch
- printf,sprintf,vsprintf 区别【转】
- adb_常用命令
- lintcode:Unique Characters 判断字符串是否没有重复字符
- mybatis0204 一对多查询
- JS 时间格式CST转GMT
- NSTimer 销毁问题 和 iOS中控制器的释放问题
- 16. 使用Exhibitor管理ZooKeeper
- Dynamics CRM2013/2015 Plugin注册工具Register New Assembly时无法看到注册按钮的解决办法
- 二、易语言 api 相关
- 开发测试技巧|辅助开发调试:goolge浏览器利用F12在控制台输入脚本实现表单自动填充
- SpringBoot中用Fastjson替换默认的Jackson
- crontab -让服务器执行定时任务
- PAT 1015 Reversible Primes[求d进制下的逆][简单]
- bootstrap4
- IntelliJ IDEA 2017版 spring-boot使用Spring Data JPA搭建基础版的三层架构
- uC/OS-II 函数之信号量相关函数
热门文章
- JQuery Validate验证插件自定义验证消息
- zookeeper 是什么?zookeeper 都有哪些功能?
- jQuery对象的创建
- 什么是通知(Advice)?
- 为什么需要域驱动设计(DDD)?
- C++ - free()函数释放内存后的指针行为
- Python - set类型
- 4-Pandas数据预处理之数据转换(df.map()、df.replace())
- mian中的argv调用时为什么不是*argv
- 12_非线性理论基础_Lyapunov直接方法