From f58e395b1b1e11fe8771b812c5c03f03a8b43f2d Mon Sep 17 00:00:00 2001 From: bluew Date: Tue, 12 Jul 2022 14:52:27 +0200 Subject: [PATCH] pulp-runtime: Add srec generation --- rules/pulpos/default_rules.mk | 9 +++++++++ rules/pulpos/targets/control-pulp.mk | 1 + rules/pulpos/targets/kairos.mk | 1 + rules/pulpos/targets/marsellus.mk | 3 ++- rules/pulpos/targets/pulp.mk | 1 + rules/pulpos/targets/pulpissimo.mk | 1 + 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/rules/pulpos/default_rules.mk b/rules/pulpos/default_rules.mk index f7ab684..9c6752e 100644 --- a/rules/pulpos/default_rules.mk +++ b/rules/pulpos/default_rules.mk @@ -13,10 +13,12 @@ platform ?= rtl ifdef PULP_RUNTIME_GCC_TOOLCHAIN PULP_CC := $(PULP_RUNTIME_GCC_TOOLCHAIN)/bin/$(PULP_CC) PULP_LD := $(PULP_RUNTIME_GCC_TOOLCHAIN)/bin/$(PULP_LD) +PULP_OBJCOPY := $(PULP_RUNTIME_GCC_TOOLCHAIN)/bin/$(PULP_OBJCOPY) else ifdef PULP_RISCV_GCC_TOOLCHAIN PULP_CC := $(PULP_RISCV_GCC_TOOLCHAIN)/bin/$(PULP_CC) PULP_LD := $(PULP_RISCV_GCC_TOOLCHAIN)/bin/$(PULP_LD) +PULP_OBJCOPY := $(PULP_RISCV_GCC_TOOLCHAIN)/bin/$(PULP_OBJCOPY) else $(warning "Warning: Neither PULP_RUNTIME_GCC_TOOLCHAIN nor PULP_RISCV_GCC_TOOLCHAIN is set.\ Using defaults.") @@ -213,13 +215,20 @@ $(TARGET_BUILD_DIR)/$(1)/$(1): $(PULP_APP_OBJS_$(1)) $(V)mkdir -p `dirname $$@` $(V)$(PULP_LD) -o $$@ $$^ -MMD -MP $(PULP_APP_LDFLAGS_$(1)) +$(TARGET_BUILD_DIR)/$(1)/$(1).srec: $(TARGET_BUILD_DIR)/$(1)/$(1) + @echo "OBJCOPY $$@" + $(V)mkdir -p `dirname $$@` + $(V)$(PULP_OBJCOPY) -O srec $$^ $$@ + $(TARGET_INSTALL_DIR)/bin/$(1): $(TARGET_BUILD_DIR)/$(1)/$(1) @echo "CP $$@" $(V)mkdir -p `dirname $$@` $(V)cp $$< $$@ TARGETS += $(TARGET_BUILD_DIR)/$(1)/$(1) +TARGETS += $(TARGET_BUILD_DIR)/$(1)/$(1).srec INSTALL_TARGETS += $(TARGET_INSTALL_DIR)/bin/$(1) +INSTALL_TARGETS += $(TARGET_INSTALL_DIR)/bin/$(1).srec endef diff --git a/rules/pulpos/targets/control-pulp.mk b/rules/pulpos/targets/control-pulp.mk index d5f27d8..d9b4a50 100644 --- a/rules/pulpos/targets/control-pulp.mk +++ b/rules/pulpos/targets/control-pulp.mk @@ -20,6 +20,7 @@ PULP_CC = riscv32-unknown-elf-gcc PULP_AR ?= riscv32-unknown-elf-ar PULP_LD ?= riscv32-unknown-elf-gcc PULP_OBJDUMP ?= riscv32-unknown-elf-objdump +PULP_OBJCOPY ?= riscv32-unknown-elf-objcopy fc/archi=riscv pe/archi=riscv diff --git a/rules/pulpos/targets/kairos.mk b/rules/pulpos/targets/kairos.mk index 7e8a75e..8d0111b 100644 --- a/rules/pulpos/targets/kairos.mk +++ b/rules/pulpos/targets/kairos.mk @@ -20,6 +20,7 @@ PULP_CC = riscv32-unknown-elf-gcc PULP_AR ?= riscv32-unknown-elf-ar PULP_LD ?= riscv32-unknown-elf-gcc PULP_OBJDUMP ?= riscv32-unknown-elf-objdump +PULP_OBJCOPY ?= riscv32-unknown-elf-objcopy fc/archi=riscv pe/archi=riscv diff --git a/rules/pulpos/targets/marsellus.mk b/rules/pulpos/targets/marsellus.mk index 9b47b38..b7d478c 100644 --- a/rules/pulpos/targets/marsellus.mk +++ b/rules/pulpos/targets/marsellus.mk @@ -11,6 +11,7 @@ PULP_CC = riscv32-unknown-elf-gcc PULP_AR ?= riscv32-unknown-elf-ar PULP_LD ?= riscv32-unknown-elf-gcc PULP_OBJDUMP ?= riscv32-unknown-elf-objdump +PULP_OBJCOPY ?= riscv32-unknown-elf-objcopy fc/archi=riscv pe/archi=riscv @@ -41,4 +42,4 @@ PULP_SRCS += kernel/chips/marsellus/soc.c include $(PULPRT_HOME)/rules/pulpos/configs/default.mk -include $(PULPRT_HOME)/rules/pulpos/default_rules.mk \ No newline at end of file +include $(PULPRT_HOME)/rules/pulpos/default_rules.mk diff --git a/rules/pulpos/targets/pulp.mk b/rules/pulpos/targets/pulp.mk index 1872a36..b3e8f2a 100644 --- a/rules/pulpos/targets/pulp.mk +++ b/rules/pulpos/targets/pulp.mk @@ -26,6 +26,7 @@ PULP_CC = riscv32-unknown-elf-gcc PULP_AR ?= riscv32-unknown-elf-ar PULP_LD ?= riscv32-unknown-elf-gcc PULP_OBJDUMP ?= riscv32-unknown-elf-objdump +PULP_OBJCOPY ?= riscv32-unknown-elf-objcopy fc/archi=riscv pe/archi=riscv diff --git a/rules/pulpos/targets/pulpissimo.mk b/rules/pulpos/targets/pulpissimo.mk index f2aafc6..a7f0e15 100644 --- a/rules/pulpos/targets/pulpissimo.mk +++ b/rules/pulpos/targets/pulpissimo.mk @@ -26,6 +26,7 @@ PULP_CC = riscv32-unknown-elf-gcc PULP_AR ?= riscv32-unknown-elf-ar PULP_LD ?= riscv32-unknown-elf-gcc PULP_OBJDUMP ?= riscv32-unknown-elf-objdump +PULP_OBJCOPY ?= riscv32-unknown-elf-objcopy fc/archi=riscv pe/archi=riscv