FreeRTOS-V10.4.6 移植到STM32F103C8T6 (基于标准库的测试)

一、相关的FreeRTOS源码获取

我使用的FreeRTOS源码来自于正点原子提供的开源资料,大家有需要的话可以找一下正点原子的B站账号,里面有获取路径,这个不多赘述

二、实机移植过程(Windows + Keil5)

首先我们自制一个标准库的工程模板,或者拿一个确认可以正确在裸机跑起来标准库工程,后续将FreeRTOS移植到这个工程中

我这里直接在江协科技的OLED工程上改的,这个工程资料在江协科技的相关栏目里也开源了,有需要可以去看看(红框所示),第二行是正点原子开源资料里的FreeRTOS源码

首先,我们将FreeRTOS源码中的source文件分别转移到标准库工程里

源码文件打开如下:FreeRTOS文件夹下的source文件

source文件夹的内容:

我们在标准库工程里设置FreeRTOS文件夹,文件夹下包含INC,SRC和PORT三部分内容

三个文件夹的内容如下图,都是从source里复制过来的(除了FreeRTOSConfig.h)

INC文件夹下其实就是source目录下include文件夹的头文件还有从Demo目录下找到STM32F1的样例工程,复制下来的FreeRTOSConfig.h

源码文件夹里和Source同级的Demo目录下找到STM32F103_Keil的样例,把FreeRTOSConfig.h复制下来,放进INC

SRC文件夹其实就是Source文件夹下那一堆的c文件复制过去就行

PORT文件夹就包括内存管理文件heap4.c和端口实现文件port.c,还有一个头文件

放置好源码文件以后,在keil里面点击魔术棒把三个文件路径加入工程,也就是我们的INC,PORT和SRC

在工程中把这三个文件路径下的文件包含进来

然后直接编译整个工程,看看有没有报错

直接在整个工程里查找这个函数名,一般来说很有可能是某个位置的宏定义时把这个API失能了

最终在FreeRTOS.h找到相关代码,由0改1即可

最后一步,在FreeRTOSConfig.h把中断服务函数的宏定义加上,并且把stm32f10x_it.c的pendSV,SVC和sysTick_Handler函数注释一下

配上测试用例编译运行,没有问题,在我的最小系统板上也能正常运行代码逻辑,就酱

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值