Ich arbeite an einer benutzerdefinierten Platine mit dem STM32F107VCT-Prozessor. Ich verwende FreeRTOS & lwIPSTM32 FreeRTOS lwIP Heap/Stack/Speicherverwaltung
Ich benutze tinyxml2 Bibliothek und Lesen/Schreiben in ein EEPROM und läuft in seltsame Korruptionsprobleme und Abstürze. Ich vermute, dass mir die Erinnerung ausgeht. Ich bin ziemlich neu eingebettete Electornics und FreeRTOS, bin also unsicher, wo ich hinschauen sollte.
erstelle ich ein paar Themen wie so:
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 512);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
osThreadDef(RfTask, StartRfTask, osPriorityNormal, 0, 700);
RfTaskHandle = osThreadCreate(osThread(RfTask), NULL);
osThreadDef(DiscoveryTask, StartDiscoveryTask, osPriorityNormal, 0, 256);
DisoveryTaskHandle = osThreadCreate(osThread(DiscoveryTask), NULL);
zu Haufen im Zusammenhang einige meiner definiert Hier sind/
FreeRTOS.h
define configTOTAL_HEAP_SIZE ((size_t)1024*24)
Flash.id
_estack = 0x20010000; /* end of RAM */
_Min_Heap_Size = 0; /* required amount of heap */
_Min_Stack_Size = 0x200; /* required amount of stack */
ich in meinem Kopf folgenden genau bin nicht wirklich stapeln, was Heap/Stack Theorie ist, und wie es sich auf die Zahlen in flash.id und FreeRTOS.h bezieht
Könnte mir jemand bitte eine Erklärung anbieten, wie das alles funktioniert, und alle Methoden, um die Menge zu überprüfen RAM verfügbar für die Aufgaben usw.?
Ich kann meinen Code auf Gitlab teilen, wenn
erforderlichVielen Dank