Hallo zusammen,
ich hab eine Frage zur Berechnung des benötigten Stacks in CoOS.
(http://www.coocox.org/CoOS.htm)
Im CooCox CoOS User's Guide (Revision 1.1,
http://www.coocox.org/downloadfile/CoOS/PDF/CooCox_CoOS_User_Guide.pdf)
wird leider kaum auf die Berechnung der Stackgröße eingegangen.
Im Beispiel (Seite 5, User`s Guide) steht:
1 | OS_STK taskA_stk[128]; /*!< define "taskA" task stack */
|
2 | OS_STK taskB_stk[128]; /*!< define "taskB" task stack */
|
3 | OS_STK led_stk [128]; /*!< define "led" task stack */
|
4 |
|
5 | //Zur Info:
|
6 | //typedef unsigned int OS_STK;
|
Auf der Seite 13 im User´s Guide steht lediglich, dass
alle 16 CPU-Register (32-bit breit, entspricht 4Byte * 16 = 64 Byte = 2
unsigned int) gesichert werden und und 4 Bytes (unsigned long) für die
Erkennung eines StackOverflow sind.
Da sind also, nach meiner Rechnung, lediglich 3 Elemente eines jeden
Arrays von oben belegt.
Habe ich einen Denkfehler und wozu wird der Stack so groß angegeben?
Wo werden lokale Variablen abgelegt?
Danke fürs erleuchten ;-)