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.

[参考译文] AM2434:从 GP 到 HS-FS 的应用程序映像迁移指南

Guru**** 2445440 points
Other Parts Discussed in Thread: AM2432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1216147/am2434-migration-guide-for-apps-image-from-gp-to-hs-fs

器件型号:AM2434
主题中讨论的其他器件:AM2432

亲爱的香榭丽舍大街,

我的客户在其电路板上启动可与 GP 器件及其当前 MCU+SDK v8.1正常运行的 HS-FS 器件时遇到问题。

要启动 HSFS 器件、他们意识到应针对 HSFS 器件修改其 SW、下面介绍了相关内容。

https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_05_00_24/exports/docs/api_guide_am243x/HSFS_MIGRATION_GUIDE.html 

他们感到困惑、不知道应该执行什么来运行他们的应用程序映像。

通过参考以下内容、他们假设除签名之外在应用代码中没有任何意义。

非 SBL 示例 Appimage 编译

对于 SBL 以外的示例应用(hello_world、DPL_demo 等...) 相同的应用程序映像文件(*.appimage)可以通过 HS-FS/GP 器件上的 SBL 引导、由于不需要额外签名、因此不需要对 HS-FS 进行任何特殊操作。

注:Appimages 最终需要在 HS-FS 中由 X509Certificate 签名。 这一变化尚未实施。 完成此操作后、appimages 将具有不同的 HS-FS 映像扩展名。  *.appimage 会变成  *.appimage.hs_fs

但是、当他们尝试构建 hello world 示例时、他们发现生成了2个图像、如下 所示、并假设 hello_world.release.appimage.hs_fs 是 hello_world.release.appimage 的有符号图像 。

- hello_world.release.appimage

- hello_world.release.appimage.hs_fs.

因此、他们尝试 按照 UG 中的说明使用以下脚本对 hello_world.release.appimage 进行签名。

$ python3 appimage_x509_cert_gen.py --bin /path/to/hello_world.release.appimage --authtype 1 --key /path/to/rom_degenerateKey.pem --output /path/to/hello_world.release.appimage.hs_fs.signed

当他们对生成的"hello_world.release.appimage.hs_fs.signed"和"hello_world.release.appimage.hs_fs"进行比较时、他们希望这两个映像应该相同、但事实并非如此。

此外、hello_world.release.appimage.hs_fs.signed 不起作用。

因此、他们很好奇、是否可以对在 GP 器件上运行的应用程序映像进行签名、以及在 HSFS 器件上运行其旧应用程序代码的确切过程是什么。

您能否说明一下他们可以如何将 GP 器件的应用代码迁移到 HSFS 器件?

谢谢、此致、

