This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

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?

    Yes you're right. 4 Bytes is one integer and 2 Bytes is one short variable....

    I fill the array with default values using an for-loop (during the main function).

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

    Yes but it seems to me that it is only a default value. But is it ok to increase this value up to the internal RAM?

    best regards
    Albert

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?

    Yes you're right. 4 Bytes is one integer and 2 Bytes is one short variable....

    I fill the array with default values using an for-loop (during the main function).

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

    Yes but it seems to me that it is only a default value. But is it ok to increase this value up to the internal RAM?

    best regards
    Albert

Children
No data