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.

[参考译文] AM243X-AM243X:如何通过调试器调试 MCU-PLUS-SDK?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1407477/mcu-plus-sdk-am243x-how-can-i-debug-the-am243x-sbl-via-debugger

器件型号:MCU-PLUS-SDK AM243X

工具与软件:

您好!

我正在将 am243x 与 mcu_plus_sdk_am243x_09_01_00_41配合使用。

我使用 OSPI SBL、它可以成功运行0x80000处的"Hello world"示例代码。

我已经在 syscfg 中添加到另一个引导加载程序以运行0x5DC000的代码(我的 ftp_loader 代码)

然后添加到 SBL main.c  

uint32_t ul_app_image_addr=0x80000;
bootHandle = Bootloader_open (CONFIG_bootloader_FLASH0、&bootparams);
int32_t i_auth = App_Authenticate AppImage (bootHandle、ul_app_image_addr);
if (i_auth == SystemP_SUCCESS)
DebugP_LOG ("CD3E 应用程序已验证\r\n");
设计

UL_APP_IMAGE_ADDR=0x5DC000;
bootHandle = Bootloader_open (CONFIG_bootloader_FLASH1、&bootparams);
i_auth = App_AuthenticationAppImage (bootHandle、ul_app_image_addr);
if (i_auth == SystemP_SUCCESS)
DebugP_LOG ("CD3E FTP 加载程序已验证\r\n");
}//FTP 加载程序

当我通过 JTAG 加载 FTP_LOADER 代码时、

但是、如果我将其放置在闪存(0x80000或0x5DC000)中、SBL 会运行、然后写入  

SBL 证书地址:0x60080000
SBL 验证通过
CD3E 应用程序已验证
[bootloader_profile]引导介质:NOR SPI 闪存
[bootloader_profile]引导介质时钟:200.000 MHz
[bootloader_profile]引导映像大小:0KB
[bootloader_profile] Cores present:
r5f0-0
[引导加载程序配置文件] SYSFW init : 12154us
[引导加载程序配置文件] System_init:531us
[引导加载程序配置文件] Drivers_open:280us
[引导加载程序配置文件] Board_driversOpen:9674us
[bootloader profile] Sciclient 获取版本: 9911us
[引导加载程序配置文件] CPU 负载:73679us
[bootloader_profile] SBL 所用总时间:106232us

图像加载完成、切换到应用程序...

然后一切都卡住了。

有什么问题?

如何通过调试器调试 SBL?

谢谢!

Eli

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

    我对 SBL 的调试方法是:

    1.)将引导模式引脚放置到 DEV CONFIG 寄存器中

    2.)在 SBL 代码的开头插入一个调试 while 测试循环、如下所示:

    int test = 1;
    
    int main()
    {
        while(test);
        
        /*
        Rest of your SBL code
        */
    }

    3.)重新编译 SBL 并将其放入引导介质中。

    4.)重新启动设备。 您的代码将卡在 while 测试循环中。

    5.)现在您将调试器连接到引导内核、在您的情形中、R5F0。

    6.)加载 SBL 代码符号

    7.)暂停执行。

    8.)将运行时的测试值更改为0。

    9.)完成后、您现在调试分步执行代码。

    备选案文:

    1.)擦除引导介质

    2.)将引导模式引脚放置到 DEV CONFIG 寄存器中

    3.)重新启动设备。

    4.)使用 CCS 在引导内核上加载 SBL 应用程序。

    5.)完成了,每次你喜欢的 puse 执行。

    现在、了解"Hello World"不会显示的问题可能是什么。 我不知道确切的数量可以是 N 个东西。 我想您可以自己找到它。

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

    您好!

    我将尝试它。

    我必须找到如何 "把引导模式引脚到开发配置",在我的板上。

    我想我只能进入"UART 引导模式"-然后我加载"writer , SBL , Hello World",通过 UART。

    我可以使用 "UART 引导模式"来调试 SBL 吗?

    谢谢!

    Eli

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

    尊敬的 

    继续阅读  的上述建议(永久链接: AM243X-AM243X:如何通过调试器调试 MCU-PLUS-SDK? -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛)、

    首先、如果您有一些经过优化的编译、请优先使用"易失性"限定符而不是答案 中显示的测试整数、以便源代码中的空体循环不会得到优化。 一旦达到该点、 可以使用 调试会话将其设置为0 (false)、并在其中设置/不设置断点的情况下步进或运行该中断、以继续调试。

    我必须 在我的主板上找到"将引导模式引脚置于开发配置"的方法。

    这意味着切换到开发引导模式(以前称为"无引导"模式)。 您可以在此处检查其引导模式开关配置: AM243x MCU+ SDK:EVM 设置(TI.com)。 必须在刷写映像后执行此操作(并使其运行、直到命中使用的 while 循环)、以便它进入 SBL 到循环线路、并可通过使用 CCS Debug (使用其目标配置)连接到刷写的内核、然后使用 Load Symbols ( 加载符号)选项和刷写映像二进制文件来加载调试符号信息、从而对其进行检查。

    我只能进入"UART 引导模式"、然后通过 UART
    加载"writer、sbl、Hello World"

    是、我知道、在使用 UART 刷写时、UART 引导模式是唯一使用的引导模式、在刷写程序并在闪存后2-5秒后运行一次时、可能不允许引导模式切换。 因此、为了刷写 SBL 并进行检查、您可以尝试在 加载 并运行刷写的应用程序的同一 UART/OSPI 引导模式下使用 Code Composer Studio 连接内核(可能会遇到连接问题、请确认)、或者在 Code Composer Studio 的程序加载方式下使用标准内核连接并使用开发引导模式进行调试 、如果必须使用可执行二进制文件(通常是.out 或特定于内核的.xer5f、 ( 如上面的原始答案中所建议的)。

    能否使用 "UART 引导模式"调试 SBL?

    使用 TI CCS 时、 可以考虑的 是、如果您能够在处于相同 UART 引导模式的情况下连接内核、则可以在相同的引导模式下继续调试。

    我希望它能为您提供所需的一些详细信息。

    谢谢!
    Harshit

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

    您好、Eli、

    能否使用 "UART 引导模式"调试 SBL?

    我假设您可以使用 OSPI 引导模式从 OSPI 介质引导器件。 您可以使用 UART 刷写 SBL、然后切换到 OSPI 引导模式、连接调试器并开始调试 SBL 示例。

    要了解使用 SBL 二进制文件进行 SOC 初始化的信息、请参阅  闪存 SBL 二进制文件。 

    请参阅  faq-am62x-am64x-faq-debuging-sbl-boot-in-rtos-sdk 以了解调试 SBL 的详细步骤。

    希望上述信息对您有所帮助。

    此致、

    Tushar

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

    尊敬的  Tushar:

    我会再试一次。

    谢谢!

    此致、

    Eli

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

    嗨、 Harshit、

    我将尝试它。

    谢谢!

    此致、

    Eli

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

    您好、Eli、

    我将尝试。

    期待您的答复。

    此致、

    Tushar