Undefined symbol xQueueCreateMutex (referred from gui_x_freertos.o).

FreeRTOS下移植STemWin,报错如下:

 解决办法:

在FreeRTOSConfig.h下添加:   #define configUSE_MUTEXES 1

配置为 1
使能互斥信号量
配置为 0
禁能互斥信号量

这条错误信息通常出现在嵌入式系统编程中,特别是在使用FreeRTOS这类实时操作系统时。错误信息“Undefined symbol vApplicationMallocFailedHook (referred from heap_4.o)”表明在链接过程中找不到函数`vApplicationMallocFailedHook`的定义。 在FreeRTOS中,`vApplicationMallocFailedHook`是一个钩子函数(Hook Function),它是一个可选的回调函数,用于处理内存分配失败的情况。当FreeRTOS的内存分配函数无法分配到所需的内存时,会调用这个函数。这个钩子函数需要由用户在应用程序代码中定义,以提供自定义的内存分配失败处理逻辑。 错误发生的原因是链接器在尝试链接`heap_4.o`文件时找不到这个函数的定义。可能的原因包括: 1. 没有提供`vApplicationMallocFailedHook`函数的实现。解决方法是在应用程序中提供一个该函数的实现。 2. 函数的声明和定义不匹配。确保函数声明和定义的参数、返回类型完全一致。 3. 如果在多个文件中定义了该函数,可能发生了重复定义。需要检查项目中的代码,确保只有一个地方定义了该函数。 为了解决这个问题,你需要在项目中添加`vApplicationMallocFailedHook`函数的定义,例如: ```c void vApplicationMallocFailedHook( void ) { /* 这里是自定义内存分配失败的处理逻辑 */ for( ;; ); // 通常是一个空循环,用于调试或者表示错误 } ``` 将上述代码添加到FreeRTOS的应用程序代码中,并确保这个函数的实现能够被编译器找到。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值