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"
|
#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>
|
#include <sys/types.h>
|
||||||
|
|
||||||
/* Get these functions 'out of the way' of the standard functions. Not doing
|
/* 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
|
# endif
|
||||||
|
|
||||||
static
|
static
|
||||||
mad_fixed_t const D[17][32] __attribute__ ((section(".idata"))) = {
|
mad_fixed_t const D[17][32] IDATA_ATTR = {
|
||||||
# include "D.dat"
|
# include "D.dat"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,15 @@
|
||||||
|
|
||||||
/* Various "helper functions" common to all the xxx2wav decoder plugins */
|
/* 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 */
|
/* the main data structure of the program */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int infile;
|
int infile;
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
|
|
||||||
static struct plugin_api* rb;
|
static struct plugin_api* rb;
|
||||||
|
|
||||||
struct mad_stream Stream __attribute__ ((section(".idata")));
|
struct mad_stream Stream IDATA_ATTR;
|
||||||
struct mad_frame Frame __attribute__ ((section(".idata")));
|
struct mad_frame Frame IDATA_ATTR;
|
||||||
struct mad_synth Synth __attribute__ ((section(".idata")));
|
struct mad_synth Synth IDATA_ATTR;
|
||||||
mad_timer_t Timer;
|
mad_timer_t Timer;
|
||||||
struct dither d0, d1;
|
struct dither d0, d1;
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ unsigned char *OutputPtr=OutputBuffer;
|
||||||
unsigned char *GuardPtr=NULL;
|
unsigned char *GuardPtr=NULL;
|
||||||
const unsigned char *OutputBufferEnd=OutputBuffer+OUTPUT_BUFFER_SIZE;
|
const unsigned char *OutputBufferEnd=OutputBuffer+OUTPUT_BUFFER_SIZE;
|
||||||
|
|
||||||
#ifndef SIMULATOR
|
#ifdef USE_IRAM
|
||||||
extern char iramcopy[];
|
extern char iramcopy[];
|
||||||
extern char iramstart[];
|
extern char iramstart[];
|
||||||
extern char iramend[];
|
extern char iramend[];
|
||||||
|
@ -151,7 +151,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
|
||||||
TEST_PLUGIN_API(api);
|
TEST_PLUGIN_API(api);
|
||||||
rb = api;
|
rb = api;
|
||||||
|
|
||||||
#ifndef SIMULATOR
|
#ifdef USE_IRAM
|
||||||
rb->memcpy(iramstart, iramcopy, iramend-iramstart);
|
rb->memcpy(iramstart, iramcopy, iramend-iramstart);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue