工具/软件:
我想使用 XDS110来调试 MCU1_0代码。 我已使用包含调试符号的固件刷写 MCU1_0。 MPU 上有 QNX。 一旦我启动调试会话,我看到代码卡在循环中,永远不会进入 main.c 中的任务。 我想调试写在 main 中的任务。 它被卡住的文件是 SDK 的一部分、并非由我们编写、似乎正在进行一些同步。
此外、当我使用调试符号构建 tispl 时、它的大小相当大、因此我在控制台上收到以下消息、并且 QNX 也无法引导。
如何解决此问题并逐步执行代码。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
我想使用 XDS110来调试 MCU1_0代码。 我已使用包含调试符号的固件刷写 MCU1_0。 MPU 上有 QNX。 一旦我启动调试会话,我看到代码卡在循环中,永远不会进入 main.c 中的任务。 我想调试写在 main 中的任务。 它被卡住的文件是 SDK 的一部分、并非由我们编写、似乎正在进行一些同步。
此外、当我使用调试符号构建 tispl 时、它的大小相当大、因此我在控制台上收到以下消息、并且 QNX 也无法引导。
如何解决此问题并逐步执行代码。
您好、
Unknown 说:我已使用调试符号刷写了 MCU1_0的固件。
您是否在调试或释放模式下构建了固件? 我希望您知道 MCU1_0也运行 DM、因此停止该内核可能会影响调用 SCIclient API 的其他内核。
我想调试写在 main 中的任务。 它被卡住的文件是 SDK 的一部分、并非由我们编写、似乎正在进行一些同步。 [/报价]您能否共享整个调用堆栈? 您分享的图片被截断。
另外、请告诉我们您尝试对 MCU1_0固件映像进行调试的内容。
[/quote]此外,当我用调试符号构建 tispl 时,它的大小相当大,因此我在控制台上收到以下消息, QNX 也无法启动。 [/报价]这可能是、也可能不是由调试符号导致;我们怀疑这是由于您创建的 MCU1_0映像损坏、这可能不允许 SCI 服务器初始化和为 SPL 调用的请求提供服务。
谢谢。
"您是否在调试或释放模式下构建了固件?"
代码内置在调试模式下
"您可以共享整个调用堆栈吗? "
我有一个任务正在控制一些 GPIO、我想逐步完成这个任务。 调用堆栈不显示 此任务。 此任务写入 main.c 文件
"这可能是、也可能不是由调试符号导致;我们怀疑这是由您创建的 MCU1_0映像损坏造成的"
如果我在释放模式下构建代码、则固件运行正常。
"我们怀疑这是由于您创建的 MCU1_0映像损坏、这可能不允许 SCI 服务器初始化和为 SPL 调用的请求提供服务"
在这种情况下、在 MCU1_=上开发固件时、建议采用的调试方法是什么
编写的。我有一个任务是控制一些 GPIO、我想逐步完成这个任务。 调用堆栈不显示 此任务。 此任务是用 main.c 文件
好的、明白。 原因是执行已通过您的代码、最终将在线程"appMain"->"AppInit"->"appLogCpuSyncInit()-> appLogCpuSyncWithMaster ()中结束。 如果您希望调试您的代码、我建议您在任务中执行以等待(例如执行 while (1)循环)、或在"main"函数的前面添加这个等待循环。 这样、您可以退出 while (1)循环、并根据需要调试代码。
谢谢。
我已经禁用了同步函数,它会导致代码进入任务,但 它不会跳到我的断点非常可靠. 我没有完全得到你的最后一个答复。 应在何处添加环路。 此外 、ospi、tiboot3.bin、tispl 和 uboot.img 中有3个二进制文件。 随着代码的不断增长、我将向其添加调试符号、带调试符号的代码大小变得超过2MB。 是固定的还是可以更改。 如何提高 tispl 的尺寸限制。 我们使用的是 NOR 闪存。
我应该在哪里添加循环。
理想情况下、我们建议在您尝试调试的 DM 映像的主函数开始时添加它。 如果尺寸不断增大、请自定义并削减功能以调试您看到的问题。 您可以稍后再添加。
对于标准配置、分区是固定的。 但是、它们可以根据需要进行更改、但这需要更改闪存工具脚本、并且也会影响 U-boot SPL 代码。 我们不建议这样做,但如果你想这样做,这是由你决定的。
谢谢。