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.
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. |
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 |