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.

[参考译文] AM263P4:根据预发布 MCAL 11.01.00.07 中的 FLS_BOOT_APP 示例、无法多次检索 TRNG、这就是问题所在。

Guru**** 2805935 points

Other Parts Discussed in Thread: AM263P4

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1599525/am263p4-based-on-the-fls_boot_app-example-from-pre-release-mcal-11-01-00-07-the-trng-cannot-be-retrieved-multiple-times-and-this-is-the-issue

器件型号: AM263P4

基于先前发布的预发布 MCAL 11.01.00.07、我们在中测试了示例 MCAL_AM263Px_11_01_00_07\mcal\examples\Bootloader\fls_boot_app。 由于只需要 TRNG 功能、因此对进行了以下修改 BootApp.c

以下代码已被注释掉:

image.png

然后、只保留并循环调用 TRNG 功能:

image.png

最后 gmake -s fls_boot_app MCELF_ENABLE=yes PACKAGE=SIP 执行以生成 mcelf 文件、然后将该文件刷写到 AM263P4 中。 TRNG 仅运行一次。

image.png

通过调试、发现在第二次调用期间程序在该位置挂起。 使用的 HSM 固件直接由编译而来 tifs_am263px_11_00_00_01 (注意:通过 SDK 多次调用 TRNG 接口工作正常)。

image.png

我们还测试了下面的代码、该代码同样 SemaphoreP_pend 在第二次调用期间挂起。

image.png

image.png

我想问为什么会发生这种情况?

