all: text.hex data.hex CC = riscv64-linux-gnu-gcc # CFLAGS = -march=rv32i -mabi=ilp32 CFLAGS = -march=rv64i -mabi=lp64 -o0 AS = riscv64-linux-gnu-as ASFLAGS = $(CFLAGS) LD = riscv64-linux-gnu-ld LDFLAGS = -T test.ld %.o: %.S $(AS) $(ASFLAGS) $^ -o $@ %.o: %.c $(CC) $(CFLAGS) $^ -o $@ %.elf: %.o $(LD) $(LDFLAGS) $^ -o $@ text.hex: test.elf riscv64-linux-gnu-objdump -s $^ | sed -n '/.text/,$$p' | tail -n+2 | sed -n '/.data/,$$!p' | cut -f3-6 -d ' ' | sed -e 's/ /\n/g' | sed 's/^\(..\)\(..\)\(..\)\(..\)/\4\3\2\1/' > $@ data.hex: test.elf riscv64-linux-gnu-objdump -s $^ | sed -n '/.data/,$$p' | tail -n+2 | sed -n '/.bss/,$$!p' | cut -f3-6 -d ' ' | sed -e 's/ /\n/g' | sed 's/^\(..\)\(..\)\(..\)\(..\)/\4\3\2\1/' > $@ clean: rm test.elf text.hex data.hex