summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-03-10 20:02:08 +0000
committerJens Arnold <amiconn@rockbox.org>2005-03-10 20:02:08 +0000
commit657fdf26f298a7a01bf20140af1a2f5444b9d700 (patch)
treeede43783a45747b318608d649f4a425ecb8302fe /apps/plugins
parent64d3470541b76557dac7c6b35b15e821812b6f03 (diff)
Compile the simulators without special code & data sections. Fixes intermittent hangs/ crashes of mpa2wav.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6181 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/lib/xxx2wav.h9
-rw-r--r--apps/plugins/mpa2wav.c10
2 files changed, 14 insertions, 5 deletions
diff --git a/apps/plugins/lib/xxx2wav.h b/apps/plugins/lib/xxx2wav.h
index 2806eabf27..7e3afceaba 100644
--- a/apps/plugins/lib/xxx2wav.h
+++ b/apps/plugins/lib/xxx2wav.h
@@ -19,6 +19,15 @@
/* Various "helper functions" common to all the xxx2wav decoder plugins */
+#if CONFIG_CPU == MCF5249 && !defined(SIMULATOR)
+#define ICODE_ATTR __attribute__ ((section(".icode")))
+#define IDATA_ATTR __attribute__ ((section(".idata")))
+#define USE_IRAM 1
+#else
+#define ICODE_ATTR
+#define IDATA_ATTR
+#endif
+
/* the main data structure of the program */
typedef struct {
int infile;
diff --git a/apps/plugins/mpa2wav.c b/apps/plugins/mpa2wav.c
index 6c28100800..5ef6351a85 100644
--- a/apps/plugins/mpa2wav.c
+++ b/apps/plugins/mpa2wav.c
@@ -28,9 +28,9 @@
static struct plugin_api* rb;
-struct mad_stream Stream __attribute__ ((section(".idata")));
-struct mad_frame Frame __attribute__ ((section(".idata")));
-struct mad_synth Synth __attribute__ ((section(".idata")));
+struct mad_stream Stream IDATA_ATTR;
+struct mad_frame Frame IDATA_ATTR;
+struct mad_synth Synth IDATA_ATTR;
mad_timer_t Timer;
struct dither d0, d1;
@@ -130,7 +130,7 @@ unsigned char *OutputPtr=OutputBuffer;
unsigned char *GuardPtr=NULL;
const unsigned char *OutputBufferEnd=OutputBuffer+OUTPUT_BUFFER_SIZE;
-#ifndef SIMULATOR
+#ifdef USE_IRAM
extern char iramcopy[];
extern char iramstart[];
extern char iramend[];
@@ -151,7 +151,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
TEST_PLUGIN_API(api);
rb = api;
-#ifndef SIMULATOR
+#ifdef USE_IRAM
rb->memcpy(iramstart, iramcopy, iramend-iramstart);
#endif