From 4fe29561e6b7b4c0726dceb1a46569ed43afa376 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Wed, 20 May 2015 21:34:28 +0200 Subject: [PATCH] Directory layout - PCB-related files in board/ - Arduino firmware in firmware/ - OpenSCAD objects in things/ --- board-20150430-2227.zip | Bin 14103 -> 0 bytes 1812.fp => board/1812.fp | 0 Makefile => board/Makefile | 75 +----------------- .../board-20150504-1149.zip | Bin board.pcb => board/board.pcb | 0 board.prj => board/board.prj | 0 board.sch => board/board.sch | 0 firmware/.gitignore | 4 + firmware/Makefile | 69 ++++++++++++++++ firmware.c => firmware/firmware.c | 0 rs485.c => firmware/rs485.c | 0 rs485.h => firmware/rs485.h | 0 hc-sr04.scad => things/hc-sr04.scad | 0 semaphore.scad => things/semaphore.scad | 0 14 files changed, 76 insertions(+), 72 deletions(-) delete mode 100644 board-20150430-2227.zip rename 1812.fp => board/1812.fp (100%) rename Makefile => board/Makefile (51%) rename board-20150504-1149.zip => board/board-20150504-1149.zip (100%) rename board.pcb => board/board.pcb (100%) rename board.prj => board/board.prj (100%) rename board.sch => board/board.sch (100%) create mode 100644 firmware/.gitignore create mode 100644 firmware/Makefile rename firmware.c => firmware/firmware.c (100%) rename rs485.c => firmware/rs485.c (100%) rename rs485.h => firmware/rs485.h (100%) rename hc-sr04.scad => things/hc-sr04.scad (100%) rename semaphore.scad => things/semaphore.scad (100%) diff --git a/board-20150430-2227.zip b/board-20150430-2227.zip deleted file mode 100644 index 21565f7d1f5f18f153be3e4475cbee697f833834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14103 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 f version.c - -.PHONY: all clean dump_eeprom program program_flash program_eeprom objdump \ - version.c - diff --git a/board-20150504-1149.zip b/board/board-20150504-1149.zip similarity index 100% rename from board-20150504-1149.zip rename to board/board-20150504-1149.zip diff --git a/board.pcb b/board/board.pcb similarity index 100% rename from board.pcb rename to board/board.pcb diff --git a/board.prj b/board/board.prj similarity index 100% rename from board.prj rename to board/board.prj diff --git a/board.sch b/board/board.sch similarity index 100% rename from board.sch rename to board/board.sch diff --git a/firmware/.gitignore b/firmware/.gitignore new file mode 100644 index 0000000..34692c7 --- /dev/null +++ b/firmware/.gitignore @@ -0,0 +1,4 @@ +firmware.eep +firmware.elf +firmware.hex +*.o diff --git a/firmware/Makefile b/firmware/Makefile new file mode 100644 index 0000000..40ec933 --- /dev/null +++ b/firmware/Makefile @@ -0,0 +1,69 @@ + +PROGRAM=firmware +SRC=firmware.c rs485.c +OBJ=$(SRC:.c=.o) + +MCU=atmega328p +# AVRDUDE_MCU=$(MCU) +AVRDUDE_MCU=atmega328p +AVRDUDE_PROGRAMMER=arduino + +CFLAGS=-Wall -Os -mmcu=$(MCU) -DUSE_LOGGING=1 -DF_CPU=16000000UL -std=gnu99 +LDFLAGS= +AVRDUDE_FLAGS= -p$(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER) -P /dev/ttyUSB0 -b 57600 + +FORMAT=ihex + +CC=avr-gcc +OBJCOPY=avr-objcopy +OBJDUMP=avr-objdump +AVRDUDE=avrdude + +all: $(PROGRAM).hex $(PROGRAM).eep + +program: $(PROGRAM).hex $(PROGRAM).eep + $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i -U eeprom:w:$(PROGRAM).eep:i + +program_flash: $(PROGRAM).hex + $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i + +program_eeprom: $(PROGRAM).eep + $(AVRDUDE) $(AVRDUDE_FLAGS) eeprom:w:$(PROGRAM).eep:i + +dump_eeprom: + $(AVRDUDE) $(AVRDUDE_FLAGS) -U eeprom:r:eeprom.raw:r + od -tx1 eeprom.raw + +objdump: $(PROGRAM).elf + $(OBJDUMP) --disassemble $< + +.PRECIOUS : $(OBJ) $(PROGRAM).elf + +%.hex: %.elf + $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ + +%.eep: %.elf + $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ + --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ + +%.elf: $(OBJ) + $(CC) $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS) + +%.o: %.c lights.h Makefile + $(CC) -c $(CFLAGS) $< -o $@ + +%.s: %.c lights.h Makefile + $(CC) -S -c $(CFLAGS) $< -o $@ + +%.o: %.S + $(CC) -c $(CFLAGS) $< -o $@ + +clean: + rm -f *.o $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf + +version.c: + ./version.pl > version.c + +.PHONY: all clean dump_eeprom program program_flash program_eeprom objdump \ + version.c + diff --git a/firmware.c b/firmware/firmware.c similarity index 100% rename from firmware.c rename to firmware/firmware.c diff --git a/rs485.c b/firmware/rs485.c similarity index 100% rename from rs485.c rename to firmware/rs485.c diff --git a/rs485.h b/firmware/rs485.h similarity index 100% rename from rs485.h rename to firmware/rs485.h diff --git a/hc-sr04.scad b/things/hc-sr04.scad similarity index 100% rename from hc-sr04.scad rename to things/hc-sr04.scad diff --git a/semaphore.scad b/things/semaphore.scad similarity index 100% rename from semaphore.scad rename to things/semaphore.scad -- 2.43.0