你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何调试在GPIO上的数据采集

[复制链接]
xhx321 提问时间:2018-10-13 07:23 /
想请教大家如何调试在GPIO上的数据采集。事情是这样的。
有一个第三方设备会连接开发板上的某个GPIO, 在上面以某个自定义协议发送数据,类似于UART。
开发板这边根据协议实现读取这些数据的程序。 数据是由特定的帧构成的。调试阶段帧的内容可以是固定。
我用的是keil开发环境,需要在开发板上调试来读取这些从GPIO来的数据。
现在遇到的困难是,如果想单步调试数据读取,当停到断点时,debug的数据已经在GPIO上发送完了。
如果加printf跟踪调试,又会影响读取数据程序的时序。

请问有经验的伙伴都是怎么实现软件单步调试的?

在这先谢谢大家阅读本贴。

收藏 评论9 发布时间:2018-10-13 07:23

举报

9个回答
STMWoodData 回答时间:2018-10-13 08:24:18
提示: 作者被禁止或删除 内容自动屏蔽
TLLED 回答时间:2018-10-13 08:49:11
时序性比较强的程序,我觉得不适合单步仿真调试,编好程序直接下载,使用串口将主要的数据输出参考+GPIO示波器输出查看结果。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

wenyangzeng 回答时间:2018-10-13 09:59:55
设定一个数组,在需要保存数据的各个语句中写入数据,一次执行完成后即可得到所需数据。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

子曰好人 回答时间:2018-10-13 10:56:03
如果是jlink调试的话可以使用Jscope和systemview这两个工具查看内部全局变量,jlink官网上可以下载

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

xhx321 回答时间:2018-10-14 10:37:32
wenyangzeng 发表于 2018-10-13 09:59
设定一个数组,在需要保存数据的各个语句中写入数据,一次执行完成后即可得到所需数据。 ...

虽然比较麻烦,但貌似这个方法靠谱一点。多谢!
xhx321 回答时间:2018-10-14 10:39:37
根据大伙描述,貌似仿真这条路子不可行。
feixiang20 回答时间:2018-10-14 23:28:57
在调试中的单步运行通常是用断点来实现的

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

废鱼 回答时间:2018-10-15 08:14:31
单步肯定是不行的。外部的设备不会停止发送,这样就错过了一部分数据。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

butterflyspring 回答时间:2018-10-16 11:35:58
如上面的讨论,你可以加个大buffer或者示波器看看呀,加上又不是常用协议,调试没戏..

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版