一、修改替换FreeRTOSConfig.h后可能出现的错误:

问题1:找不到串口文件

从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第二部分_FreeRTOS 内核应用开发

解决1:将工程中改为自己的串口   xxxxx.h   文件即可。

从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第二部分_FreeRTOS 内核应用开发_02

问题2:重复定义:Symbol SVC_Handler multiply defined (by port.o and stm32f4xx_it.o).和 Error: L6200E: Symbol PendSV_Handler multiply defined (by port.o and stm32f4xx_it.o).

从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第二部分_FreeRTOS 内核应用开发_03

解决2:注释掉stm32f4xx_it.c中的PendSV_Handler和SVC_Handler。因为在port.c中已经实现该函数,所以注释掉在stm32f4xx_it.c中的空函数。

二、修改 stm32f10x_it.c:

FreeRTOS 帮我们实现了 SysTick 的启动的配置:在 port.c 文件中已经实现 vPortSetupTimerInterrupt()函数,

并且 FreeRTOS 通用的 SysTick 中断服务函数也实现了:在 port.c 文件中已经实现 xPortSysTickHandler()函数,

所以移植的时候只需要我们在 stm32f10x_it.c 文件中实现我们对应(STM32)平台上的 SysTick_Handler()函数即可。

从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第二部分_从0到1学习FreeRTOS_04

从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第二部分_FreeRTOSConfig.h讲解_05

三、修改 main.c

从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(一)移植FreeRTOS到STM32第二部分_移植FreeRTOS到STM32第二部分_06