1、简介:
FreeRTOS是一个实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
任务调度机制:优先级高的任务一旦就绪就能剥夺优先级较低任务的CPU使用权,提高了系统的实时响应能力。
2、特点:
FreeRTOS对系统任务的数量没有限制,既支持优先级调度算法也支持轮换调度算法,因此FreeRTOS采用双向链表而不是采用查任务就绪表来进行任务调度。
免费、源码公开、可移植、可裁减、调度策略灵活。
优点:
FREERTOS最大的好处是多任务处理,比如不使用FREERTOS时是把多个任务放在while(1)里,任务执行有先后顺序,所以效率不高。
缺点:
FREERTOS会占用系统内存,因此需要的时候打开就行了。
3、运行逻辑:
FreeRTOS创建多个任务,每个任务分别控制自己设备,实现多任务处理。
4、问题:
警告: 当使用了FreeRtos的时候,强烈建议HAL库使用除了Systick以外的时钟源。
防止在高优先级(优先级高于systick)中断服务中调用HAL_Delay(),导致中断服务忙等待,这样任何优先级低于该中断的中断都得不到服务。
解决:
时钟源:选择TIM2。
5、文件:
1、freertos.c里面MX_FREERTOS_Init(void)是FreeRtos系统的配置;
2、freertos.c里面StartTask02(void const * argument)是任务编号对应自己定义的任务编号;
3、会生成包Middlewares。
欢迎提出意见,进行指正。
(部分资料来自其他文章,如有侵权请私信联系)