ZHCAEV6 December 2024 F29H850TU , F29H859TU-Q1
随着 HSM 的加入,BootROM 要求所有传入的映像采用二进制格式,并且附带 X.509 证书。二进制文件的前 0x1000 个字节必须包含密钥证书。
下面列出了由 UART 闪存内核和其他 SDK 示例提供的默认编译后步骤,用于生成带有 X.509 证书的合并二进制映像。
对于新的 Code Composer Studio 工程,将以下脚本粘贴到工程属性的“编译”类别下的编译后步骤 部分。要独立运行脚本,请在器件 SDK 的根目录中找到 import.mak 文件,以获取该变量的默认别名。
RAM 编译后步骤(对于闪存内核):
${CG_TOOL_OBJCOPY} --strip-all -O binary ${ProjName}.out ${ProjName}.bin
$(PYTHON) ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_rom_image_gen.py --image-bin ${ProjName}.bin --core C29 --swrv 1 --loadaddr 0x200E1000 --sign-key ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_custMpk.pem --out-image ${ProjName}.cert.bin --boot RAM --device f29h85x --debug DBG_SOC_DEFAULT
闪存编译后步骤(对于闪存应用程序映像):
${CG_TOOL_OBJCOPY} --remove-section=cert -O binary ${ProjName}.out ${ProjName}.bin
$(PYTHON) ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_rom_image_gen.py --image-bin ${ProjName}.bin --core C29 --swrv 1 --loadaddr 0x10001000 --sign-key ${COM_TI_MCU_SDK_INSTALL_DIR}/tools/boot/signing/mcu_gpkey.pem --out-image ${ProjName}_cert.bin --device f29h85x --boot FLASH --img_integ no
${CG_TOOL_OBJCOPY} --update-section cert=C29-cert-pad.bin ${ProjName}.out ${ProjName}_cert.out
$(DELETE) ${ProjName}.out C29-cert-pad.bin;
$(RENAME) ${ProjName}_cert.out ${ProjName}.out
上面显示的两个编译后步骤都会为应用程序生成证书,将应用程序 .out 文件转换为二进制文件,并创建带有 X.509 证书的合并二进制映像。
此外,编译后步骤利用 SDK 中提供的两个不同密钥:
要使用自定义密钥证书更改生成的密钥证书,请提供备用密钥并通过参数 --sign-key 传递到 python 脚本中。对于所有涉及 HS-KP 和 HS-SE 以及 HS-SE 的 HSMRt 的闪存映像,这都是必需的。