mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie funktioniert die Programmumwandlung?


Autor: Mario Mauerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.