diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2005-02-22 00:42:22 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2005-02-22 00:42:22 +0000 |
| commit | e638eadaffe61143f0ded093936cbbafb1f569ce (patch) | |
| tree | f21801822d56279232400b29dba95de73d8ba607 /apps/plugins | |
| parent | b9c9d80fef2cee1ec0e2e44d75a9c2580ed00da3 (diff) | |
| download | rockbox-e638eadaffe61143f0ded093936cbbafb1f569ce.zip rockbox-e638eadaffe61143f0ded093936cbbafb1f569ce.tar.gz rockbox-e638eadaffe61143f0ded093936cbbafb1f569ce.tar.bz2 rockbox-e638eadaffe61143f0ded093936cbbafb1f569ce.tar.xz | |
Temporary solution for code and data in IRAM for iriver codecs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6029 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
| -rw-r--r-- | apps/plugins/flac2wav.c | 4 | ||||
| -rw-r--r-- | apps/plugins/plugin.lds | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/apps/plugins/flac2wav.c b/apps/plugins/flac2wav.c index c90cf0d..74e69e7 100644 --- a/apps/plugins/flac2wav.c +++ b/apps/plugins/flac2wav.c @@ -155,6 +155,9 @@ FLAC__bool flac_eof_handler (const FLAC__SeekableStreamDecoder *decoder, } } +extern char iramcopy[]; +extern char iramstart[]; +extern char iramend[]; /* this is the plugin entry point */ enum plugin_status plugin_start(struct plugin_api* api, void* file) @@ -168,6 +171,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) otherwise you will get lovely "I04: IllInstr" errors... :-) */ rb = api; + rb->memcpy(iramstart, iramcopy, iramend-iramstart); /* This function sets up the buffers and reads the file into RAM */ diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index acbeb52..867084e 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -16,6 +16,8 @@ OUTPUT_FORMAT(elf32-sh) #ifdef IRIVER_H100 #define DRAMORIG 0x30000000 +#define IRAMORIG 0x10010000 +#define IRAMSIZE 0x8000 #else #define DRAMORIG 0x09000000 + STUBOFFSET #endif @@ -31,6 +33,9 @@ OUTPUT_FORMAT(elf32-sh) MEMORY { PLUGIN_RAM : ORIGIN = PLUGIN_ORIGIN, LENGTH = PLUGIN_LENGTH +#ifdef IRIVER_H100 + PLUGIN_IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE +#endif } SECTIONS @@ -57,5 +62,18 @@ SECTIONS *(.rodata.str1.1) *(.rodata.str1.4) . = ALIGN(0x4); +#ifdef IRIVER_H100 + iramcopy = .; +#endif } > PLUGIN_RAM + +#ifdef IRIVER_H100 + .iram IRAMORIG : AT ( iramcopy) + { + iramstart = .; + *(.icode) + *(.idata) + iramend = .; + } > PLUGIN_IRAM +#endif } |