picosoc: use preprocessor for generating target-specific linker script
This commit is contained in:
parent
f3b1246c86
commit
eb64df6c3e
|
@ -11,6 +11,7 @@
|
|||
/hx8kdemo_fw.elf
|
||||
/hx8kdemo_fw.hex
|
||||
/hx8kdemo_fw.bin
|
||||
/hx8kdemo_sections.lds
|
||||
/icebreaker.asc
|
||||
/icebreaker.bin
|
||||
/icebreaker.json
|
||||
|
@ -22,5 +23,7 @@
|
|||
/icebreaker_fw.elf
|
||||
/icebreaker_fw.hex
|
||||
/icebreaker_fw.bin
|
||||
/icebreaker_sections.lds
|
||||
/testbench.vcd
|
||||
/cmos.log
|
||||
|
||||
|
|
|
@ -33,8 +33,11 @@ hx8kprog: hx8kdemo.bin hx8kdemo_fw.bin
|
|||
hx8kprog_fw: hx8kdemo_fw.bin
|
||||
iceprog -o 1M hx8kdemo_fw.bin
|
||||
|
||||
hx8kdemo_fw.elf: sections.lds start.s firmware.c
|
||||
riscv32-unknown-elf-gcc -DHX8KDEMO -march=rv32imc -Wl,-Bstatic,-T,sections.lds,--strip-debug -ffreestanding -nostdlib -o hx8kdemo_fw.elf start.s firmware.c
|
||||
hx8kprog_sections.lds: sections.lds
|
||||
riscv32-unknown-elf-cpp -P -DHX8KDEMO -o $@ $^
|
||||
|
||||
hx8kdemo_fw.elf: hx8kdemo_sections.lds start.s firmware.c
|
||||
riscv32-unknown-elf-gcc -DHX8KDEMO -march=rv32imc -Wl,-Bstatic,-T,hx8kdemo_sections.lds,--strip-debug -ffreestanding -nostdlib -o hx8kdemo_fw.elf start.s firmware.c
|
||||
|
||||
hx8kdemo_fw.hex: hx8kdemo_fw.elf
|
||||
riscv32-unknown-elf-objcopy -O verilog hx8kdemo_fw.elf hx8kdemo_fw.hex
|
||||
|
@ -76,8 +79,11 @@ icebprog: icebreaker.bin icebreaker_fw.bin
|
|||
icebprog_fw: icebreaker_fw.bin
|
||||
iceprog -o 1M icebreaker_fw.bin
|
||||
|
||||
icebreaker_fw.elf: sections.lds start.s firmware.c
|
||||
riscv32-unknown-elf-gcc -DICEBREAKER -march=rv32ic -Wl,-Bstatic,-T,sections.lds,--strip-debug -ffreestanding -nostdlib -o icebreaker_fw.elf start.s firmware.c
|
||||
icebreaker_sections.lds: sections.lds
|
||||
riscv32-unknown-elf-cpp -P -DICEBREAKER -o $@ $^
|
||||
|
||||
icebreaker_fw.elf: icebreaker_sections.lds start.s firmware.c
|
||||
riscv32-unknown-elf-gcc -DICEBREAKER -march=rv32ic -Wl,-Bstatic,-T,icebreaker_sections.lds,--strip-debug -ffreestanding -nostdlib -o icebreaker_fw.elf start.s firmware.c
|
||||
|
||||
icebreaker_fw.hex: icebreaker_fw.elf
|
||||
riscv32-unknown-elf-objcopy -O verilog icebreaker_fw.elf icebreaker_fw.hex
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
#include <stdbool.h>
|
||||
|
||||
#ifdef ICEBREAKER
|
||||
#define MEM_TOTAL 0x20000
|
||||
# define MEM_TOTAL 0x20000 /* 128 KB */
|
||||
#elif HX8KDEMO
|
||||
#define MEM_TOTAL 0x200
|
||||
# define MEM_TOTAL 0x200 /* 2 KB */
|
||||
#else
|
||||
# error "Set -DICEBREAKER or -DHX8KDEMO when compiling firmware.c"
|
||||
#endif
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
#ifdef ICEBREAKER
|
||||
# define MEM_TOTAL 0x20000 /* 128 KB */
|
||||
#elif HX8KDEMO
|
||||
# define MEM_TOTAL 0x200 /* 2 KB */
|
||||
#else
|
||||
# error "Set -DICEBREAKER or -DHX8KDEMO when compiling firmware.c"
|
||||
#endif
|
||||
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00100000, LENGTH = 0x400000 /* entire flash, 4 MiB */
|
||||
RAM (xrw) : ORIGIN = 0x00000000, LENGTH = 0x000400 /* 1 KB */
|
||||
RAM (xrw) : ORIGIN = 0x00000000, LENGTH = MEM_TOTAL
|
||||
}
|
||||
|
||||
SECTIONS {
|
||||
|
|
Loading…
Reference in New Issue