aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.cargo/config6
-rw-r--r--Makefile38
2 files changed, 26 insertions, 18 deletions
diff --git a/.cargo/config b/.cargo/config
deleted file mode 100644
index b6cdff0..0000000
--- a/.cargo/config
+++ /dev/null
@@ -1,6 +0,0 @@
-[build]
-target = "thumbv6m-none-eabi"
-
-[target.thumbv6m-none-eabi]
-rustflags = ["-C", "link-arg=-Tlink.x"]
-runner = "qemu-system-arm -pidfile qemu.pid -cpu cortex-m0 -machine lm3s6965evb -nographic -semihosting-config enable=on,target=native -gdb tcp::3333 -S -kernel"
diff --git a/Makefile b/Makefile
index 87fbc8d..26f0968 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,9 @@
+# How to compile the examples.
APP = simple
+RELEASE = debug
+TARGET = thumbv6m-none-eabi
+# VID and PID of device to flash firmware to.
USBVID = 239a
USBPID = '001e|801e'
@@ -7,32 +11,42 @@ BOSSAC = bossac
SERIAL = $(shell ./find-serial-port $(USBVID) $(USBPID) || echo 'cant-find-serial-port')
OFFSET = 0x2000
+OBJCOPY = arm-none-eabi-objcopy
+
+TARGETDIR = target/$(TARGET)
+EXAMPLEDIR = $(TARGETDIR)/$(RELEASE)/examples
+
+CARGOFLAGS = --target thumbv6m-none-eabi
+
.PHONY: all clean cargo-build target/thumbv6m-none-eabi/debug/examples/$(APP)
-all: $(APP).uf2
+all: $(EXAMPLEDIR)/$(APP)
clean:
rm -f $(APP).uf2
rm -f $(APP).bin
cargo clean
-cargo-build:
- cargo build --example $(APP)
+test:
+ cargo test
-target/thumbv6m-none-eabi/debug/examples/$(APP): cargo-build
-
-$(APP).bin: target/thumbv6m-none-eabi/debug/examples/$(APP)
- cargo objcopy --example $(APP) -- -O binary $(APP).bin
+cargo-build:
+ cargo rustc --example $(APP) $(CARGOFLAGS) -- -C link-arg=-Tlink.x
-# Requires https://github.com/sajattack/uf2conv-rs.git
-%.uf2: %.bin
- uf2conv-rs $< --base $(OFFSET) --output $@
+$(EXAMPLEDIR)/$(APP): cargo-build
flash: $(APP).bin $(SERIAL)
$(BOSSAC) -R -e -w -v -o$(OFFSET) -p$(SERIAL) $<
-qemu: target/thumbv6m-none-eabi/debug/$(APP)
+qemu: $(EXAMPLEDIR)/$(APP)
qemu-system-arm -d in_asm,int,exec,cpu,guest_errors,unimp -pidfile qemu.pid -cpu cortex-m0 -machine lm3s6965evb -nographic -semihosting-config enable=on,target=native -s -S -kernel $<
-gdb: target/thumbv6m-none-eabi/debug/$(APP)
+gdb: $(EXAMPLEDIR)/$(APP)
gdb-multiarch -ex "target remote localhost:1234" -ex "break main" -ex "continue" $<
+
+%.bin: $(EXAMPLEDIR)/%
+ $(OBJCOPY) -O binary $< $@
+
+# Requires https://github.com/sajattack/uf2conv-rs.git
+%.uf2: %.bin
+ uf2conv-rs $< --base $(OFFSET) --output $@