一、FreeRTos简介
- Free 即免费的,RTOS 全称是 Real Time Operating System,中文就是实时操作系统。注意,RTOS 不是指某一个确定的系统,而是指一类系统。比如 uC/OS,FreeRTOS,RTX,RT-Thread 等这些都是 RTOS 类操作系统。
- 操作系统允许多个任务同时运行,这个叫做多任务。实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行哪个任务。任务调度在各个任务之间的切换非常快,就给人们造成了同一时刻有多个任务同时运行的错觉。
- 某些操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,比如Unix 操作系统。 FreeRTOS 操作系统则是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。
- FreeRTOS 是 RTOS 系统的一种,FreeRTOS 十分的小巧,可以在资源有限的微控制器中运行,当然,FreeRTOS 不仅局限于在微控制器中使用。但从文件数量上来看 FreeRTOS 要比uC/OSII 和 uC/OSIII 小的多。
二、 为什么选择FreeRTos
RTOS 类系统有很多,比如 uC/OS,资料很多,尤其是中文资料,那为什么要选择 FreeRTOS 呢?
- FreeRTOS是免费的,学习RTOS操作系统的话 uC/OS是首选,但要做产品的话,免费的FreeRTOS操作系统就是个不错的选择。
- 许多半导体厂商产品的 SDK(Software Development Kit—软件开发工具包) 包就使用 FreeRTOS 作为其操作系统,尤其是 WIFI、蓝牙这些带协议栈的芯片或模块。
- 简单,因为FreeRTOS 的文件数量很少。
PS:我对FreeRTos并没有什么好感,代码命名严重不规范,而且那个总是绕来绕去,还不如RT-thread。不管是从代码规范还是从初始化流程都是非常清晰直观,给人留下十分清晰的印象。实在是做项目用到了FreeRTos,不然作为一门操作系统去学习的话,我还是建议学习RT-thread(虽然RTos的机理都是差不多的,特别是如果针对相同架构的内核( 例如 Cortex-M)
三、FreeRTos资料和源码的下载
四、介绍我自己的开发环境
4.1FreeRTos
我现在使用的FreeRTos版本是FreeRTOSv9.0.0这个版本也是正点原子讲诉FreeRTos视频的那个版本,那我也建议大家使用这个版本。IDE就是Keil5 原因有以下几点:
- 对于初学者来说,你可以直接去看正点原子的视频,里面有直接移值例程,可以避免你移值不成功的问题。(但如果你想通过正点原子的视频达到对FreeRTos的完全理解那你就别做梦了,至于你应该去哪里获取硬核资料,我就不多说了)
- 对于初学者来说,学习FreeRTos的最新版和旧版其实没有区别,新版可能修改了之前版本的漏洞,而这些漏洞在你学习阶段是不会碰到的。
- 正点原子有相关的例程和开发手册,这样也可以很快入个门。师傅领进门,修行看个人。