From: Leo C Date: Fri, 11 Jul 2014 15:16:28 +0000 (+0200) Subject: Revert "Refactro Tupfiles" X-Git-Tag: hexrel-1~6 X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/commitdiff_plain/eded7ec457ef999586c66b15ada5948bddcc735c Revert "Refactro Tupfiles" This reverts commit cda2107f6e52a3e131502a6ec318ac3f216ac186. --- diff --git a/Tuprules.tup b/Tuprules.tup index a2a7678..185c6bf 100644 --- a/Tuprules.tup +++ b/Tuprules.tup @@ -1,4 +1,3 @@ .gitignore TOP = $(TUP_CWD) -CONFIG = $(TOP)/configs diff --git a/avr/Tupfile b/avr/Tupfile index 72f7e71..b43a822 100644 --- a/avr/Tupfile +++ b/avr/Tupfile @@ -1,13 +1,8 @@ include_rules PROG = z180-stamp-avr - SRC = z180-stamp-avr.c serial.c z80-if.c - SRC_Z = ../z180/hdrom.c -PREDEP = ../z180/hdrom.h - -#SRC += $(SRC_Z) #TARGETS = $(PROG).elf MCU_TARGET = atmega1281 @@ -21,23 +16,47 @@ INCLUDES += ../z180 TOOLCHAINDIR = TOOLCHAIN = avr +CC = $(TOOLCHAIN)-gcc +LD = $(TOOLCHAIN)-gcc +AR = $(TOOLCHAIN)-ar +AS = $(TOOLCHAIN)-as +OBJCOPY = $(TOOLCHAIN)-objcopy +OBJDUMP = $(TOOLCHAIN)-objdump +SIZE = $(TOOLCHAIN)-size +GDB = $(TOOLCHAIN)-gdb + ############################################################################### ifdef DEBUG DEFS += -DDEBUG=2 endif +CFLAGS = -g -Os CFLAGS += -mmcu=$(MCU_TARGET) - +CFLAGS += -std=gnu99 +CFLAGS += -Wall -Wextra -Wimplicit-function-declaration +CFLAGS += -Wredundant-decls +#CFLAGS += -fno-common -ffunction-sections -fdata-sections #CFLAGS += -I $(INCLUDES) CPPFLAGS += $(DEFS) -CPPFLAGS_Z += -D'const=const __flash' - # Linker flags LDFLAGS += -Wl,--gc-sections LDFLAGS += -Wl,--cref -include $(CONFIG)/gcc.tup +!cc = |> ^ CC %f^ $(CC) $(CFLAGS) $(CPPFLAGS) -c %f -o %o |> %B.o +!LINK = |> ^ LINK %o^ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-Map=%O.map %f $(LDLIBS) -o %o |> | %O.map +!OBJCOPY= |> ^ OBJCOPY %o^ $(OBJCOPY) -Oihex %f %o |> +!OBJDUMP= |> ^ OBJDUMP %o^ $(OBJDUMP) -h -S %f > %o |> %O.lss +!SIZE = |> ^ SIZE^ $(SIZE) %f |> + +: foreach $(SRC) | ../z180/hdrom.h |> !cc |> {objs} +: $(SRC_Z) |> !cc -D'const=const __flash' |> {objs} + +: {objs} |> !LINK |> $(PROG).elf +: $(PROG).elf |> !OBJCOPY |> %B.hex +: $(PROG).elf |> !OBJDUMP |> %B.lss +: $(PROG).elf |> !SIZE |> + diff --git a/avr/z180-stamp-avr.c b/avr/z180-stamp-avr.c index 6871027..4ea4d47 100644 --- a/avr/z180-stamp-avr.c +++ b/avr/z180-stamp-avr.c @@ -22,16 +22,52 @@ #undef const #define FLASH __flash +//#define FLASH #define ESCCHAR ('^'-0x40) #define S_10MS_TO (1<<0) -static volatile int_fast8_t timeout_1s; -static volatile uint_least8_t Stat; +volatile int_fast8_t timeout_1s; +volatile uint_least8_t Stat; +/****************************************************************/ + +#define P_ADL PORTA +#define P_ADH PORTC +#define P_ADB PORTE +#define PIN_ADB PINE + +#define ADB_WIDTH 3 +#define ADB_SHIFT 2 +//#define ADB_PORT GPIOE + +#define MASK(n) ((1<<(n))-1) +#define SMASK(w,s) (MASK(w) << (s)) + +typedef union { + uint32_t l; + uint16_t w[2]; + uint8_t b[4]; +} addr_t; + + + +void z80_setaddress(uint32_t addr) +{ + addr_t x; + + x.l = addr; + P_ADL = x.b[0]; + P_ADH = x.b[1]; + PIN_ADB = ((x.b[2] << ADB_SHIFT) ^ P_ADB) & MASK(ADB_WIDTH) << ADB_SHIFT ; + +} + +/****************************************************************/ + /*--------------------------------------------------------------------------*/ @@ -46,7 +82,10 @@ void sys_tick_handler(void) if (tick_10ms == 10) { Stat |= S_10MS_TO; + tick_10ms = 0; + + /* Drive timer procedure of low level disk I/O module */ //disk_timerproc(); } @@ -62,10 +101,6 @@ void sys_tick_handler(void) } -static void do_10ms(void) -{ -} - /*--------------------------------------------------------------------------*/ static uint32_t z80_sram_cmp(uint32_t addr, uint32_t length, uint8_t wval, int inc) @@ -73,7 +108,7 @@ static uint32_t z80_sram_cmp(uint32_t addr, uint32_t length, uint8_t wval, int i uint8_t rval; int_fast8_t errors = 0; - DBG_P(1, "SRAM: Check 0x%.5lX byte... ", length); + DBG_P(1, "SRAM: Check %#.5x byte... ", length); while (length--) { if ((rval = z80_read(addr)) != wval) { if (errors == 0) { @@ -141,8 +176,6 @@ const char * const qbcat = "Zhe quick brown fox jumps over the lazy cat!"; #endif -/*--------------------------------------------------------------------------*/ - uint8_t z80_get_byte(uint32_t adr) { uint8_t data; @@ -154,6 +187,13 @@ uint8_t z80_get_byte(uint32_t adr) return data; } + +/*--------------------------------------------------------------------------*/ + +static void do_10ms(void) +{ +} + /*--------------------------------------------------------------------------*/ struct msg_item { @@ -162,7 +202,6 @@ struct msg_item { void (*func)(uint8_t, int, uint8_t *); }; -static uint32_t msg_to_addr(uint8_t *msg) { union { @@ -178,7 +217,6 @@ uint32_t msg_to_addr(uint8_t *msg) return addr.as32; } -static void do_msg_ini_msgfifo(uint8_t subf, int len, uint8_t * msg) { (void)subf; (void)len; @@ -187,7 +225,6 @@ void do_msg_ini_msgfifo(uint8_t subf, int len, uint8_t * msg) } -static void do_msg_ini_memfifo(uint8_t subf, int len, uint8_t * msg) { (void)len; @@ -196,7 +233,6 @@ void do_msg_ini_memfifo(uint8_t subf, int len, uint8_t * msg) } -static void do_msg_char_out(uint8_t subf, int len, uint8_t * msg) { (void)subf; @@ -206,7 +242,6 @@ void do_msg_char_out(uint8_t subf, int len, uint8_t * msg) } -static const FLASH struct msg_item z80_messages[] = { { 0, /* fct nr. */ @@ -225,7 +260,8 @@ const FLASH struct msg_item z80_messages[] = }; -static + + void do_message(int len, uint8_t *msg) { uint8_t fct, sub_fct; @@ -267,10 +303,9 @@ void do_message(int len, uint8_t *msg) } -//TODO: + #define CTRBUF_LEN 256 -static void check_msg_fifo(void) { int ch; @@ -309,7 +344,6 @@ void check_msg_fifo(void) } -static void z80_load_mem(void) { unsigned sec = 0; @@ -330,7 +364,6 @@ void z80_load_mem(void) sec++; } } - /*--------------------------------------------------------------------------*/ int main(void) @@ -340,6 +373,7 @@ int main(void) // setvbuf(stdout, NULL, _IONBF, 0); serial_setup(); +// printf("\n(STM32F100+HD64180)_stamp Tester\n"); printf("\n(ATMEGA1281+HD64180)_stamp Tester\n"); DBG_P(1, "z80_setup_bus... "); @@ -347,6 +381,7 @@ int main(void) z80_setup_bus(); DBG_P(1, "done.\n"); + DBG_P(1, "Get bus... "); z80_busreq(LOW); z80_reset(HIGH); diff --git a/avr/z80-if.c b/avr/z80-if.c index 889849b..955a61a 100644 --- a/avr/z80-if.c +++ b/avr/z80-if.c @@ -200,6 +200,13 @@ int z80_stat_halt(void) +typedef union { + uint32_t l; + uint16_t w[2]; + uint8_t b[4]; +} addr_t; + + /*--------------------------------------------------------------------------*/ diff --git a/avr/z80-if.h b/avr/z80-if.h index 1e7d675..1068225 100644 --- a/avr/z80-if.h +++ b/avr/z80-if.h @@ -1,13 +1,6 @@ typedef enum {LOW, HIGH} level_t; -typedef union { - uint32_t l; - uint16_t w[2]; - uint8_t b[4]; -} addr_t; - - void z80_setup_bus(void); void z80_write(uint32_t addr, uint8_t data); uint8_t z80_read(uint32_t addr); diff --git a/stm32/Tupfile b/stm32/Tupfile index 8512bfe..1778623 100644 --- a/stm32/Tupfile +++ b/stm32/Tupfile @@ -1,13 +1,8 @@ include_rules PROG = z180-stamp-stm32 - SRC = z180-stamp-stm32.c serial.c z80-if.c - SRC_Z = ../z180/hdrom.c -PREDEP = ../z180/hdrom.h - -#SRC += $(SRC_Z) #TARGETS = $(PROG).elf FP_FLAGS = -msoft-float @@ -18,31 +13,62 @@ OPENCM3_DIR = $(TOP)/libopencm3 LDSCRIPT = stm32vl-discovery.ld ############################################################################### +# Executables TOOLCHAINDIR = /usr/local/gcc-arm-none-eabi-4_8-2014q2/bin TOOLCHAIN = $(TOOLCHAINDIR)/arm-none-eabi +CC = $(TOOLCHAIN)-gcc +LD = $(TOOLCHAIN)-gcc +AR = $(TOOLCHAIN)-ar +AS = $(TOOLCHAIN)-as +OBJCOPY = $(TOOLCHAIN)-objcopy +OBJDUMP = $(TOOLCHAIN)-objdump +SIZE = $(TOOLCHAIN)-size +GDB = $(TOOLCHAIN)-gdb + ############################################################################### INCLUDES += $(OPENCM3_DIR)/include LIBDIRS += $(OPENCM3_DIR)/lib +SCRIPT_DIR = $(OPENCM3_DIR)/scripts + ifdef DEBUG DEFS += -DDEBUG=2 endif +CFLAGS += -g -Os CFLAGS += -mthumb -mcpu=cortex-m3 $(FP_FLAGS) -mfix-cortex-m3-ldrd - +CFLAGS += -std=gnu99 +CFLAGS += -Wall -Wextra -Wimplicit-function-declaration +CFLAGS += -Wredundant-decls +#CFLAGS += -fno-common -ffunction-sections -fdata-sections CFLAGS += -I $(INCLUDES) CPPFLAGS += $(DEFS) # Linker flags LDFLAGS += --static -nostartfiles +LDFLAGS += -T$(LDSCRIPT) +LDFLAGS += -Wl,--gc-sections +LDFLAGS += -Wl,--cref + +LDLIBS += -L$(LIBDIRS) -l$(LIBNAME) +LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group + + +!cc = |> ^ CC %f^ $(CC) $(CFLAGS) $(CPPFLAGS) -c %f -o %o |> %B.o +!LINK = |> ^ LINK %o^ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-Map=%O.map %f $(LDLIBS) -o %o |> | %O.map +!OBJCOPY= |> ^ OBJCOPY %o^ $(OBJCOPY) -Oihex %f %o |> +!OBJDUMP= |> ^ OBJDUMP %o^ $(OBJDUMP) -h -S %f > %o |> %O.lss +!SIZE = |> ^ SIZE^ $(SIZE) %f |> -LDLIBS += -L$(LIBDIRS) -l$(LIBNAME) -LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group +: foreach $(SRC) $(SRC_Z) | ../z180/hdrom.h |> !cc |> {objs} +: {objs} |> !LINK |> $(PROG).elf +: $(PROG).elf |> !OBJCOPY |> %B.hex +: $(PROG).elf |> !OBJDUMP |> %B.lss +: $(PROG).elf |> !SIZE |> -include $(CONFIG)/gcc.tup diff --git a/stm32/z180-stamp-stm32.c b/stm32/z180-stamp-stm32.c index 96d724c..15d732d 100644 --- a/stm32/z180-stamp-stm32.c +++ b/stm32/z180-stamp-stm32.c @@ -1,6 +1,7 @@ /* */ +#include #include #include @@ -10,8 +11,6 @@ #include #include -#include - #define ODR 0x0c #define IDR 0x08 @@ -395,7 +394,7 @@ static uint32_t z80_sram_cmp(uint32_t addr, uint32_t length, uint8_t wval, int i uint8_t rval; int_fast8_t errors = 0; - DBG_P(1, "SRAM: Check 0x%.5lX byte... ", length); + DBG_P(1, "SRAM: Check %#.5x byte... ", length); while (length--) { if ((rval = z80_read(addr)) != wval) { if (errors == 0) { @@ -463,8 +462,6 @@ const char * const qbcat = "Zhe quick brown fox jumps over the lazy cat!"; #endif -/*--------------------------------------------------------------------------*/ - uint8_t z80_get_byte(uint32_t adr) { uint8_t data; @@ -511,7 +508,6 @@ struct msg_item { void (*func)(uint8_t, int, uint8_t *); }; -static uint32_t msg_to_addr(uint8_t *msg) { uint32_t addr = msg[0] | (msg[1] << 8) | ((uint32_t)msg[2] << 16); @@ -520,7 +516,6 @@ uint32_t msg_to_addr(uint8_t *msg) } -static void do_msg_ini_msgfifo(uint8_t subf, int len, uint8_t * msg) { (void)subf; (void)len; @@ -529,7 +524,6 @@ void do_msg_ini_msgfifo(uint8_t subf, int len, uint8_t * msg) } -static void do_msg_ini_memfifo(uint8_t subf, int len, uint8_t * msg) { (void)len; @@ -538,7 +532,6 @@ void do_msg_ini_memfifo(uint8_t subf, int len, uint8_t * msg) } -static void do_msg_char_out(uint8_t subf, int len, uint8_t * msg) { (void)subf; @@ -548,7 +541,6 @@ void do_msg_char_out(uint8_t subf, int len, uint8_t * msg) } -static const struct msg_item z80_messages[] = { { 0, /* fct nr. */ @@ -569,7 +561,6 @@ const struct msg_item z80_messages[] = -static void do_message(int len, uint8_t *msg) { uint8_t fct, sub_fct; @@ -614,7 +605,6 @@ void do_message(int len, uint8_t *msg) #define CTRBUF_LEN 256 -static void check_msg_fifo(void) { int ch; diff --git a/z180/Tupfile b/z180/Tupfile index 962b23b..b79d098 100644 --- a/z180/Tupfile +++ b/z180/Tupfile @@ -4,7 +4,6 @@ PROG = hdrom SRC = r3init.180 SRC += ddtz.180 -#SRC += ddtz-g.180 SRC += fifoio.180 msgbuf.180 ser1-i.180 console.180 SRC += romend.180 @@ -18,42 +17,37 @@ LN_DATA = C000 DEFS = -DSTM32F1 -DBAUD=115200 ############################################################################### +# Executables CPMEMU = zxcc - #AS = $(CPMEMU) ccpline.com - -AS_PREFIX = - AS = $(CPMEMU) slr180.com -#AS_PREFIX = -#AS = aliados /usr/local/lib/cpm/bin80/slr180.com ############################################################################### -!AS-plain = |> $(AS) $(AS_PREFIX)%B/$(AS_OPT) |> %B.rel | %B.lst +!AS-plain = |> $(AS) -%B/$(AS_OPT) |> %B.rel | %B.lst - -!AS = |> ^ $(AS) $(AS_PREFIX)%B/$(AS_OPT)^ set +e; OUTPUT=\$(mktemp);\ -$(AS) $(AS_PREFIX)%B/$(AS_OPT) > ${OUTPUT};\ +!AS = |> ^ $(AS) -%B/$(AS_OPT)^ set +e; OUTPUT=\$(mktemp);\ +$(AS) -%B/$(AS_OPT) > ${OUTPUT};\ grep -q '^ 0 Error(s) Detected' ${OUTPUT}; ERROR=$?;\ [ "${ERROR}" != "0" ] && cat ${OUTPUT};\ [ "${ERROR}" != "0" ] && rm -f %B.rel;\ rm -f ${OUTPUT}; exit ${ERROR} \ |> %B.rel | %B.lst -!LINK = |> ^o LINK %o^ ld80 -o %o -ms %O.map -P $(LN_PROG) -D $(LN_DATA) %f |> | %O.map +!LINK = |> ld80 -o %o -ms %O.map -P $(LN_PROG) -D $(LN_DATA) %f |> | %O.map #ifndef DEBUG - -#: foreach $(SRC) |> cp %f \$(echo %f | tr a-z A-Z) |> %B {uc_src} - : foreach $(SRC) |> !AS |> {objs} : {objs} |> !LINK |> $(PROG).hex : $(PROG).hex |> srec_cat -o %o -c_array %B -C_COMpressed -include %f -Intel |> $(PROG).c | $(PROG).h +#COMMAND="$(AS) -%B/$(AS_OPT)"; \ + + #endif