pC/MEM



Oftmals ist eine aufwendige Speicherverwaltung nicht erforderlich, die z.B. auf Grund von Verkettungen repariert werden kann. In diesem Fall reicht eine einfache Speicherverwaltung mit einem Minimum an Overhead von Verwaltungs-informationen aus. Der hier vorgestellte Heap-Manager benötigt bei der Verwaltung von ≥64kB 3bytes und bis 4GB 5bytes Overhead je Eintrag. Desweiteren kann er RAM und EE-PROM parallel verwalten und stellt für den EE-PROM Speicher über das Port HW-unabhängige Zugriffswerkzeuge zur Verfügung.

Speicherbedarf des pC/MEM V1.30a:

ROM: ca. 3 kByte (ohne MEM_Resize ca. 1kByte)
RAM: ca. 1 Byte je User (für MEM_GetErrno)


Es sind aber derzeit keine MMU Mechanismen hinterlegt. Dazu wären weitere MMU-abhängige Daten je Eintrag notwendig.


pCMEM_130a.zip
Sorry, auf Grund von Überschneidungen mit meinem Job kann ich diese Sourcen nicht zugänglich machen !


Releases:

1.00a

erste alpa-Release

1.04b

Kleine Korrekturen in MEM_Init. Komplette Code-Optimierung und Anpassungen für die Portierbarkeit.

1.10a

MEM_GetErrNo implementiert. Kleine Korrektur in MEM_Resize.

1.20c

MEM_CleanUp implementiert und Integration der notwendigen Taskregistrierung in die Einträge.

1.30a

Komplettes Update zu U08..U32 Typen.
Bessere Portabilität für RTOS-lose Verwendung implementiert.



Dienste des pC/MEM Version 1.30a (Kurzform)
Die hier aufgeführte Funktionsübersicht dient einzig als Kurzübersicht.
Für detailierte Informationen sehen Sie bitte in Referenz-Manual zu pC/MEM nach.


Memory-Manager:

MEM_Init

Initialisierung des Heap-Managers

MEM_Alloc

Allokieren von Speicher

MEM_Free

Freigeben eines allokierten Speichers

MEM_Resize

Größe von allokiertem Speicher ändern

Heap_Write_EE

auf allokiertem EEPROM-Heap schreiben

Heap_Fill_EE

allokierten EEPROM-Heap füllen

optional

MEM_CleanUp

Freigeben aller von einen Task allokiertem Speicherelemente



Error-Codes:

Name

Decimal_Value

MEM_NO_ERR

0

MEM_WR_PTR

120

MEM_OVF

121

MEM_ERR

122




Types of Memory:

Name

HEX_Value

MEM_RAM

0x00

MEM_EE

0x01