Hi Robert,
When I try exactly what you describe it compiles OK on my machine. Can
you give more information? What is the platform you are using? Which
version of mspgcc?
Regards,
Steve
Robert Spanton wrote:
Hi,
I'm having some trouble with using static and non-static global variables.
I've cut down the source to the smallest amount that I can whilst
still having the error. I have two C files:
*** time.c ***
unsigned long int the_time = 0;
unsigned long int time_get( void )
{
return the_time;
}
*** main.c ***
static unsigned char count = 0;
int main( void )
{
}
***
If I compile them with the command:
% msp430-gcc -o main main.c time.c -mmcu=msp430x169
I get the following output:
/tmp/ccAOuihe.o(.text+0x6): In function `time_get':
: internal error: unsupported relocation error
/tmp/ccAOuihe.o(.text+0xa): In function `time_get':
: internal error: unsupported relocation error
I have noted two more things that may be relevant:
1) If I compile the two files as separate object files then link them,
then there is no error. However, I think this is undesirable because it
will affect the optimisation that I get.
2) If I remove "static" from main.c, then it works with no errors. I've
actually moved that variable from an interrupt handler which had it as a
static variable.
Can anyone shed any light on what's happening? I'm using the "cdk4msp"
rpms, which report to be verion 3.3.2. Would this problem be solved if I
used a later version of the compiler?