1.源码下载
· 在移植之前,我们首先要获取到FreeRTOS的官方的源码包
直接在官网下载freertos源码包。
下载后打开文件夹 可以看到:
进入FreeRTOS文件夹
然后在打开Source
2.移植
在你的原有项目中,新建一个FreeRTOS文件夹
然后将源码文件\FreeRTOSv202212.01\FreeRTOS\Source中的几个.c文件复制到freeRTOS文件夹中
然后新建include和portable文件夹
在源码包中找到RVDS
因为stm32h750是cortexm7,所以选择
将ARM_CM7和portable的memmeng复制到新建工程的portable中
将源码的ilnclude全复制到新建工程的include中。
回到源码包,进入FreeRTOS/Demo,找到m7_h7系列
将里面的FreeRTOSConfig.h复制到新建工程的include中。
然后将freertos的.c 文件,memmeng的heap_4.c,和port.c/.h加入工程
后在魔法棒加入路径,进行编译,发现:
这是因为freertos的文件和原工程文件出现冲突。
进入stm32h7xx_it.c将这三个屏蔽。
此时发现:systick_Handler已经使用了,则
将stm32h7xx_it.c中的systick_handler改成Original_SysTick_Handler。
同时在port.c加入extern void Original_SysTick_Handler(void)后,加入Original_SysTick_Handler();实现调用。
编译发现错误
意思为不恰当链接,找到这两句,分别在task.c中和freertosconnfig.h中,注释掉,编译成功!