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/STARTERWARE-Sitara:SBL 调试

Guru**** 2559890 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/597477/ccs-starterware-sitara-sbl-debug

器件型号:STARTERWARE-Sitara

工具/软件:Code Composer Studio

我已经设计了 AM437x 电路板、并成功运行了一些 ccs7.0示例、例如 GPIO、UART。

现在、我想从 SD 卡引导我的应用程序、 我  想在  C:\ti\pdk_am437X_1_0_6\packages/ti\starterware\bootloader\src 中调试 SBL、因为我需要修改一些 sourcee 文件。

当我  在 C:\ti\pdk_am437X_1_0_6\packages/ti\starterware\binary\bootloader\bin\am43xx-evm\gcc 中加载 bootloader_bootloader_bootd_a9host_debug.out 文件时、错误发生在地址0x402f0074中。

但根据 TRM、0x402F0074是保留空间、

 

我可以  在 C:\ti\pdk_am437X_1_0_6\packages/ti\starterware\binary\gpio_app_led_blink\bin\am43xx-evm\gcc 中加载其他.out 文件、例如 GPIO_app_led_blink_a9host_debug.out。

如何调试 SBL 并创建相应的 MLO。

非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经介绍了调试 SBL 的一些方法、

    在 SBL 中的变量中引入一个变量、并将其设置为0、并在 SBL 开始时在该变量上创建一个等待的 while 循环。 这样引导 ROM 将加载、然后 ARM 内核将挂起到 while 循环的 SBL 中、然后您可以连接到 ARM、然后使用 CCS 中的 Variable 视图填充变量或更改变量所在的存储器位置。

    在不修改 SBL 的情况下执行的其他选项是、允许引导过程在没有 GEL 文件的情况下完成与 ARM 的连接、然后从 CCS 执行 CPU 复位。 这应将 ARM 内核置于 ROM 的底部。 现在、在 SBL main 的开始处设置一个硬件断点、然后运行内核。 使用 run->load 符号加载 SBL 符号并浏览至.out。

    SBL 从片上存储器运行、因此在加载.out 时、应避免运行 GEL 文件、因为 SBL 会执行 PLL 和 DDR 配置并复制映像。 请注意、有时 MMU 和高速缓存设置会阻止.out 正确加载、因此请确保您已将其考虑在内。 CCS 中的 ARM 高级工具允许您查看 ARM MMU 和高速缓存设置。

    希望这对您有所帮助。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常好的方法,我在第一个方面取得了成功。 我还尝试第二个,但在哪里可以找到 SBL main 的起始地址?
    谢谢!