关于FreeRTOS搭建时出现Error: L6218E: Undefined symbol vAssertCalled的解决方案
·
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本人新手刚刚开始接触FreeRTOS,跟着网上教程在搭建STM32H750的FreeRTOS环境中遇到了Undefined symbol vAssertCalled,反复检查了Keil里面引用和文件位置,发现其他配置没有问题。
提示:以下是本篇文章正文内容,下面案例可供参考
一、出现的问题
在使用FreeRTOS时,如果你遇到了“找不到vAssertCalled定义”的错误,这通常是因为在FreeRTOS的配置文件(通常是FreeRTOSConfig.h或FreeRTOSConfig.h)中没有正确设置或启用断言检查。
二、使用步骤
1.先检查配置文件
确保你的项目中包含了正确的FreeRTOS配置文件,并且该文件中已经定义了configASSERT()宏。在FreeRTOS中,configASSERT()宏是用来定义断言行为的方式,例如是否启用断言、如何处理断言失败等。
2.(FreeRTOSConfig.h或FreeRTOSConfig.h)报错代码如下:
extern void vAssertCalled( uint32_t ulLine, const char *pcFile );
#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __LINE__, __FILE__ )
报错信息如图:
2.修改后代码如下
代码如下(示例):
extern void vAssertCalled( uint32_t ulLine, const char *pcFile );
#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
成功解决该问题:
具体搭建FreeRTOS环境可以参考:手把手系列–STM32H750移植FreeRTOS
更多推荐




所有评论(0)