xhx321 发表于 2018-10-13 07:23:58

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

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

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

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

流水源 发表于 2018-10-13 08:24:18

逻辑分析仪啊

TLLED 发表于 2018-10-13 08:49:11

时序性比较强的程序,我觉得不适合单步仿真调试,编好程序直接下载,使用串口将主要的数据输出参考+GPIO示波器输出查看结果。

wenyangzeng 发表于 2018-10-13 09:59:55

设定一个数组,在需要保存数据的各个语句中写入数据,一次执行完成后即可得到所需数据。

子曰好人 发表于 2018-10-13 10:56:03

如果是jlink调试的话可以使用Jscope和systemview这两个工具查看内部全局变量,jlink官网上可以下载

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

在调试中的单步运行通常是用断点来实现的

发表于 2018-10-15 08:14:31

单步肯定是不行的。外部的设备不会停止发送,这样就错过了一部分数据。

butterflyspring 发表于 2018-10-16 11:35:58

如上面的讨论,你可以加个大buffer或者示波器看看呀,加上又不是常用协议,调试没戏..
页: [1]
查看完整版本: 如何调试在GPIO上的数据采集