FreeRTOS入门——STM32下完成一个基于FreeRTOS的多任务程序

一、 什么是FreeRTOS

● 我们看一下FreeRTOS的名字,可以分为两部分:Free和RTOS,Free就是免费的、自由的、不受约束的意思,RTOS全称是Real Time Operating System,中文名就是实时操作系统。可以看出FreeROTS就是一个免费的RTOS类系统。这里要注意,RTOS不是指某一个确定的系统,而是指一类系统。比如UCOS,FreeRTOS,RTX,RT-Thread等这些都是RTOS类操作系统。

● 操作系统允许多个任务同时运行,这个叫做多任务,实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行哪个任务,任务调度在各个任务之间的切换非常快!这就给人们造成了同一时刻有多个任务同时运行的错觉。

● 操作系统的分类方式可以由任务调度器的工作方式决定,比如有的操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,Unix操作系统就是这样的。RTOS的任务调度器被设计为可预测的,而这正是嵌入式实时操作系统所需要的,实时环境中要求操作系统必须对某一个事件做出实时的响应,因此系统任务调度器的行为必须是可预测的。像FreeRTOS这种传统的RTOS类操作系统是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。

● FreeRTOS是RTOS系统的一种,FreeRTOS十分的小巧,可以在资源有限的微控制器中运行,当然了,FreeRTOS不仅局限于在微控制器中使用。但从文件数量上来看FreeRTOS要比UCOSII和UCOSⅢI小的多。

二、裸机系统与多任务系统

1、裸机系统

裸机系统通常分成轮询系统前后台系统
①轮询系统
在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情。只需要顺序执行代码且不需要外部事件来驱动的就能完成的事情。
②前后台系统
在轮询系统的基础上加入了中断。外部事件的响应在中断里面完成,事件的处理还是回到轮询系统中完成,中断在这里我们称为前台,main 函数里面的无限循环我们称为后台。

2、多任务系统

多任务系统的事件响应也是在中断中完成的,但是事件的处理是在任务中完成的。在多任务系统中,任务跟中断一样,也具有优先级,优先级高的任务会被优先执行。当一个紧急的事件在中断被标记之后,如果事件对应的任务的优先级足够高,就会立马得到响应。多任务系统与前后台系统的区别在于对于事件的处理位置不同。

3、系统之间的对比

在这里插入图片描述

三、实验要求

学习FreeRTOS原理,在STM32下完成一个基于FreeRTOS的多任务程序,执行3个周期性task,具体任务如下:

● task1:每间隔500ms闪烁(变化)一次LED;
● task2:每间隔2000ms,向串口发送一次指令数据“helloworld!";
● task3:每间隔5000ms,从AHT20采集一次温湿度数据(不考虑硬件情况,仅写出整个多任务框架模拟代码)。

四、实验准备

1、开发环境:MDK或IAR

2、开发板:野火指南者(STM32F103)

3、从官网下载最新版的FreeRTOS源码,下面的网址是官方最新源码的下载地址:
https://sourceforge.net/projects/freertos/files/latest/download?source=files
目前官方提供的最新版本是v9.0.0, FreeRTOS源码在解压目录下的路径为FreeRTOS_V9.0.0rc2\FreeRTOS\Source

五、在KEIL新建 FreeRTOS 工程

1、新建本地工程文件夹

在开始新建工程之前,我们先在本地电脑端新建一个文件夹用于存放工程。文件夹名字我们取为“新建 FreeRTOS 工程—软件仿真”(名字可以随意取),然后再在该文件夹下面新建各个文件夹和文件,有关这些文件夹的包含关系和作用具体见表格:
在这里插入图片描述在这里插入图片描述

2、使用 KEIL 新建工程

(1)新建工程
打开 KEIL5 软件,新建一个工程,工程文件放在目录 Project 下面,名称命名为Fire_FreeRTOS,名称可以随便取,但是必须是英文,不能是中文,切记。
在这里插入图片描述

(2)选择处理器
当命名好工程名称,点击确定之后会弹出 Select Device for Target 的选项框,让我们选择处理器,这里我们选择 ARMCM3(ARMCM4 或 ARMCM7)
在这里插入图片描述

(3)选择好处理器,点击 OK 按钮后会弹出 Manage Run-Time Environment 选项框。这里在 CMSIS 栏选中 CORE 和 Device 栏选中 Startup 这两个文件即可
在这里插入图片描述
点击 OK,关闭 Manage Run-Time Environment 选项框之后,刚刚我们选择的 C

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值