aboutsummaryrefslogtreecommitdiff
path: root/justfile
diff options
context:
space:
mode:
Diffstat (limited to 'justfile')
-rw-r--r--justfile52
1 files changed, 33 insertions, 19 deletions
diff --git a/justfile b/justfile
index 749fde6..4978f92 100644
--- a/justfile
+++ b/justfile
@@ -1,28 +1,42 @@
-build:
- pio run -e attiny84;
+set export
+set unstable
-check:
- pio check --skip-packages
+default:
+ just --choose || true
-upload:
- pio run -e attiny84 -t upload
+AVR_LIBC := env("AVR_LIBC", "/usr/lib/avr")
+F_CPU := "1000000"
+MCU := "attiny84a"
+MCU_PART := "attiny84"
+SRC := "./src/main.c"
+OUTDIR := "./out"
+PROGRAMMER := "arduino"
+UPLOAD_SPEED := "19200"
+SERIAL_PORT := "/dev/ttyUSB0"
-clean:
- pio run -t clean
+CFLAGS := f"-g -Os -std=gnu99 -Isrc -mmcu={{MCU}} -DF_CPU={{F_CPU}}L \
+-I{{AVR_LIBC}}/avr/include -L{{AVR_LIBC}}/avr/lib \
+-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes"
-update:
- pio pkg update
+AVRDUDE := f"avrdude -v -p {{MCU_PART}} -c {{PROGRAMMER}} -P {{SERIAL_PORT}} -b {{UPLOAD_SPEED}}"
-monitor:
- pio device monitor
+build: compile_flags
+ mkdir -p {{OUTDIR}}
+ avr-gcc {{CFLAGS}} {{SRC}} -o {{OUTDIR}}/out.elf
+ avr-objcopy -O ihex -R .eeprom {{OUTDIR}}/out.elf {{OUTDIR}}/out.hex
-test:
- pio test -e test
+write:
+ [ -f "{{OUTDIR}}/out.hex" ] || (echo "No out.hex. Run build"; exit 1);
+ {{AVRDUDE}} -U "flash:w:{{OUTDIR}}/out.hex:i"
-format:
- find include/ src/ -iname '*.h' -o -iname '*.cpp' | xargs clang-format -i
+read:
+ {{AVRDUDE}} -F -U flash:r:-:h
-devsetup:
- # COMPILATIONDB_INCLUDE_TOOLCHAIN=true pio run -t compiledb
- ./setup_compiledb.sh
+clean:
+ rm -rf {{OUTDIR}}
+
+format:
+ find src/ -iname '*.h' -o -iname '*.c' | xargs clang-format -i
+compile_flags:
+ echo '{{CFLAGS}}' | tr ' ' '\n' > ./compile_flags.txt