# # Makefile for FraiseBootloader # to build MyBoard.hex : # export BOARD=MyBoard ; make MAINFRAISE=../.. SDCC_SHARE=$(MAINFRAISE)/bin/share SDCC=$(MAINFRAISE)/bin/linux/sdcc CC=$(SDCC) PK2CMD= pk2cmd SHELL=/bin/bash # SDCC_SHARE=$(MY_BASE)/share/sdcc # SDCC=$(MY_BASE)/bin/sdcc # CC=$(SDCC) # DIS = gpdasm # FSUSB = fsusb # PICP=picp # PK2CMD= pk2cmd # SHELL=/bin/bash BOARDSDIR=$(MAINFRAISE)/boards BOARDDIR=$(BOARDSDIR)/$(BOARD) BOARDMAKEFILE=$(BOARDDIR)/board.Makefile BLD_START=`echo print "$(MEM_SIZE)-(32*64)" | python` include $(BOARDMAKEFILE) ifndef APP_START APP_START = 0 endif SRCS= ./src/fbld.c $(BOARDDIR)/boardconfig.c OBJS = $(SRCS:%.c=%.o) ASMS = $(SRCS:%.c=%.asm) LSTS = $(SRCS:%.c=%.lst) CODS = $(SRCS:%.c=%.cod) OPTS = --ivt-loc=$(BLD_START) --no-crt #--model-small --vc --denable-peeps --optimize-goto --optimize-cmp --optimize-df --obanksel=9 --opt-code-size --fommit-frame-pointer --std-sdcc99 CFLAGS= -I. -I./lib -I$(SDCC_SHARE)/include/pic16 -I$(SDCC_SHARE)/non-free/include/pic16 $(OPTS) -mpic16 -p$(CHIP) \ --vc --denable-peeps --optimize-cmp --optimize-df --obanksel=2 \ --opt-code-speed --fomit-frame-pointer --use-non-free MACROS= -DFOSC=$(FOSC) -DBLD_START=$(BLD_START) -DAPP_START=$(APP_START) \ -DUART_PORT=$(UART_PORT) -DSERDRV_PIN=$(SERDRV_PIN) \ -DSERDRV_TRI=$(SERDRV_TRI) -DSERDRV_POL=$(SERDRV_POL) \ -DCONFIG_SETUP=$(CONFIG_SETUP) -DBOOTLOADER #-I$(SDCC_SHARE)/non-free/include/pic16 #LIBS= libsdcc.lib libc18f.lib libio$(CHIP).lib pic$(CHIP).lib LIBS= libsdcc.lib libc18f.lib #libio$(CHIP).lib # .SUFFIXES: .c .asm .o .hex HEXFILE= hex/$(BOARD).hex SUFFIXES= obj lst asm o all: clean $(HEXFILE) make clean $(BOARD): all $(BOARDMAKEFILE): @ echo no board declared $(OBJS): %.o: %.c Makefile $(BOARDMAKEFILE) src/eeprom.c @echo ---- Compile $@ ---- $(CC) $(CFLAGS) $(MACROS) -c $< -o $@ $(HEXFILE): ./src/fbld.c $(BOARDDIR)/boardconfig.o $(OBJS) $(BOARDMAKEFILE) Makefile @echo ---- Linking and building $@ ---- $(CC) $(CFLAGS) $(MACROS) -L $(SDCC_SHARE)/lib/pic16 -L $(SDCC_SHARE)/non-free/lib/pic16 -o $(HEXFILE) $(OBJS) $(LIBS) -Wl"-s $(CHIP).lkr" # -O 1 -m -w disass: $(DIS) -p p$(CHIP) $(HEXFILE) > $(PROJ).lis progpicp: all # su root -c " $(FSUSB) --program $(PROJ).hex " $(FSUSB) --program $(HEXFILE) # $(PICP) /dev/ttyUSB0 $(CHIP) -ef -wp $(PROJ).hex -wc 0x0e20 0x001a 0x0500 0x0080 0xc00f 0xe00f 0x400f # 0x0400=CCP2 on RB3; 0x0500 on RC1 # 0x0e24=quartz20MHz 0x0e20=4MHz progpk2: $(PK2CMD) -P -M -F$(HEXFILE) clean: rm -f $(foreach suf,$(SUFFIXES),$(BOARDSDIR)/*/*.$(suf)) src/*.o src/*.asm src/*.lst src/*.cod hex/*.cod hex/*.lst hex/*.asm # rm -f */*.o */*.asm */*.lst src/*.o src/*.asm src/*.lst src/*.cod hex/*.cod hex/*.lst hex/*.asm