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.

[参考译文] CCS/TMDXIDK5718:U-Boot 调试问题-无可用源代码

Guru**** 2582405 points
Other Parts Discussed in Thread: AM5708

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/770071/ccs-tmdxidk5718-u-boot-debug-issue---no-source-available

器件型号:TMDXIDK5718
主题中讨论的其他器件:AM5708

工具/软件:Code Composer Studio

各位专家、您好!

我们将在 AM571x IDK 和基于 AM5708的定制板上执行 U-Boot 调试。

我们按照所示执行了指令  

https://training.ti.com/linux-board-porting-series-module-7-debugging-u-boot-jtag-ccs?cu=399066

 

但是、在加载二进制文件 u-boot-spl.bin 和 u-boot-spl 后、即使在设置断点和恢复调试会话之前、也会立即提示"no source available for do board_detect"。

我无法在串行控制台上查看日志。 是否有任何方法可以使用 JTAG 检查 CCS 上的日志?

谢谢、

古拉夫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Gourav、

    您看到的行为与在没有调试符号的情况下构建的 u-boot 一致、这会阻止正确的源代码关联。 在这种情况下、您需要确保 u-boot ELF 可执行文件(文件 u-boot-spl)是使用-g 选项构建的。

    即使如此、在执行的某些点、您可能已经对函数进行了优化或内联、这也会在尝试查找相应的源代码时使调试器感到困惑。 在这最后一种情况下、您可以打开"Disassembly"视图并单步执行一些指令、以查看调试器是否能够"返回"源文件中的函数。

    一个注释:如果您在"Disassembly"视图中看到一些奇怪或无效的指令、调试器可能无法显示正确的模式(ARM 或 Thumb)。 您可以右键单击并选择"Thumb Only"。 这是 CSv8版本中的一个已知问题。

    关于控制台显示屏、我怀疑您是指"终端视图"、是这样吗? 如果是、您需要首先仔细检查 u-boot 是否实际运行(.bin 文件可能加载错误)以及目标板和 PC 之间的 UART 配置/连接。 要测试终端连接、我首先断开 CCS 调试器、然后使用工作正常的 SD 卡重新启动电路板。 然后、我将继续尝试调试 u-boot 本身。

    希望这对您有所帮助、
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    拉斐尔

    我们能够克服"无源可用"问题、并能够使用"Run to Line"选项调试 u-boot 代码。

    我们正在尝试基于 AM5708构建定制板。 首次尝试使用 SD 卡映像、但无法查看任何日志、至少在控制台上显示 U-Boot 初始横幅。 因此决定使用 CCS-JTAG 调试 u-boot。

    在下面的链接视频中提到、我们可以使用 JTAG 在 u-boot 存储器中看到日志缓冲区、但遗憾的是、我们找不到该位置。

    www.youtube.com/watch

    谢谢、

    古拉夫

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Gourav、

    我还没有机会观看视频、但可以通过"Memory Browser"视图(菜单 View => Memory Browser)来完成上面幻灯片中的第二个要点(检查内存)。

    换句话说、您可以打开存储器浏览器并将其 Address 参数指向控制台日志缓冲区的开头。 您甚至可以更改数据显示格式以显示 ASCII 字符而不是十六进制值。

    但是、控制台日志缓冲区的确切位置与使用的 Linux 发行版非常具体-为此、我必须在器件论坛中咨询 Sitara Linux 专家。

    希望这对您有所帮助、
    拉斐尔