aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Schodet2010-07-13 00:46:25 +0200
committerNicolas Schodet2010-08-20 00:18:22 +0200
commit5b74fd2352297c6f97042b42b946f04c3d55ba11 (patch)
tree905eabc84181a3d1979a3c05225347a7074a72b3
parenta76dd27d273424a260908c88c6b3aa5d04e898b7 (diff)
gcc: add __ramdata definition
Data used in RAM functions should also be stored in RAM. This definition is needed because gcc will place static data which are never modified to .rodata section.
-rw-r--r--AT91SAM7S256/Source/d_lowspeed.r2
-rw-r--r--AT91SAM7S256/Source/d_sound.r1
-rw-r--r--AT91SAM7S256/Source/d_sound_adpcm.r2
-rw-r--r--AT91SAM7S256/Source/stdconst.h3
4 files changed, 8 insertions, 0 deletions
diff --git a/AT91SAM7S256/Source/d_lowspeed.r b/AT91SAM7S256/Source/d_lowspeed.r
index 4b3b8ba..03826ea 100644
--- a/AT91SAM7S256/Source/d_lowspeed.r
+++ b/AT91SAM7S256/Source/d_lowspeed.r
@@ -56,7 +56,9 @@ typedef struct
static LOWSPEEDPARAMETERS LowSpeedData[4];
+__ramdata
ULONG DATA_PINS[4] = {CHANNEL_ONE_DATA, CHANNEL_TWO_DATA, CHANNEL_THREE_DATA, CHANNEL_FOUR_DATA};
+__ramdata
ULONG CLK_PINS[4] = {CHANNEL_ONE_CLK, CHANNEL_TWO_CLK, CHANNEL_THREE_CLK, CHANNEL_FOUR_CLK};
#define LOWSPEED_CHANNEL1 0
diff --git a/AT91SAM7S256/Source/d_sound.r b/AT91SAM7S256/Source/d_sound.r
index 01a3353..4851253 100644
--- a/AT91SAM7S256/Source/d_sound.r
+++ b/AT91SAM7S256/Source/d_sound.r
@@ -94,6 +94,7 @@ const SAMPLEWORD TonePattern[SOUNDVOLUMESTEPS + 1][SAMPLETONENO] =
}
};
+__ramdata
UBYTE FractionPattern[SAMPLEWORDS] =
{
0x00, // 0 -> 00000000
diff --git a/AT91SAM7S256/Source/d_sound_adpcm.r b/AT91SAM7S256/Source/d_sound_adpcm.r
index 2feff3b..f04a760 100644
--- a/AT91SAM7S256/Source/d_sound_adpcm.r
+++ b/AT91SAM7S256/Source/d_sound_adpcm.r
@@ -47,12 +47,14 @@
#ifdef SAM7S256
+__ramdata
static SWORD IndexTable[16] =
{
-1, -1, -1, -1, 2, 4, 6, 8,
-1, -1, -1, -1, 2, 4, 6, 8,
};
+__ramdata
static SWORD StepsizeTable[89] =
{
7, 8, 9, 10, 11, 12, 13, 14, 16, 17,
diff --git a/AT91SAM7S256/Source/stdconst.h b/AT91SAM7S256/Source/stdconst.h
index 07ffd87..bf8f052 100644
--- a/AT91SAM7S256/Source/stdconst.h
+++ b/AT91SAM7S256/Source/stdconst.h
@@ -64,6 +64,9 @@ typedef char* PSZ;
#ifdef __GNUC__
#define __ramfunc __attribute__ ((section (".fastrun"), optimize ("no-jump-tables")))
+#define __ramdata __attribute__ ((section (".data")))
+#else
+#define __ramdata
#endif
#endif