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.

[参考译文] MSPM0G3519:客户安全代码示例测试。

Guru**** 2393275 points
Other Parts Discussed in Thread: MSPM0G3519, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1512670/mspm0g3519-testing-of-customer-secure-code-examples

器件型号:MSPM0G3519
Thread 中讨论的其他器件: UNIFLASH

工具/软件:

我想了解如何测试适用于3519控制器的 SDK 中的 CSC 代码示例? 如果您有适当的步骤来执行此操作、将会很有帮助。 我查阅了文档、但它用于 CCS IDE。 我使用的是 Theia IDE、但那里不提供一些选项。  我是否可以  同时测试 customer_secure_code_LP_MSPM0G3519_nortos_ticlang 和 customer_secure_image_with_bootloader_LP_MSPM0G3519_nortos_ticlang? 引导加载程序示例代码吗? 我不明白如何测试所有这些代码。 文档以某种方式复杂。

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

    是否有任何更新?

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

    我在测试示例代码时遇到了问题。 在我的理解中 、我是否在闪存存储器中编写了 customer_secure_code_LP_MSPM0G3519_nortos_ticlang 示例代码。 然后尝试刷写其中一个预编译示例映像、则无法正常工作、如文档中所述。  此外、如果我先刷写预编译映像、然后尝试 在 IDE 中使用 customer_secure_code_LP_MSPM0G3519_nortos_ticlang 进行调试、则会遇到如下所示的问题。 您是否将提供至少测试这些示例的确切步骤、以便我清楚地了解安全启动和安全固件更新。

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

    Helic 和 TI 团队

     Mehul 直接提供的一些其他意见/说明(来自离线电子邮件):

    问:在‘按照 software-dl 或 Resource Explorer 路径中的分步说明进行操作时、"失败"在哪里?

    答:    有时我在加载两个项目时遇到问题。 如果我使用 uniflash 加载示例映像文件、然后尝试调试客户安全代码、以查看谁的代码将跳转并在这种情况下进行身份验证、我将收到以下错误。

    ‘s:您是否因为 CCS 和 CCS/Theia 之间的差异而"确认"?  (我同意这些指示也值得重温)

    答:我使用的是 Theia IDE、并按照文档中提到的流程运行示例代码、这些代码与旧的 CCS IDE 有关。有些选项不存在、或者我可能无法在 Theia 中找到这些选项。 我需要明确的步骤和详细信息来运行这些示例代码、以及需要什么支持环境。

     我要采取的步骤如下:

    1. 设为1。 customer_secure_code_LP_MSPM0G3519_nortos_ticlang

    来自 Resource Explorer 的2.customer_secure_sample_image_LP_MSPM0G3519_nortos_ticlang。

    1. 创建了新密钥并将其添加到 customer_secure_code_LP_MSPM0G3519_nortos_ticlang 的 boot_key.c 文件中。
    2. 从这些示例代码构建新映像(.bin)。
    3. 使用新密钥为示例映像签名。
    4. 使用 uniflash 工具加载固件。

     

    但在我的板上,我可以看到 LED 一直闪烁作为指示没有有效的图像存在. 我将 customer_secure_code_LP_MSPM0G3519_nortos_ticlang 保持在0x00000000位置、将示例有符号映像保持在0x00004800位置()。

    欢迎任何帮助或建议!

     CY、

    Chris

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

    您好、Chris 和 Mehul、

    对于 CSC 示例、此操作将擦除非主区域、因此我们必须在中启用此功能 "Properties"->"Debug"->"MSPM0 Flash Settings" ,就像下面的屏幕截图:

    由于 NONMAIN 区域将控制某些引导功能、因此我们将仅擦除 SDK 示例中的 MAIN 区域默认值。

    谢谢!

    此致

    Johnson

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

    谢谢你的答复,约翰,我已经做了这个设置,但仍然面临的问题。 我想了解示例代码存储器映射的作用。 我是指在闪存中、我需要将示例映像和客户安全代码放置在哪个位置? 此外、代码库中还提供了一些预编译.bin、因此哪一个应该可以正常工作。? 如果我将预编译示例映像放置在地址0x00004800、并使用进行映像身份验证的 CSC 代码开始调试、此时跳转到示例映像、我收到非主存储器擦除失败的错误。 因此、如果您为我提供测试这些示例代码的确切步骤、将会很有帮助。 我使用 uniflash 工具加载示例映像、然后使用 Theia IDE 来调试 CSC 代码以检查映像身份验证过程。

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

    您好、John。 是否有任何更新?

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

    至少告诉我测试和调试示例代码的确切步骤。 因为文档和示例代码闪存映射非常令人困惑。  

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

    尊敬的 Mehul:

    请与我们的安全专家联系 Pengfei 请在此处提供帮助。

    谢谢!

    此致

    Johnson

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

    尊敬的 Mehul:

    我希望你们友好、可以给您发送一张 CSC 示例测试的幻灯片。

    实际上、我建议您首先对已签名的映像使用 customer_secure_sample_image 示例、并将 boot_key.c 中的公钥保留为默认值。 CSC 测试成功后、我们可以继续使用新密钥进行签名。

    对于存储器映射、以 MSPM0G3519为例、它应如下所示、也可以在中找到 2.2 CSC 内存映射  MSPM0中的双组闪存功能

    - 0x00000:CSC 示例

    - 0x40000: customer_secure_code_LP_MSPM0G3519_nortos_ticlang-bank1-0x40000.bin。 这与 CSC 示例代码完全相同、但它被放置为 BANK1的起始地址、用于跳转到 bank1中的应用程序。

    - 0x4800、0x44800:不同的已签名应用程序映像。 它可以使用  customer_secure_sample_image 示例的不同"构建配置"来构建不同的映像。 例如、您可以将 sample_image_signed_0x4800_v1_0_0_blue.bin 放在0x4800中、将 sample_image_signed_0x4800_v2_0_0_green.bin 放在0x44800中。 它们的版本号不同、CSC 将检查版本并从最高版本开始。  

    对于非主闪存擦除失败错误、这始终是由未选择正确的闪存设置引起的。 您应该在 CCS v20 (CCS-theia)中使用以下设置。  

    此致、

    Pengfei

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

    好的、我会检查这个、但如果我要调试并查看客户安全代码流程、会怎么样?  如您所述、需要将 CSC 置于两个存储体的含义(ATE 地址0x00000000和0x00040000)位置。 因此、在实际应用(我的项目)中、我是否需要将此代码放在银行的两个位置?  

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

    尊敬的 Mehul:

    是的、您的项目中还应将 CSC 放在银行1中。 它用于保持两个闪存存储体的相同闪存映射并引导程序获得存储体1的应用映像。

    此致、

    Pengfei