Eclipse 调试期间如何在FreeRTOS任务列表中显示运行时

Eclipse 调试期间如何在FreeRTOS任务列表中显示运行时,eclipse,debugging,stm32,freertos,Eclipse,Debugging,Stm32,Freertos,我正在开发一个嵌入式软件项目(ARM Cortex-M7,STM32F7微控制器),其中包含STM32的System Workbench,这是一个基于Eclipse的IDE。我已经从NXP Kinetis Design Studio(KDS)1安装了“FreeRTOS任务感知GDB调试器”。我想看看每个任务的运行时,这应该可以与FreeRTOS和这个插件。不幸的是,在任务列表中没有显示运行时。相反,它显示以下警告消息(另请参见屏幕截图): 在FreeRTOSconfig.h中启用“configG

我正在开发一个嵌入式软件项目(ARM Cortex-M7,STM32F7微控制器),其中包含STM32的System Workbench,这是一个基于Eclipse的IDE。我已经从NXP Kinetis Design Studio(KDS)1安装了“FreeRTOS任务感知GDB调试器”。我想看看每个任务的运行时,这应该可以与FreeRTOS和这个插件。不幸的是,在任务列表中没有显示运行时。相反,它显示以下警告消息(另请参见屏幕截图):

在FreeRTOSconfig.h中启用“configGENERATE\u RUN\u TIME\u STATS”宏以查看“Runtime”。

但是,我已经在FreeRTOSconfig.h中启用了指定的宏和其他必要的宏:

\define configGENERATE\u RUN\u TIME\u STATS 1
/*启用configGENERATE\u RUN\u TIME\u STATS时所需的定义*/
#为运行时间统计信息定义端口配置计时器配置计时器状态
#定义portGET\u运行时间\u计数器\u值getRunTimeCounterValue
为什么插件提到这个宏在已经启用时需要启用?在调试期间,我应该如何在任务列表中查看运行时



1 Eclipse更新站点:

要做的第一件事是确定问题是在调试器插件中(我不确定这是哪一个)还是在生成中。为此,请在tasks.c内的xTaskIncrementTick()中放置一个断点,然后查看pxCurrentTCB变量,该变量是指向TCB结构的指针。如果启用了运行时统计信息,那么应该有一个名为ulRunTimeCounter的结构成员。那个结构件在吗?如果是,它是否包含值?即使值是错误的,如果它存在,似乎也表明问题出在调试器插件中。

要做的第一件事是确定问题是在调试器插件中(我不确定这是哪一个)还是在生成中。为此,请在tasks.c内的xTaskIncrementTick()中放置一个断点,然后查看pxCurrentTCB变量,该变量是指向TCB结构的指针。如果启用了运行时统计信息,那么应该有一个名为ulRunTimeCounter的结构成员。那个结构件在吗?如果是,它是否包含值?即使该值是错误的,如果它存在,似乎也表明问题出在调试器插件中。

根据解决方案是

#定义端口删除_静态_限定符1
这是有意义的,因为FreeRTOS源代码(tasks.c)包含以下注释:

/*
*一些支持内核的调试器需要调试器访问的数据
*全局范围,而不是文件范围。
*/
#ifdef端口删除\u静态\u限定符
#定义静态
#恩迪夫
在同一个文件中,相关变量被定义为静态变量:

#if(configGENERATE_RUN_TIME_STATS==1)
特权数据静态uint32 UltaskswitchedTime=0UL;
特权数据静态uint32 ulTotalRunTime=0UL;
#恩迪夫
根据解决方案是

#定义端口删除_静态_限定符1
这是有意义的,因为FreeRTOS源代码(tasks.c)包含以下注释:

/*
*一些支持内核的调试器需要调试器访问的数据
*全局范围,而不是文件范围。
*/
#ifdef端口删除\u静态\u限定符
#定义静态
#恩迪夫
在同一个文件中,相关变量被定义为静态变量:

#if(configGENERATE_RUN_TIME_STATS==1)
特权数据静态uint32 UltaskswitchedTime=0UL;
特权数据静态uint32 ulTotalRunTime=0UL;
#恩迪夫

感谢您的回复!该结构确实包含一个值为0的成员
ulRunTimeCounter
(我之前读过,但找不到)。因此,插件似乎确实存在问题,特别是因为我的同事能够从嵌入式代码本身(在调试日志记录中)读取运行时统计数据。我仍然希望找到一个插件工作的解决方案。谢谢你的回复!该结构确实包含一个值为0的成员
ulRunTimeCounter
(我之前读过,但找不到)。因此,插件似乎确实存在问题,特别是因为我的同事能够从嵌入式代码本身(在调试日志记录中)读取运行时统计数据。不过,我仍然希望找到一个解决方案,使插件能够正常工作。