感谢专家的答复。 这一事件非常紧急  

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

    您好、

    您能否检查是否在代码中的任何位置完成了 vim_init?  
    在已注释的部分中、注册 DMA 中断时会首先发生 vim_init、在本例中可能会在 Fls_startup.h 中进行注释

    让我在我的最后检查一下,并在下周初回到你身边

    谢谢。此致、

    Nikhil Dasan

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

    您好、在 App_Startup 中、FlsApp_interuptConfig 将调用 vim_init  实际执行

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

    我明白了。  
    我想你已经评论过这部分。  

    为了理解这种情况、 调用两次(在相同下电上电)时的 getRandomNumber API 未收到 HSM 的响应、并且卡在信标挂起位置右侧?

    开机循环时、第一个始终工作、第二个卡住

    理解是否正确?

    我想在我的最后重现这个, 并在下周初回到你身边。

    您的器件是 FS 还是 HS-SE?

    谢谢。此致、

    Nikhil Dasan

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

    是的、您的理解不是问题。 但是、上电后、第一个循环可以正常请求 TRNG、第二个请求将卡在 getRandomNumber 函数中。 现在、它处于 HS_SE 阶段

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

    感谢您的确认。

    我想在我的最后重现这个, 并在下周初回到你身边。

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

    您能否加快今天和明天的审查速度、因为我们需要在这两天内导入这些功能? 谢谢您!!

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

    您好、

    很抱歉耽误你的时间。

    我发现了这个问题。

    这是链接器文件存在的问题。

    将.bss.SIPC_HSM_QUEUE_mem 和.bss.SIPC_SECURE_HOST_QUEUE_mem 映射到 OCRAM 的通用.bss 段、而不是在生成的映射文件中映射到 Mailbox_HSM 和 Mailbox_R5F。

    以下更改将确保映射文件中这些段具有单独的区域。 这将解决此问题

         .bss.sipc_hsm_queue_mem (NOLOAD) : {
    +        *(.bss.sipc_hsm_queue_mem)
         } > MAILBOX_HSM
    
         .bss.sipc_secure_host_queue_mem (NOLOAD) : {
    +        *(.bss.sipc_secure_host_queue_mem)
         } > MAILBOX_R5F
     }

    ...

    谢谢。此致、

    Nikhil Dasan

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

    感谢您的答复。 根据您的建议对其进行修改后、该项目现在可以正常运行。
    我有一个 问题 :在基于 SDK 的项目(mcu_plus_sdk_am263px_11_00_00_19)中、 .bss.SIPC_HSM_QUEUE_mem 和.bss.SIPC_secure_host_queue_mue_mbox  未明确强制    将所有*(.bss.SIPC_HSM_queue_mem) 和*(.bss.SIPC_secure_host_machm_mem_meme 邮箱和 HSM_host_meme 邮箱分配到 R5F 邮箱。 为什么编译后仍然正确分配它们?

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

    你(们)好

    在基于 SDK 的工程中(mcu_plus_sdk_am263px_11_00_00_19)段.bss.sipc_hsm_queue_mem        和.bss.sipc_secure_host_queue_mem 未明确强制分配所有*(.bss.sipc_hm_mem_queue 和 hsm_hsm_hsm_mailbox) 和 hs_c要件 hs_mach_queu *(hs_mach_quee_me_me_mem_mem_pc_secure。 为什么编译后仍然正确分配它们?

    MCAL 链接器文件基于 Autosar memmap 标准、该标准中不应有通用段。 因此、要检查是否有任何内容属于 generic .bss 段、请执行以下操作  

    因此、如果我们不强制分配 BSS 段、则会在通用 BSS 段中使用该段。

    谢谢。此致、

    Nikhil Dasan

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

    您好、之前的代码通过了演示工程中的测试、但将其移植到我们的工程后、便会出现问题。 CMD 文件已根据之前的要求进行了修改。 在初始化阶段、我执行了 HsmClient Client_Config (参考示例)、然后执行了 HsmClient_register 、最后执行了 HsmClient_getRandomNum 。 与之前的情况不同、它现在  在第一次尝试时卡在 HwiP_disable 中。
    我可以问为什么会卡住呢? 我是否需要初始化任何其他模块或执行其他步骤?

    需要注意的一点是:对于 HwiP_armv7r_asm.S 文件、我禁用了选项 [asm:-xTI-asm]、否则 CCS 工程会报告错误(演示工程被修改的方式相同并且可以正常工作)。

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

    您好、

    删除 ti-asm 不会构建.asm 文件、如 Boot、MPU 等  
    您能否检查一下这些是否已内置在您的案例中?

    添加此项时出现了什么错误?

    此外、Hwip disable 是汇编指令  

    我想知道它滞留在哪里吗?  

    谢谢。此致、

    Nikhil Dasan

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

    1、是否需要移除预发布 MCAL 11.01.00.07 中提供的 HwiP_armv7r_asm.S 中标有红色框的段?

    2、执行 HwiP_disable 时、仿真会立即停止、无法继续。 测试后发现、重新添加[ASM:-XTI-ASM]不会导致任何错误、这与我在演示中观察到的现象不同。

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

    您好、专家、我发现了一个问题。 我们当前的工程基于 MCAL AM263Px_11_00_00_23、问题如上所述。 具体而言、bootloader_utils、hsmclient_utils 和 TRNG 相关模块是从预发布 MCAL 11.01.00.03 移植的。

    我的演示工程完全基于预发布 MCAL 11.01.00.03、可以在没有任何问题的情况下运行。 您能否澄清一下 MCAL AM263Px_11_00_00_23 和预发布 MCAL 11.01.00.03 之间的差异是否可能影响 TRNG 的采集 (Hsmclient)?

    如果是、哪些特定文件不同? 我们希望相应地移植它们。

    感谢专家的答复。 这一事件非常紧急  

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

    您好、

    很抱歉、由于假期、回复延迟

    就是在您这边构建的.S 文件 MCAL SDK 上的构建配置发生了变化、以构建.S 文件。  

    您是否从${MCAL}/build/makerules 文件夹中进行了这些更改?

    它在 MCAL 11.00 SDK 中不可用。

    谢谢。此致、

    Nikhil Dasan

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

    我不太确定我理解您的意思。 您建议我修改.S 文件吗? 我还没有这样做。

    此外、我注意到有两个 HwiP_armv7r_asm.s.实例 我应该使用哪一个?

    1、MCAL AM263Px_11_01_00_07\mcal\examples\Utils\hsmclient_utils\DPL\HwiP_armv7r_asm/s

    2、MCAL AM263Px_11_01_00_07\mcal\examples\Bootloader\fs_boot_app\HwiP_armv7r_asm.s

    之前、我的测试基于第二个测试: MCAL AM263Px_11_01_00_07\mcal\examples\Bootloader\FLS_boot_app\Hwip_armv7r_asm.s 但是、同样的问题仍然存在。 对于这两个文件、如果我没有专门删除   HwiP_armv7r_asm.s 的[asm:-xTI-asm]选项、则会发生以下错误。 删除后、编译不会出现问题。

    测试后、第一个和第二个 HwiP_armv7r_asm.s 文件都能与演示工程(基于 MCAL AM263Px_11_01_00_07)正常运行 、但我们的应用工程(基于 MCAL AM263Px_11_00_00_23)仍然存在问题 。

    目前还不清楚问题是 MCAL 版本造成的、还是我们应用工程中的其他模块(例如 OS)影响 TRNG 功能?造成的

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

    您好、

    请问您是否在 MCAL 11.00.00.23 中进行了与 obj_paths_S 相关的上述更改?  

    这是构建  HwiP_armv7r_asm.s 文件所必需的。

    MCAL AM263Px_AM263Px_11_01_00_07\mcal\examples\Utils\hsmclient_utils\DPL\HwiP_armv7r_asm.s  是正确的.S 文件。  

    另一个是构建此文件的副产品。 我们正在检查如何删除相同的内容。

    谢谢。此致、

    Nikhil Dasan

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

    我不太确定我理解您的意思。 我们当前的工程是直接使用 CCS 编译和编译的、而不是通过 gmake -s FLS_BOOT_APP MCELF_ENABLE=yes package=SIP 等命令编译和编译的。 因此、我假设 CCS 编译不依赖于 MCAL AM263Px_11_01_00_07\build\makerules 中的.mk 文件、对吗? 此外、我只修改了   MCAL AM263Px_11_01_00_07\build 中的 Rules.make。

    因此、我是否仍需要修改以下内容?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不太确定我是否理解您的意思。 我们当前的工程是直接使用 CCS 编译和编译的、而不是通过 gmake -s FLS_BOOT_APP MCELF_ENABLE=yes package=SIP 等命令编译和编译的。 因此、我假设 CCS 编译不依赖于 MCAL AM263Px_11_01_00_07\build\makerules 中的.mk 文件、对吗? 此外、我只修改了   MCAL AM263Px _11_01_00_07\build 中的 Rules.make。

    请问您是如何在 CCS 中同时构建.asm 和.S 文件的? 您是否为此.S 文件保留了任何自定义构建选项?

    谢谢。此致、

    Nikhil Dasan

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

    我们的.S 和.asm 文件直接从 TI 提供的 MCAL 复制到我们的工程中以进行编译。

    执行的命令 编译后处理步骤
    $(make)-C C:\Users\002891CE\workspace_ccstheia\LP_D700 -f makefile_ccs_bootimage_gen OUTNAME=LP_D700 profile=Debug MCAL Sitara_MCU_PATH=C:\ti\MCAL AM263Px_11_01_00_07/。 CG_TOOL_ROOT=C:/ti/ccs2030/ccs/tools/compiler/ti-cgt-armllvm_4.0.3.LTS CCS_INSTALL_DIR=C:\ti\ccs2030\ccs\ ccs_node=C:\ti\ccs2030\ccs/tools/node/node Cygwin_path=C:/ti/ccs2030/ccs/utils/cygwin device=am263px

    的具体内容 Makefile ccs_bootimage_gen 文件与示例 (C:\ti\MCAL AM263Px_11_01_00_07\mcal\examples\adc\adc_app) 保持一致。
    上述编译方法应该是正确的、对吧?

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

    尊敬的 Dai Mingzhe Dai:

    本示例中有.asm 和.S 文件。 构建.asm 文件需要使用-x ti-asm 标志。 但使用此标志编译.S 文件会导致编译问题。 因此、我们可以仅从.S 文件中删除-x ti-asm 标志。 通过这种方式、.asm 文件将使用-x ti-asm 标志编译、.S 文件将在没有此标志的情况下编译。

    请查看以下步骤相关信息、

    1.在您的项目中找到 HwiP_armv7r_asm.S  没错  utils/hsmclient_utils/DPL 文件夹。

    2.右键单击此文件并打开属性。 或选择此文件并按 Alt + Enter

    3.属性窗口将打开。 重点介绍 Build > Tools > Arm Compiler > Advanced Options > Miscellaneous。

    4.在 Miscellaneous assembly source specific flags(其他汇编源特定标志)中、选择-x ti-asm 标志并按“Remove"(“(删除(删除)按钮。

    5.删除标记后,尝试构建项目。

    此致、

    Aswin

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

    尊敬的 Dai  Mingzhe Dai:

    我们将在即将发布的版本中提供在 FLS_BOOT_APP 上执行此操作的步骤、其中还通过 fss 实用程序添加了对 FLS_BOOT_APP 的 CCS 支持。

    此致、

    Aswin