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.

[参考译文] F29H85X-CPU3-EVM:在部署可执行文件时重新启动 SOM 代码地址

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1607620/f29h85x-som-evm-restarting-cpu1-code-adfter-deploying-cpu3-executable

器件型号: F29H85X-EVM-EVM SOM

大家好!

我需要澄清一些有关 TI 示例的信息:

我在 led_ex1_blink 示例中找到了以下用于从 RAM 引导的代码。  

C:/ti/ccs2040/ccs/tools/compiler/ti-cgt-c29_2.0.0.STS/bin/c29objcopy.exe -O binary led_ex1_blinky.out led_ex1_blinky.bin
$(call IF_EQUAL_OPEN, 1, 0) $(PYTHON) C:/ti/f29h85x-sdk_1_02_01_00/tools/boot/signing/mcu_rom_image_gen.py --image-bin led_ex1_blinky.bin --core C29 --swrv 1 --loadaddr 0x200E1000 --sign-key C:/ti/f29h85x-sdk_1_02_01_00/tools/boot/signing/mcu_gpkey.pem --out-image led_ex1_blinky_cert.bin --device f29h85x --boot RAM --img_integ no $(IF_EQUAL_CLOSE)
$(call IF_EQUAL_OPEN, 1, 1) C:/ti/f29h85x-sdk_1_02_01_00/tools/misc/$(UPDATEDUMMYCERT) $(DUMMY_CERT_RAM) led_ex1_blinky.bin $(IF_EQUAL_CLOSE)
$(call IF_EQUAL_OPEN, 1, 1) $(CONCAT) $(DUMMY_CERT_RAM) led_ex1_blinky.bin > led_ex1_blinky_cert.bin $(IF_EQUAL_CLOSE)
  • 为什么加载地址为 0x2010E000?在闪存配置中、加载地址为 10001000、这是代码起始地址。
  • 为什么我们需要在 RAM 配置中生成证书。 是否仅闪存配置需要此功能?
  • 即使在生成证书后、也没有编译后步骤来将其与可执行文件合并、就像在 CPU1 中针对闪存配置所做的那样?

2) 我也尝试在 RAM 配置的 CCS 中运行多核示例  

LED_ex3_blanky_cpu1_cpu3_multi_ra_c29x3。
在此示例中、提到应首先部署 CPU3.out、然后部署 CPU1.out
 
如果我在 CPU1.out 之后部署 CPU3.out、我是否可以执行程序并从 CPU1 MAIN 函数运行它?
我看到在部署 CPU3.out 后、控制会转至 CPU3 主函数。 是否有可以传输控制 CPU1 主函数的函数或步骤、以便它可以引导其他 CPU。
 
基本上在部署 CPU3.out 后、我希望程序从 CPU1 main 函数启动、以便它能够引导 CPU3。
 
谢谢、
Mukul
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对此有任何更新?

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

    大家好!

    对此有任何更新?

    谢谢、

    Mukul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么加载地址为 0x2010E000?在闪存配置中、加载地址为 10001000、这是代码起始地址。

    您在哪里看到这个 load addr?

    F29 SDK V1.03 多核 CPU1/2/3 LED 示例具有以下 ram 链接器 cmd 文件 codestart、这对我来说似乎是正确的。

    [报价 userid=“458998" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1607620/f29h85x-som-evm-restarting-cpu1-code-adfter-deploying-cpu3-executable
    • 为什么我们需要在 RAM 配置中生成证书。 是否仅闪存配置需要此功能?
    • 即使在生成证书后、也没有编译后步骤来将其与可执行文件合并、就像在 CPU1 中针对闪存配置所做的那样?
    [/报价]

    在最新的 SDK 示例中 、编译后处理和预编译步骤更改为下面的、下面看一下。

    [报价 userid=“458998" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1607620/f29h85x-som-evm-restarting-cpu1-code-adfter-deploying-cpu3-executable

    我还尝试在 RAM 配置的 CCS 中运行多核示例  

    LED_ex3_blanky_cpu1_cpu3_multi_ra_c29x3。
    在此示例中、提到应首先部署 CPU3.out、然后部署 CPU1.out
    [/报价]

    SDK 示例将所有 CPU .out 组合在单个 CPU1.out 中、因此无需单独加载其他 CPU .out。 只加载 CPU1 .out 就足够了。

    谢谢

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

    你好 Prarthan、

    1) 我说的是命令  

    $(Python) C:/ti/f29h85x-sdk_1_02_01_00/tools/boot/signing/mcu_rom_image_gen.py --image-bin led_ex1_blinky.bin --core c29 --swrv 1 --loadaddr 0x200E1000 --sign-key C:/ti/f29h85x-sdk_1_02_01_00/tools/boot/signing/mcu_gpkey.pem --out-image led_ex1_blinky_cert.bin --device f29h85x --boot RAM --img_integ no

    这里的加载地址为 0x200E1000。  

    在您共享的映像中、CODE_Start 位于 SRAM_LPA0、其原点为 0x20100000、而不是 0x200E1000(SRAM_LDA0 的开头)。

    该命令存在于以下单核示例中: led_ex1_blink (C:\ti\f29h85x-sdk_1_03_00_00\examples\driverlib\single_core\led\led_ex1_blinky)

    2) 在示例 C:\ti\f29h85x-sdk_1_03_00_00\examples\driverlib\multi_core\led\led_ex3_blanky_cpu1_cpu3_multi_ra 中、使用了多可执行方法。

    我不想合并 CPU1 和 CPU3 的可执行文件。 我想独立地使用它们。

    谢谢、

    Mukul

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

    您好、

    [报价 userid=“458998" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1607620/f29h85x-som-evm-restarting-cpu1-code-adfter-deploying-cpu3-executable/6201414

    在示例 C:\ti\f29h85x-sdk_1_03_00_00\examples\driverlib\multi_core\led\led_ex3_blinky_cpu1_cpu3_multi_ra 中、使用了多可执行方法。

    我不想合并 CPU1 和 CPU3 的可执行文件。 我想独立地使用它们。

    [/报价]

    这种方法是否有问题?

    [报价 userid=“458998" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1607620/f29h85x-som-evm-restarting-cpu1-code-adfter-deploying-cpu3-executable/6201414

    $(Python) C:/ti/f29h85x-sdk_1_02_01_00/tools/boot/signing/mcu_rom_image_gen.py --image-bin led_ex1_blinky.bin --core c29 --swrv 1 --loadaddr 0x200E1000 --sign-key C:/ti/f29h85x-sdk_1_02_01_00/tools/boot/signing/mcu_gpkey.pem --out-image led_ex1_blinky_cert.bin --device f29h85x --boot RAM --img_integ no

    这里的加载地址为 0x200E1000。  

    [/报价]

    好的、我看到在编译后处理步骤中 loadaddr 定义为 0x200E1000、但在加载 ram build .out 时、我看不到任何东西会在该地址加载

    我会将此线程分配给软件团队、 帮助回答编译后步骤查询。

    谢谢

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

    你好 Mukul、

    通过外设引导加载程序下载应用程序二进制文件时、需要 RAM 配置证书、在这种情况下、HSM 对加载在地址 0x200E0000 处的证书和加载在 0x200E1000 处的映像进行身份验证。

    此致、

    Anand