- FreeRTOS是什么?
Free和RTOS,Free就是免费的、自由的意思,RTOS 全称是 Real Time Operating System。中文名就是实时操作系统。可以看出FreeROTS 就是一个免费的 RTOS 类系统。这里要注意,RTOS 不是指某一个确定的系统,而是指一类系統。比如 UCOS,FreeRTOS,RTX,RT-Thread 等都是RTOS 类操作系統。操作系统允许多个任务同时运行,这个叫做多任务,实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是決定在某一时刻究竟运行哪个任务,任务调度在各个任务之间的切换非常快!这就给人们造成了同一时刻有多个任务同时运行的错觉。操作系统的分类方式可以由任务调度器的工作方式决定,比如有的操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,Unix 操作系统就是这样的。RTOS 的任务调度器被设计为可预测的,而这正是嵌入式实时操作系统所需要的,实时环境中要求操作系统必须对某一个事件做出实时的响应,因此系统任务调度器的行为必须是可预测的。像 FreeRTOs 这种传统的RTOS类操例系统是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。
FrceRTOS 是 RTOS 系统的一种,FreCRTOS 十分的小巧,可以在资源有限的徽控制器中运行,当然了,FreeRTOS 不仅局限于在微控制器中使用 - 为什么选择FreeRTOS?
1.免费
2.简单,文件少
3.ST有cubemx工具能直接生成工程方便移植
4.文档齐全
5.社会占有量高 - FreeRTOS优点
FreeRTOS 是一个可裁剪的小型 RTOS 系统,其特点包括:
FreeRTOS 的内核支持抢占式,合作式和时间片调度。
提供了一个用于低功耗的 Tickless 模式。
系统的组件在创建时可以选择动态或者静态的 RAM,比如任务、消息队列、信号量、软件定时器等等。
FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 单元,如 STM32F429。
FreeRTOS 系统简单、小巧、易用,通常情况下内核占用 4k-9k 字节的空间。
高可移植性,代码主要 C 语言编写。
高效的软件定时器。
强大的跟踪执行功能。
堆栈溢出检测功能。
任务数量不限。
任务优先级不限。 - FreeRTOS源码
https://www.freertos.org/zh-cn-cmn-s/
5.STMcubemx简单使用FreeRTOSV1
以上是测试例程使用的主控芯片型号:STM32F407ZGT6
选择外部晶振,比内部晶振稳定频率更高
把高速外部时钟,25M晶振接入倍频器,使HCLK达到168MHZ的最高频率
Debug 修改为Serial wire,通过SWD方式下载代码
Timebase Source:时间基源 改为定时器1,systick留给FreeRTOS内核使用
项目使用FreeRTOS的V1版本
按上述设置完后,点击生成工程
上图代表工程生成成功
生成的MDKV5的工程目录结构