diff options
Diffstat (limited to 'VexRiscvSocSoftware/projects/murax/libs')
-rwxr-xr-x | VexRiscvSocSoftware/projects/murax/libs/linker.ld | 109 | ||||
-rw-r--r-- | VexRiscvSocSoftware/projects/murax/libs/makefile | 1 | ||||
-rw-r--r-- | VexRiscvSocSoftware/projects/murax/libs/murax.h | 28 |
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_ */ |