前言

本文在于总结正点原子的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开发指南