# # Auto generated makefile # export MOTOR_CONTROL_SDK_PATH?=$(abspath ../../../../..) include $(MOTOR_CONTROL_SDK_PATH)/imports.mak include $(MOTOR_CONTROL_SDK_PATH)/devconfig/devconfig.mak CG_TOOL_ROOT=$(CGT_TI_ARM_CLANG_PATH) CC=$(CG_TOOL_ROOT)/bin/tiarmclang LNK=$(CG_TOOL_ROOT)/bin/tiarmclang STRIP=$(CG_TOOL_ROOT)/bin/tiarmstrip OBJCOPY=$(CG_TOOL_ROOT)/bin/tiarmobjcopy ifeq ($(OS), Windows_NT) PYTHON=python else PYTHON=python3 endif PROFILE?=release ConfigName:=$(PROFILE) OUTNAME:=pruicss_pwm_duty_cycle.$(PROFILE).out BOOTIMAGE_PATH=$(abspath .) BOOTIMAGE_NAME:=pruicss_pwm_duty_cycle.$(PROFILE).appimage BOOTIMAGE_NAME_XIP:=pruicss_pwm_duty_cycle.$(PROFILE).appimage_xip BOOTIMAGE_NAME_SIGNED:=pruicss_pwm_duty_cycle.$(PROFILE).appimage.signed BOOTIMAGE_RPRC_NAME:=pruicss_pwm_duty_cycle.$(PROFILE).rprc BOOTIMAGE_RPRC_NAME_XIP:=pruicss_pwm_duty_cycle.$(PROFILE).rprc_xip BOOTIMAGE_RPRC_NAME_TMP:=pruicss_pwm_duty_cycle.$(PROFILE).rprc_tmp BOOTIMAGE_NAME_HS:=pruicss_pwm_duty_cycle.$(PROFILE).appimage.hs BOOTIMAGE_NAME_HS_FS:=pruicss_pwm_duty_cycle.$(PROFILE).appimage.hs_fs TARGETS := $(BOOTIMAGE_NAME) ifeq ($(DEVICE_TYPE), HS) TARGETS += $(BOOTIMAGE_NAME_HS) endif FILES_common := \ main.c \ pruicss_pwm_dutycycle.c \ ti_drivers_config.c \ ti_drivers_open_close.c \ ti_board_config.c \ ti_board_open_close.c \ ti_dpl_config.c \ ti_pinmux_config.c \ ti_power_clock_config.c \ FILES_PATH_common = \ .. \ ../../.. \ generated \ INCLUDES_common := \ -I${CG_TOOL_ROOT}/include/c \ -I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source \ -I${MOTOR_CONTROL_SDK_PATH}/source \ -I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/FreeRTOS-Kernel/include \ -I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F \ -I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/config/am64x/r5f \ -I${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/pruicss/g_v0 \ -I${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/include \ -Igenerated \ DEFINES_common := \ -DSOC_AM64X \ CFLAGS_common := \ -mcpu=cortex-r5 \ -mfloat-abi=hard \ -mfpu=vfpv3-d16 \ -mthumb \ -Wall \ -Werror \ -g \ -Wno-gnu-variable-sized-type-not-at-end \ -Wno-unused-function \ CFLAGS_cpp_common := \ -Wno-c99-designator \ -Wno-extern-c-compat \ -Wno-c++11-narrowing \ -Wno-reorder-init-list \ -Wno-deprecated-register \ -Wno-writable-strings \ -Wno-enum-compare \ -Wno-reserved-user-defined-literal \ -Wno-unused-const-variable \ -x c++ \ CFLAGS_debug := \ -D_DEBUG_=1 \ CFLAGS_release := \ -Os \ LNK_FILES_common = \ linker.cmd \ LIBS_PATH_common = \ -Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/lib \ -Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \ -Wl,-i${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \ -Wl,-i${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \ -Wl,-i${CG_TOOL_ROOT}/lib \ LIBS_common = \ -lfreertos.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ -ldrivers.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ -lboard.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ -lpruicss_pwm.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ -llibc.a \ -llibsysbm.a \ LFLAGS_common = \ -Wl,--diag_suppress=10063 \ -Wl,--ram_model \ -Wl,--reread_libs \ LIBS_NAME = \ freertos.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ drivers.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ board.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ pruicss_pwm.am64x.r5f.ti-arm-clang.${ConfigName}.lib \ libc.a \ libsysbm.a \ LIBS_PATH_NAME = \ ${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/kernel/freertos/lib \ ${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/drivers/lib \ ${MOTOR_CONTROL_SDK_PATH}/mcu_plus_sdk/source/board/lib \ ${MOTOR_CONTROL_SDK_PATH}/source/pruicss_pwm/lib \ ${CG_TOOL_ROOT}/lib \ FILES := $(FILES_common) $(FILES_$(PROFILE)) ASMFILES := $(ASMFILES_common) $(ASMFILES_$(PROFILE)) FILES_PATH := $(FILES_PATH_common) $(FILES_PATH_$(PROFILE)) CFLAGS := $(CFLAGS_common) $(CFLAGS_$(PROFILE)) DEFINES := $(DEFINES_common) $(DEFINES_$(PROFILE)) INCLUDES := $(INCLUDES_common) $(INCLUDE_$(PROFILE)) LIBS := $(LIBS_common) $(LIBS_$(PROFILE)) LIBS_PATH := $(LIBS_PATH_common) $(LIBS_PATH_$(PROFILE)) LFLAGS := $(LFLAGS_common) $(LFLAGS_$(PROFILE)) LNKOPTFLAGS := $(LNKOPTFLAGS_common) $(LNKOPTFLAGS_$(PROFILE)) LNK_FILES := $(LNK_FILES_common) $(LNK_FILES_$(PROFILE)) OBJDIR := obj/$(PROFILE)/ OBJS := $(FILES:%.c=%.obj) OBJS += $(ASMFILES:%.S=%.obj) DEPS := $(FILES:%.c=%.d) vpath %.obj $(OBJDIR) vpath %.c $(FILES_PATH) vpath %.S $(FILES_PATH) vpath %.lib $(LIBS_PATH_NAME) vpath %.a $(LIBS_PATH_NAME) $(OBJDIR)/%.obj %.obj: %.c @echo Compiling: am64x:r5fss0-0:freertos:ti-arm-clang $(OUTNAME): $< $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) -MMD -o $(OBJDIR)/$@ $< $(OBJDIR)/%.obj %.obj: %.S @echo Compiling: am64x:r5fss0-0:freertos:ti-arm-clang $(LIBNAME): $< $(CC) -c $(CFLAGS) -o $(OBJDIR)/$@ $< all: $(TARGETS) SYSCFG_GEN_FILES=generated/ti_drivers_config.c generated/ti_drivers_config.h SYSCFG_GEN_FILES+=generated/ti_drivers_open_close.c generated/ti_drivers_open_close.h SYSCFG_GEN_FILES+=generated/ti_dpl_config.c generated/ti_dpl_config.h SYSCFG_GEN_FILES+=generated/ti_pinmux_config.c generated/ti_power_clock_config.c SYSCFG_GEN_FILES+=generated/ti_board_config.c generated/ti_board_config.h SYSCFG_GEN_FILES+=generated/ti_board_open_close.c generated/ti_board_open_close.h $(OUTNAME): syscfg $(SYSCFG_GEN_FILES) $(OBJS) $(LNK_FILES) $(LIBS_NAME) @echo . @echo Linking: am64x:r5fss0-0:freertos:ti-arm-clang $@ ... $(LNK) $(LNKOPTFLAGS) $(LFLAGS) $(LIBS_PATH) -Wl,-m=$(basename $@).map -o $@ $(addprefix $(OBJDIR), $(OBJS)) $(LIBS) $(LNK_FILES) @echo Linking: am64x:r5fss0-0:freertos:ti-arm-clang $@ Done !!! @echo . clean: @echo Cleaning: am64x:r5fss0-0:freertos:ti-arm-clang $(OUTNAME) ... $(RMDIR) $(OBJDIR) $(RM) $(OUTNAME) $(RM) $(BOOTIMAGE_NAME) $(RM) $(BOOTIMAGE_NAME_XIP) $(RM) $(BOOTIMAGE_NAME_SIGNED) $(RM) $(BOOTIMAGE_NAME_HS) $(RM) $(BOOTIMAGE_NAME_HS_FS) $(RM) $(BOOTIMAGE_RPRC_NAME) $(RM) $(BOOTIMAGE_RPRC_NAME_XIP) $(RMDIR) generated/ scrub: @echo Scrubing: am64x:r5fss0-0:freertos:ti-arm-clang pruicss_pwm_duty_cycle ... $(RMDIR) obj ifeq ($(OS),Windows_NT) $(RM) \*.out $(RM) \*.map $(RM) \*.appimage* $(RM) \*.rprc* $(RM) \*.tiimage* $(RM) \*.bin else $(RM) *.out $(RM) *.map $(RM) *.appimage* $(RM) *.rprc* $(RM) *.tiimage* $(RM) *.bin endif $(RMDIR) generated $(OBJS): | $(OBJDIR) $(OBJDIR): $(MKDIR) $@ .NOTPARALLEL: .INTERMEDIATE: syscfg $(SYSCFG_GEN_FILES): syscfg syscfg: ../example.syscfg @echo Generating SysConfig files ... $(SYSCFG_NODE) $(SYSCFG_CLI_PATH)/dist/cli.js --product $(SYSCFG_SDKPRODUCT) --context r5fss0-0 --part Default --package ALV --output generated/ ../example.syscfg syscfg-gui: $(SYSCFG_NWJS) $(SYSCFG_PATH) --product $(SYSCFG_SDKPRODUCT) --device AM64x --context r5fss0-0 --part Default --package ALV --output generated/ ../example.syscfg # # Generation of boot image which can be loaded by Secondary Boot Loader (SBL) # ifeq ($(OS),Windows_NT) EXE_EXT=.exe endif ifeq ($(OS),Windows_NT) BOOTIMAGE_CERT_GEN_CMD=powershell -executionpolicy unrestricted -command $(MOTOR_CONTROL_SDK_PATH)/mcu_plus_sdk/tools/boot/signing/x509CertificateGen.ps1 else BOOTIMAGE_CERT_GEN_CMD=$(MOTOR_CONTROL_SDK_PATH)/mcu_plus_sdk/tools/boot/signing/x509CertificateGen.sh endif BOOTIMAGE_TEMP_OUT_FILE=temp_stdout_$(PROFILE).txt BOOTIMAGE_CERT_KEY=$(APP_SIGNING_KEY) BOOTIMAGE_CORE_ID_a53ss0-0 = 0 BOOTIMAGE_CORE_ID_r5fss0-0 = 4 BOOTIMAGE_CORE_ID_r5fss0-1 = 5 BOOTIMAGE_CORE_ID_r5fss1-0 = 6 BOOTIMAGE_CORE_ID_r5fss1-1 = 7 BOOTIMAGE_CORE_ID_m4fss0-0 = 14 SBL_RUN_ADDRESS=0x70000000 SBL_DEV_ID=55 MULTI_CORE_IMAGE_GEN = $(SYSCFG_NODE) $(MOTOR_CONTROL_SDK_PATH)/mcu_plus_sdk/tools/boot/multicoreImageGen/multicoreImageGen.js OUTRPRC_CMD = $(SYSCFG_NODE) $(MOTOR_CONTROL_SDK_PATH)/mcu_plus_sdk/tools/boot/out2rprc/elf2rprc.js APP_IMAGE_SIGN_CMD = $(MOTOR_CONTROL_SDK_PATH)/mcu_plus_sdk/tools/boot/signing/appimage_x509_cert_gen.py ifeq ($(OS),Windows_NT) XIPGEN_CMD=$(MOTOR_CONTROL_SDK_PATH)/mcu_plus_sdk/tools/boot/xipGen/xipGen.exe else XIPGEN_CMD=$(MOTOR_CONTROL_SDK_PATH)/mcu_plus_sdk/tools/boot/xipGen/xipGen.out endif MULTI_CORE_IMAGE_PARAMS = \ $(BOOTIMAGE_RPRC_NAME)@$(BOOTIMAGE_CORE_ID_r5fss0-0) \ MULTI_CORE_IMAGE_PARAMS_XIP = \ $(BOOTIMAGE_RPRC_NAME_XIP)@$(BOOTIMAGE_CORE_ID_r5fss0-0) \ $(BOOTIMAGE_NAME): $(OUTNAME) @echo Boot image: am64x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$@ ... ifneq ($(OS),Windows_NT) $(CHMOD) a+x $(XIPGEN_CMD) endif $(OUTRPRC_CMD) $(OUTNAME) >> $(BOOTIMAGE_TEMP_OUT_FILE) $(COPY) $(BOOTIMAGE_RPRC_NAME) $(BOOTIMAGE_RPRC_NAME_TMP) $(RM) $(BOOTIMAGE_RPRC_NAME) $(XIPGEN_CMD) -i $(BOOTIMAGE_RPRC_NAME_TMP) -o $(BOOTIMAGE_RPRC_NAME) -x $(BOOTIMAGE_RPRC_NAME_XIP) --flash-start-addr 0x60000000 -v > $(BOOTIMAGE_TEMP_OUT_FILE) $(MULTI_CORE_IMAGE_GEN) --devID $(SBL_DEV_ID) --out $(BOOTIMAGE_NAME) $(MULTI_CORE_IMAGE_PARAMS) >> $(BOOTIMAGE_TEMP_OUT_FILE) $(MULTI_CORE_IMAGE_GEN) --devID $(SBL_DEV_ID) --out $(BOOTIMAGE_NAME_XIP) $(MULTI_CORE_IMAGE_PARAMS_XIP) >> $(BOOTIMAGE_TEMP_OUT_FILE) # Sign the appimage for HS-FS using appimage signing script $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME_HS_FS) $(RM) $(BOOTIMAGE_RPRC_NAME_TMP) $(RM) $(BOOTIMAGE_TEMP_OUT_FILE) @echo Boot image: am64x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$@ Done !!! @echo . @echo Boot image: am64x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_HS_FS) Done !!! @echo . $(BOOTIMAGE_NAME_HS): $(BOOTIMAGE_NAME) ifeq ($(DEVICE_TYPE), HS) # Sign the appimage using appimage signing script ifeq ($(ENC_ENABLED),no) @echo Boot image signing: Encryption is disabled. $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME_HS) else @echo Boot image signing: Encryption is enabled. $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --output $(BOOTIMAGE_NAME_HS) $(RM) $(BOOTIMAGE_NAME)-enc endif @echo Boot image: am64x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_HS) Done !!! @echo . endif -include $(addprefix $(OBJDIR)/, $(DEPS))