template to compile/flash code without ide
parent
b31459f962
commit
138fef792e
@ -0,0 +1,3 @@
|
||||
*.o
|
||||
*.elf
|
||||
*.hex
|
@ -0,0 +1,27 @@
|
||||
baud=57600
|
||||
avrType=atmega328p
|
||||
avrFreq=16000000 # 16 Mhz
|
||||
programmerDev=/dev/ttyUSB0
|
||||
programmerType=arduino
|
||||
|
||||
cflags=-DF_CPU=$(avrFreq) -mmcu=$(avrType) -Wall -Werror -Wextra -Os
|
||||
objects=$(patsubst %.c,%.o,$(wildcard *.c))
|
||||
|
||||
.PHONY: flash clean
|
||||
|
||||
all: main.hex
|
||||
|
||||
%.o: %.c
|
||||
avr-gcc $(cflags) -c $< -o $@
|
||||
|
||||
main.elf: $(objects)
|
||||
avr-gcc $(cflags) -o $@ $^
|
||||
|
||||
main.hex: main.elf
|
||||
avr-objcopy -j .text -j .data -O ihex $^ $@
|
||||
|
||||
flash: main.hex
|
||||
avrdude -p$(avrType) -c$(programmerType) -P$(programmerDev) -b$(baud) -v -U flash:w:$<
|
||||
|
||||
clean:
|
||||
rm -f main.hex main.elf $(objects)
|
@ -0,0 +1,6 @@
|
||||
You don't need the Arduino IDE, you can simply use a Makefile and write your
|
||||
C code as long as you have avr-gcc, avr-libc and avrdude installed!
|
||||
|
||||
make # compile and generate main.hex
|
||||
make flash # flash it to the Arduino nano
|
||||
|
@ -0,0 +1,14 @@
|
||||
#include <util/delay.h>
|
||||
#include <avr/io.h>
|
||||
|
||||
#define LED PORTB5
|
||||
|
||||
int main(void) {
|
||||
DDRB |= (1 << LED);
|
||||
for/*ever*/(;;) {
|
||||
PORTB |= (1 << LED);
|
||||
_delay_ms(100);
|
||||
PORTB &= (0 << LED);
|
||||
_delay_ms(100);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue