【学习日记】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!
评论






