URL
https://opencores.org/ocsvn/ion/ion/trunk
Subversion Repositories ion
[/] [ion/] [trunk/] [src/] [ion_noxram.lds] - Rev 2
Go to most recent revision | Compare with Previous | Blame | View Log
/*** ion_noxram.lds -- Linker script file for ION project (with no RAM or cache)** The ion cpu has separate buses for code and data (Harvard architecture) but* does not have caches by default. This linker script targets that 'bare'* system configuration. It is meant for early testing and debugging.** This script will split the object file in two areas so that they can be put* in separate memory blocks:* 1.- Code area (text output section)* 2.- Data area (sdata, data and bss output sections)** Since data constants can't be reached from the code bus, constant data* (usually in section rodata) needs to be put in the same space as other data.* This is the main purpose of this file.* Alternatively, we might jus implement a 3-port memory and leave all sections* adjacent, but that would be too expensive (3-port memory would take about* twice as many memory blocks for the same memory size).** FIXME code and data RAM block sizes hardcoded* FIXME code and data start addresses hardcoded*//* Make sure the first linked file is ths startup code from boot.s *//* (We might put boot.o in the ld command line, BEFORE all other files) */STARTUP(boot.o)/* Default object output format is ELF big endian */OUTPUT_FORMAT(elf32-big)SECTIONS {/* Put all code at CODE area */.text 0x00000000 : {_ftext = . ;* (.text);} = 0 /* fill gaps with zeros *//* Mark end of executable code */_ecode = .;/* mark end of read-only code */_etext = .;PROVIDE (etext = .);/**** Put all data, including read-only, at DATA area */.data 0x00010000 : {_fdata = . ;* (.data);* (.data.*);/* Conventionally, symbol _gp points to the middle of a 64K area at thestart of the sdata section ('small data section'). Register $gp isloaded with _gp at program startup (in boot.s) so that data in thatarea can be reached with just one instruction.Note that the compiler/assembler will put data in the sdata sectiononly if it is small enough (see as/gcc docs, -G option and others).FIXME this feature has not been tested.*/_gp = . + 0x7ff0; /* 0x7ff0 -> middle of 64K area */*(.lit8);*(.lit4);*(.sdata);*(.sbss);*(.gnu.linkonce.s*);*(.rodata);*(.rodata.*);/* mark end of initialised data */_edata = .;PROVIDE (edata = .);/* start bss on dword boundary for easier clearing */. = ALIGN(8);}/* start bss on dword boundary for easier clearing */. = ALIGN(8);/* mark start of uninitialised data */__bss_start = .;_fbss = __bss_start;.bss : {/* *(.sbss); */*(.dynbss);*(COMMON);* (.bss);_end = . ;}/* mark end of uninitialised data */_end = . ;PROVIDE (end = .);}
Go to most recent revision | Compare with Previous | Blame | View Log
