STM32移植FreeRTOS出现的问题及解决办法

引言

我们在使用STM32移植FreeRTOS时,可能会出现很多问题,本文主要来归纳总结一下(未完待续)。

问题:\FreeRTOS\queue.c(2761): error: #268: declaration may not appear after executable statement in block

解决方法


把C99 Mode勾上

问题:…\OBJ\IAP.axf: Error: L6200E: Symbol SVC_Handler multiply defined (by port.o and stm32f10x_it.o).

解决方法

提示函数有重复定义,PendSV_Handler,SVC_Handle在FreeRTOS中重新定义用于任务切换,所以需要注释掉stm32F1xxx_it.c中的这三个中断函数。

问题:…\OBJ\IAP.axf: Error: L6218E: Undefined symbol vApplicationStackOverflowHook (referred from tasks.o).

解决方法、

因为在"FreeRTOSConfig.h"中定义了钩子函数,但未找到函数定义。

  1. 直接在FreeRTOSConfig.h文件中将configCHECK_FOR_STACK_OVERFLOW 置为0;
#define configCHECK_FOR_STACK_OVERFLOW			0  
  1. 编写一个钩子函数
#if (configCHECK_FOR_STACK_OVERFLOW == 1)
void vApplicationStackOverflowHook(TaskHandle_t xTask,char * pcTaskName )
{
	portDISABLE_INTERRUPTS();
	printf("\nStack overflow!\n");
	while(1);
}
#endif

具体放在那个文件里,可以自己设定。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跋扈洋

编写不易,打赏支持一下我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值