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.

[参考译文] AM2732:我可以将一般的 SBL 项目或映像应用到我的项目吗?

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1363069/am2732-may-i-get-the-general-sbl-project-or-image-to-apply-to-my-project

器件型号:AM2732

我将程序刷写到闪存中、然后运行应用程序。

实际上、我不需要 SBL。 我只是想执行我的应用程序。

如果需要 SBL 运行程序,我应该为 SBL 编码吗?

那么我应该让我了解 SBL 和详细的?

请告诉我从闪存运行程序的方法。

当我尝试创建 SDK 的示例工程时、会导致错误。  

-项目名称: sbl_qspi_am273x-evm_r5fss0-0_nortos_ti-arm-clang

-错误名称: Makefile_CCS_bootimage_gen:65:目标'all'的食谱失败

 接下来将此文件的内容

 

#
# 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:=sbl_qspi.$(PROFILE).hs.tiimage
BOOTIMAGE_NAME_HS_FS:=sbl_qspi.$(PROFILE).hs_fs.tiimage
ifeq ($(DEVICE_TYPE),HS)
	BOOTIMAGE_NAME=$(BOOTIMAGE_NAME_HS)
else
	BOOTIMAGE_NAME=$(BOOTIMAGE_NAME_GP)
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

ifeq ($(DEVICE_TYPE),HS)
BOOTIMAGE_CERT_KEY=$(APP_SIGNING_KEY)
else
BOOTIMAGE_CERT_KEY=$(MCU_PLUS_SDK_PATH)/tools/boot/signing/mcu_gpkey.pem
endif
BOOTIMAGE_CERT_GEN_CMD=$(PYTHON) $(MCU_PLUS_SDK_PATH)/tools/boot/signing/mcu_rom_image_gen.py

SBL_RUN_ADDRESS=0x10200000

SBL_PREBUILT_PATH=$(MCU_PLUS_SDK_PATH)/tools/boot/sbl_prebuilt/am273x-evm

all:
ifeq ($(CCS_IDE_MODE),cloud)
#	No post build steps
else
	@echo  Boot image: am273x:r5fss0-0:nortos:ti-arm-clang $(BOOTIMAGE_NAME) ...
	$(OBJCOPY) --strip-all -O binary $(OUTFILE) $(BOOTIMAGE_BIN_NAME)
ifeq ($(DEVICE_TYPE),HS)
ifeq ($(DEBUG_TIFS), yes)
ifeq ($(ENC_SBL_ENABLED),yes)
	$(BOOTIMAGE_CERT_GEN_CMD) --sbl-enc --enc-key $(APP_ENCRYPTION_KEY) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --kd-salt $(KD_SALT) --out-image $(BOOTIMAGE_NAME)
else
	$(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME)
endif
else
ifeq ($(ENC_SBL_ENABLED),yes)
	$(BOOTIMAGE_CERT_GEN_CMD) --sbl-enc --enc-key $(APP_ENCRYPTION_KEY)  --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --kd-salt $(KD_SALT) --out-image $(BOOTIMAGE_NAME) --debug $(DEBUG_OPTION)
else
	$(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug $(DEBUG_OPTION)
endif
endif
else
	$(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug DBG_SOC_DEFAULT
	@echo  Boot image: am273x:r5fss0-0:nortos:ti-arm-clang $(BOOTIMAGE_NAME) Done !!!
	@echo  .
endif
endif

此示例是否适用于我的项目?

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

    尊敬的 Anthony:

    如果您要从 QSPI 闪存运行应用、则必须使用 SBL_QSPI。 如果无法编译  sbl_qspi_am273x-evm_r5fss0-0_nortos_ti-arm-clang、则在 C:\ti\mcu_plus_sdk_am273x_09_02_00_52\tools\boot\sbl_prebuild\am273x-evm\sbl_qspi.release.tiimage 中存在预编译的映像。

    按照 AM273x MCU+ SDK 中的说明:刷写 Hello World 示例(TI.com) 、将 SBL_QSPI 和应用程序映像刷写到 QSPI 闪存中、然后将引导模式设置为 QSPI 引导模式、然后对电路板进行下电上电。 ROM 代码将加载并运行 SBL_QSPI、然后 SBL_QSPI 将加载并运行应用程序映像。

    此致、

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

    你好 Ming

    感谢您的答复。

    我完成了以 UART 引导模式将预编译映像和应用程序映像编程到 EVM 板的操作。

    但是、应用程序还未正常运行。

    通过调试模式和 XDS110 USB 调试探针执行的程序运行良好。

    我必须仔细阅读 SDK 指令手册。

    我会尝试更多的。

    谢谢!

    安东尼·韩

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

    尊敬的 Antony:

    唯一的区别是 SBL_QSPI 的存储器使用量。 确保您的应用程序不使用 SBL_QSPI 使用的存储器。

    另外还需要注意应用程序中的 MPU 设置。

    请随时与我们保持联系。 同时、我现在将结束该主题。

    此致、