硬汉嵌入式论坛

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

[Event Recorder] EventRecorder的printf用起来怎么经常丢失数据?

[复制链接]

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2023-2-6 13:30:58 | 显示全部楼层 |阅读模式
本帖最后由 caicaptain2 于 2023-2-6 13:35 编辑

mdk5环境下,用EventRecorder跟踪数据变化,使用debug模式下的view->debug(printf) view来查看数据。
只是使用for (i=0;i<200;i++) {printf( "%d,",outdata);} 来查看一个数组的数据,仅在main函数中执行一次,但是在debug view里面经常差几个数据。
而且,在debug模式下,使用 stop->reset->run,debug view里面不能重新出现数据,似乎EventRecorder自己停止了。如果退出debug模式,再进入,就可以有数据。

整个测试中,使用watch窗口查看outdata数据,都是很正常的,能根据复位,执行正常刷新。 不知道为什么简单的printf输出200个数据都能丢失?


根据安富莱的教程,使用RTE环境添加的EventRecorder,进入debug模式的时候,command窗口有显示“Warning: Event Recorder not located in uninitialized memory!”,这个有关系吗?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-2-6 13:46:36 | 显示全部楼层
有关系,要设置下

STM32H7视频教程第11期:STM32H7的GPIO实战,深化非阻塞编程思想,移植驱动到全新器件上,开启Event Recorder狂暴模式
https://www.armbbs.cn/forum.php? ... 1702&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2023-2-6 15:03:20 | 显示全部楼层
eric2013 发表于 2023-2-6 13:46
有关系,要设置下

STM32H7视频教程第11期:STM32H7的GPIO实战,深化非阻塞编程思想,移植驱动到全新器件 ...

噢噢噢噢。原来这个样子啊。、。。
我参考的文档是老版本的。最近用起来才发现了诸多疑点。。。
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2023-2-6 15:34:43 | 显示全部楼层
eric2013 发表于 2023-2-6 13:46
有关系,要设置下

STM32H7视频教程第11期:STM32H7的GPIO实战,深化非阻塞编程思想,移植驱动到全新器件 ...

还是有点问题。
参考视频,设定EventRecorder的ram为ccm空间部分,且选了“noinitial”。 确实,可以在debug中可以暂停-复位-运行,正常printf了。
但是,经过对比,printf在debug view中还是有数据丢失,这次是稳定的丢失2个数据。
无标题.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-2-6 15:47:48 | 显示全部楼层
caicaptain2 发表于 2023-2-6 15:34
还是有点问题。
参考视频,设定EventRecorder的ram为ccm空间部分,且选了“noinitial”。 确实,可以在d ...

是用的类似DAPLINK的WinUSB高速驱动玩法吗,好很多,还就是加大缓冲,CCM的64KB全用上。

还是不行,你那边有必要for循环里面加个简短的延迟了,MDK和下载器通。信速度没跟上更新

回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2023-2-7 16:57:46 | 显示全部楼层
eric2013 发表于 2023-2-6 15:47
是用的类似DAPLINK的WinUSB高速驱动玩法吗,好很多,还就是加大缓冲,CCM的64KB全用上。

还是不行,你 ...

今天又折腾这个问题一天。
增加EventRecorder的buffer空间,无效
给printf的每个数据间加100us的延迟,无效。
连续printf 100个数据,正常;190个数据正常;200个数据,总是少1个至2个数据。。。。设定输出201个数据,还是只有199个数据。

debug用的jlink V9,SW接口,12MHz的速度的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-2-7 17:02:41 | 显示全部楼层
caicaptain2 发表于 2023-2-7 16:57
今天又折腾这个问题一天。
增加EventRecorder的buffer空间,无效
给printf的每个数据间加100us的延迟, ...

加10ms的延迟正常不,也不正常,确实有问题。

回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-3-18 22:21:58 | 显示全部楼层
你加 “\r\n”试试,我之前用打印不出来数据加了 \r\n 后就能打印出来了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 05:11 , Processed in 0.183260 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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