A => .hgignore +8 -0
@@ 0,0 1,8 @@
+syntax: glob
+
+objects
+*.swp
+blink.elf
+main.map
+blink.hex
+
A => Makefile +19 -0
@@ 0,0 1,19 @@
+CFLAGS=-Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU)
+OBJCOPY=avr-objcopy
+BIN_FORMAT=ihex
+PORT=/dev/ttyACM0
+AVRDUDE=sudo avrdude -F -V
+
+GNATMAKE=avr-gnatmake
+
+blink.hex: blink.adb
+ $(GNATMAKE) -p -XMCU=atmega328p -Pblink.gpr
+ $(OBJCOPY) -O $(BIN_FORMAT) -R .eeprom blink.elf blink.hex
+
+upload: blink.hex
+ $(AVRDUDE) -c arduino -p m328p -P $(PORT) -b 115200 -U flash:w:blink.hex
+
+clean:
+ avr-gnatclean -XMCU=atmega328p -Pblink
+ rm -f blink.elf blink.hex main.map
+
A => blink.adb +31 -0
@@ 0,0 1,31 @@
+with AVR;
+with AVR.MCU;
+with AVR.Real_Time.Delays;
+
+use AVR;
+
+procedure Blink is
+ Led_On : Boolean := False;
+
+ -- Pins on Arduino
+ -- Digital pin 2 PD2
+ -- pin 3 PD3
+ -- pin 4 PD4
+ -- pin 5 PD5
+ -- pin 6 PD6
+ -- pin 7 PD7
+ -- pin 8 PB0
+ -- pin 9 PB1
+ -- pin 10 PB2
+ -- pin 11 PB3
+ -- pin 12 PB4
+ -- pin 13 PB5 ("Built in LED")
+ LED_PIN : constant := 5;
+begin
+ MCU.DDRB_Bits (LED_PIN) := DD_Output;
+ loop
+ Led_On := not Led_On;
+ MCU.PORTB_Bits (LED_PIN) := Led_On;
+ delay 1.0;
+ end loop;
+end Blink;
A => blink.gpr +8 -0
@@ 0,0 1,8 @@
+project Blink extends "avr_app" is
+ for Main use ("blink.adb");
+ for Object_Dir use "objects";
+ for Exec_Dir use ".";
+
+ for Source_Dirs use (".");
+
+end Blink;