硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1420|回复: 12
收起左侧

[ThreadX全家桶] Threadx 任务统计

[复制链接]

8

主题

21

回帖

45

积分

新手上路

积分
45
发表于 2025-12-21 17:57:48 | 显示全部楼层 |阅读模式
今天给工程加了任务统计,发现最大栈使用不太对,单步跟踪发现p_tcb->tx_thread_stack_highest_ptr总是0,请指教,谢谢
PixPin_2025-12-21_17-48-07.png
回复

使用道具 举报

8

主题

21

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2025-12-21 18:28:07 | 显示全部楼层
解决了,打开编译选项 TX_ENABLE_STACK_CHECKING 就好了
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123397
QQ
发表于 2025-12-22 10:23:10 | 显示全部楼层
zxljack 发表于 2025-12-21 18:28
解决了,打开编译选项 TX_ENABLE_STACK_CHECKING 就好了

好的,
回复

使用道具 举报

2

主题

31

回帖

37

积分

新手上路

积分
37
发表于 2026-4-15 21:30:27 | 显示全部楼层
你这个堆栈大小为什么是对的,我的怎么是1020、2044之类的数字比实际定义的少4个字节?
回复

使用道具 举报

2

主题

31

回帖

37

积分

新手上路

积分
37
发表于 2026-4-15 21:30:58 | 显示全部楼层
你这个堆栈大小为什么是对的,我的怎么是1020、2044之类的数字比实际定义的少4个字节?
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123397
QQ
发表于 2026-4-17 08:13:58 | 显示全部楼层
zouhp 发表于 2026-4-15 21:30
你这个堆栈大小为什么是对的,我的怎么是1020、2044之类的数字比实际定义的少4个字节?

你的实现代码用的那个。
回复

使用道具 举报

32

主题

329

回帖

425

积分

高级会员

积分
425
QQ
发表于 2026-4-17 10:40:55 | 显示全部楼层
VSCode + Cortex-Debug 调试优势区间,什么宏不宏的,只要创建了 任务/内存池/事件 都可以自动扫到监测。

f757964b9d480206a2e081b98958d009.png
回复

使用道具 举报

2

主题

31

回帖

37

积分

新手上路

积分
37
发表于 2026-4-19 13:07:05 | 显示全部楼层
eric2013 发表于 2026-4-17 08:13
你的实现代码用的那个。


/* 遍历任务控制列表(TCB list),打印所有的任务的优先级和名称 */
    while(1)
    {
        Shell_GoTo( 6, 0);
        p_tcb = &AppTaskStartTCB;
            while (p_tcb != (TX_THREAD *)0)
            {                    
            printf("   %2d        %5d      %5d       %5d        %s",
                    p_tcb->tx_thread_priority,
                    p_tcb->tx_thread_stack_size,
                    (int)p_tcb->tx_thread_stack_end - (int)p_tcb->tx_thread_stack_ptr,
                    (int)p_tcb->tx_thread_stack_end - (int)p_tcb->tx_thread_stack_highest_ptr,
                    p_tcb->tx_thread_name);

            p_tcb = p_tcb->tx_thread_created_next;

            if(p_tcb == &AppTaskStartTCB) break;
            else printf("\r\n");
            }
   
            Shell_GoTo( 17, 26);printf("%.2f%% \r\n",   OSCPUUsage);
            Shell_GoTo( 18, 26);printf("%.8fs\r\n",   (double) _tx_execution_idle_time_total/SystemCoreClock);
            Shell_GoTo( 19, 26);printf("%.8fs\r\n",   (double) _tx_execution_thread_time_total/SystemCoreClock);
            Shell_GoTo( 20, 26);printf("%.8fs\r\n",   (double) _tx_execution_isr_time_total/SystemCoreClock);
            Shell_GoTo( 21, 26);printf("%.8fs",       (double)(_tx_execution_thread_time_total + \
                                                                   _tx_execution_idle_time_total   + \
                                                           _tx_execution_isr_time_total)/SystemCoreClock);
}
回复

使用道具 举报

26

主题

37

回帖

115

积分

初级会员

积分
115
发表于 2026-5-28 10:02:51 | 显示全部楼层
zouhp 发表于 2026-4-19 13:07
/* 遍历任务控制列表(TCB list),打印所有的任务的优先级和名称 */
    while(1)
    {

你这个问题解决了么

点评

还没有呢,没有什么思路  详情 回复 发表于 2026-6-17 18:38
回复

使用道具 举报

15

主题

60

回帖

105

积分

初级会员

积分
105
发表于 2026-5-28 17:21:39 | 显示全部楼层
yono 发表于 2026-4-17 10:40
VSCode + Cortex-Debug 调试优势区间,什么宏不宏的,只要创建了 任务/内存池/事件 都可以自动扫到监测。
...

这个是要装什么插件吗,求分享!!
回复

使用道具 举报

32

主题

329

回帖

425

积分

高级会员

积分
425
QQ
发表于 2026-5-29 09:05:00 | 显示全部楼层
walk 发表于 2026-5-28 17:21
这个是要装什么插件吗,求分享!!

就是 cortex-debug 啊,编调试任务的时候指定 rtos 字段就行了。
不清楚 vscode 插件市场的发布版体验怎么样,上次发布是两年前了,我是为了更好的 DAPlink 体验安装的 releases 中预发布版。

https://github.com/Marus/cortex-debug
回复

使用道具 举报

15

主题

60

回帖

105

积分

初级会员

积分
105
发表于 2026-5-29 22:27:20 | 显示全部楼层
yono 发表于 2026-5-29 09:05
就是 cortex-debug 啊,编调试任务的时候指定 rtos 字段就行了。
不清楚 vscode 插件市场的发布版体验怎 ...

回复

使用道具 举报

2

主题

31

回帖

37

积分

新手上路

积分
37
发表于 2026-6-17 18:38:53 | 显示全部楼层
liubuf 发表于 2026-5-28 10:02
你这个问题解决了么

还没有呢,没有什么思路
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-7-10 10:59 , Processed in 0.317645 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表