SI

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

    尊敬的 

    当他们对生成的'hello_world.release.appimage.hs_fs.signed'和'hello_world.release.appimage.hs_fs'进行比较时,他们希望两个映像应该相同,但并非如此。[/引号]

    不,这不是正确的理解。 映像将仍然相同、但将附加一个 x509证书、该证书将具有作为输入提供的*。appimage 的 SHA 值。 在引导期间、SBL 应验证映像的散列值(通过 SYSFW)、然后引导映像。 这就是如何在 HS-FS 器件中验证引导映像。 证书中使用的密钥是 ROM 解生成密钥、对所有 HS-FS 器件有效。

    [quote userid="3169" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1216147/am2434-migration-guide-for-apps-image-from-gp-to-hs-fs 能否说明他们如何将 GP 设备的应用代码迁移到 HSFS 设备?

    使用的步骤是从 GP 器件迁移到 HS-FS 器件的正确方法。

    此致、
    Aakash

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

    Aakash,

    感谢 您的立即响应。

    他们现在成功地运行了 SBL、不知道如何将 GP 器件上运行的应用程序映像迁移到 HSFS 器件。

    在对在 SDKv8.1.0中构建的上一个应用程序映像签名后、他们发现该映像在 HSFS 器件中不起作用。 当然、他们使用 SDKv8.5.0工具对其应用映像进行了签名。 应用程序映像是在 SDKv8.1.0中构建的。

    他们是否应该使用 SDKv8.5.0构建他们的应用程序映像?

    您能否检查一下、在其应用中使用的以下存储器映射是否适用于 HSFS 器件?

    ~~~~~~~~~μ A

    外部闪存

       R5F_VECS : 起点 = 0x00000000、 没有问题 = 0x00000040

       R5F_TCMA : 起点 = 0x00000040, 没有问题 = 0x00007FC0

       R5F_TCMB0: 起点 = 0x41010000、 没有问题 = 0x00008000

     

       /*当使用多核应用程序时,即多个 R5F/M4F 处于活动状态,请确保

        *该存储器不与其他 R5F 重叠

        *最后16KB 被保留 DMSC

        *当 SBL 切换完成(应用程序启动)时、SBL 使用 MSRAM_BOOT

        *免费使用。 将这个区域用于系统 malloc 区(TLSF)。

        */

       MSRAM_BOOT: 起点 = 0x70000000、 没有问题 = 0x080000

       MSRAM     : 起点 =结束(MSRAM_BOOT)、 没有问题 =(0x701E0000 - END (MSRAM_BOOT))//0x190000-0x15000

     

           MSRAM_SBL : 起点 = 0x701FC000、 没有问题 = 0x004000

     

    //    FLASH    : origin = 0x60100000 , length = 0x80000//ysh

    //    FLASH2    : origin = 0x60180000 , length = 0x80000       // ICJ

       /*

        *找到隐藏 SRAM、M4F IRAM(192KB)和 DRAM (64KB)也可从 R5F 访问

        *通过网络内存分配池测试,性能差异是可忽略的。

        *我们不使用 M4F CPU。

        */

       M4F_IRAM : 起点 = 0x05000000, 没有问题 = 0x00030000

       M4F_DRAM : 起点 = 0x05040000、 没有问题 = 0x00010000

     

       MCAN0_RAM : 起点 = 0x20708000、 没有问题 = 0x00008000 /* 32KB */

     

       ICSSG0_RAM1 : 起点 = 0x30010000、 没有问题 = 0x00010000 /* 64KB */

    }

     

    ~~~~~~~~~~μ A

    谢谢、此致、

    SI

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

    尊敬的 SI:

    根据我的分析、可能需要进行一些更改、从08.01迁移到08.05。

    1、应用程序不需要 转换为其他内容 .app_image.hs_fs

    2.您需要更改 SYSFW 与使用08.05发布的加密且使用 TI 密钥签名的加密版本相对应。 您还需要将证书与此一起使用 SYSFW

    3. SDK 不支持传统引导模式,因此,转换为组合引导流程。 至此、 SYSFW 证书和板配置将是 SBL 证书的一部分。

    4. SBL 签名也是可选的,将是证书的一部分。

    5.如果您更改  SYSFW 对于08.05版本、 用于 PM、RM 的 SCICLIENT 实现也会发生更改、因此您应该升级 SBL、示例一切。

    因此、客户的最佳选择是迁移到最新版本。

    希望它有所帮助。

    此致、
    Aakash

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

    Aakash,

    通过08.05上的 SYSFW、它们成功在 HSFS 器件上引导和运行 SBL。 运行 hello_world 示例没有问题。 那么、我认为运行该电路板及其引导加载程序是没有问题的、但如果您有任何其他意见、请告诉我。

    在他们的迁移中唯一剩下的问题是、即使他们对其应用程序映像签名以转换为.app_image.hs_fs、它们的应用程序也无法正常工作。

    您是说他们应该在 SDKv8.5.0中再次编译他们的应用程序吗? SDKv8.1.0和 SDKv8.5.0之间的编译器和链接器是否有任何差异?

    谢谢、此致、

    SI

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

    尊敬的 Aakash:

    看来  SCICLIENT 是一个问题。

    您能否提供指南、说明他们如何在 SDKv8.1中为 HSFS 器件构建的应用中应用新的 SCILIENT (属于 SDKv8.5.0)?

    他们将所有工具链更新为 SDKv8.5.0、现在对 ARM 编译器使用 TI ARM clang 2.1.2LTS。

    当他们使用 TI ARM clang 2.2.2LTS 在 SDKv8.1.0中编译它并使用 SDKv8.5.0的脚本为 HSFS 器件签名时、他们发现它在运行后有时会暂停、如下所示。

    谢谢、此致、

    SI

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

    尊敬的 

    我已经提到过。 从 GP (08.01)迁移到 HS-FS 时、您正在尝试处理很多变量、我们无法支持这些变量。

    最理想的解决方案是要求客户将所有软件块迁移到08.05版本。 我已经在上一主题中说明了我的原因。


    1、应用程序不需要 转换为其他内容  .app_image.hs_fs

    2.您需要更改  SYSFW  与使用08.05发布的加密且使用 TI 密钥签名的加密版本相对应。 您还需要将证书与此一起使用  SYSFW

    3. SDK 不支持 传统引导模式 ,因此,转换为组合引导流程。 至此、 SYSFW 证书和板配置将是 SBL 证书的一部分。

    4. SBL 签名也是可选的,将是证书的一部分。

    5.如果您更改  SYSFW  对于08.05版本、 PM、RM 的 SCICLIENT 实现也会发生更改、因此您应该升级 SBL、将一切示例都升级到08.05。


    此致、
    Aakash

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

    尊敬的 Aakash:

    感谢您的评论。  

    虽然我建议改用 SDKv8.5、但客户在调试中发现了一些问题。

    他们的应用程序映像构建于 SDKv8.1和

    1.他们发现它与 SBL_NULL 和通过 JTAG 下载"应用程序映像"效果很好。

    2.但是,他们的应用程序映像不能与 SBL_OSPI 配合使用。

    在签署软件以使用 SDKv8.1中生成的映像时是否存在任何问题?

    正如我所提到的、他们现在正在使用最新的工具链和 SDKv8.5的 SBL。  

    而且、他们发现了

    3.他们试图用 SBL_OSPI 来运行小的应用程序映像,它看起来是有效的。

    与 GP 器件相比、HS-FS 器件中的存储器大小是否有任何限制?

    那么、XIP 图像怎么样呢?

    他们是否应该为 HS-FS 器件签署 XIP 应用映像?  

    他们也签署了 XIP 映像、但也不起作用。

    谢谢、此致、

    SI

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

    尊敬的 Aakash:

    您能告诉我您对此问题的看法吗?

    此外、在 HSFS RTM 器件(AM2432BKEGHIALXR)中、它们无法访问 AM2432中 M4F SS 的内部存储器。

    您是否知道问题出在哪里?

    当它们更新到  最新版本的 SCICLIENT 和最新的 SDK v8.5.0、24时、您是否希望可以修复所有这些错误?

    谢谢、此致、

    SI

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

    尊敬的 Sung-il:

    用户是否使用 SBL-NULL 或 DEV Boot 模式?

    在 HSFS RTM 设备(AM2432BKEGHIALXR)中,他们无法访问 AM2432中 M4F SS 的内部存储器。

    内核是否已启用? 用户可以通过调试器连接到内核吗?

    您是否希望所有这些错误都能得到修复?

    我们的功能性 SDK 版本为08.05。 当您有不同版本的 SDK 时、我们会遇到这些不规则问题。 我相信很多问题都会自动解决。

    此致、
    Aakash

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

    尊敬的 Aakash:

    感谢您的立即响应。

    用户是使用 SBL-NULL 还是使用开发引导模式?

    它们使用 SBL-NULL。

    是否启用了内核? 用户可以通过调试器连接到内核吗?

    我将进行检查、但我认为内核已启用、因为它们在 XAM2434 (ES 样片)中使用了 M4F SS 的内部存储器。

    谢谢、此致、

    SI