Greetings all,

I have interesting problem...
Yesterday I ran very low on stack and found that I was using much more
memory than I expected.

Each file in my project declares variables as follows:

static unsigned char MY_variable;

What I found in the output of msp430-nm and msp430-objdump was that
MY_variable was allocated to an even address and consumed 2 bytes of RAM.

When I remove static, which is there to protect it from other modules
getting at it with "extern" as follows:
unsigned char MY_variable;

I found that the variable was allocated only a single byte of RAM and
allocated to an odd or even address.

Why is this the case?
Are there more effects of this static usage than simply scoping?
Does this apply to all gcc ports, not just msp430?

Thanks,

James







Reply via email to