~ruther/verilog-riscv-semestral-project

d4e70aa69c3671bba9e02d198267f09cfc493a11 — Rutherther 1 year, 4 months ago c5e322d
fix: linker file issues, naming of linked file
3 files changed, 36 insertions(+), 14 deletions(-)

M Makefile
M programs/link.ld
M programs/start.S
M Makefile => Makefile +3 -3
@@ 83,17 83,17 @@ OBJCOPY=riscv32-none-elf-objcopy
./programs/bin/%.o: ./programs/%.c ./programs/bin
	$(CC) $(CFLAGS) $< -o $@

./programs/bin/start-%.o: ./programs/bin/start.o ./programs/bin/%.o
./programs/bin/%.elf: ./programs/bin/start.o ./programs/bin/%.o
	$(LD) $(LDFLAGS) $^ -o $@

./programs/bin/%.bin: ./programs/bin/start-%.o
./programs/bin/%.bin: ./programs/bin/%.elf
	$(OBJCOPY) $< -O binary $@

./programs/bin/%.dat: ./programs/bin/%.bin
	od $< -t x4 -A n -v > $@

.PHONY: objdump
objdump: ./programs/bin/start-$(PROGRAM).o
objdump: ./programs/bin/$(PROGRAM).elf
	$(OBJDUMP) -d -M no-aliases $<

.PHONY: clean

M programs/link.ld => programs/link.ld +10 -9
@@ 1,21 1,22 @@
OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv")

MEMORY
{
    ram : ORIGIN = 0x00000000, LENGTH = 1K - 1
}

PROVIDE( __global_pointer$ = 0x0 );

SECTIONS
{
	.text = 0x0;
	.text : {
        *(.text._start);
        *(.text);
        *(.text.*);
    } > ram
    .bss : {
        __bss_start = .;
        *(.bss)
        *(COMMON)
        __bss_end = .;
    } > ram
    .stack : {
        __stack_start = .;
        *(.stack)
        __stack_end = .;
        *(.bss.*)
    } > ram
}


M programs/start.S => programs/start.S +23 -2
@@ 1,9 1,30 @@
.global _start
.globl main
.globl _start
.globl __start

.option norelax

.text

__start:
_start:
    .option push
    .option norelax
    la gp, __global_pointer$
    .option pop

    addi sp, x0, 1020
    addi a0, zero, 0
    addi a1, zero, 0
    call main
quit:
	addi    a0, zero, 0
	addi    a7, zero, 93  /* SYS_exit */
	ecall
loop:
    ebreak
    j loop
    beq     zero, zero, loop

.bss

.end _start

Do not follow this link