diff options
Diffstat (limited to 'examples/spiblink')
-rw-r--r-- | examples/spiblink/Makefile | 66 | ||||
-rw-r--r-- | examples/spiblink/config | 23 | ||||
-rw-r--r-- | examples/spiblink/config.orig | 23 | ||||
-rw-r--r-- | examples/spiblink/makefile | 32 | ||||
-rw-r--r-- | examples/spiblink/master.c | 2 | ||||
-rw-r--r-- | examples/spiblink/slave.c | 2 |
6 files changed, 114 insertions, 34 deletions
diff --git a/examples/spiblink/Makefile b/examples/spiblink/Makefile new file mode 100644 index 0000000..621f237 --- /dev/null +++ b/examples/spiblink/Makefile @@ -0,0 +1,66 @@ +MAKEFLAGS += --no-builtin-rules +PROJNAME = spiblink + +MSRC = master.c +SSRC = slave.c + +MOBJ = $(patsubst %.c,%.o,$(MSRC)) +SOBJ = $(patsubst %.c,%.o,$(SSRC)) + +.PHONY: all +ifneq ("$(wildcard config)","") # Checking if configuration exists +all: master.hex slave.hex + @echo Now you can flash $^ to your chips. +else +all: help +endif + +# Edit here help like you ever want +.PHONY: help +help: + @echo "AVR-IOE USART echo example" + @echo " all - Build example" + @echo " config - Start configuration program" + @echo " menuconfig - NCurses based configuration program" + @echo " help - Prints this text" + @echo " clean - Removing all object files generated from source files" + +.PHONY: clean +clean: + @echo " CLEAN OBJ" + @$(RM) $(MOBJ) $(SOBJ) + @echo " CLEAN master and slave *.hex, *.elf" + @$(RM) master.elf master.hex + @$(RM) slave.elf slave.hex + @$(MAKE) -C ../.. clean + +# Building targets are available only if configuration is generated +ifneq ("$(wildcard config)","") +-include config +# If you want change some standard CFLAGS, change them in configuration not here. +# Add here only options that should not be applied to avr-ioe also. +CFLAGS = -I../../include -mmcu=$(MMCU) -imacros ../../.config.h \ + $(shell echo $(CONFCFLAGS)) $(shell echo -DF_CPU=$(F_CPU)000L) + +master.elf slave.elf: %.elf: ../../libioe.a %.o + @echo " LD $@" + @avr-gcc -Os -mmcu=$(MMCU) $^ -o $@ -L../.. -lioe + +master.hex slave.hex: %.hex: %.elf + @echo " OBJCOPY $@" + @avr-objcopy -O ihex -R .eeprom $< $@ + +$(MOBJ) $(SOBJ): %.o: %.c ../../libioe.a + @echo " CC $@" + @avr-gcc $(CFLAGS) -c -o $@ $< + +../../libioe.a: config + @CONFIG=$$(readlink -f config) $(MAKE) -C ../.. libioe.a +endif + +config: + @CONFIG=$$(readlink -f config) $(MAKE) -C ../.. config + +.PHONY: menuconfig +menuconfig: + @CONFIG=$$(readlink -f config) $(MAKE) -C ../.. menuconfig diff --git a/examples/spiblink/config b/examples/spiblink/config new file mode 100644 index 0000000..7455947 --- /dev/null +++ b/examples/spiblink/config @@ -0,0 +1,23 @@ +# +# Automatically generated file; DO NOT EDIT. +# AVR-IOE configuration +# +MMCU=atmega328p +ATMEGA328P=y +# ATTINY85 is not set +F_CPU=16000 + +# +# Compilation options +# +GNUTOOLCHAIN_PREFIX=avr- +CONFCFLAGS=-Os -ffunction-sections -fdata-sections -fshort-enums -Wall +MCUSUPPORT_IOPORTS=y +# CONFIG_IOPORTS is not set +MCUSUPPORT_PCINT0=y +MCUSUPPORT_PCINT1=y +MCUSUPPORT_PCINT2=y +MCUSUPPORT_SPI=y +CONFIG_SPI=y +MCUSUPPORT_USART=y +# CONFIG_USART is not set diff --git a/examples/spiblink/config.orig b/examples/spiblink/config.orig new file mode 100644 index 0000000..af7b0a5 --- /dev/null +++ b/examples/spiblink/config.orig @@ -0,0 +1,23 @@ +# +# Automatically generated file; DO NOT EDIT. +# AVR-IOE configuration +# +MMCU="atmega328p" +ATMEGA328P=y +# ATTINY85 is not set +F_CPU=16000 + +# +# Compilation options +# +GNUTOOLCHAIN_PREFIX="avr-" +CONFCFLAGS="-Os -ffunction-sections -fdata-sections -fshort-enums -Wall" +MCUSUPPORT_IOPORTS=y +# CONFIG_IOPORTS is not set +MCUSUPPORT_PCINT0=y +MCUSUPPORT_PCINT1=y +MCUSUPPORT_PCINT2=y +MCUSUPPORT_SPI=y +CONFIG_SPI=y +MCUSUPPORT_USART=y +# CONFIG_USART is not set diff --git a/examples/spiblink/makefile b/examples/spiblink/makefile deleted file mode 100644 index 60ba9c9..0000000 --- a/examples/spiblink/makefile +++ /dev/null @@ -1,32 +0,0 @@ -MAKEFLAGS += --no-builtin-rules - -MMCU = atmega328p -F_CPU = 16000000L -IOE_PREFIX = ../.. -IOE_CFLAGS ?= -Os -ffunction-sections -fdata-sections -fshort-enums -g -Wall \ - -DF_CPU=$(F_CPU) -mmcu=$(MMCU) \ - -DCONFIG_IOE_SPI - -.PHONY: all -all: master.hex slave.hex - @echo - @echo Flash master.hex and slave.hex to two chips and... TODO - -.PHONY: all -clean: ioeclean - $(RM) master.o slave.o - $(RM) master.elf master.hex - $(RM) slave.elf slave.hex - -include ../../avr-ioe.mk - -master.elf: master.o -slave.elf: slave.o -master.elf slave.elf: %.elf: $(IOE_OBJ_SPI) - avr-gcc -Os -mmcu=$(MMCU) $^ -o $@ - -master.hex slave.hex: %.hex: %.elf - avr-objcopy -O ihex -R .eeprom $< $@ - -master.o slave.o: %.o: %.c - avr-gcc $(IOE_CFLAGS) -c -o $@ $< diff --git a/examples/spiblink/master.c b/examples/spiblink/master.c index 267d7b2..1cc4289 100644 --- a/examples/spiblink/master.c +++ b/examples/spiblink/master.c @@ -1,6 +1,6 @@ #include <avr/io.h> #include <util/delay.h> -#include "../../spi.h" +#include <spi.h> int main() { DDRB |= _BV(DDB1) | _BV(DDB2); diff --git a/examples/spiblink/slave.c b/examples/spiblink/slave.c index cf14408..91a8237 100644 --- a/examples/spiblink/slave.c +++ b/examples/spiblink/slave.c @@ -1,6 +1,6 @@ #include <avr/io.h> #include <util/delay.h> -#include "../../spi.h" +#include <spi.h> void receive(uint8_t data); |