Forum: Mikrocontroller und Digitale Elektronik Wie funktioniert die Programmumwandlung?


von Mario Mauerer (Gast)


Lesenswert?

Hallo zusammen,
ich habe eine allgemeine Frage:

Ich programmiere ja mit Bascom Basic.
Was passiert jetzt, wenn ich auf "compilieren" klicke? Wandelt er
meinen Code in Assembler oder in Maschinencode um? Was ist der
Unterschied von Assembler und Maschinencode? Was gelangt über die
ISP-Schnittstelle zum Controller?
Wie funktioniert das alles?

Herzliche Grüsse
Mario

von Dirk (Gast)


Lesenswert?

Hallo,

beim compiliren passieren mehrere sachen. in der reinfolge schaut das
in etwa so aus:

1. läuft ein precompiler, der bindet extern benutzten quelltext mit ein
und bearbeitet precompilerderektiven z.b. ersetzt er constantennamen
durch ihren wert. er filtert auch unnötige sachen herraus wie komentare
herraus.
2. jetzt kommt der compiler, der verarbeitet den mundgerechten
quelltext des precompilers und übersetzt ihn in einen maschinencode der
aber noch nicht lauffähig ist.
3. danach kommt der linker, der fügt die biblotheken hinzu die im
quelltext benutzt werden und baut daraus ein lauffähiges programm,
welche dann im fall AVR meist im Intel-hex format gespeichert werden.
4. diese Intel-hex datei wird dann mit einen entsprechenden programm in
den AVR übertragen wo er dann meist auch lauffähig ist :-)

Assembler - Maschinecode

Assembler ist eine Symbolsprache für Maschinensprache, da
maschinenspracheprogramme nur aus 0 und 1 besteht und für den menschen
so schwer lesbar wären. Hier benutzt man greifbare namen für eine
bitfolge die den maschinenbefehl darstellt.

von Läubi (Gast)


Lesenswert?

Also im Allgemeine sagt man es folgendermassen:

* Preprocessor (der ersezt eventuelle Variablendefinitionen, included
files und so, halt alles was Compilerspezifisch möglich ist)
* Umsetzung in Assemblercode
* Übersetzen des Assembelrcodes in Objectcode (also 0 und 1)
* generieung des Ausführbaren Codes (also eventuelle Header o.ä.)

In den  Controlelr kommt dann das "Programm" in Anführungszeichen
deswegen weil man im Prinzip jeden beliebigen Bytecode in den Prozessor
schreiben kann das wird nicht überprüft oder so.

Der µC interpretiert dann den Code und führt die entsprechenden Befehle
aus.

Ist jezt nur einfach beschrieben aber im Prinzip passiert genau das

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.