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.

[参考译文] SK-AM64B:问题刷写示例

Guru**** 2609285 points
Other Parts Discussed in Thread: UNIFLASH, SK-AM64B, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1567840/sk-am64b-problem-flashing-example

器件型号:SK-AM64B
主题中讨论的其他部分:UNIFLASHSYSCONFIG

工具/软件:

您好、

我正在尝试按照 SDK 用户指南刷写已构建的示例。 我的示例是 hello_world_am64x-sk_a53ss0-0_freertos_gcc-Aarch64。  

代码在调试中运行、在 CCS 发布版中、我的 CCS 是最新版本、SDK 版本为  11.01.00.17。

我使用 https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/GETTING_STARTED_FLASH.html 中的说明进行刷写

我的闪存配置文件包含以下行:

-- flash-writer=sbl_prebuilt/am64x-sk/sbl_uart_uniflash.release.hs_fs.tiimage

#--operation=flash-phy-tuning-data

--file=sbl_prebuilt/am64x-sk/sbl_ospi.release.hs_fs.tiimage --operation=flash --flash-offset=0x0

--file= /hello_world_am64x-sk_a53ss0-0_freertos_gcc-Aarch64/Release/hello_world_am64x-sk_a53ss0-0_freertos_gcc-Aarch64.appimage.hs_fs --option=flash --flash-offset=0x80000

闪存操作正常运行、但当我尝试从电路板运行代码时、将电路板设置为在 OSPI 模式下引导后、串行控制台仅显示这一点:

DMSC 固件版本 11.0.7--v11.00.07 (Fancy Rat)
DMSC 固件版本 0xb
DMSC ABI 修订版 4.0

出什么问题了?

此致、

