STM32调试问题

在调试STM32项目时,使用IAR编译器可能会遇到各种错误,例如Error[Pe020]关于“FILE”未定义的问题,需要在Library Configuration中将库设置为“Full”。另外,还会遇到Error[Pe734]关于函数冲突的提示,以及Error[2]打开包含文件失败和Error[Pe513]类型不匹配的问题。解决这些问题可能涉及修改库配置、调整文件位置、解决重复定义以及处理堆栈溢出错误。对于堆栈溢出,需要自定义vApplicationStackOverflowHook()函数。

1、STM32用IAR调试出现Error[Pe020]: identifier "FILE" is undefined 解决方法

需要在 IAR的Options -> General Options ->Library Configuration里设置一下函数库,不然printf函数不对,将Library Configuration 中的Library 设置由"Normal"改为"Full"就可以了。


2、问题:

Error[Pe734]: function "fputc(int, std::__FILE *)" conflicts with using-declaration of function "__nounwind std::fputc(int, std::__FILE *)"


解决:



3、问题:


解决:






4、问题:

Error[2]: Failed to open #include file 'FreeRTOSConfig.h' portasm.s /Fly/FreeRTOS/include 第 75 行 C/C++ Problem


解决:




5、问题:

描述 资源 路径 位置 类型

Error[Pe513]: a value of type "void *" cannot be assigned to an entity of type "A_BLOCK_LINK *" heap_4.c /Fly/FreeRTOS/portable/MemMang 第 285 行 C/C++ Problem



解决:



6、问题:


解决:

将portable里的三个文件放到include里


如果出现比较多的重复定义(dupilicity definition)的话,看看控制台的输出信息,它会告诉你是哪个文件重复,然后从文件树中移除那些重复的就行。


7、问题:

解决:

网上对此问题的相关解释:

当FreeRTOSConfig.h中configCHECK_FOR_STACK_OVERFLOW配置为大于0时会用到vApplicationStackOverflowHook();这个Freertos并没有写好,需要自己写,我这里就定义一个什么也不做的函数,你可以根据自己的情况来定义这个函数。

void vApplicationSackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )
{

}

因此在tasks.c中添加代码如下图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值