FreeRTOS入门——STM32下基于FreeRTOS的多任务程序

文章目录

  • 一、FreeRTOS简介
    • 1.1FreeRTOS 特点
    • 1.2相关资料
  • 二、任务要求
  • 三、多任务程序实现
    • 3.1通过keil 5打开可移植FreeRTOS的工程
    • 3.2修改main.c函数完成多任务程序
    • 3.3烧录程序
    • 3.4打开野火多功能调试助手观察结果
  • 参考资料:



提示:以下是本篇文章正文内容,下面案例可供参考

一、FreeRTOS简介

RTOS全称是Real Time Operating System,中文名为实时操作系统。FreeRTOS是一个免费的RTOS类系统,常用的 RTOS 有国外的 FreeRTOS、μC/OS、RTX 和国内的 FreeRTOS、Huawei LiteOS 和 AliOS-Things 等,其中尤以国外开源且免费的 FreeRTOS 的市场占有率最高。

1.1FreeRTOS 特点

FreeRTOS 是一个可裁剪的小型 RTOS 系统,其特点包括:
● FreeRTOS 的内核支持抢占式,合作式和时间片调度。
● SafeRTOS 衍生自 FreeRTOS,SafeRTOS 在代码完整性上相比 FreeRTOS 更胜一筹。
● 提供了一个用于低功耗的 Tickless 模式。
● 系统的组件在创建时可以选择动态或者静态的 RAM,比如任务、消息队列、信号量、
软件定时器等等。
● 已经在超过 30 种架构的芯片上进行了移植。
● FreeRTOS-MPU 支持 Corex-M 系列中的 MPU 单元,如 STM32F103。
● FreeRTOS 系统简单、小巧、易用,通常情况下内核占用 4k-9k 字节的空间。
● 高可移植性,代码主要 C 语言编写。
● 支持实时任务和协程(co-routines 也有称为合作式、协同程序,本教程均成为协程)。
● 任务与任务、任务与中断之间可以使用任务通知、消息队列、二值信号量、数值型信
号量、递归互斥信号量和互斥信号量进行通信和同步。
● 创新的事件组(或者事件标志)。
● 具有优先级继承特性的互斥信号量。
● 高效的软件定时器。
● 强大的跟踪执行功能。
● 堆栈溢出检测功能。
● 任务数量不限。
● 任务优先级不限。

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

1.2相关资料

野火相关资料
提取码:pmf1

二、任务要求

学习FreeRTOS原理,在STM32下完成一个基于FreeRTOS的多任务程序,执行3个周期性task,具体任务不限,但建议如下:task1,每间隔500ms闪烁(变化)一次LED;task2,每间隔2000ms,向串口发送一次指令数据“helloworld!";task3,每间隔5000ms,从AHT20采集一次温湿度数据(不考虑硬件情况,仅写出整个多任务框架模拟代码)。

三、多任务程序实现

3.1通过keil 5打开可移植FreeRTOS的工程

通过下载的相关资料找到基于STM32F103_指南者_开发板.rar解压图中文件夹
FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第1张图片
FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第2张图片
FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第3张图片

可以观察到关于一些头文件的添加
FreeRTOS\tasks.c
FreeRTOS\list.c
FreeRTOS\portable\IAR\ARM_CM3\port.c
FreeRTOS\portable\IAR\ARM_CM3\portasm.s
FreeRTOS\portable\MemMang\heap_4.c
在工程中已经配置完成
FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第4张图片
以及相关的头文件路径,也配置完成
FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第5张图片

3.2修改main.c函数完成多任务程序

修改如下
在这里插入图片描述

FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第6张图片
FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第7张图片
创建hex文件
FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第8张图片

3.3烧录程序

FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第9张图片

3.4打开野火多功能调试助手观察结果

FreeRTOS入门——STM32下基于FreeRTOS的多任务程序_第10张图片

参考资料:

《FreeRTOS内核实现与应用开发实战》
《FreeRTOS移植到STM32F103步骤与注意事项》
《STM32F1 FreeRTOS开发手册_V1.0》
《AHT20产品手册a2》

你可能感兴趣的:(FreeRTOS入门——STM32下基于FreeRTOS的多任务程序)