24.11.2012 Aufrufe

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Diplomarbeit</strong>: Modulares System Anhang<br />

unsigned char Init_VM (tVM_Struct *VM)<br />

{<br />

unsigned char uc;<br />

const rom char *codePtr;<br />

unsigned int ui, ui1, ui2, ui3;<br />

unsigned long uli;<br />

VM->pCodeFile = VM_CODE;<br />

uc=CheckCodeFileVersion(VM->pCodeFile);<br />

if(uc) return(uc);<br />

VM->VM_StackSize = _VM_StackSize;<br />

VM->VM_StackPtr = 0;<br />

VM->VM_Stack = VM_Stack;<br />

VM->Flags = DebugFlag;<br />

}<br />

VM->pProzedure = VM->pCodeFile + 8; // Pointer auf erste Prozedur<br />

codePtr = VM->pProzedure;<br />

VM_ReadLong (VM->pCodeFile + 4,(long*)&uli);<br />

if(uli & 0xFFFF0000L) return(ERROR_READ_PROCHEADER);<br />

VM->ProcCount = (unsigned int)uli;<br />

for(ui=0; ui < VM->ProcCount; ui++) {<br />

if(!ScanProcHeader(codePtr,&ui1,&ui2,&ui3)) codePtr += ui2;<br />

else return(ERROR_READ_PROCHEADER);<br />

}<br />

VM->pConstant = codePtr + ui2; // Start Konstantenarea<br />

VM->pCodeFile = codePtr; // Start Hauptprozedur<br />

VM->ProcCount = 0; // Aktuelle Prozedur<br />

return(OK);<br />

Abbildung A.7 - Initialisierungsteil der Virtuellen Maschine auf dem Controller<br />

26.07.2004 Seite 78 von 85

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!