BasCom /Compiler


Da jeder Computer immer nur sein Instruktionset beherrscht, das für den direkten Gebrauch doch recht mühsam ist, braucht man einen Compiler, dem man in lesbarer Form seine Wünsche mitteilt, und der daraus dann den eigentlich lauffähigen Programmcode generiert.
Die bekannte Minimalform ist der Assembler, der die Instruktionen üblicherweise 1:1 übersetzt und lediglich bei den Parametern eine gewisse Symbolik zuläßt.
Je mehr sich nun die Source vom Assemblerformat unterscheidet, desto höher bezeichnet man den Level des Compilers. Im Extremfall, bei nicht-prozeduralen Sprachen, ist auch der letztliche Programmablauf , d.h. die Reihenfolge, wann was genau geschieht, nicht mehr Teil der Formulierungen.
Der Compiler selbst ist in den meisten Fällen nur ein Teil einer Workbench /Oberfläche, die auch das ganze Drumherum der Programmerstellung (Include-Files, Libraries, Linker etc.) mehr oder weniger handsam anbietet.

Betriebs-System
Das, was bei PC’s als Firmware/ BIOS/Betriebssystem üblich ist, gibt es bei Mikrokontrollern meist nicht einmal in Ansätzen. Also löst jeder (höhere) Compiler die Grundprobleme auf seine Weise. Das sind Funktionsaufrufe mit Parameter-Übergabe, lokale Daten und reentrante Unterprogramme.

AVR
Die hier angeführten Beispiele setzen Kenntnisse über das Instruction-Set des AVR voraus, zumindest tut man sich leichter. Die genaue Architektur des ATMEL-Controllers bitte ich, dem Datasheet zu entnehmen.