--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore Wed Sep 24 22:41:46 2014 +0300
@@ -0,0 +1,14 @@
+syntax: glob
+
+.*.swo
+.*.swp
+
+build/
+
+*.hex
+*.s.*
+
+*.pyc
+
+docs/
+opt/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile Wed Sep 24 22:41:46 2014 +0300
@@ -0,0 +1,84 @@
+QMSK_ARDUINO = qmsk
+
+PROG = hello
+
+ELF = build/src/$(PROG).elf
+HEX = build/src/$(PROG).hex
+
+build/src/hello.elf: build/src/hello.o \
+ build/qmsk/src/timer.o
+
+##
+all: $(HEX)
+
+build:
+ mkdir -p build/src build/qmsk/src
+
+clean:
+ rm -rf build/
+
+## Compiler
+MCU = atmega328p
+
+# CPU clock frequency
+CPU = 16000000
+STD = c99
+
+CC = avr-gcc
+CPPFLAGS = -DF_CPU=$(CPU)UL -I$(QMSK_ARDUINO)/include
+CFLAGS = -mmcu=$(MCU) -std=$(STD) -Os -g
+LDFLAGS = -mmcu=$(MCU)
+LDLIBS = -lc
+
+build/%.o: %.c
+ $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
+ $(CC) -MM $(CPPFLAGS) -MT $@ -MF build/$*.d $<
+
+build/%.elf:
+ $(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS)
+
+# existing .d files for rebuilding existing .o's
+-include $(wildcard build/*/*.d)
+
+dump: $(ELF)
+ avr-objdump -d $(ELF)
+
+## Assembler
+AS = avra
+ASFLAGS =
+
+%.hex: %.s
+ $(AS) $(ASFLAGS) $<
+ mv $<.hex $@
+
+## Flashing
+# Arduino Duemilanove
+AD_PART = m328p
+AD_PROG = arduino
+AD_BAUD = 57600
+AD_PORT = /dev/arduino
+
+AD = avrdude
+ADFLAGS = -p $(AD_PART) -c $(AD_PROG) -b $(AD_BAUD) -P $(AD_PORT)
+
+build/%.hex: build/%.elf
+ avr-objcopy -O ihex -R .eeprom $< $@
+
+.PRECIOUS: build/%.elf
+
+upload: $(HEX)
+ $(AD) $(ADFLAGS) -U flash:w:$<
+
+## Console
+SERIAL_BAUD = 9600
+SERIAL_FLOW = n
+SERIAL_PARITY = n
+SERIAL_BITS = 8
+SERIAL_PORT = $(AD_PORT)
+
+SERIAL_TERM = picocom
+SERIAL_FLAGS = -b $(SERIAL_BAUD) -f $(SERIAL_FLOW) -p $(SERIAL_PARITY) -d $(SERIAL_BITS)
+
+console:
+ $(SERIAL_TERM) $(SERIAL_FLAGS) $(SERIAL_PORT)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README Wed Sep 24 22:41:46 2014 +0300
@@ -0,0 +1,13 @@
+# Depends
+
+* gcc-avr
+* avr-libc
+* avrdude
+
+# Build
+
+ $ ln -s .../qmsk-arduino qmsk
+ $ make build
+ $ make
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hello.c Wed Sep 24 22:41:46 2014 +0300
@@ -0,0 +1,27 @@
+#include <avr/interrupt.h>
+#include <avr/io.h>
+
+#define DEBUG_DDR DDRB
+#define DEBUG_PIN 5
+#define DEBUG_PORT PORTB
+
+#include "debug.h"
+#include "timer.h"
+
+int main (void)
+{
+ debug_init();
+ timer_init();
+
+ // init
+ debug_set();
+ sei();
+
+ unsigned short timeout = 8000;
+
+ // start
+ while (true) {
+ timer_sleep(timeout);
+ debug_toggle();
+ }
+}