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.
工具与软件:
我有一个适用于 AM243x MCU 的 CCS 引导加载程序工程、我们需要在使用和不使用自定义 devconfig.mak 的情况下进行 构建、以便我们可以使用自定义 HS-SE 密钥进行构建
是否可以在同一 make 文件中使用两个不同的二进制文件来生成两个不同的二进制 文件?这两个文件使用两个不同的 devconfig.mak 文件
我需要使用默认 devconfig.mak 构建我的引导加载程序、并使用进行以下更改:
我可以构建两个不同的工程、但我更愿意从同一工程生成两个映像。
您好!
以下补丁修改 SBL 的 CCS makefile (makefile_ccs_bootimage_gen)以将 devconfig 路径作为参数:
diff --git a/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/makefile_ccs_bootimage_gen b/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/makefile_ccs_bootimage_gen index 63304e99..f4e4d9e7 100644 --- a/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/makefile_ccs_bootimage_gen +++ b/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/makefile_ccs_bootimage_gen @@ -12,7 +12,9 @@ CCS_PATH=$(CCS_INSTALL_DIR) include $(MCU_PLUS_SDK_PATH)/imports.mak -include $(MCU_PLUS_SDK_PATH)/devconfig/devconfig.mak + +DEVCONFIG_PATH?=$(MCU_PLUS_SDK_PATH)/devconfig/devconfig.mak +include $(DEVCONFIG_PATH) STRIP=$(CG_TOOL_ROOT)/bin/tiarmstrip OBJCOPY=$(CG_TOOL_ROOT)/bin/tiarmobjcopy
然后、您可以添加一个额外的编译后步骤、将 devconfig 路径作为一个参数和任何其他必要的变量传递、以生成不同的映像。 例如、编译后步骤中的以下附加命令使用自定义 DEVCONFIG 路径生成自定义 SBL NULL 映像。
$(make)-C ${CCS_PROJECT_DIR}-f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName /devconfig/cust_devconfig.mak}PROFILE=${ConfigName}mcu_plus_sdk_path=${mcu_plus_sdk_path}DEVCONFIG_PATH=${MCU_PLUS_DI_MODE_MODE_MODE=${MCS_READ_DI_MODE_DI_MODE_MODE_DI_MODE_CCS_MODE_MODE=${MCS_READ_DI_MODE_MODE_DI_MODE_MODE_MODE_MODE_CCS_MODE=
此致、
Prashant
我只能使用该工程的命令行编译工具。 是否可以在不使用 IDE 的情况下添加此编译后步骤? 看起来你共享的示例 make 指令位于.cproject 文件中、我看起来不便于编辑。
如果需要、我应该能够在运行 CCS IDE 的系统上修改工程、并复制.cproject 文件。
从该 IDE 中、 我现有的编译后处理步骤是(我不能很流利地理解它)
$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE}
$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} DEVCONFIG_PATH=${CCS_PROJECT_DIR}/devconfig.mak BOOTIMAGE_NAME=${BuildArtifactFileBaseName}.se.hs_fs.tiimage CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE}
如果需要、我应该能够在运行 CCS IDE 的系统上修改项目并复制.cproject 文件。
不确定,但这应该是可以的。
如果手动编辑`.cproject`文件、我在添加附加命令时看到了以下差异:
diff --git a/.cproject b/.cproject index a504b15..8d29ddf 100644 --- a/.cproject +++ b/.cproject @@ -14,7 +14,7 @@ </extensions> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1080308160" name="Debug" parent="com.ti.ccstudio.buildDefinitions.TMS470.Debug" postbuildStep="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE} DEVICE=am243x"> + <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1080308160" name="Debug" parent="com.ti.ccstudio.buildDefinitions.TMS470.Debug" postbuildStep="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE} DEVICE=am243x;$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} DEVCONFIG_PATH=${MCU_PLUS_SDK_PATH}/devconfig/cust_devconfig.mak BOOTIMAGE_NAME=custom_sbl_null.hs_fs.tiimage CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE} DEVICE=am243x"> <folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1080308160." name="/" resourcePath=""> <toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_3.0.exe.DebugToolchain.1512285410" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_3.0.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_3.0.exe.linkerDebug.512515238"> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.272720753" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
如果您尚未在 CCS 中导入工程、则可以修改`example.projectspec`文件、然后导入工程。
diff --git a/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/example.projectspec b/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/example.projectspec index ffaafa07..a30e2912 100644 --- a/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/example.projectspec +++ b/examples/drivers/boot/sbl_null/am243x-evm/r5fss0-0_nortos/ti-arm-clang/example.projectspec @@ -52,7 +52,7 @@ --reread_libs " - postBuildStep="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE} DEVICE=am243x" + postBuildStep="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE} DEVICE=am243x;$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} DEVCONFIG_PATH=${MCU_PLUS_SDK_PATH}/devconfig/cust_devconfig.mak BOOTIMAGE_NAME=custom_sbl_null.hs_fs.tiimage CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE} DEVICE=am243x" enableSysConfigTool="true" sysConfigBuildOptions="
我`D的是 cust_devconfig.mak、其中包括` evice_type?=HS `m、因此我`我的`sakefile_ccs_bootimage_gen`文件使用 ` ysfw-Hs-enc.bin`而不是`sysfw-hs-fs-enc.bin`对 $(make) 的最后调用、但事实并非如此。
这是我的`.cproject`文件中的两个 make 命令。Fullscreen1<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.346474771" name="Debug" parent="com.ti.ccstudio.buildDefinitions.TMS470.Debug" postbuildStep="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE};$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} DEVCONFIG_PATH=${CCS_PROJECT_DIR}/cust_devconfig.mak BOOTIMAGE_NAME=${BuildArtifactFileBaseName}.se.hs.tiimage CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE};mv ../bootloader_am243.se.hs.tiimage .;">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.346474771" name="Debug" parent="com.ti.ccstudio.buildDefinitions.TMS470.Debug" postbuildStep="$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE};$(MAKE) -C ${CCS_PROJECT_DIR} -f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName} PROFILE=${ConfigName} MCU_PLUS_SDK_PATH=${MCU_PLUS_SDK_PATH} DEVCONFIG_PATH=${CCS_PROJECT_DIR}/cust_devconfig.mak BOOTIMAGE_NAME=${BuildArtifactFileBaseName}.se.hs.tiimage CG_TOOL_ROOT=${CG_TOOL_ROOT} CCS_INSTALL_DIR=${CCS_INSTALL_DIR} CCS_IDE_MODE=${CCS_IDE_MODE};mv ../bootloader_am243.se.hs.tiimage .;">
这是我的两个编译后命令的输出。Fullscreen12345678910111213/home/user/ti/ccs1250/ccs/utils/bin/gmake -C /proj -f makefile_ccs_bootimage_gen OUTNAME=bootloader_am243 PROFILE=Debug MCU_PLUS_SDK_PATH=/home/user/ti/mcu_plus_sdk_am243x_09_00_00_35 CG_TOOL_ROOT=/home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS CCS_INSTALL_DIR=/home/user/ti/ccs1250/ccs CCS_IDE_MODE=desktopBoot image: am243x:r5fss0-0:nortos:ti-arm-clang /proj/Debug/bootloader_am243.hs_fs.tiimage .../home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS/bin/tiarmobjcopy --strip-sections -O binary Debug/bootloader_am243.out /proj/Debug/bootloader_am243.binpython3 /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-bin /proj/Debug/bootloader_am243.bin --sysfw-bin /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc.bin --sysfw-inner-cert /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc-cert.bin --boardcfg-blob /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_degenerateKey.pem --rom-image /proj/Debug/bootloader_am243.hs_fs.tiimagecp /proj/Debug/bootloader_am243.hs_fs.tiimage /proj/Debug/tiboot3.binBoot image: am243x:r5fss0-0:nortos:ti-arm-clang /proj/Debug/bootloader_am243.hs_fs.tiimage Done !!!./home/user/ti/ccs1250/ccs/utils/bin/gmake -C /proj -f makefile_ccs_bootimage_gen OUTNAME=bootloader_am243 PROFILE=Debug MCU_PLUS_SDK_PATH=/home/user/ti/mcu_plus_sdk_am243x_09_00_00_35 DEVCONFIG_PATH=/proj/cust_devconfig.mak BOOTIMAGE_NAME=bootloader_am243.se.hs.tiimage CG_TOOL_ROOT=/home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS CCS_INSTALL_DIR=/home/user/ti/ccs1250/ccs CCS_IDE_MODE=desktopBoot image: am243x:r5fss0-0:nortos:ti-arm-clang bootloader_am243.se.hs.tiimage .../home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS/bin/tiarmobjcopy --strip-sections -O binary Debug/bootloader_am243.out /proj/Debug/bootloader_am243.binpython3 /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-bin /proj/Debug/bootloader_am243.bin --sysfw-bin /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc.bin --sysfw-inner-cert /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc-cert.bin --boardcfg-blob /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_degenerateKey.pem --rom-image bootloader_am243.se.hs.tiimagecp bootloader_am243.se.hs.tiimage /proj/Debug/tiboot3.binBoot image: am243x:r5fss0-0:nortos:ti-arm-clang bootloader_am243.se.hs.tiimage Done !!!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/home/user/ti/ccs1250/ccs/utils/bin/gmake -C /proj -f makefile_ccs_bootimage_gen OUTNAME=bootloader_am243 PROFILE=Debug MCU_PLUS_SDK_PATH=/home/user/ti/mcu_plus_sdk_am243x_09_00_00_35 CG_TOOL_ROOT=/home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS CCS_INSTALL_DIR=/home/user/ti/ccs1250/ccs CCS_IDE_MODE=desktop Boot image: am243x:r5fss0-0:nortos:ti-arm-clang /proj/Debug/bootloader_am243.hs_fs.tiimage ... /home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS/bin/tiarmobjcopy --strip-sections -O binary Debug/bootloader_am243.out /proj/Debug/bootloader_am243.bin python3 /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-bin /proj/Debug/bootloader_am243.bin --sysfw-bin /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc.bin --sysfw-inner-cert /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc-cert.bin --boardcfg-blob /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_degenerateKey.pem --rom-image /proj/Debug/bootloader_am243.hs_fs.tiimage cp /proj/Debug/bootloader_am243.hs_fs.tiimage /proj/Debug/tiboot3.bin Boot image: am243x:r5fss0-0:nortos:ti-arm-clang /proj/Debug/bootloader_am243.hs_fs.tiimage Done !!! . /home/user/ti/ccs1250/ccs/utils/bin/gmake -C /proj -f makefile_ccs_bootimage_gen OUTNAME=bootloader_am243 PROFILE=Debug MCU_PLUS_SDK_PATH=/home/user/ti/mcu_plus_sdk_am243x_09_00_00_35 DEVCONFIG_PATH=/proj/cust_devconfig.mak BOOTIMAGE_NAME=bootloader_am243.se.hs.tiimage CG_TOOL_ROOT=/home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS CCS_INSTALL_DIR=/home/user/ti/ccs1250/ccs CCS_IDE_MODE=desktop Boot image: am243x:r5fss0-0:nortos:ti-arm-clang bootloader_am243.se.hs.tiimage ... /home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS/bin/tiarmobjcopy --strip-sections -O binary Debug/bootloader_am243.out /proj/Debug/bootloader_am243.bin python3 /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-bin /proj/Debug/bootloader_am243.bin --sysfw-bin /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc.bin --sysfw-inner-cert /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc-cert.bin --boardcfg-blob /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_degenerateKey.pem --rom-image bootloader_am243.se.hs.tiimage cp bootloader_am243.se.hs.tiimage /proj/Debug/tiboot3.bin Boot image: am243x:r5fss0-0:nortos:ti-arm-clang bootloader_am243.se.hs.tiimage Done !!!
如何将正确的`sysfw-Hs-enc.bin`文件用于最后的 pst 构建?
如图所示、它为我选择了正确的引导加载程序
C:/ti/ccs1230/ccs/utils/bin/gmake -C:\ti\ccs_workspace_v12.3\sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang -f makefile_ccs_bootimage_gen outnme=sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35 /ti/ccs1230/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS
...
Python X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-bin C:/ti/ccs_workspaces/workspace_v12.3/sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang.bin -- sysfw-bin X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/source/drivers/sciclient soc / am64x_am243x/ sysfw-hs-fs-enc.bin - sysfw-inner-cert X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/source/drivers/sciclient soc / am64x_am243x/ sysfw-hs-fs-enc-cert.bin --boardcfg-blob X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/tools/boot/signing/rom_degenerateKey.pem --rom-image sbl_null.Debug.hs_fs.tiimage
...
C:/ti/ccs1230/ccs/utils/bin/gmake /home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35 /ti/ccs1230/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS -C:\ti\ccs_workspace_v12.3\sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang -f makefile_ccs_bootimage_gen outnme=sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/devconfig/cust_devconfig.mak
...
Python X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-enc --enc-key X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/tools/boot/signing/custMek_am64x_am243x.txt --sbl-bin C:/ti/ccs_workspaces/workspace_v12.3/sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang.bin -- sysfw-bin X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/source/drivers/sciclient soc / am64x_am243x/ sysfw-hs-enc.bin - sysfw-inner-cert X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/source/drivers/sciclient soc / am64x_am243x/ sysfw-hs-enc-cert.bin --boardcfg-blob X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key X:/home/p-shivhare/ti/mcu_plus_sdk/am243x/09_00_00_35/tools/boot/signing/custMpk_am64x_am243x.pem --debug dg_full_enable --rom-image custom_sbl_null.hs_fs.tiimage
以下补丁修改 SBL 的 CCS makefile (makefile_ccs_bootimage_gen)以将 devconfig 路径作为参数:
你是否在 makefile 中正确地应用了这些更改?
我在 上面共享了我的 makefile_ccs_bootimage_gen 中的确切行。 适用器件为:
$(make)-C ${CCS_PROJECT_DIR}-f makefile_ccs_bootimage_gen OUTNAME=${BuildArtifactFileBaseName}PROFILE=${ConfigName}mcu_plus_sdk_path=${MCU_PLUS_SDK_PATH}DEVCONFIG_PATH=${CCS_PROJECT_DIR}/cust_DEVCONFIG_MODE_MODE={IMARTM_MODE_ID_MODE${IMARTM_DI_MODE_MODE_IGE_MODE_MODE=}IGE_MODE=
我所做的其他更改 特别包括:
1) 1)将 devMek_am64x_am243x_dev.txt 和 devMpk_am64x_am243x_dev.pem 文件添加到我的项目文件夹中、其中包含我要使用的密钥。
2) 2)将我的 SDK 中 devconfig.mak 文件的一个副本放入我的工程文件夹、并将该文件命名为 cust_devconfig.mak。
3) 3)我对 项目文件夹中的 cust_devconfig.mak 文件进行了以下修改:
我缺少什么吗?
如果您需要、我可以提供完整的文件。
如果需要、我可以为您提供完整文件。
是的、请分享`您正在使用的`makefile_ccs_bootimage_gen 文件。
# # Auto generated makefile # # Below variables need to be defined outside this file or via command line # - MCU_PLUS_SDK_PATH # - PROFILE # - CG_TOOL_ROOT # - OUTNAME # - CCS_INSTALL_DIR # - CCS_IDE_MODE CCS_PATH=$(CCS_INSTALL_DIR) include $(MCU_PLUS_SDK_PATH)/imports.mak include $(MCU_PLUS_SDK_PATH)/devconfig/devconfig.mak STRIP=$(CG_TOOL_ROOT)/bin/tiarmstrip OBJCOPY=$(CG_TOOL_ROOT)/bin/tiarmobjcopy ifeq ($(OS), Windows_NT) PYTHON=python else PYTHON=python3 endif OUTFILE=$(PROFILE)/$(OUTNAME).out BOOTIMAGE_PATH=$(abspath ${PROFILE}) BOOTIMAGE_NAME_GP:=$(BOOTIMAGE_PATH)/$(OUTNAME).tiimage BOOTIMAGE_NAME_HS:=$(OUTNAME).$(PROFILE).hs.tiimage BOOTIMAGE_NAME_HS_FS:=$(BOOTIMAGE_PATH)/$(OUTNAME).hs_fs.tiimage ifeq ($(DEVICE_TYPE),HS) BOOTIMAGE_NAME=$(BOOTIMAGE_NAME_HS) else BOOTIMAGE_NAME=$(BOOTIMAGE_NAME_HS_FS) endif BOOTIMAGE_BIN_NAME:=$(BOOTIMAGE_PATH)/$(OUTNAME).bin # # Generation of boot image which can be loaded by ROM Boot Loader (RBL) # ifeq ($(OS),Windows_NT) EXE_EXT=.exe endif ifeq ($(OS),Windows_NT) BOOTIMAGE_CERT_GEN_CMD=powershell -executionpolicy unrestricted -command $(MCU_PLUS_SDK_PATH)/tools/boot/signing/x509CertificateGen.ps1 else BOOTIMAGE_CERT_GEN_CMD=$(MCU_PLUS_SDK_PATH)/tools/boot/signing/x509CertificateGen.sh endif BOOTIMAGE_TEMP_OUT_FILE=$(PROFILE)/temp_stdout_$(PROFILE).txt BOOTIMAGE_CERT_KEY=$(APP_SIGNING_KEY) BOOTIMAGE_CERT_GEN_CMD=$(PYTHON) $(MCU_PLUS_SDK_PATH)/tools/boot/signing/rom_image_gen.py SYSFW_PATH=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/soc/am64x_am243x SYSFW_LOAD_ADDR=0x44000 BOARDCFG_LOAD_ADDR=0x7B000 BOARDCFG_BLOB=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin SBL_RUN_ADDRESS=0x70000000 SBL_PREBUILT_PATH=$(MCU_PLUS_SDK_PATH)/tools/boot/sbl_prebuilt/am243x-evm all: ifeq ($(CCS_IDE_MODE),cloud) # No post build steps else @echo Boot image: am243x:r5fss0-0:nortos:ti-arm-clang $(BOOTIMAGE_NAME) ... $(OBJCOPY) --strip-sections -O binary $(OUTFILE) $(BOOTIMAGE_BIN_NAME) ifeq ($(DEVICE_TYPE),HS) ifeq ($(ENC_SBL_ENABLED),yes) $(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-enc --enc-key $(APP_ENCRYPTION_KEY) --sbl-bin $(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --debug DBG_FULL_ENABLE --rom-image $(BOOTIMAGE_NAME) else $(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-bin $(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --debug DBG_FULL_ENABLE --rom-image $(BOOTIMAGE_NAME) endif else $(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-bin $(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-fs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-fs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --rom-image $(BOOTIMAGE_NAME) $(COPY) $(BOOTIMAGE_NAME) $(BOOTIMAGE_PATH)/tiboot3.bin @echo Boot image: am243x:r5fss0-0:nortos:ti-arm-clang $(BOOTIMAGE_NAME) Done !!! @echo . endif endif
您好、您尚未应用我在第一个回复中分享的补丁。
-include $(MCU_PLUS_SDK_PATH)/devconfig/devconfig.mak + +DEVCONFIG_PATH?=$(MCU_PLUS_SDK_PATH)/devconfig/devconfig.mak +include $(DEVCONFIG_PATH)
完成这项更改后、我的项目不再构建:
/home/user/ti/ccs1250/ccs/utils/bin/gmake -C /proj -f makefile_ccs_bootimage_gen OUTNAME=bootloader_am243 PROFILE=Debug MCU_PLUS_SDK_PATH=/home/user/ti/mcu_plus_sdk_am243x_09_00_00_35 DEVCONFIG_PATH=/proj/cust_devconfig.mak BOOTIMAGE_NAME=bootloader_am243.se.hs.tiimage CG_TOOL_ROOT=/home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS CCS_INSTALL_DIR=/home/user/ti/ccs1250/ccs CCS_IDE_MODE=desktop Boot image: am243x:r5fss0-0:nortos:ti-arm-clang bootloader_am243.se.hs.tiimage ... /home/user/ti/ccs1250/ccs/tools/compiler/ti-cgt-armllvm_2.1.3.LTS/bin/tiarmobjcopy --strip-sections -O binary Debug/bootloader_am243.out /proj/Debug/bootloader_am243.bin python3 /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-bin /proj/Debug/bootloader_am243.bin --sysfw-bin /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-enc.bin --sysfw-inner-cert /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-enc-cert.bin --boardcfg-blob /home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key custMpk_am64x_am243x_dev.pem --debug DBG_FULL_ENABLE --rom-image bootloader_am243.se.hs.tiimage makefile_ccs_bootimage_gen:66: recipe for target 'all' failed Could not open file or uri for loading private key from custMpk_am64x_am243x_dev.pem 4087427E077F0000:error:16000069:STORE routines:ossl_store_get0_loader_int:unregistered scheme:../crypto/store/store_register.c:237:scheme=file 4087427E077F0000:error:80000002:system library:file_open:No such file or directory:../providers/implementations/storemgmt/file_store.c:267:calling stat(custMpk_am64x_am243x_dev.pem) Traceback (most recent call last): File "/home/user/ti/mcu_plus_sdk_am243x_09_00_00_35/tools/boot/signing/rom_image_gen.py", line 313, in <module> subprocess.check_output('openssl req -new -x509 -key {} -nodes -outform DER -out {} -config {} -{}'.format(args.key, cert_name, cert_file_name, g_sha_to_use), shell=True) File "/usr/lib/python3.10/subprocess.py", line 421, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib/python3.10/subprocess.py", line 526, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command 'openssl req -new -x509 -key custMpk_am64x_am243x_dev.pem -nodes -outform DER -out cert452 -config temp_cert334 -sha512' returned non-zero exit status 1. gmake[3]: *** [all] Error 1 gmake[2]: [post-build] Error 2 (ignored) makefile:177: recipe for target 'post-build' failed mv ../bootloader_am243.se.hs.tiimage . makefile:177: recipe for target 'post-build' failed mv: cannot stat '../bootloader_am243.se.hs.tiimage': No such file or directory gmake[2]: [post-build] Error 1 (ignored)
3) 3)我对 项目文件夹中的 cust_devconfig.mak 文件进行了以下修改:
CUST_MPK 和 CUST_MEK 应使用密钥的绝对路径进行初始化、就像在默认 devconfig 中初始化一样。
❯ grep -n ".*am64x_am243x" -- devconfig/devconfig.mak 28: CUST_MPK=$(SIGNING_TOOL_PATH)/custMpk_am64x_am243x.pem 29: CUST_MEK=$(SIGNING_TOOL_PATH)/custMek_am64x_am243x.txt