Andrea Tosetto

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

    您好、Andrea、

    您是否在 TI EVM 上对此进行了测试? 如果是、我可以在最后进行测试、看看是否可以重现此问题。

    此致、

    会面。

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

    尊敬的会议:

    我正在 SK-AM64B 板上对其进行测试。 如果您需要更多信息、请咨询。

    非常感谢 。

    Andrea

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

    您好、Andrea、我也在我最后看到了这个问题、我将进一步测试并更新您。

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

    您好、Andrea、

    A53 和 SBL OSPI 上的 Hello World 示例使用相同的 UART 实例、此问题似乎是由于两者都尝试访问相同的 UART、可以使用不同的 UART 实例(如 USART1)作为 A53 的 Hello World 示例来解决此问题。

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

    尊敬的会议:

    我尝试从 example.sysconfig 文件将 UART 更改为 USART1。 但现在我看不到代码输出到控制台(我同时监控 COM6 和 COM5 - CP2015 USB 转 UART 桥接器)。

    我是否还应该更改 SysConfig 文件中的其他参数?

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

    尝试将其更改为 MCU_UART0、如果您使用此 UART、则可以观察 COM6 上的日志。

    您是否能够在 COM5 上至少观察到引导日志?

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

    现在、我已在 SysConfig 中的调试日志中将 UART 更改为 MCU_UART0:

      

    从 CCS 运行代码后就可以看到输出。 但当我将其刷写到电路板时、在将引导模式更改为 OSPI 后、我可以看到:  

    DMSC 固件版本 11.0.7--v11.00.07 (Fancy Rat)
    DMSC 固件版本 0xb
    DMSC ABI 修订版 4.0

    在 COM6 上、COM5 上无!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我从 CCS 运行代码、然后可以看到输出。

    因此、当您从 CCS 加载程序时、程序按预期运行、这确认了使用相同 UART 的 SBL 和 A53 应用程序存在问题、您是否也可以共享此日志。

    您是为 SBL 还是为 A53 Hello World 应用更改 UART 实例? 请与我共享您的 hello_world appimage 和.out。

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

    是的、我可以在遵循入门指南之后运行 hello world 以及其他示例。  

    我将在 SysConfig 文件中更改控制台日志的 UART:

    我想共享文件和日志、但:  

    如何将文件添加到此论坛? (我尝试插入->图像/视频/文件,但无法链接我的文件)

    是否有可与您共享的特定日志文件?

    此致、
    Andrea

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

    e2e.ti.com/.../hello_5F00_world_5F00_am64x_2D00_sk_5F00_a53ss0_2D00_0_5F00_freertos_5F00_gcc_2D00_aarch64.zip

    找到了一种方法。

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

    您好、Andrea、

    请允许我在结束时进行 1-2 天的测试

    此致、

    会面。

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

    嗨、大家好、您是否测试过我的代码?

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

    您好、Andrea、

    对延迟深表歉意。 该专家目前已离职。 他回来后会回到你身边。

    谢谢、
    Shreyansh

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

    您好、Andrea、

    您能否尝试  【常见问题解答】AM62X/AM64X:【常见问题解答】在 RTOS SDK 中调试 SBL 引导 并调试 SBL 应用程序、看看它是否卡在某个位置?

    此致、

    Tushar  

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

    尊敬的 Tushar:

    谢谢你的建议,但不幸的是,我不能使用 gmake ,我的电脑 运行 windows 11,我没有找到运行 gmake 的方法! 您有什么建议或替代方案吗?

    此致、
    Andrea

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

    您好、Andrea、

    您收到一些错误吗? 如果是、请共享错误日志。

    我无法使用 gmake、

    您的系统上是否安装了 gmake?

    此致、

    Tushar

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

    尊敬的 Tushar:

    现在我找到了一种方法安装 gmake (make) 从这个网站“ gnuwin32.sourceforge.net/.../make.htm“

    我进入 MCU PLUS 根文件夹并启动此文件夹:make -s -C .\examples\drivers\boot\sbl_ospi\am64x-sk\r5fss0-0_nortos\ti-arm-clang profile=debug

    这是命令的输出:

    Process_BEGIN:CreateProcess (NULL、C:/ti/ccs2020/ccs/utils/cygwin/mkdir -p obj/debug/、...) 失败。
    make (e=2):不可能的 trovare il 文件规范。
    Make:***[obj/debug/]错误 2.

    此致  

    Andrea

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

    您好、Andrea、

    看起来您的系统上未安装 CCS v20.2。 如果使用其他版本的 CCS、请更新 SDK 根目录下 imports.mak 文件中的 CCS 安装目录路径。

    请安装所有依赖项工具来编译示例。

    此致、

    Tushar

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

    谢谢你 Tushar! 你的建议是有效的,'管理 imports.mak 文件中的其他更改,但现在它编译!  

    然后我转到后续步骤,我没有任何使用 HIL 进行调试的经验!!  

    此致、

    Andrea  

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

    您好、Andrea、

    感谢您的确认。

    我没有使用 HIL 进行调试的经验!!  [/报价]

    很抱歉,我不明白上面的内容。 什么是 HIL?

    上面提供的常见问题解答包含有关如何调试 SBL 示例的步骤。 您可以执行相同的步骤。

    此致、

    Tushar

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

    我曾尝试过、我使用 while 循环来修改 SBL、make 命令输出表示没有错误:

    我没有像示例中那样使用 sbl_null、但我用于 hello world 示例的 sbl_null。  

     引导映像:am64x:r5fss0-0:nortos:ti-arm-clang C:/ti/mcu_plus_sdk_am64x_11_01_00_17/examples/drivers/boot/sbl_ospi/am64x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_ospi.debug.hs_fs.tiimage done!!

    我刷写映像并将引导模式设置为 ospi。  

    然后我连接主板、但我不清楚如何继续  连接到 CCS 并执行单步操作

    请帮帮我。

    非常感谢  

    此致。

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

    您好、Andrea、

    如果您使用 SBL_OSPI 二进制文件进行刷写、则需要修改 sbl_ospi 示例、如上面的常见问题解答中所述。

    修改后的 SBL_OSPI 二进制文件刷写到 SOC 中、并在刷写后将 EVM 保持在 OSPI 引导模式。

    给 SOC 上电并连接到 R5F0-0 内核、然后使用刷写的 ospi_SBL 二进制文件加载符号。 加载后、更改循环变量以退出循环。

    使用 CCS 调试技术分步调试示例。 若要使用 CCS 进行调试、请参阅  CCS_Launch。

    您也可以参考  CCS_debug-the-application  

    此致、

    Tushar

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

    尊敬的 Tushar:

    非常感谢您的建议、我找到了如何继续调试 OSPI SBL。  

    我可以执行到行:

    状态= Bootloader_parseMultiCoreAppImage (bootHandle、&bootImageInfo);
     
    COM6 上的输出为:
    DMSC 固件版本 0xb
    DMSC ABI 修订版 4.0

    ...

    现在、我该如何进行除尘?

    此致、

    Andrea

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

    您好、Andrea、

    您是否检查过  Bootloader_parseMultiCoreAppImage API 返回的状态值是多少?

    如果返回失败信息、您是否可以进入 API 以从失败的位置了解其失败信息?

    此致、

    Tushar

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

    只是我的消息的更新:  

    今天、我第一次调试 SBL、我认为它停止到此行 (71):

    bootloader_socResetWorkaround();
    如果我继续、然后暂停调试器、我发现程序被自由化、并在处产生无限循环  
     int32_t Sciclient_waitForBootNotification (void)
    第 661 行:  
    while ((CSL_REG32_RD (Sciclient_secProxyThreadStatusReg (rxThread)))&
           CSL_SEC_PROXY RT_THREAD_STATUS_CUR_CNT_MASK)= 0U){;}

    调用栈为:
    Sciclient_waitForBootNotification () 0x7001692Csciclient.c661:9
    bootloader_sockWaitForFWBoot () 0x70020736bootloader_soc.c1102:5
    MAIN () 0x70002DE2MAIN.C69:10
    bypass_auto_init + 0x4 () 0x70021E70boot_armv7r_asm.s278:0

    第二次运行代码(停止调试重新引用“启动无工程调试执行与之前相同的步骤)时、它没有停止、

    它停止在 bootloader.c 的第 1370 行中的函数 Bootloader_parseMultiCoreAppImage

    status = config->Fxns->imgReadFxn(&mHdrStrsizeof (Bootloader_Meta HeaderStart)、config->args);

    如果我继续、然后暂停调试器、我发现程序被  HwiP_USER_DATA_ABORT_HANDLER_C 处的无限循环冻结

    调用栈为:

    HwiP_USER_DATA_ABORT_HANDLER_c () 0x700212F4HwiP_armv7r_Handlers_nortos.c393:5
    HwiP_DATA_ABORT_HANDLER_c () 0x700212ACHwiP_armv7r_Handlers_nortos.c374:1
    HwiP_DATA_ABORT_HANDLER + 0x30 () 0x700213A0HwiP_armv7r_Handlers_nortos_asm.s140:0

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

    看起来您加载的二进制文件不正确。

    刷写后、需要连接到 R5F0-0 内核、然后点击 加载符号 而不是 加载程序 。 从上面可以看出您正在执行 Load Program。

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

    您好、

    是的、我执行“Load Symbols“、然后指向 debug.out 文件。

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

    我正在共享我正在使用的工程、并且应该也可以在您的设置中使用。

    请使用以下提供的工程二进制路径修改 default_sbl_ospi.cfg 文件中的 SBL 和 Hello World 示例的路径。

    Hello World - hello_world_am64x-sk_a53ss0-0_freertos_gcc-aarch64.zip

    SBL OSPI - sbl_ospi_am64x-sk_r5fss0-0_nortos_ti-arm-clang.zip

    使用上述工程后、您应该能够在 Application/User UART 上查看日志。 打开所有 4 个 UART 端口并检查是否存在日志。

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


    尊敬的 Tushar:

    我标记你的建议,因为这不能解决问题,但我不能再回复最后一个主题,在任何情况下,我写在这里我的答复:

    感谢您提供的文件、我测试了它、但仍然无法正常工作、结果相同、我连接了 4 个 COM 端口、
    1 - COM6 USB 转 UART 桥接器标准 COM
    2 - COM5 USB 转 UART 桥接器增强型 COM
    3 - COM11 XDS110 应用程序/UserUART
    4 - COM12 XDS110 辅助数据端口

    只有在重新启动电路板时从 COM6i 读取某些内容:

    DMSC 固件版本 11.0.7--v11.00.07 (Fancy Rat)
    DMSC 固件版本 0xb
    DMSC ABI 修订版 4.0

    由于我们有 2 块电路板、没有人可以工作、因此可能是我用于连接到电路板的过程中出现了问题。

    因此、我回顾了我的程序、以便了解 AI 完成的步骤中是否有错误:

    1) 刷写应用程序 — 按照 software-dl.ti.com/.../GETTING_STARTED_FLASH.html 中的示例进行操作
    a) 将引导模式设置为 UART
    b) 检查电路板是否在 UART (COM6) 上打印“C"</s>“
    c) 在命令 promt 中、在“tools/boot"文件夹“文件夹中、我运行 python uart_uniflash.py -p COM6 --cfg=“cfg file“

    以下是 cfg 文件:

    #首先指向 sbl_uart_uniflash 二进制文件,它作为一个服务器来刷写一个或多个文件
    -- flash-writer=sbl_prebuilt/am64x-sk/sbl_uart_uniflash.release.hs_fs.tiimage
    #现在发送一个或多个文件到闪存或 flashverify 根据需要。 发送文件的顺序无关紧要
    #发送引导加载程序时、请确保闪存偏移为 0x0。 ROM 期望引导加载程序位于偏移量 0x0 处
    --file=C:/ti/mcu_plus_sdk_am64x_11_01_00_17/examples/drivers/boot/sbl_ospi_am64x-sk_r5fss0-0_nortos_ti-arm-clang/sbl_ospi.Debug.hs_fs.tiimage --operation=flash --flash-offset=0x0
    #发送应用程序映像时,请确保以偏移 0x80000(默认值)或引导加载程序配置的任何偏移进行闪存
    --file=C:/ti/mcu_plus_sdk_am64x_11_01_00_17/examples/hello_world_am64x-sk_a53ss0-0_freertos_gcc-aarch64/Debug/hello_world_am64x-sk_a53ss0-0_freertos_gcc-aarch64.appimage.hs_fs --operation=flash --flash-offset=0x80000
    #为此应用程序发送 XIP 映像,由于闪存偏移是在映像中指定的,因此无需指定闪存偏移
    --file=C:/ti/mcu_plus_sdk_am64x_11_01_00_17/examples/hello_world_am64x-sk_a53ss0-0_freertos_gcc-aarch64/Debug/hello_world_am64x-sk_a53ss0-0_freertos_gcc-aarch64.appimage_xip --operation=flash-XIP

    d) 最后、闪存过程成功完成!

    2) 运行应用程序 — 如下所示: software-dl.ti.com/.../GETTING_STARTED_FLASH.html
    a) 关闭电源
    b) 设置 OSPI/xSPI 引导模式
    c) 将所有 COM 端口连接到 4 个不同的 TeraTerm 窗口(但使用 CCS 时相同)
    d) 接通电源

    这有什么问题?

     

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

    您能否确认上面 cfg 文件中提供的二进制文件的路径已正确更新?

    我可以看到应用映像仍然来自 SDK。 您是否未使用提供的文件更新二进制文件的路径?

    此外、您无需刷写 XIP 应用映像。 您可以在 cfg 文件中注释或删除此命令。

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

    是的、我可以确认 cfg 指向您上周发送给我的文件。 放入 SDK 文件夹。

    我注释最后一行 (XIP) 并再次刷写、但结果是相同的。  

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

    您能否在从 A53 示例禁用 UART 日志后尝试一次、看看您从 SBL 二进制文件在控制台上收到了哪些日志?

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

    我想我可以这样做、但我不知道如何禁用 UART 日志、可以为我指明一个过程吗?

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

    禁用 example.syscfg 文件中的 UART 日志选项并重新构建应用。

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

    谢谢、我按照您的说明进行重建、然后这里是输出:


    DMSC 固件版本 11.0.7--v11.00.07 (Fancy Rat)
    DMSC 固件版本 0xb
    DMSC ABI 修订版 4.0

    此致、

    Andrea

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

    您好、

    Tushar 目前不在办公室,如果有一个等待他跟进,你可以期待下个星期结束。

    谢谢、

    Vaibhav

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

    SBL 示例似乎未在器件上成功运行。 您应该会得到与所示内容类似的输出  实现。