STM32F103C8T6移植FreeRTOS记录

【摘要】之前学习FreeRTOS是基于正点原子战舰开发板F103ZET6,这次尝试将其移植到C8T6最小系统,方便后续做一些个人兴趣的开发,同时之前的学习只是简单的照猫画虎,此次希望能加深理解。

一、获取FreeRTOS源码

1.1 获取方式

通过FreeRTOS官网(freertos.org)下载源码
在这里插入图片描述

1.2 目录简介

源代码包含如下目录,其中FreeRTOS为内核源码
在这里插入图片描述
FreeRTOS文件夹内容包含如下部分,其中Source为内核源码,Demo为针对各种内核的处理器提供的样例:
在这里插入图片描述
Source文件夹内容如下,其中portable文件夹中提供了针对各种编译器和内核的移植文件,是用于连接操作系统与单片机硬件的桥梁
在这里插入图片描述
本文使用MDK Keil开发,Keil文件夹是必须的,而其中指向RVDS文件夹,RVDS中包含了不同内核芯片的移植文件。另外需要选取MemMang内存管理文件夹,最终必须的移植文件夹有三:
在这里插入图片描述

二、移植步骤

2.1 添加源码、头文件

1. 添加源码

在MDK工程中,将RVDS文件夹中对应内核的port.c以及内存管理文件heap4.c添加到Middlewares的port中,并将portable文件夹中所有源码相关的源文件添加到Middlewares/FreeRTOS中
在这里插入图片描述

2. 添加头文件在这里插入图片描述

2.2 添加配置文件FreeRTOSConfig.h

获取途径:

  1. 自主编写
  2. 源码Demo文件夹下类似的例程,以本文为例,找到Demo\CORTEX_STM32F103_Keil\FreeRTOSConfig.h进行参考,拷贝到工程中的User目录下

2.3 修改<正点原子>SYSTEM文件夹

参照FreeRTOS指南进行相应的修改

2.4 修改中断相关

2.5 验证程序

三、参考资料

FreeRTOS官网:freertos.org
正点原子FreeRTOS课程

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