目录
一、裸机与RTOS介绍
1、裸机
2、 RTOS
二、FreeRTOS简介
1、FreeRTOS 特点
2、关于FreeRTOS学习资料
一、裸机与RTOS介绍
1、裸机
简介:裸机又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环(While循环),即应用程序。
例子:打游戏和回复信息,需要打完游戏才可回复信息,或者回复完信息才可打游戏。
特点:① 实时性差 应用程序,轮流执行,只有打完游戏才能回复消息。
② delay 空等待,CPU不执行其他代码(浪费资源)。
③ 结构臃肿 实现功能都放在while循环里。
图1 裸机程序逻辑
2、 RTOS
简称: RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。
例子:打游戏和回复信息,不需要等某一件事做完,可每间隔1ms(一个时间片时钟节拍),然后交替做这两件事,因为速度很快,从宏观的意义上来看,类似同步执行!
特点:① 分而治之 实现功能划分为多个任务。打游戏和回复信息每间隔1ms交替执行。
② 延时函数 不会空等待,会让出CPU的使用权给其他任务,即任务调度。
③ 抢占式 高优先级任务抢占低优先级任务。
④ 任务堆栈 每个任务都有自己的栈空间,用于保存局部变量以及任务的上下文信息。任务被高优先级的任务打断时,把局部变量和打断处地址保存到堆栈空间,当高优先级任务执行完毕后,根据堆栈空间的局部变量和打断处地址,继续执行之前被打断的任务。
图2 RTOS程序逻辑
注意1:中断可以打断任意任务。
注意2:任务可以同等优先级。
问题:如果高优先级的任务一直在运行,会怎么样? 会一直运行,使得低优先级任务无法运行。
二、FreeRTOS简介
1、FreeRTOS 特点
FreeRTOS 是一个免费的嵌入式实时操作系统。具有以下特点:
① 免费开源。商业产品中使用,无潜在商业风险,无须担心。
② 可裁剪。FreeRTOS的核心代码9000+行,包含在3个.c文件中。
③ 简单。简单易用,可移植性非常好。
④ 优先级不限。任务优先级分配没有限制,多任务可同一优先级。但受制于硬件,STM32优先级范围是0~31。
⑤ 任务不限。可创建的实时任务数量没有软件限制。但是会受到芯片内存的现在,因为每创建一个任务,则会分配一个堆栈。
⑥ 抢占/协程/时间片。 支持抢占式、协程式、时间片流转任务调度。
2、关于FreeRTOS学习资料
资料整理:FreeRTOS官网:https://www.freertos.org/
正点原子学习资料