forked from len0rd/rockbox
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
This commit is contained in:
parent
64d3470541
commit
657fdf26f2
4 changed files with 24 additions and 6 deletions
|
@ -21,6 +21,15 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#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
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Get these functions 'out of the way' of the standard functions. Not doing
|
||||
|
|
|
@ -542,7 +542,7 @@ void dct32(mad_fixed_t const in[32], unsigned int slot,
|
|||
# endif
|
||||
|
||||
static
|
||||
mad_fixed_t const D[17][32] __attribute__ ((section(".idata"))) = {
|
||||
mad_fixed_t const D[17][32] IDATA_ATTR = {
|
||||
# include "D.dat"
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue