STM32移植RTOS遇到的问题汇总

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里已经把这两个空函数注释掉了,因此例程的编译不会出错。
至于这两个函数的用途,因为是刚开始学习,目前还不清楚。等到后边再来进一步解读吧。
正点原子自带的例程中已把这两个函数注释掉了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值