Stránky o AVR, VHDL, USB a tak
Stránky o AVR, VHDL, USB a tak https://uart.cz/441/makefile-misto-arduino-ide/
- zkouším napsat knihovnu pro 4DM8010 ( už mám interface a veškeré přepočty, teď to jen procpat do drátů ) a podobné chipy
plus zkouším na to udělat Makefile bez Arduina - něco se daří, něco ne, ale postupuju (a zanedlouho o tom napíšu, až budu mít aspoň trochu odladěno)
https://uart.cz/441/makefile-misto-arduino-ide/ by mohlo taky pomoct, plus jsou okolo zajímavé články o AVR jako USB klávesnici a VHDL (nesouvisející), ale zdá se to spíše dávno mrtvé v půli.
ostatně https://uart.cz/ už jsem párkrát potkal a asi by stál za prozkoumání.
Zatím pokus (s jiných zdrojů), který částečně, ale nikoli zcela, nechodí (CFLAGS jsou špatně, nemám tam správné cesty k Arduino core či AVR std knihovnám, ani správně nastavené flagy, padá až při linkování kvůli chybám s alokací/dealokací paměti při vytváření objektů, ale nějaké *.o a dumpy stejně vygeneruje).
Založeno na * http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ * http://make.mad-scientist.net/managing-recipe-echoing/ * https://en.wikipedia.org/wiki/Cargo_cult
(Časem přijdu s lepší verzí, ale aspoň mám nějaký výchozí bod)
MAIN=example all: $(MAIN).hex $(MAIN).ASM $(MAIN).dump $(MAIN).hdump .PHONY: all DEPDIR := .d $(shell mkdir -p $(DEPDIR) >/dev/null) DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td CC = avr-gcc CXX = avr-gcc TGT=atmega328 TARGET_ARCH= CFLAGS= CXXFLAGS=$(CFLAGS) CPPFLAGS= COMPILE.c = $(CC) $(DEPFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c COMPILE.cc = $(CXX) $(DEPFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@ %.hex : %.elf @echo "HEX $@" avr-objcopy -O ihex -R .eeprom $^ $@ %.ASM : %.cpp @echo "ASM $@" avr-gcc -S -c $^ -o $@ %.dump : %.elf @echo "DUMP $@" avr-objdump -DCfhlSwz $^ > $@ %.hdump : %.hex @echo "HDUMP $@" avr-objdump -DCfhlSwz -m avr $^ > $@ example.elf: example.o lib_4DM8010.o @echo "LINK $@" $(CXX) -o $@ $^ clean: @echo "CLEAN" rm -rf .d *.o *.elf *.hex *.ASM *.dump *.hdump %.o : %.cpp %.o : %.cpp $(DEPDIR)/%.d @echo "CC $<" $(COMPILE.cc) $(OUTPUT_OPTION) $< $(POSTCOMPILE) $(DEPDIR)/%.d: ; .PRECIOUS: $(DEPDIR)/%.d $(V).SILENT: include $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRCS))))