newbie questions about the stack and the stack size

Hi

I have a few questions about the stack size (LPC2200 controller).

E.g. in my programm is a main function with an array

short example[16][500];


16 * 500 * 4 (short) = 3,9 kByte

In which value will I find this array in the calculation when I rebuild all files (code, RO-data, RW-data, Zi-data)?

Moreover is it true, that the stack size will be configurated in the startup file? And the default value is 0x400 for the user stack - so I would need a much bigger value for the user stack?

After a few minutes I saw the map file where I figured out that the stack is growing from a low base.

In my case at the beginning of the internal ram there's a libspace (atmel-lib and string.h) and after that there's the heap (size = 0) and the stack size...

Is it ok, to increase the stack size up to the highest addr from the internal RAM?

best regards
Albert

Parents
  • Why do you assume that short is four bytes large? Have you verified or somehow a strong reason to believe that?

    How do you declare a 16-bit variable?

    Your global variables will either be initialized (if they assign an initial value) or zero-filled. If you want a variable to keep its contents after a reboot, you have to read up on the linker.

    Doesn't the startup file tell you the size of the user stack?

Reply
  • Why do you assume that short is four bytes large? Have you verified or somehow a strong reason to believe that?

    How do you declare a 16-bit variable?

    Your global variables will either be initialized (if they assign an initial value) or zero-filled. If you want a variable to keep its contents after a reboot, you have to read up on the linker.

    Doesn't the startup file tell you the size of the user stack?

Children
More questions in this forum