Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Zuweisung von Kernelspeicher
Der RTOS Kernel benötigt RAM jedes Mal, wenn eine Aufgabe, eine Warteschlange oder ein anderes RTOS Objekt erstellt wird. Das RAM kann zugewiesen werden:
-
Statisch zur Kompilierungszeit
-
Dynamisch aus dem RTOS Heap durch die Funktionen zur RTOS API Objekterstellung.
Wenn RTOS Objekte dynamisch erstellt werden, ist die Verwendung der Standard-C-Bibliothek malloc()
und der free()
Funktionen aus einer Reihe von Gründen nicht immer angemessen:
-
Sie sind möglicherweise auf Embedded-Systemen nicht verfügbar
-
Sie beanspruchen wertvollen Code-Speicherplatz
-
Sie sind in der Regel nicht Thread-sicher
-
Sie sind nicht deterministisch
Aus diesen Gründen RTOS behält Free die Speicherzuweisung API in seiner portablen Schicht bei. Die portable Schicht befindet sich außerhalb der Quelldateien, die die RTOS Kernfunktionen implementieren, sodass Sie eine anwendungsspezifische Implementierung bereitstellen können, die für das Echtzeitsystem, das Sie entwickeln, geeignet ist. Wenn der RTOS Kernel es benötigtRAM, ruft er pvPortMalloc()
statt malloc()
() auf. Wenn freigegeben RAM wird, ruft der RTOS Kernel vPortFree()
statt von auffree()
.