URL
https://opencores.org/ocsvn/neorv32/neorv32/trunk
[/] [neorv32/] [trunk/] [docs/] [userguide/] [general_sw_framework_setup.adoc] - Blame information for rev 71
Go to most recent revision |
Details |
Compare with Previous |
View Log
Line No. |
Rev |
Author |
Line |
1 |
69 |
zero_gravi |
<<<
|
2 |
|
|
:sectnums:
|
3 |
|
|
== General Software Framework Setup
|
4 |
|
|
|
5 |
|
|
To allow executables to be _actually executed_ on the NEORV32 Processor the configuration of the software framework
|
6 |
|
|
has to be aware to the hardware configuration. This guide focuses on the memory configuration. To enabled
|
7 |
|
|
certain CPU ISA features refer to the <<_enabling_risc_v_cpu_extensions>> section.
|
8 |
|
|
|
9 |
|
|
[TIP]
|
10 |
|
|
If you have **not** changed the _default_ memory configuration in section <<_general_hardware_setup>>
|
11 |
|
|
you are already done and you can skip the rest of this guide.
|
12 |
|
|
|
13 |
|
|
[start=1]
|
14 |
|
|
. Open the NEORV32 linker script `sw/common/neorv32.ld` with a text editor. Right at the
|
15 |
|
|
beginning of this script you will find the `MEMORY` configuration listing the different memory section:
|
16 |
|
|
|
17 |
|
|
.Cut-out of the linker script `neorv32.ld`: `ram` memory section configuration
|
18 |
|
|
[source,c]
|
19 |
|
|
----
|
20 |
|
|
MEMORY
|
21 |
|
|
{
|
22 |
|
|
ram (rwx) : ORIGIN = 0x80000000, LENGTH = DEFINED(make_bootloader) ? 512 : 8*1024 <1>
|
23 |
|
|
...
|
24 |
|
|
----
|
25 |
|
|
<1> Size of the data memory address space (right-most value) (internal/external DMEM); here 8kB
|
26 |
|
|
|
27 |
|
|
[start=2]
|
28 |
|
|
. We only need to change the `ram` section, which presents the available data address space.
|
29 |
|
|
If you have changed the DMEM (_MEM_INT_DMEM_SIZE_ generic) size adapt the `LENGTH` parameter of the `ram`
|
30 |
|
|
section (here: `8*1024`) so it is equal to your DMEM hardware configuration.
|
31 |
|
|
|
32 |
|
|
[IMPORTANT]
|
33 |
|
|
Make sure you only modify the _right-most_ value (here: 8*1024)! +
|
34 |
|
|
The "`512`" are not relevant for the application.
|
35 |
|
|
|
36 |
|
|
[start=3]
|
37 |
|
|
. Done! Save your changes and close the linker script.
|
38 |
|
|
|
39 |
|
|
.Advanced: Section base address and size
|
40 |
|
|
[IMPORTANT]
|
41 |
|
|
More information can be found in the datasheet section https://stnolting.github.io/neorv32/#_address_space[Address Space].
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.