你好,
我们正在DA1468x设备上开发带有SDK 1.0.8的定制板上的固件。我们正在使用我们自己的Makefile,并成功地用提供的脚本将固件刷新到板上。我正在使用SmartSnippets Studio进行开发,固件在闪烁后工作正常,我可以通过串口连接来确认。问题出在调试阶段。当我尝试在刷新固件后调试时,我得到“No source available for”main()在0x8031af4“”错误。我可以看到反汇编行和函数名,但它没有链接到源代码。我使用默认的QSPI设置来调试之前构建的.elf文件。我尝试在调试器配置中添加“源查找路径”,但仍然有相同的错误。你可以在附件的pdf文件中看到这个错误。我也尝试使用Ozone V2.60进行调试,但问题仍然是一样的。 I can connect, run, reset and see the disassembly but when I try to open the source code which invokes "View.Source();" I get the response "no source info". I tried to add Source Lookup Path there as well but no result.
有人可以帮助我在这里我错过了什么。也许我在构建项目时缺少Makefile中的一些命令。非常感谢你的帮助。
愿一切都好!
Ogulcan
设备:
嗨ogulcan.matchx,
首先,版本1.0.8是一个老版本的SDK,我们不再支持它了。我强烈建议您从我们的支持门户下载,并使用我们最新版本的SDK,即版本1.0.14。在最新的SDK中,大多数bug已经修复,目前支持该版本。我不知道这个错误是由于旧版本的SDK还是由于你的定制文件,但我建议你用SDK1.0.14再试一次。其次,既然您已经创建了一个定制的make文件,那么您应该负责查找其中的错误。可能是某个文件或某些命令丢失了,就像你在文章中提到的那样。我的建议是使用我们提供的make文件和脚本,因为我们也不支持自定义make文件。请问您创建自己的make文件有什么具体原因吗?
谢谢,PM_Dialog
你好再次,
首先,非常感谢您的回复。为了解决这个问题,我尝试了你所有的建议。首先,我使用最新的SDK和ble_peripheral项目来检查调试。即使我能够开始调试,我也没有像我想的那样顺利地接收断点。当我试图用Android手机连接外围设备时,出现了随机断点。我能够连接没有调试,但有了调试,我有这个错误:
---
MI命令执行失败:
-data-disassemble -s 0 -e 92
调试器后端的错误信息:
无法访问地址0x0的内存
---
其次,让我惊讶的是,你说你不支持定制的make文件,因为SmartSnippets Studio支持用现有的make文件导入项目。我们之所以创建自己的make文件,是因为我们希望开发者能够自由选择是否使用SmartSnippets Studio。拥有一个定制的make文件可以简化这一点,并确保在每个操作系统和开发环境上的应用程序是一致的。
稍后,我用高级开发人员检查了我们的档案,最后我们找到了缺少的碎片来调试我们的应用程序。“LDFLAGS”中缺少丢失的命令,这导致了问题。添加那些命令后,即使使用旧的SDK,也可以调试我们的代码。
最终,我能够在现在想要调试我们的源代码。但我想知道为什么我不能用新的SDK和你的调试选项做到这一点的原因?当我尝试连接到外围设备时,为什么要获得上述错误?
谢谢你的帮助。
Ogulcan
嗨ogulcan.matchx,
很高兴您能够根据自己的需要调试源代码。您提到,您无法使用新的SDK (VERSION 1.014)来实现这一点。所以,这只工作在使用SDK 1.0.8?
谢谢,PM_Dialog
你好,我们又见面了,
是的,它与旧的SDK一起工作。但是我没有在应用程序中使用新的SDK尝试我们自己的makefile。我刚刚使用了ble_peripheral项目的SDK 1.014,并试图调试它,这导致了这个问题时,试图连接。谢谢。
嗨ogulcan.matchx,
请问您是否可以使用我们的make文件和最新的SDK来调试您的固件?当你使用SDK1.0.14的时候,你还会有同样的错误吗?
谢谢,PM_Dialog