5e9fa25f65dcb1fe27f121f24ea9b2dfee73e484
Stefan Schuermans initial version of firmware

Stefan Schuermans authored 5 years ago

1) # Chaosknoten - animated logo board
2) # Copyright (C) 2019 Stefan Schuermans <stefan@blinkenarea.org>
3) # Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
4) # a BlinkenArea project - http://www.blinkenarea.org/
5) 
6) NAME := Chaosknoten
7) INC := tn2313def
8) LFUSE := 0x64
9) HFUSE := 0xDF
10) EFUSE := 0xFF
11) LOCK := 0xFC
12) 
13) PROGRAMMER := avrisp2
14) CONNECTION := usb
15) DEVICE := t2313
16) 
17) AVRA := avra
18) AVRDUDE := avrdude
19) 
20) AVRDUDE_CALL := $(AVRDUDE) -c $(PROGRAMMER) -P $(CONNECTION) -p $(DEVICE)
21) 
Stefan Schuermans bbm2Chaosknoten

Stefan Schuermans authored 5 years ago

22) MOVIE_FUNC_TMPL := movie_func.tmpl
23) 
24) MOVIES := $(wildcard movies/*.bbm)
25) MOVIES_INC := $(MOVIES:.bbm=.inc)
26) MOVIE_FUNCS_INC := movie_funcs.inc
27) MOVIE_TAB_INC := movie_tab.inc
28) MOVIES_ALL_INC := $(MOVIES_INC) $(MOVIE_FUNCS_INC) $(MOVIE_TAB_INC)
29) 
Stefan Schuermans initial version of firmware

Stefan Schuermans authored 5 years ago

30) SUFFIXES :=
31) 
32) .PHONY: all prog prog_fuses prog_auto clean
33) .SUFFIXES:
34) .SECONDARY:
35) 
36) all: $(NAME).hex
37) 
Stefan Schuermans bbm2Chaosknoten

Stefan Schuermans authored 5 years ago

38) movies/%.inc: movies/%.bbm
39) 	./bbm2Chaosknoten.py -i $< -f $@
40) 
41) movie_funcs.inc: $(MOVIE_FUNC_TMPL) $(MOVIES_INC) Makefile
Stefan Schuermans sort movies

Stefan Schuermans authored 5 years ago

42) 	for N in $(sort $(notdir $(MOVIES_INC:.inc=))); do \
Stefan Schuermans bbm2Chaosknoten

Stefan Schuermans authored 5 years ago

43) 	  sed "s/NAME/$$N/g" $(MOVIE_FUNC_TMPL); \
44) 	done >$@
45) 
46) movie_tab.inc: $(MOVIES_INC) Makefile
Stefan Schuermans sort movies

Stefan Schuermans authored 5 years ago

47) 	for N in $(sort $(notdir $(MOVIES_INC:.inc=))); do \
Stefan Schuermans bbm2Chaosknoten

Stefan Schuermans authored 5 years ago

48) 	  echo "        .dw     ANIM_MOVIE_$$N"; \
49) 	  echo "        .dw     $${N##*x}"; \
50) 	done >$@
51) 
52) $(NAME).hex: $(NAME).asm $(INC).inc $(MOVIES_ALL_INC) Makefile
Stefan Schuermans initial version of firmware

Stefan Schuermans authored 5 years ago

53) 	$(AVRA) -l $(NAME).lst $(NAME).asm
54) 
55) prog_fuses: Makefile
56) 	$(AVRDUDE_CALL) -u -e
57) 	$(AVRDUDE_CALL) -u -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m \
58) 	                   -U efuse:w:$(EFUSE):m
59) 
60) prog: $(NAME).hex Makefile
61) 	$(AVRDUDE_CALL) -u -e
62) 	$(AVRDUDE_CALL) -u -U flash:w:$(NAME).hex
63) 	$(AVRDUDE_CALL) -u -V -U lock:w:$(LOCK):m
64) 
65) prog_auto: $(NAME).hex Makefile
66) 	while ! $(MAKE) prog_fuses || ! $(MAKE) prog; do echo -n; done
67) 
68) clean:
Stefan Schuermans bbm2Chaosknoten

Stefan Schuermans authored 5 years ago

69) 	rm -f $(addprefix $(NAME)., lst obj cof hex eep.hex) \
70) 	      $(MOVIES_ALL_INC)