diff options
| author | Tomasz Malesinski <tomal@rockbox.org> | 2006-01-24 23:32:53 +0000 |
|---|---|---|
| committer | Tomasz Malesinski <tomal@rockbox.org> | 2006-01-24 23:32:53 +0000 |
| commit | e0bb10420d4beab02c7ea3f757e9c57b040c6bf4 (patch) | |
| tree | 991d333d077319cb0929f0b2ae84588803dff4fc /firmware/app.lds | |
| parent | 27c616fd46bbaee58c54eddc9ed406e6810dd3ca (diff) | |
| download | rockbox-e0bb10420d4beab02c7ea3f757e9c57b040c6bf4.zip rockbox-e0bb10420d4beab02c7ea3f757e9c57b040c6bf4.tar.gz rockbox-e0bb10420d4beab02c7ea3f757e9c57b040c6bf4.tar.bz2 rockbox-e0bb10420d4beab02c7ea3f757e9c57b040c6bf4.tar.xz | |
added .vectors section for ARM
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8442 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/app.lds')
| -rw-r--r-- | firmware/app.lds | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/firmware/app.lds b/firmware/app.lds index feff264..d499499 100644 --- a/firmware/app.lds +++ b/firmware/app.lds @@ -128,8 +128,8 @@ _pluginbuf = 0; #define IRAMSIZE 0xc000 #elif CONFIG_CPU==PNX0101 #define DRAMORIG 0x24000000 + STUBOFFSET -#define IRAMORIG 0x400100 -#define IRAMSIZE 0x7f00 +#define IRAMORIG 0x400000 +#define IRAMSIZE 0x8000 #else #define DRAMORIG 0x09000000 + STUBOFFSET #define IRAMORIG 0x0f000000 @@ -150,6 +150,7 @@ MEMORY SECTIONS { +#ifndef CPU_ARM .vectors : { loadaddress = .; @@ -162,6 +163,12 @@ SECTIONS .text : { +#else + .text : + { + loadaddress = .; + _loadaddress = .; +#endif . = ALIGN(0x200); *(.init.text) *(.text*) @@ -193,7 +200,6 @@ SECTIONS *(.data*) . = ALIGN(0x4); _dataend = .; - _iramcopy = .; } > DRAM /DISCARD/ : @@ -201,14 +207,31 @@ SECTIONS *(.eh_frame) } - .iram IRAMORIG : AT ( _iramcopy) +#ifdef CPU_ARM + .vectors 0x0 : + { + _vectorsstart = .; + *(.vectors); + _vectorsend = .; + } AT> DRAM + + _vectorscopy = LOADADDR(.vectors); +#endif + +#if CONFIG_CPU==PNX0101 + .iram IRAMORIG + SIZEOF(.vectors) : +#else + .iram IRAMORIG : +#endif { _iramstart = .; *(.icode) *(.irodata) *(.idata) _iramend = .; - } > IRAM + } > IRAM AT> DRAM + + _iramcopy = LOADADDR(.iram); .ibss (NOLOAD) : { @@ -238,8 +261,10 @@ SECTIONS } > DRAM #endif -#if defined(CPU_COLDFIRE) || defined(CPU_ARM) +#if defined(CPU_COLDFIRE) .bss ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram): +#elif defined(CPU_ARM) + .bss ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram) + SIZEOF(.vectors): #else .bss : #endif |