mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Quellcode aufteilen


Autor: Torsten O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
G' Morgen, ich hab' da mal eine simple Frage zum AVR-Studio. Lässt sich 
der Assemblercode auf mehrere Dateien aufteilen? Also ähnlich wie die 
"units" bei Delphi?

lg Torsten

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in C gehts. Du musst leidiglich zu jeder Quellcode-Datei eine 
Header-Datei schreiben und die dann in den anderen einbinden, falls du 
deren Funktionen nutzen willst.
Bei ASM weiss ichs nicht

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
über

.include "m8def.inc"

Kannst du einen externe Datei einbinden...

Autor: Torsten O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also kann ich in der Datei "m8def.inc" zusätzlich Assemblercode 
hinterlegen?

lg Torsten

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die wird dann vor dem Assemblieren eingefügt.

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man kann beliebig viele include Dateien einfügen.

Autor: Torsten O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, vielen Dank.

lg Torsten

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dabei ist zu beachten, dass ein "include" im wesentlichen einem 
Copy-Paste entspricht. Der Inhalt der angegebenen Datei wird an die 
Stelle des includes kopiert.

Eine Aufteilung im Sinne von separaten Compilier/Assemblier-Einheiten 
ist das noch nicht. Sonst würde dann ja auch ein Linker benötigt.

Autor: Hmm... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise werden getrennte "Module" auch getrennt assembliert bzw. 
kompiliert. Daraus entstehen sogenannte Objekt-Dateien welche der Linker 
dann zu einer vollständigen Binärdatei zusammen baut.

Der beim AVR-Studio V4.12 (und vermutlich auch im aktuellen V4.15) 
mitgelieferte Assembler unterstützte allerdings nicht das assemblieren 
in getrennte Objektmodule. Eine Aufteilung wie bei der klassischen 
C-Programmierung ist also nicht möglich.

Allerdings kann man über die 'include'-Direktive auch andere 
Quelldateien direkt in die Hauptdatei einbinden. Für den Assembler wirkt 
das dann wie per Copy&Paste reinkopierter Code. Er 'sieht' also nicht 
die einzelnen Dateien sondern nur eine einzige, riesige Datei mit 
Quellcode.

Historisch war so etwas eher von Nachteil da ja bei jeder noch so 
kleinen Änderung der gesamte Code neu assembliert werden musste, was auf 
den älteren Entwicklersystemen durchaus mal eine Kaffeepause bedeuten 
konnte.

Heute dürften reine Assembler-Projekte (für die AVRASM2 ja gedacht ist) 
kaum noch eine Größe erreichen, bei der man eine spürbare Zeit auf den 
Assembler warten muss.

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.