From 5b74fd2352297c6f97042b42b946f04c3d55ba11 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 13 Jul 2010 00:46:25 +0200 Subject: 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. --- AT91SAM7S256/Source/d_lowspeed.r | 2 ++ AT91SAM7S256/Source/d_sound.r | 1 + AT91SAM7S256/Source/d_sound_adpcm.r | 2 ++ AT91SAM7S256/Source/stdconst.h | 3 +++ 4 files changed, 8 insertions(+) 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 -- cgit v1.2.3