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.

[参考译文] MCU-PLUS-SDK AM263X:自定义引导加载程序的签名/构建不起作用。 TI 预编译的调试示例工作正常。

Guru**** 2747345 points

Other Parts Discussed in Thread: TMDSCNCD263, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1282743/mcu-plus-sdk-am263x-signature-building-of-custom-bootloader-doesn-t-work-the-prebuilt-one-from-ti-works

器件型号:MCU-PLUS-SDK AM263X
主题中讨论的其他器件:TMDSCNCD263UNIFLASH

1) 1)使用的工具:

ccsstudio:12.5.0

SDK:mcu_plus_sdk_am263x_09_00_00_35

操作系统:开发 PC 操作系统 Ubuntu 22.04

2) 2)硬件:Sitara 评估套件、AM263x 控制卡、TMDSCNCD263

3) 3)从导入 BL 示例

/opt/ti/mcu_plus_sdk_am263x_09_00_00_35/examples/drivers/boot/sbl_qspi/am263x-cc

Code Composer Studio 中:

File->Import->CCS Project

4) 4)编译后步骤失败:

Makefile:166:目标"编译后"的食谱失败
Makefile_CCS_bootimage_gen:87:***额外的"字节"。  停止。

5)尝试修复此问题:在 makefile_ccs_bootimage_gen 中取消注释所有目标、并将其替换为:

全部:
   @回波测试
   $(objcopy)--strip-SECTIONS -O 二进制$(OUTFILE)$(BOOTIMAGE_BIN_NAME)
   $(BOOTIMAGE_CERT_GEN_CMD)--image-bin $(BOOTIMAGE_BIN_NAME)--CORE R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS)--sign-key $(BOOTIMAGE_CERT_KEY)--out-image $(BOOTIMAGE_DBG_NAME)-DEFAULT_DEFAULT_DEFAULT
   @echo Boot image:am263x:r5fss0-0:nortos:ti-arm-clang $(BOOTIMAGE_NAME) done!!

5)生成的 ttimage 将刷写到目标中、但不起作用。 我们处于引导模式 QSPI - 1S 回退 UART 引导模式

6)预编译的 timage

/opt/ti/mcu_plus_sdk_am263x_09_00_00_35/examples/drivers/boot/sbl_qspi/am263x-cc/r5fss0-0_nortos/ti-arm-clang/sbl_qspi.debug.tiimage

