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: May I get the general SBL project or image to apply to my project?

Part Number: AM2732

I would like to flash my program to the flash memory and to run my application program.

Actually I don't need SBL. I just want to execute my application program.

If the SBL is need to run program, Should I do the coding for SBL ?

Then should I make me understood about the SBL and the detailed ?

Please let me know the method to run my program from flash memory.

When I try to make the example project of the SDK, it result an error. 

- project name: sbl_qspi_am273x-evm_r5fss0-0_nortos_ti-arm-clang

- error name: makefile_ccs_bootimage_gen:65: recipe for target 'all' failed

 then contents of this file is as next

 

#
# 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

Can this example apply to my project?

  • Hi Anthony,

    SBL_QSPI is a must have if you want to run your application from QSPI flash. If you cannot build the sbl_qspi_am273x-evm_r5fss0-0_nortos_ti-arm-clang, there is a prebuilt image in the C:\ti\mcu_plus_sdk_am273x_09_02_00_52\tools\boot\sbl_prebuilt\am273x-evm\sbl_qspi.release.tiimage.

    Follow the instructions in AM273x MCU+ SDK: Flash a Hello World example (ti.com) to flash the sbl_qspi and your application image into the QSPI flash, then set the boot mode to QSPI boot mode, then power cycle the board. The ROM code will load and run the SBL_QSPI, then SBL_QSPI will load and run the application image.

    Best regards,

    Ming

  • Hi Ming

    Thank you for your response.

    I completed to program prebuilt image and application image to my EVM board with UART boot mode.

    However, the application program doesn't work yet.

    The program by debug mode and XDS110 USB debug probe works well.

    I have to read the SDK instruction manual in detail.

    I'll try it more.

    Thank you

    Antony Han

  • Hi Antony,

    The only difference is the memory usage of the SBL_QSPI. make sure your application program does not use the memory which SBL_QSPI uses.

    The other thing might need attention is the MPU settings in your application program.

    Please keep us updated. Meanwhile I will close this thread for now.

    Best regards,

    Ming