init
This commit is contained in:
parent
cfe877a4ec
commit
40c061cf4c
11
counter.S
11
counter.S
@ -1,15 +1,20 @@
|
|||||||
.data
|
.data
|
||||||
sentence: .ascii "Become a Prograammer"
|
// 0x8000102c
|
||||||
|
sentence: .ascii "Become a Prograammermmmmmrr\0"
|
||||||
|
// ^
|
||||||
|
// ^
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align 2
|
.align 2
|
||||||
.globl _start
|
.globl _start
|
||||||
|
|
||||||
_start:
|
_start:
|
||||||
|
|
||||||
la t2, sentence # Load the address of sentence into t2
|
la t2, sentence # Load the address of sentence into t2
|
||||||
|
|
||||||
li t0, 0x6d // ascii 'm'
|
li t0, 0x72 // ascii 'm'
|
||||||
li t1, 0 // licznik wystapien 'm'
|
|
||||||
|
li t1, 0x00 // licznik wystapien 'm'
|
||||||
|
|
||||||
print_loop:
|
print_loop:
|
||||||
lbu t3, 0(t2) # Load the byte (character) from address in t2
|
lbu t3, 0(t2) # Load the byte (character) from address in t2
|
||||||
|
81
make/Make.rules
Normal file
81
make/Make.rules
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
ARCH=riscv32-unknown-elf
|
||||||
|
GNU_DIR=$(HOME)/riscv/opt/rv32im_zicsr/
|
||||||
|
GNU_BIN=$(GNU_DIR)/bin
|
||||||
|
|
||||||
|
|
||||||
|
CC=$(GNU_BIN)/$(ARCH)-gcc
|
||||||
|
CXX=$(GNU_BIN)/$(ARCH)-g++
|
||||||
|
AS=$(GNU_BIN)/$(ARCH)-as
|
||||||
|
LD=$(GNU_BIN)/$(ARCH)-ld
|
||||||
|
OBJCOPY=$(GNU_BIN)/$(ARCH)-objcopy
|
||||||
|
OBJDUMP=$(GNU_BIN)/$(ARCH)-objdump
|
||||||
|
SIZE=$(GNU_BIN)/$(ARCH)-size
|
||||||
|
AR=$(GNU_BIN)/$(ARCH)-ar
|
||||||
|
RANLIB=$(GNU_BIN)/$(ARCH)-ranlib
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS+=-ffreestanding
|
||||||
|
CFLAGS+=-fno-pic
|
||||||
|
CFLAGS+=-march=rv32i -mabi=ilp32
|
||||||
|
CFLAGS+= -O0 -g
|
||||||
|
|
||||||
|
|
||||||
|
LDFLAGS+=-nostdlib
|
||||||
|
LDFLAGS+=-Wl,-Ttext=0x80000000
|
||||||
|
LDFLAGS+= -g
|
||||||
|
|
||||||
|
# see: https://github.com/riscv/riscv-gcc/issues/120
|
||||||
|
#LDFLAGS+=-Wl,--no-relax
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ASFLAGS+=$(CFLAGS)
|
||||||
|
CXXFLAGS+=$(CFLAGS)
|
||||||
|
|
||||||
|
CLEAN_DIRS=$(SUBDIRS:%=clean-%)
|
||||||
|
ALL_DIRS=$(SUBDIRS:%=all-%)
|
||||||
|
|
||||||
|
OBJDUMPFLAGS+=-Mnumeric,no-aliases
|
||||||
|
|
||||||
|
.PHONY: all clean world $(CLEAN_DIRS) $(ALL_DIRS)
|
||||||
|
|
||||||
|
|
||||||
|
%.bin : %
|
||||||
|
$(OBJCOPY) $< -O binary $@
|
||||||
|
|
||||||
|
%.lst : %
|
||||||
|
$(OBJDUMP) $(OBJDUMPFLAGS) -dr $< > $<.lst
|
||||||
|
|
||||||
|
% : %.o
|
||||||
|
$(LINK.c) $(LDFLAGS) -o $@ $^ $(LDLIBS)
|
||||||
|
$(SIZE) -x -A $@
|
||||||
|
|
||||||
|
%.s: %.c
|
||||||
|
$(COMPILE.c) -S -o $@ $<
|
||||||
|
|
||||||
|
%.s: %.cc
|
||||||
|
$(COMPILE.cc) -S -o $@ $<
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(COMPILE.c) -o $@ $<
|
||||||
|
|
||||||
|
%.o: %.cc
|
||||||
|
$(COMPILE.cc) -o $@ $<
|
||||||
|
|
||||||
|
%.srec: %
|
||||||
|
$(OBJCOPY) $< -O srec $@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
all:: $(ALL_DIRS)
|
||||||
|
|
||||||
|
clean:: $(CLEAN_DIRS)
|
||||||
|
|
||||||
|
$(ALL_DIRS)::
|
||||||
|
$(MAKE) -C $(@:all-%=%) all
|
||||||
|
|
||||||
|
$(CLEAN_DIRS)::
|
||||||
|
$(MAKE) -C $(@:clean-%=%) clean
|
||||||
|
|
||||||
|
world:: clean all
|
12
make/Makefile
Normal file
12
make/Makefile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
SUBDIRS=\
|
||||||
|
load4regs \
|
||||||
|
counter \
|
||||||
|
padd \
|
||||||
|
link \
|
||||||
|
uart \
|
||||||
|
sw \
|
||||||
|
freestanding
|
||||||
|
|
||||||
|
TOP=.
|
||||||
|
include $(TOP)/Make.rules
|
Loading…
Reference in New Issue
Block a user