aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAustin Seipp <aseipp@pobox.com>2019-01-11 15:14:32 -0600
committerAustin Seipp <aseipp@pobox.com>2019-01-11 16:09:07 -0600
commit2944564ba803dbd4635e02a7a17f62e6dfeeefc3 (patch)
tree53b7e21875415831f8a5066977f32724b6685508
parent752790a4d7fe79d6ec068923c2c6cc1706a8cb38 (diff)
downloadpicorv32-2944564ba803dbd4635e02a7a17f62e6dfeeefc3.tar.gz
picorv32-2944564ba803dbd4635e02a7a17f62e6dfeeefc3.zip
scripts/icestorm: move SHIFT_COUNTER_BITS into Makefile
This makes it easier to build separate bitstreams for simulation targets vs the real bitstream for hardware, without editing any source code. Signed-off-by: Austin Seipp <aseipp@pobox.com>
-rw-r--r--scripts/icestorm/Makefile10
-rw-r--r--scripts/icestorm/firmware.c5
2 files changed, 11 insertions, 4 deletions
diff --git a/scripts/icestorm/Makefile b/scripts/icestorm/Makefile
index 7a3ece3..eead7df 100644
--- a/scripts/icestorm/Makefile
+++ b/scripts/icestorm/Makefile
@@ -1,13 +1,19 @@
TOOLCHAIN_PREFIX = riscv32-unknown-elf-
+# set to 4 for simulation
+FIRMWARE_COUNTER_BITS=18
+
all: example.bin
## -------------------
## firmware generation
firmware.elf: firmware.S firmware.c firmware.lds
- $(TOOLCHAIN_PREFIX)gcc -march=rv32i -Os -ffreestanding -nostdlib -o $@ firmware.S firmware.c \
- --std=gnu99 -Wl,-Bstatic,-T,firmware.lds,-Map,firmware.map,--strip-debug -lgcc
+ $(TOOLCHAIN_PREFIX)gcc \
+ -DSHIFT_COUNTER_BITS=$(FIRMWARE_COUNTER_BITS) \
+ -march=rv32i -Os -ffreestanding -nostdlib \
+ -o $@ firmware.S firmware.c \
+ --std=gnu99 -Wl,-Bstatic,-T,firmware.lds,-Map,firmware.map,--strip-debug -lgcc
chmod -x $@
firmware.bin: firmware.elf
diff --git a/scripts/icestorm/firmware.c b/scripts/icestorm/firmware.c
index a5e5236..80a4661 100644
--- a/scripts/icestorm/firmware.c
+++ b/scripts/icestorm/firmware.c
@@ -1,7 +1,8 @@
#include <stdint.h>
-// use SHIFT_COUNTER_BITS=4 for simulation
-#define SHIFT_COUNTER_BITS 18
+#ifndef SHIFT_COUNTER_BITS
+#error SHIFT_COUNTER_BITS must be defined as 4 (for simulation) or 18 (for hardware bitstreams)!
+#endif
void output(uint8_t c)
{