是有效的。

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

    您好,Grizzly

    无需进行该替换、只需打开 makefile_ccs_bootimage_gen 并删除第87行中的 endif。 它可以解决构建问题。 我将在此打开一个错误通知单、以便在将来的版本中修复。

    此致、

    拉尔夫·雅各比

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

    尊敬的 Ralph:

    感谢您的答复。 CCS 编译现在可以正常运行、并且生成 sbl_qspi_am263x-cc_r5fss0-0_nortos_ti-arm-clang.timage。

    但是、生成的图像无法正常工作。

    以下配置文件是为 uart_uniflash.py 实用程序生成的:

    -- flash-writer=/opt/ti/mcu_plus_sdk_am263x_09_00_00_35/tools/boot/sbl_prebuilt/am263x-cc/sbl_uart_uniflash.release.tiimage

    -- file=../ccs_ws/sbl_qspi_am263x-cc_r5fss0-0_nortos_ti-arm-clang/Release/sbl_qspi_am263x-cc_r5fss0-0_nortos_ti-arm-clang.timage --operation=flash --flash-offset=0x0

    刷写后、我希望 UART 上有一些输出(与预编译的 tiimage 一样)。 激活回退-> RBL 未加载有效 SBL。

    此致

    马可

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

    您好、Marco:

    能否检查 您的 CCS 项目中是否有正确生成的 sbl_qspi_am263x-cc_r5fss0-0_nortos_ti-arm-clang.tiimage 输出?

    在尝试预先运行这些步骤时、我注意到、如果在做了初始构建之后、我按照所述修改 makefile_ccs_bootimage_gen、则在重建时并不总是编译.tiimage 文件。  

    如果没有看到该文件、请尝试清理工程、甚至只是删除 Release 文件夹、以强制该文件从头开始重新构建所有内容。 看起来 CCS 认为生成大致相同、因此它不会执行生成.tiimage 的步骤。

    我的一位同事通过 UART 测试了一个.tiimage 文件并看到它在工作、所以我倾向于这是您的问题。 我计划自行完成全面测试、以进行验证、但我想先向您提供此信息。

    此致、

    拉尔夫·雅各比

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

    尊敬的 Marco:

    我现在也测试了 SBL_QSPI 示例、它会按预期工作。 如果您没有正常运行、并且已验证.tiimage 文件是否正确生成、我将需要有关引导加载过程的详细信息:

    • CC 上使用的开关设置
    • 要使用什么 COM 端口尝试将固件加载到
    • CFG 文件详细信息、如要加载哪个 appimage 以及偏移量是多少

    此致、

    拉尔夫·雅各比

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

    您好、Marco:

    我看着她的背影,就知道她的背影是什么样子的。  欣赏清晰而详细的步骤演示。  基于此、我想我知道这里发生了什么。

    完成加载 QSPI 引导加载程序后、您只是在不执行任何其他步骤的情况下对板进行复位。 但是、要让 AM263通过 QSPI 引导加载程序进行引导、您需要通过 AM263CC 上的 DIP 开关在器件上设置正确的 SOP 引脚。 您将看到我们在此页面上记录了 QSPI 和 UART 引导模式开关配置: https://dev.ti.com/tirex/content/mcu_plus_sdk_am263x_09_00_00_35/docs/api_guide_am263x/EVM_SETUP_PAGE.html#autotoc_md29

    在加载 SBL_QSPI 示例后、请尝试使用为 QSPI 引导显示的 DIP 开关设置、然后查看您是否能够获得预期的输出。 这些是我的同事和我在验证 CCS 项目版本的 SBL_QSPI 是否按预期工作时遵循的步骤。

    最后要说明的是、这里有很大的误导性、坦率地说让我感到惊讶的是、使用常用引导加载程序时可以打印出 QSPI 文件。 我不是很确定原因是什么、但这不是我在重新启动电路板而没有对开关进行任何更改时的预期。

    此致、

    拉尔夫·雅各比

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

    Ralph 您好!

    我将电路板置于引导模式 QSPI (1S)-单路读取 UART 回退、如 AM263x 控制卡硬件用户指南中所述

    因此、当一个无效的 SBL 位于闪存地址0时、UART 回退即启动、这就是我所理解的方法。 这将解释我相信的屏幕演员的行为。  

    我现在切换到了 QSPI 模式1S、UART 上未显示任何内容。

    在 CCS 中进行了验证:

    Cortex_R5_0:GEL 输出:SOP 模式= 0x00000002
    Cortex_R5_0:GEL 输出:
    QSPI - 1S 功能引导模式

    您的同事 Frank 曾提到、这可能是由于 ES Silicon 所致。 这是我在该板上找到的内容:

    评估套件 PCB 编号:PROC110E2

    OPN# TMDSCNCD263  

    在 Sitara 芯片上:

    XAM2634B

    OMFHAZCZ

    21CG3LW G1

    (难以读取、因此不保证其正确)

    请您将您的 ttimage 文件发送给我吗? 通过这种方式、我们可以验证硬件设置是否正确。 如果未能通过测试、我们需要检查闪存内容是否相同。

    谢谢

    马可

    P.S.:我下星期不在办公室,不能做测试

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

    您好、Marco:

    [报价 userid="580796" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1282743/mcu-plus-sdk-am263x-signature-building-of-custom-bootloader-doesn-t-work-the-prebuilt-one-from-ti-works/4866756 #4866756"]因此,当一个无效的 SBL 位于闪存地址0时,UART 回退即启动,这是我的理解。 这将解释我相信的屏幕演员的行为。  [/报价]

    因此、我们加载映像的过程是首先将电路板明确置于 UART 模式、加载 SBL 和应用映像、然后切换到 QSPI 引导并下电上电以执行应用代码。 我从未尝试过仅将其保持在 引导模式 QSPI (1S)-整个过程中的单路读取 UART 回退。 我必须了解如何将板恢复为 SBL 不良的状态、甚至需要询问如何进行测试。

    得到"C"输出将给出一个初始信号、表明 UART 模式正在正常发生、但我更希望我们在此处使用相同的流程。 你也可以尝试两个流与我在这里张贴的输出文件。

    e2e.ti.com/.../sbl_5F00_qspi_5F00_am263x_2D00_cc_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang.tiimage

    此致、

    拉尔夫·雅各比

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

    您好、Ralph。

    我的同事 Alen 发现、使用 openssl 1.1.1版本可以通过 RBL 加载 SBL 的方式进行签名。 我已安装 openssl 3.05 (默认 Ubuntu 版本)。 我将在下周验证。 也许您可以澄清支持的 SSL 版本。 1.1.1很老...

    此致

    马可

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

    尊敬的 Marco:

    抱歉耽误您的时间、我能用 UART 回退测试 QSPI 引导、最后正常工作。 然后,我挖了一个看起来是众所周知的吸烟枪在这里:

    以下是 SDK 安装用户指南中的直接内容: https://dev.ti.com/tirex/content/mcu_plus_sdk_am263x_09_00_00_35/docs/api_guide_am263x/SDK_DOWNLOAD_PAGE.html#INSTALL_OPENSSL

    • 在 Linux 中、
      • v1.1.1很重要、 OpenSSL 3.0不支持 SDK 当前的签名脚本。 因此、如果您有 ubuntu 18.04、还可以在 Linux ubuntu shell 中执行下面的操作以安装 openssl
        $ sudo apt install openssl
        
      • 如果您的 Ubuntu 版本高于该版本、请确保安装1.1.1版本。 您可以从 http://security.ubuntu.com/ubuntu/pool/main/o/openssl/获得1.1.1软件包。 所需的软件包是 openssl、libssl 和 libssl-dev

    当您回来后、请尝试一下、这应该可以解决您的问题。

    此致、

    拉尔夫·雅各比

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

    尊敬的 Ralph:

    很抱歉我迟到了回复。我上周出差、

    是的、这是我的同事发现的。 您是否认为 TI 会迁移至最新版本? 我的 意思是 openssl 1.1.1已于2018年发布、我们在此提供了全新的 TI 产品。

    谢谢

    马可

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

    尊敬的 Marco:

    我想在某个时候我们会是的,但我不知道何时。

    通常、较新的 TI 产品最终产生了一些较旧的对第三方软件库的依赖、原因是更新到较新的版本需要确保对较旧的 TI 产品的向后兼容。 因此、在较旧产品上进行验证可能需要更多时间。

    此致、

    拉尔夫·雅各比