前言

本文在于总结正点原子的 FreeRTOS 教程,基于 HAL库STM32F103ZET6 的代码移植。

准备

首先需要准备好 HAL 库的基础工程,在这里采用的是正点原子标准例程 - HAL 库版本的内存管理的实验,然后还要准备 FreeRTOS 内核源码这里使用的是版本 V10.4.6,两个文件获取方式如下
·HAL 库例程下载地址
·FreeRTOS 内核源码

FreeRTOS 源码文件内容介绍

解压好压缩包后能看到以下文件
1里面的 Source 文件为内核源码,也是我们需要的,打开 Source 文件后,大致内容如下
1

文件名 大致内容
include FreeRTOS 的头文件
portable 不同编译器与不同板子使用的接口文件
croutine.c 协程相关文件
event_groups.c 事件相关文件
list.c 列表相关文件
queue.c 队列相关文件
stream_buffer.c 流式缓冲区相关文件
tasks.c 任务相关文件
timers.c 软件定时器相关文件

移植过程

这里简略说一下,具体请看 FreeRTOS 的开发指南
HAL库内存管理基础工程Middlewares 文件夹中新建一个 FreeRTOS 子文件夹,将 Source 文件夹内的所有内容复制到刚创建的 FreeRTOS 文件夹中,其中 portable 文件夹只需保存以下三个文件
1
在 KEIL 中添加两个分组,如图
1
添加.c 文件,注意这里的heap_x.c用的是4,(heap.c对应5种内存管理算法)
添加头文件
1
添加 FreeRTOSConfig.h 头文件

修改配置文件

具体修改内容请参考正点原子 FreeRTOS 开发指南