?? makefile
字號:
# makefile, written by guido socherMCU=atmega8CC=avr-gccOBJCOPY=avr-objcopy# optimize for size:CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues#-------------------.PHONY: allall: ddcp.hex #.PHONY: lcdtestlcdtest: lcdtest.hex#-------------------help: @echo "Usage: make help" @echo " Print this help" @echo " " @echo "Usage: make all" @echo " compile digital dc power software" @echo " " @echo "Usage: make load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz" @echo " program using the uisp programmer" @echo " " @echo "Usage: make loadavrdude|loadavrdude_pre|avrdudewrfuse1mhz|avrdudewrfuse4mhz" @echo " program using avrdude programmer" @echo " " @echo "Usage: make lcdtest" @echo " compile the lcdtest program" @echo " " @echo "Usage: make lcdtestload" @echo " compile and load the lcdtest program" @echo " " @echo "Usage: make clean" @echo " delete all generated files except the pre-compiled ones"#-------------------ddcp.hex : ddcp.out $(OBJCOPY) -R .eeprom -O ihex ddcp.out ddcp.hex avr-size ddcp.out @echo " " @echo "Expl.: data=initialized data, bss=uninitialized data, text=code" @echo " "ddcp.out : ddcp.o lcd.o analog.o dac.o kbd.o $(CC) $(CFLAGS) -o ddcp.out -Wl,-Map,ddcp.map ddcp.o lcd.o analog.o dac.o kbd.o ddcp.o : ddcp.c lcd.h analog.h hardware_settings.h avr_compat.h kbd.h $(CC) $(CFLAGS) -Os -c ddcp.c#-------------------lcdtest.hex : lcdtest.out $(OBJCOPY) -R .eeprom -O ihex lcdtest.out lcdtest.hex lcdtest.out : lcdtest.o lcd.o $(CC) $(CFLAGS) -o lcdtest.out -Wl,-Map,lcdtest.map lcd.o lcdtest.o lcdtest.o : lcdtest.c lcd.h $(CC) $(CFLAGS) -Os -c lcdtest.clcdtestload: lcdtest.hex uisp -dlpt=/dev/parport0 --erase -dprog=dapa uisp -dlpt=/dev/parport0 --upload if=lcdtest.hex -dprog=dapa -v=3 --hash=32 --verify#-------------------lcd.o : lcd.c lcd.h lcd_hw.h $(CC) $(CFLAGS) -Os -c lcd.c#-------------------analog.o : analog.c analog.h avr_compat.h $(CC) $(CFLAGS) -Os -c analog.c#-------------------dac.o : dac.c dac.h avr_compat.h $(CC) $(CFLAGS) -Os -c dac.c#-------------------kbd.o : kbd.c kbd.h avr_compat.h $(CC) $(CFLAGS) -Os -c kbd.c# you need to erase first before loading the program.# load (program) the software into the eeprom:load: ddcp.hex uisp -dlpt=/dev/parport0 --erase -dprog=dapa uisp -dlpt=/dev/parport0 --upload if=ddcp.hex -dprog=dapa -v=3 --hash=32 --verify# here is a pre-compiled version in case you have trouble with# your development environmentload_pre: ddcp_pre.hex uisp -dlpt=/dev/parport0 --erase -dprog=dapa uisp -dlpt=/dev/parport0 --upload if=ddcp_pre.hex -dprog=dapa -dno-poll -v=3 --hash=32 --verify#-------------------# avrdude is better than uisp because it can verify the eeprom:loadavrdude: ddcp.hex avrdude -p m8 -c dapa -e -U flash:w:ddcp.hex# here is a pre-compiled version in case you have trouble with# your development environmentloadavrdude_pre: ddcp_pre.hex avrdude -p m8 -c dapa -e -U flash:w:ddcp_pre.hex#-------------------# fuse byte settings:# Atmel AVR ATmega8 # Fuse Low Byte = 0xe1 (1MHz internal), 0xe3 (4MHz internal), 0xe4 (8MHz internal)# Fuse High Byte = 0xd9 # Factory default is 0xe1 for low byte and 0xd9 for high byte# Check this with make rdfusesrdfuses: uisp -dlpt=/dev/parport0 -dprog=dapa --rd_fuses @echo " " @echo "Explanation: Fuse Low Byte: 0xe1 (1MHz intern), 0xe3 (4MHz intern), 0xe4 (8MHz intern)" @echo " Fuse High Byte should be 0xd9"## use internal RC oscillator 1 Mhzwrfuse1mhz: uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_l=0xe1avrdudewrfuse1mhz: avrdude -p m8 -c dapa -e -U lfuse:w:0xe1:m avrdude -p m8 -c dapa -e -U hfuse:w:0xd9:m# use internal RC oscillator 4 Mhzwrfuse4mhz: uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_l=0xe3avrdudewrfuse4mhz: avrdude -p m8 -c dapa -e -U lfuse:w:0xe3:m avrdude -p m8 -c dapa -e -U hfuse:w:0xd9:m#-------------------clean: rm -f *.o *.map *.out *t.hex #-------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -