Forum: Mikrocontroller und Digitale Elektronik Quellcode aufteilen


von Torsten O. (Gast)


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

von Roland (Gast)


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

von ... .. (docean) Benutzerseite


Lesenswert?

über

.include "m8def.inc"

Kannst du einen externe Datei einbinden...

von Torsten O. (Gast)


Lesenswert?

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

lg Torsten

von Tom (Gast)


Lesenswert?

Ja, die wird dann vor dem Assemblieren eingefügt.

von mmerten (Gast)


Lesenswert?

man kann beliebig viele include Dateien einfügen.

von Torsten O. (Gast)


Lesenswert?

Okay, vielen Dank.

lg Torsten

von Martin K. (mkohler)


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.

von Hmm... (Gast)


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.

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.