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
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
Also kann ich in der Datei "m8def.inc" zusätzlich Assemblercode hinterlegen? lg Torsten
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.