Gast
#6474459
Hallo zusammen, ich bin leider etwas verwirrt bezüglich der RAM Ausnutzung mit FreeRTOS und der Konfiguration im CubeMX. Ich habe 8kb RAM auf meinem Controller. Nun gibt es zwei Stellen an der der Heap Size und Stack Size definiert wird. Aber was genau definiert man da? Ich habe FreeRTOS. Unter dessen Konfiguration gibt es den TOTAL_HEAP_SIZE. Darunter fallen nach meinem Verständnis alle Tasks / Semaphoren etc. Und dann gibt es aber noch unter Project Manager bei Linker Settings den Minimum Heap Size und den Minimum Stack Size. Die beiden Werte werden als hex angegeben, aber welche Einheit definiere ich da? Also 0x100 ist dann 256 Byte? Ist es jetzt so, dass die Gesamt-RAM-Ausnutzung folgendermaßen ist?: TOTAL_HEAP_SIZE (FreeRTOS) + Minimum Heap Size + Minimum Stack Size !< 8kb Die zweite konkrete Frage ist nun, was im Code unter die einzelnen Bereiche fällt? Zum Beispiel:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
Fallen die im Task definierten Variablen jetzt unter dem Stack des Tasks und damit unter TOTAL_HEAP_SIZE (FreeRTOS)? Beispiel 2 Globale Variablen: Globale Variablen, welche über der Main definiert werden und von allen Tasks genutzt werden. Fallen die dann unter Minimum Stack Size außerhalb vom FreeRTOS? Also wenn ein Task nur globale Variablen nutzt, könnte sein Task Stack Size minimal sein? Danke, dass jemand mich erleuchtet :-) Niine