【学习日记】FreeRTOS 的移植 (基于 STM32F103ZET6)
前言
本文在于总结正点原子的 FreeRTOS 教程,基于 HAL库的 STM32F103ZET6 的代码移植。
准备
首先需要准备好 HAL 库的基础工程,在这里采用的是正点原子标准例程 - HAL 库版本的内存管理的实验,然后还要准备 FreeRTOS 内核源码这里使用的是版本 V10.4.6,两个文件获取方式如下
·HAL 库例程下载地址
·FreeRTOS 内核源码
FreeRTOS 源码文件内容介绍
解压好压缩包后能看到以下文件
里面的 Source 文件为内核源码,也是我们需要的,打开 Source 文件后,大致内容如下
| 文件名 | 大致内容 |
|---|---|
| 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 文件夹只需保存以下三个文件
在 KEIL 中添加两个分组,如图
添加.c 文件,注意这里的heap_x.c用的是4,(heap.c对应5种内存管理算法)
添加头文件
添加 FreeRTOSConfig.h 头文件
修改配置文件
具体修改内容请参考正点原子 FreeRTOS 开发指南
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 VAEF!
评论







