diff options
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/codecs/libFLAC/coldfire.c | 1 | ||||
| -rw-r--r-- | apps/plugins/flac2wav.c | 4 | ||||
| -rw-r--r-- | apps/plugins/plugin.lds | 18 |
3 files changed, 23 insertions, 0 deletions
diff --git a/apps/codecs/libFLAC/coldfire.c b/apps/codecs/libFLAC/coldfire.c index c763c20..1d50038 100644 --- a/apps/codecs/libFLAC/coldfire.c +++ b/apps/codecs/libFLAC/coldfire.c @@ -1,6 +1,7 @@ #ifndef SIMULATOR #include <private/coldfire.h> +void FLAC__lpc_restore_signal_order8_mac(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[]) __attribute__ ((section (".icode"))); void FLAC__lpc_restore_signal_order8_mac(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[]) { register const FLAC__int32 *qlp0 = &qlp_coeff[(order-1)]; 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 } |