如何调试SPS源代码流。

8个职位/0个新职位
最后一篇文章
阿斯梅塔
离线
最后一次见到:5年3个月前
专家
已加入:2014-11-20 08:45
如何调试SPS源代码流。

你好,

我想调试串口服务代码——使用J-Link的DSP代码。
但我观察到的是,只有当我走出调试模式后,我才能使用android应用程序(由DA14580 for SPS提供)扫描我的DA14580设备。如何仍处于调试模式并跟踪代码流。

谢谢
asm公司

维桑
离线
最后一次见到:5年6个月前
上师 硕士
已加入:2014-06-26 08:49
你好,阿斯梅塔,

你好,阿斯梅塔,

只是猜测,但是你可以尝试在选项中设置优化标志为零,Tab C/C++(-O0)。你有什么特别的理由去调试程序流吗?

应用层概述在本用户手册的第7页中有很好的描述. 在文档中查找代码的特定部分应该不是一件很困难的事情。

谢谢!

阿斯梅塔
离线
最后一次见到:5年3个月前
专家
已加入:2014-11-20 08:45
你好,维桑,

你好,维桑,
我的要求是不要将从Android移动应用程序接收到的数据打印到Tera Term上(对于DA14580芯片)。
我的要求是将来自Android mobile的数据保存在一个变量中,并将该变量传递给驱动程序。
所以我需要理解代码流。

谢谢
asm公司

纳特尔
离线
最后一次见到:6年2个月前
已加入:2014-09-24 15:40
我也在试着调试我的

我还试图调试我的SPS配置文件,似乎我不能从android向TeraTerm应用程序发送任何字符,但是android会接收TeraTerm中生成的任何字符。
我注意到关于这个调试问题:在调试模式下,我甚至不能在DSPS应用程序中扫描我的设备,我还注意到我的程序似乎被卡住的地方是:
arch_system.c第849行,内容如下:

while((GetWord16(SYS\u STAT\u REG)&DBG\u IS\u UP)==DBG\u IS\u UP){};

这看起来像是如果系统处于调试模式,将无限期挂起。我该如何解决这个问题?我尝试了上面建议的优化注释,结果没有什么不同。

谢谢你的帮助。
奈特

caicx公司
离线
最后一次见到:6年3个月前
已加入:2014-07-24 04:25
我也有同样的问题,等等

我也有同样的问题,等待答案。

邮箱:jd@exp-eng.com
离线
最后一次见到:2年6个月前
已加入:2014-10-22 04:34
也被困在这里了。我

也被困在这里了。我试过克里姆提出的上述解决方案。有没有其他的解决方法使它不会被困在这行代码中?

MT\u对话框
离线
最后一次见到:2个月4天前
工作人员
已加入:2015-06-08 11:34
你好邮箱:jd@exp-eng.com,

您好!邮箱:jd@exp-eng.com,

没有解决这个问题的办法,你将无法调试你的程序,而它是在睡眠模式。要在SDK3中禁用睡眠模式,必须在da14580\u config中取消扩展睡眠和深度睡眠的定义,如果在SDK5中,则必须在user\u config.h文件中设置变量app\u default\u sleep\u mode in ARCH\u sleep\u OFF。

谢谢你的对话

克里姆9531
离线
最后一次见到:4年5个月前
已加入:2015-01-28 23:52
我认为有两个问题

我认为这里有两个问题,一个是设备进入睡眠模式,另一个是流量控制设置不正确。它们都固定在同一个地方,您需要编辑的文件da14580\u config.h在Keil IDE中不可见。

所以——使用文件浏览器(如Windows资源管理器)导航到项目的根目录,然后右键单击da14580_config.h文件并选择“Open With=>Notepad”。找到定义睡眠模式的行并取消它们的定义(#undef CFG_EXT_sleep和#undef CFG_DEEP_sleep)。现在找到定义流控制的部分(遵循/*UART流控制配置的行)。必须在启用*//*睡眠时启用*/),并将该部分中的所有内容注释掉。将注释掉的代码替换为以下代码:
//为开发人员启用软件流控制
#定义CFG\u UART\u SW\u FLOW\u CTRL
#未定义CFG\u UART\u HW\u FLOW\u CTRL
#如果定义CFG\u UART\u SW\u FLOW\u CTRL
#未定义CFG\u UART\u HW\u FLOW\u CTRL
#结束

确保完全重建项目,然后测试是否可以连接到调试器,并且所有字符都在两个方向上一致地传递。不知道为什么没有人回复这个帖子,他们在其他大多数方面都很擅长帮助别人。希望这有帮助。

干杯,克里姆