gpt4 book ai didi

task - FreeRTOS - vTaskList 未定义引用

转载 作者:行者123 更新时间:2023-12-05 07:25:25 28 4
gpt4 key购买 nike

我正在尝试使用 vTaskList 函数来监视正在使用的任务。为了使用vTaskList,我配置了下面的宏。

#define configUSE_TRACE_FACILITY        1
#define configUSE_STATS_FORMATTING_FUNCTIONS 1

下面是显示任务列表的任务代码。

  void TASK_LIST()
{
signed char pWriteBuffer[2048];
for(;;)
{
vTaskList(pWriteBuffer);
printf("task_name task_state priority stack tasK_num\n");
printf("%s\n", pWriteBuffer);
}
vTaskDelete(NULL);
return;
}

但是,错误只是出现了 undefined reference

是什么导致了这个错误?

谢谢。

Ps. For my original situation, there is no macro for configUSE_STATS_FORMATTING_FUNCTIONS in FreeRTOSConfig.h. so I add it manually.

现在我正在搜索构建命令来构建整个项目 enter image description here

最佳答案

它从代码源来看,因为它取决于 FreeRTOS 内核版本...

我为您的特定版本检查了几个演示应用程序,例如this one ,以及 tasks.c 的代码源。设置您提到的那两个宏应该就足够了。因此,链接错误的实际原因看起来与配置本身无关。检查 tasks.c 源文件是否在配置更改后重建(如果没有,则项目中的依赖项未正确处理)。仔细检查这些定义是否是真实的“1” - 数字(不是“l”(小“L”字母)或“I” (大写的“I”字母),根据使用的字体,很容易与“1”混淆。

更新

由于您使用的是 Eclipse IDE,请查看此 official guidance of how to setup project . Here您可以找到适用于您的 FreeRTOS 版本的 Eclipse 演示项目,检查 Makefile特别是,我猜您自动生成的 Makefile 缺少以下行:

$(RTOS_SOURCE_DIR)/tasks.c \

附言

对于 v9.0.0它应该足以像您一样启用配置。但是v10.0.0还依赖于 configSUPPORT_DYNAMIC_ALLOCATION:如果在项目的 FreeRTOSConfig.h 中将其定义为默认值 ("1") 以外的其他内容 - vTaskList 将被排除在外。然而,这种依赖性既没有在包含头文件 task.h 中也没有在 online documentation 中提及。 .

关于task - FreeRTOS - vTaskList 未定义引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54801805/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com