aboutsummaryrefslogtreecommitdiff
path: root/VexRiscvSocSoftware/projects/murax/libs
diff options
context:
space:
mode:
Diffstat (limited to 'VexRiscvSocSoftware/projects/murax/libs')
-rwxr-xr-xVexRiscvSocSoftware/projects/murax/libs/linker.ld109
-rw-r--r--VexRiscvSocSoftware/projects/murax/libs/makefile1
-rw-r--r--VexRiscvSocSoftware/projects/murax/libs/murax.h28
3 files changed, 138 insertions, 0 deletions
diff --git a/VexRiscvSocSoftware/projects/murax/libs/linker.ld b/VexRiscvSocSoftware/projects/murax/libs/linker.ld
new file mode 100755
index 0000000..ad708d0
--- /dev/null
+++ b/VexRiscvSocSoftware/projects/murax/libs/linker.ld
@@ -0,0 +1,109 @@
+/*
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+*/
+OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv")
+OUTPUT_ARCH(riscv)
+ENTRY(crtStart)
+
+MEMORY {
+ onChipRam : ORIGIN = 0x80000000, LENGTH = 8k
+}
+
+_stack_size = DEFINED(_stack_size) ? _stack_size : 512;
+_heap_size = DEFINED(_heap_size) ? _heap_size : 0;
+
+SECTIONS {
+
+ .vector : {
+ *crt.o(.text);
+ } > onChipRam
+
+ .memory : {
+ *(.text);
+ end = .;
+ } > onChipRam
+
+ .rodata :
+ {
+ *(.rdata)
+ *(.rodata .rodata.*)
+ *(.gnu.linkonce.r.*)
+ } > onChipRam
+
+ .ctors :
+ {
+ . = ALIGN(4);
+ _ctors_start = .;
+ KEEP(*(.init_array*))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ . = ALIGN(4);
+ _ctors_end = .;
+ } > onChipRam
+
+ .data :
+ {
+ *(.rdata)
+ *(.rodata .rodata.*)
+ *(.gnu.linkonce.r.*)
+ *(.data .data.*)
+ *(.gnu.linkonce.d.*)
+ . = ALIGN(8);
+ PROVIDE( __global_pointer$ = . + 0x800 );
+ *(.sdata .sdata.*)
+ *(.gnu.linkonce.s.*)
+ . = ALIGN(8);
+ *(.srodata.cst16)
+ *(.srodata.cst8)
+ *(.srodata.cst4)
+ *(.srodata.cst2)
+ *(.srodata .srodata.*)
+ } > onChipRam
+
+ .bss (NOLOAD) : {
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .bss secion */
+ _bss_start = .;
+ *(.sbss*)
+ *(.gnu.linkonce.sb.*)
+ *(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
+ *(COMMON)
+ . = ALIGN(4);
+ _bss_end = .;
+ } > onChipRam
+
+ .noinit (NOLOAD) : {
+ . = ALIGN(4);
+ *(.noinit .noinit.*)
+ . = ALIGN(4);
+ } > onChipRam
+
+
+ ._user_heap (NOLOAD):
+ {
+ . = ALIGN(8);
+ PROVIDE ( end = . );
+ PROVIDE ( _end = . );
+ PROVIDE ( _heap_start = .);
+ . = . + _heap_size;
+ . = ALIGN(8);
+ PROVIDE ( _heap_end = .);
+ } > onChipRam
+
+ ._stack (NOLOAD):
+ {
+ . = ALIGN(16);
+ PROVIDE (_stack_end = .);
+ . = . + _stack_size;
+ . = ALIGN(16);
+ PROVIDE (_stack_start = .);
+ } > onChipRam
+
+}
+
diff --git a/VexRiscvSocSoftware/projects/murax/libs/makefile b/VexRiscvSocSoftware/projects/murax/libs/makefile
new file mode 100644
index 0000000..63dc497
--- /dev/null
+++ b/VexRiscvSocSoftware/projects/murax/libs/makefile
@@ -0,0 +1 @@
+include ../../../resources/recursive.mk \ No newline at end of file
diff --git a/VexRiscvSocSoftware/projects/murax/libs/murax.h b/VexRiscvSocSoftware/projects/murax/libs/murax.h
new file mode 100644
index 0000000..7a91cfc
--- /dev/null
+++ b/VexRiscvSocSoftware/projects/murax/libs/murax.h
@@ -0,0 +1,28 @@
+/*
+ * briey.h
+ *
+ * Created on: Aug 24, 2016
+ * Author: clp
+ */
+
+#ifndef BRIEY_H_
+#define BRIEY_H_
+
+#include "timer.h"
+#include "prescaler.h"
+#include "interrupt.h"
+#include "gpio.h"
+#include "uart.h"
+
+#define CORE_HZ 12000000
+
+#define GPIO_A ((Gpio_Reg*)(0xF0000000))
+#define TIMER_PRESCALER ((Prescaler_Reg*)0xF0020000)
+#define TIMER_INTERRUPT ((InterruptCtrl_Reg*)0xF0020010)
+#define TIMER_A ((Timer_Reg*)0xF0020040)
+#define TIMER_B ((Timer_Reg*)0xF0020050)
+#define UART ((Uart_Reg*)(0xF0010000))
+#define UART_SAMPLE_PER_BAUD 5
+
+
+#endif /* BRIEY_H_ */