make ddcp target to compile all usb helper utils
[digitaldcpower] / Makefile
index 744b22a..2c9b2bc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,20 @@ LOADCMD=avrdude -P /dev/ttyUSB0
 #LOADCMD=avrdude
 # === end edit this
 #
-LOADARG=-p $(DUDECPUTYPE) -c stk500v2 -e -U flash:w:
+#LOADARG=-p $(DUDECPUTYPE) -c stk500v2 -e -U flash:w:
+PROGRAMMER=-p $(DUDECPUTYPE) -c stk500v2
+
+# board        ->      bus pirate
+#
+# /RST ->      CS      9. WT
+# MOSI ->      MOSI    8. GR
+# MISO ->      MISO    0. Blk
+# SCK  ->      CLK     7. PU
+# GND  ->      GND     1. BR
+#
+PROGRAMMER=-p $(DUDECPUTYPE) -c buspirate
+
+LOADARG=$(PROGRAMMER) -e -U flash:w:
 
 
 CC=avr-gcc
@@ -25,10 +38,12 @@ OBJCOPY=avr-objcopy
 # optimize for size:
 CFLAGS=-g -mmcu=$(MCU) -Wall -W -Os -mcall-prologues
 # #-------------------
-.PHONY: test_lcd test_dac all main 
+.PHONY: test_lcd test_dac all main ddcp-script
 #
 all: main.hex test_lcd.hex test_dac.hex
 #
+ddcp-script: ddcp-script-setval ddcp-script-getval ddcp-script-ttyinit
+#
 main: main.hex 
 #
 test_lcd: test_lcd.hex
@@ -36,6 +51,14 @@ test_lcd: test_lcd.hex
 #
 test_dac: test_dac.hex
        echo "OK"
+#
+ddcp-script-setval: ddcp-script-setval.c
+       gcc -Wall -o ddcp-script-setval ddcp-script-setval.c
+ddcp-script-getval: ddcp-script-getval.c
+       gcc -Wall -o ddcp-script-getval ddcp-script-getval.c
+ddcp-script-ttyinit: ddcp-script-ttyinit.c
+       gcc -Wall -o ddcp-script-ttyinit ddcp-script-ttyinit.c
+ddcp: ddcp-script-setval ddcp-script-getval ddcp-script-ttyinit
 #-------------------
 size:
        avr-size *.elf
@@ -47,10 +70,12 @@ help:
        @echo "       program using the avrdude programmer"
        @echo " "
        @echo "Usage: make clean"
-       @echo "       delete all generated files except the pre-compiled ones"
+       @echo "       delete all generated files"
        @echo "Test programs:"
        @echo "Usage: make test_lcd|load_test_lcd|test_dac|load_test_dac"
        @echo "       compile and load test programs"
+       @echo "Usage: make ddcp"
+       @echo "       compile unix program to set serial line speed such that one can use scripts to change settings"
 #-------------------
 main.hex: main.elf 
        $(OBJCOPY) -R .eeprom -O ihex main.elf main.hex 
@@ -58,9 +83,9 @@ main.hex: main.elf
        @echo " "
        @echo "Expl.: data=initialized data, bss=uninitialized data, text=code"
        @echo " "
-main.elf: main.o dac.o lcd.o analog.o kbd.o
-       $(CC) $(CFLAGS) -o main.elf -Wl,-Map,main.map main.o dac.o lcd.o analog.o kbd.o
-main.o: main.c dac.h kbd.h lcd.h lcd_hw.h analog.h hardware_settings.h
+main.elf: main.o dac.o lcd.o analog.o kbd.o uart.o
+       $(CC) $(CFLAGS) -o main.elf -Wl,-Map,main.map main.o dac.o lcd.o analog.o kbd.o uart.o
+main.o: main.c dac.h kbd.h lcd.h lcd_hw.h analog.h hardware_settings.h uart.h
        $(CC) $(CFLAGS) -Os -c main.c 
 #-------------------
 test_lcd.hex: test_lcd.elf 
@@ -89,6 +114,9 @@ dac.o : dac.c dac.h
 kbd.o : kbd.c kbd.h 
        $(CC) $(CFLAGS) -Os -c kbd.c
 #-------------------
+uart.o : uart.c uart.h 
+       $(CC) $(CFLAGS) -Os -c uart.c
+#-------------------
 load: main.hex
        $(LOADCMD) $(LOADARG)main.hex
 #
@@ -101,20 +129,21 @@ load_test_dac: test_dac.hex
 #-------------------
 # fuse byte settings:
 #  Atmel AVR ATmega8 
-#  Fuse Low Byte      = 0xe1 (1MHz internal), 0xe3 (4MHz internal), 0xe4 (8MHz internal)
+#  Fuse Low Byte      = 0xe1 (1MHz internal), 0xe4 (8MHz internal)
+#  Fuse Low Byte with BOD  = 0xa1 (1MHz internal), 0xa4 (8MHz internal)
 #  Fuse High Byte     = 0xd9 
 #  Factory default is 0xe1 for low byte and 0xd9 for high byte
 # Check this with make rdfuses
 rdfuses:
-       $(LOADCMD) -p $(DUDECPUTYPE) -c stk500v2 -v -q
+       $(LOADCMD) $(PROGRAMMER) -v -q
 # use internal RC oscillator 8 Mhz (lf=0xe4 hf=0xd9)
 fuses:
-       $(LOADCMD) -p  $(DUDECPUTYPE) -c stk500v2 -u -v -U lfuse:w:0xe4:m
-       $(LOADCMD) -p  $(DUDECPUTYPE) -c stk500v2 -u -v -U hfuse:w:0xd9:m
+       $(LOADCMD) $(PROGRAMMER) -u -v -U lfuse:w:0xa4:m
+       $(LOADCMD) $(PROGRAMMER) -u -v -U hfuse:w:0xd9:m
 fuse:
-       $(LOADCMD) -p  $(DUDECPUTYPE) -c stk500v2 -u -v -U lfuse:w:0xe4:m
-       $(LOADCMD) -p  $(DUDECPUTYPE) -c stk500v2 -u -v -U hfuse:w:0xd9:m
+       $(LOADCMD) $(PROGRAMMER) -u -v -U lfuse:w:0xa4:m
+       $(LOADCMD) $(PROGRAMMER) -u -v -U hfuse:w:0xd9:m
 #-------------------
 clean:
-       rm -f *.o *.map *.elf test*.hex main.hex 
+       rm -f *.o *.map *.elf test*.hex main.hex ddcp-script-ttyinit ddcp-script-getval ddcp-script-setval
 #-------------------