Method and system for efficiently reducing the RAM footprint of software executing on an embedded computer system

A method and system for efficiently managing the contents of a volatile memory and a non volatile memory used by an embedded computer system in order to reduce the amount of volatile memory required by the embedded computer system for operation. The embedded computer system includes a processor coup...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: ANDERSON ERIC, SURINE JAMES W
Format: Patent
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:A method and system for efficiently managing the contents of a volatile memory and a non volatile memory used by an embedded computer system in order to reduce the amount of volatile memory required by the embedded computer system for operation. The embedded computer system includes a processor coupled to the volatile and non-volatile memories via a bus. The volatile and non volatile memories store computer readable software for execution by the embedded computer system. When executed, the software causes the embedded computer system to implement the method for efficiently managing the contents of the volatile and non-volatile memories. At power-up, boot code stored in the non-volatile memory is executed and begins instantiating the initial operating environment of the embedded computer system. A function pointer table is instantiated in the volatile memory, wherein the function pointer table includes a plurality of entries for a corresponding plurality of instantiated functions, wherein at least one entry is for operating system code stored in the non-volatile memory. At least one high-use function is decompressed out of the non-volatile memory and instantiated in volatile memory. The function pointer table is updated using a patch manager to incorporate an entry for the high-use function(s). The operating system code is executed from the non-volatile memory while the high-use function is executed from the volatile memory. In so doing, an amount of volatile memory required by the embedded computer system is reduced while retaining a speed benefit conferred by executing software from the volatile memory.