欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32移植RTOS遇到的问题汇总

程序员文章站 2024-02-22 14:03:58
...

STM32移植RTOS遇到的问题汇总

前言

这里用来记录在移植RTOS时碰到的一些问题。我使用的是正点原子的精英版,单片机是STM32F103ZET6。

编译错误

  1. 把RTOS按照教程移植之后,编译时报错:Symbol PendSV_Handler multiply defined (by port.o and stm32f10x_it.o).
    该错误是说函数PendSV_Handler在port.c和stm32f10x_it.c中重复定义了。定位问题时发现在FreeRTOSConfig.h(该文件是从正点原子的例程中拿过来的)文件中有如下定义:
// An highlighted block
#define xPortPendSVHandler 	PendSV_Handler
#define vPortSVCHandler 	SVC_Handler

然后在port.c中有对函数xPortPendSVHandler和vPortSVCHandler的定义,这就导致在编译时会认为port.c中已经定义了PendSV_Handler和SVC_Handler。
而stm32f10x_it.c已经有对这两个函数的定义了,只不过都是空函数。
到这里我们已经定位到原因了,那怎么去解决呢? 既然FreeRTOSConfig.h是从例程中拿过来的,那么我们就去例程里看看以上两个C文件里这两个函数是否更改过。查阅后发现在例程中stm32f10x_it.c里已经把这两个空函数注释掉了,因此例程的编译不会出错。
至于这两个函数的用途,因为是刚开始学习,目前还不清楚。等到后边再来进一步解读吧。
STM32移植RTOS遇到的问题汇总

相关标签: STM32