硬汉嵌入式论坛

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

[RTOS Trace] H7-TOOL的Trace功能可以检索ThreadX内核了(2022-10-14)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
发表于 2022-9-27 05:45:24 | 显示全部楼层 |阅读模式
能正常检索了,还要继续改进。

033850heg0kgggkvktvggg.png


2022-10-09更新后效果:


image.png

2022-10-14更新后效果:

image.png

回复

使用道具 举报

4

主题

25

回帖

37

积分

新手上路

积分
37
发表于 2022-9-27 09:30:19 | 显示全部楼层
请教一下老师,这是什么原理,我想学习一下呀。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-9-27 13:29:51 | 显示全部楼层
yjvijfhvk 发表于 2022-9-27 09:30
请教一下老师,这是什么原理,我想学习一下呀。

发布时将分享视频教程。
回复

使用道具 举报

4

主题

129

回帖

146

积分

初级会员

积分
146
发表于 2022-9-27 19:02:09 | 显示全部楼层
期待RT-Thread的加入!!!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-9-28 03:23:16 | 显示全部楼层
Dinor 发表于 2022-9-27 19:02
期待RT-Thread的加入!!!

第2批添加上。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-2 01:56:50 | 显示全部楼层
Modbus实战视频教程录制了,周报发布了,继续开始整RTOS Trace,得准备早日发布了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-9 01:19:03 | 显示全部楼层
更新后的效果:


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-9 01:20:58 | 显示全部楼层
下面开始添加ThreadX内核通信组件支持。
回复

使用道具 举报

6

主题

134

回帖

152

积分

初级会员

积分
152
发表于 2022-10-9 17:36:43 | 显示全部楼层
期待FreeRTOS
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-10 00:04:41 | 显示全部楼层

这周ThreadX, FreeRTOS,RTX5都会集齐。
回复

使用道具 举报

12

主题

178

回帖

214

积分

高级会员

积分
214
发表于 2022-10-10 08:28:33 | 显示全部楼层
eric2013 发表于 2022-10-10 00:04
这周ThreadX, FreeRTOS,RTX5都会集齐。

关于RTX5中实现任务信息提取有个问题想向您请教:

通过 osRtxInfo 提取任务信息,memcpy((uint8_t *)&rtxInfo, (uint8_t *)&osRtxInfo, sizeof(osRtxInfo_t));

实际使用时,会出现有的任务被统计了两次。

请问如何加互斥锁,让这句代码完整执行,不被OS打断;
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-10 09:34:04 | 显示全部楼层
gallop020142 发表于 2022-10-10 08:28
关于RTX5中实现任务信息提取有个问题想向您请教:

通过 osRtxInfo 提取任务信息,memcpy((uint8_t *)& ...

开调度锁就行。
回复

使用道具 举报

12

主题

178

回帖

214

积分

高级会员

积分
214
发表于 2022-10-10 11:25:20 | 显示全部楼层

谢谢回复,
有两种方式,请问用哪一种呢?谢谢
方式1:( osKernelRestoreLock 必须用两次吗?)
int32_t sl = osKernelLock();
// ... critical code
{
  int32_t su = osKernelUnlock();
  // ... uncritical code
  osKernelRestoreLock(su);
}
// ... critical code
osKernelRestoreLock(sl);

方式2:
sleep = osKernelSuspend();                 /* Suspend RTX thread scheduler */
osKernelResume(sleep);                     /* Resume thread scheduler      */
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-10 12:07:15 | 显示全部楼层
gallop020142 发表于 2022-10-10 11:25
谢谢回复,
有两种方式,请问用哪一种呢?谢谢
方式1:( osKernelRestoreLock 必须用两次吗?)

方法1是。

而方法2是给tickless低功耗模式使用的。
回复

使用道具 举报

12

主题

178

回帖

214

积分

高级会员

积分
214
发表于 2022-10-10 13:34:06 | 显示全部楼层
eric2013 发表于 2022-10-10 12:07
方法1是。

而方法2是给tickless低功耗模式使用的。

实在不好意思,以下两种方式还是不行,请帮忙看看,是不是用 osRtxInfo 来实现任务信息统计这思路有问题
第一种方式:   
int32_t sl = osKernelLock();
memcpy((uint8_t *)&rtxInfo, (uint8_t *)&osRtxInfo, sizeof(osRtxInfo_t));
int32_t su = osKernelUnlock();   
osKernelRestoreLock(su);
// ... critical code
osKernelRestoreLock(sl);
结果:加锁与不加锁一样,会出现有的任务被统计了两次,有的没有统计
   
第二种方式:
int32_t sl = osKernelLock();
memcpy((uint8_t *)&rtxInfo, (uint8_t *)&osRtxInfo, sizeof(osRtxInfo_t));
// Running Thread
p_tcb = rtxInfo.thread.run.curr;   
// Ready List
遍历 p_tcb = rtxInfo.thread.ready.thread_list
// Delay List
遍历 p_tcb = rtxInfo.thread.delay_list
// Wait List
遍历 p_tcb = rtxInfo.thread.wait_list
int32_t su = osKernelUnlock();   
osKernelRestoreLock(su);
// ... critical code
osKernelRestoreLock(sl);
结果:每次都少2个任务,分别是 timer 对应的任务, Delay List里的一个任务
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-10 14:38:08 | 显示全部楼层
gallop020142 发表于 2022-10-10 13:34
实在不好意思,以下两种方式还是不行,请帮忙看看,是不是用 osRtxInfo 来实现任务信息统计这思路有问题
...

通过TCB任务控制块获取更好,我一般是这种玩法。
回复

使用道具 举报

12

主题

178

回帖

214

积分

高级会员

积分
214
发表于 2022-10-10 15:11:47 | 显示全部楼层
eric2013 发表于 2022-10-10 14:38
通过TCB任务控制块获取更好,我一般是这种玩法。

您之前就提到过,ucos的您提供的例程里有,
但是RTX的,我一直不理解该怎么做
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-13 13:20:55 | 显示全部楼层
ThreadX的信号量组件添加上了

image.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-13 16:30:03 | 显示全部楼层
事件标志组也添加好了

image.png
回复

使用道具 举报

1

主题

92

回帖

100

积分

初级会员

积分
100
发表于 2022-10-13 17:13:11 | 显示全部楼层

ThreadX的做完,下一个该做FreeRTOS了吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-13 17:15:43 | 显示全部楼层
nnqtdf 发表于 2022-10-13 17:13
ThreadX的做完,下一个该做FreeRTOS了吧

下一个RTX5和FreeRTOS。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-14 00:18:58 | 显示全部楼层
消息队列增加上了

image.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107072
QQ
 楼主| 发表于 2022-10-14 04:00:36 | 显示全部楼层
ThreadX内核初步添加完成

image.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 13:38 , Processed in 0.320286 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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