From d0d052dd7bfab899afa04de07278096b7685bc8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Thu, 31 Oct 2013 14:12:11 +0000 Subject: [PATCH] proceed in porting to m5484l --- BaS_gcc/Makefile | 25 +++++++++++++++++-------- BaS_gcc/basflash.lk.in | 8 ++++++++ BaS_gcc/include/firebee.h | 6 ++++++ BaS_gcc/include/m5484l.h | 6 ++++++ BaS_gcc/sources/basflash.c | 8 ++++++++ 5 files changed, 45 insertions(+), 8 deletions(-) diff --git a/BaS_gcc/Makefile b/BaS_gcc/Makefile index 4f2bc78..5ad2af8 100644 --- a/BaS_gcc/Makefile +++ b/BaS_gcc/Makefile @@ -53,9 +53,9 @@ LDCBFS=bashflash.lk # this Makefile can create the BaS to flash or an arbitrary ram address (for BDM debugging). See # below for the definition of TARGET_ADDRESS -FLASH_EXEC=bas.$(EXE) -RAM_EXEC=ram.$(EXE) -BASFLASH_EXEC=basflash.$(EXE) +FLASH_EXEC=bas.m5484lite.$(EXE) bas.firebee.$(EXE) +RAM_EXEC=ram.m5484lite.$(EXE) ram.firebee.$(EXE) +BASFLASH_EXEC=basflash.m5484lite.$(EXE) basflash.firebee.$(EXE) CSRCS= \ $(SRCDIR)/sysinit.c \ @@ -107,6 +107,7 @@ ram: $(RAM_EXEC) bfl: $(BASFLASH_EXEC) lib: $(LIBBAS) + .PHONY clean: @ rm -f $(FLASH_EXEC) $(FLASH_EXEC).elf $(FLASH_EXEC).s19 \ $(RAM_EXEC) $(RAM_EXEC).elf $(RAM_EXEC).s19 \ @@ -114,27 +115,25 @@ lib: $(LIBBAS) $(OBJS) $(LIBBAS) \ bas.lk bas.map ram.lk ram.map basflash.lk basflash.map depend -$(FLASH_EXEC): TARGET_ADDRESS=0xe0000000 $(FLASH_EXEC): MACHINE=MACHINE_M5484LITE $(FLASH_EXEC): CFLAGS += -D$(MACHINE) $(FLASH_EXEC): LDCFILE=bas.lk $(FLASH_EXEC): MAPFILE=bas.map -$(RAM_EXEC): TARGET_ADDRESS=0x00100000 $(RAM_EXEC): MACHINE=MACHINE_M5484LITE $(RAM_EXEC): CFLAGS += -D$(MACHINE) $(RAM_EXEC): LDCFILE=ram.lk $(RAM_EXEC): MAPFILE=ram.map -$(BASFLASH_EXEC): TARGET_ADDRESS=0x00100000 $(BASFLASH_EXEC): MACHINE=MACHINE_M5484LITE $(BASFLASH_EXEC): CFLAGS += -D$(MACHINE) $(BASFLASH_EXEC): LDCFILE=basflash.lk $(BASFLASH_EXEC): MAPFILE=basflash.map + # the final link stage (BaS in RAM and BaS in flash) $(FLASH_EXEC) $(RAM_EXEC): $(LIBBAS) $(LDCSRC) - $(CPP) $(INCLUDE) -P -DTARGET_ADDRESS=$(TARGET_ADDRESS) -DFORMAT=$(FORMAT) -D$(MACHINE) $(LDCSRC) -o $(LDCFILE) + $(CPP) $(INCLUDE) -P -DFORMAT=$(FORMAT) -D$(MACHINE) $(LDCSRC) -o $(LDCFILE) $(LD) --oformat $(FORMAT) -Map $(MAPFILE) --cref -T $(LDCFILE) -o $@ ifeq ($(COMPILE_ELF),Y) $(OBJCOPY) -O srec $@ $@.s19 @@ -144,7 +143,7 @@ endif # the basflash (SD-card executable called from BaS) final link stage $(BASFLASH_EXEC): $(OBJDIR)/basflash.o $(OBJDIR)/basflash_start.o $(LIBBAS) $(LDCBFL) - $(CPP) -P -DTARGET_ADDRESS=$(TARGET_ADDRESS) -DFORMAT=$(FORMAT) $(LDCBSRC) -o $(LDCFILE) + $(CPP) -P -DFORMAT=$(FORMAT) $(LDCBSRC) -o $(LDCFILE) $(LD) --oformat $(FORMAT) -Map $(MAPFILE) --cref -T $(LDCFILE) -L. -lbas -o $@ ifeq ($(COMPILE_ELF),Y) $(OBJCOPY) -O srec $@ $@.s19 @@ -178,3 +177,13 @@ depend: $(ASRCS) $(CSRCS) ifneq (clean,$(MAKECMDGOALS)) -include depend endif + +.PHONY: printvars +printvars: + @$(foreach V,$(.VARIABLES), $(if $(filter-out environment% default automatic, $(origin $V)),$(warning $V=$($V)))) +ifeq (MACHINE_M5484LITE,$$(MACHINE)) + MNAME=m5484lite +else ifeq (MACHINE_FIREBEE,$(MACHINE)) + MNAME=firebee +endif + diff --git a/BaS_gcc/basflash.lk.in b/BaS_gcc/basflash.lk.in index 8bfa679..396530a 100644 --- a/BaS_gcc/basflash.lk.in +++ b/BaS_gcc/basflash.lk.in @@ -1,3 +1,11 @@ +#ifdef MACHINE_FIREBEE +#include "firebee.h" +#endif /* MACHINE_FIREBEE */ + +#ifdef MACHINE_M5484LITE +#include "m5484l.h" +#endif /* MACHINE_M5484LITE */ + MEMORY { flasher (WX) : ORIGIN = TARGET_ADDRESS, LENGTH = 0x00100000 /* target to load basflash */ diff --git a/BaS_gcc/include/firebee.h b/BaS_gcc/include/firebee.h index 5ee9196..203e884 100644 --- a/BaS_gcc/include/firebee.h +++ b/BaS_gcc/include/firebee.h @@ -34,4 +34,10 @@ #define SDRAM_START 0x00000000 /* start at address 0 */ #define SDRAM_SIZE 0x20000000 /* 512 kb on the Firebee */ +#ifdef COMPILE_RAM +#define TARGET_ADDRESS (SDRAM_START + SDRAM_SIZE - 0x100000) +#else +#define TARGET_ADDRESS BOOTFLASH_BASE_ADDRESS +#endif /* COMPILE_RAM */ + #endif /* _FIREBEE_H_ */ diff --git a/BaS_gcc/include/m5484l.h b/BaS_gcc/include/m5484l.h index a5319eb..9ba74c3 100644 --- a/BaS_gcc/include/m5484l.h +++ b/BaS_gcc/include/m5484l.h @@ -8,4 +8,10 @@ #define SDRAM_START 0x00000000 /* start at address 0 */ #define SDRAM_SIZE 0x4000000 /* 64 MB on the LITEKIT */ +#ifdef COMPILE_RAM +#define TARGET_ADDRESS (SDRAM_START + SDRAM_SIZE - 0x100000) +#else +#define TARGET_ADDRESS BOOTFLASH_BASE_ADDRESS +#endif /* COMPILE_RAM */ + #endif /* _M5484L_H_ */ diff --git a/BaS_gcc/sources/basflash.c b/BaS_gcc/sources/basflash.c index 738f74b..c909594 100644 --- a/BaS_gcc/sources/basflash.c +++ b/BaS_gcc/sources/basflash.c @@ -29,6 +29,14 @@ #include "ff.h" #include "s19reader.h" +#ifdef MACHINE_FIREBEE +#include "firebee.h" +#endif /* MACHINE_FIREBEE */ + +#ifdef MACHINE_M5484LITE +#include "m5484l.h" +#endif /* MACHINE_M5484LITE */ + #define AMD_FLASH_BUS_SHIFT 1 #define AMD_FLASH_CELL volatile uint16_t #define AMD_FLASH_CELL_BYTES 2