Hallo, ich möchte eine bestehende IAR-Assembler-Datei der Übersichtlichkeit halber auf mehrere Dateien aufteilen. Wie mache ich die ausgelagerten Funktionen im Hauptprogramm bekannt, bzw. auch die globalen Variablen aus dem Hauptprogramm in den ausgelagerten Funktionen ? Hat jemand Beispiel-Code (Ausschnitte reichen) ? Ich benutze die Entwicklungsumgebung des IAR-Assemblers für die MSP430-Prozessoren. Der IAR-Assembler ist miserabel dokumentiert (a430.pdf), kennt jemand ev. ein besseres Tutorial ?
Wieso nicht einfach die Datei aufteilen und dann mit .include "..." die ausgelagerten Teile einbinden?
Ist ein typisches C-Anfängerproblem. Ich hatte auch mal so gedacht: mache nur die neuen Teile in C und füge alles alte Asemblerzeugs hinzu. Nachdem ich aber gemerkt habe, wie fehleranfällig, unflexibel, unportabel und aufwendig sowas ist, bin ich sehr schnell dazu übergegegangen, alles in C zu schreiben, solange man in dem alten Assemblerzeugs noch durchblickt und dessen Funktionalität noch im Kopf hat. Eine gute Möglichkeit, Assembler in C unterzumengen ist, man schreibt einen C-Rumpf, der die Funktionen und die Variablen definiert und läßt das nach Assembler übersetzen und fügt dann dort den Assembler ein. Peter
Wollte ein existierendes und gut funktionierendes Assembler-Projekt nur auf mehrere Dateien aufteilen, um das ganze besser pflegen und kleinere Veränderungen vornehmen zu können. Die Codegrösse ist ohne Debug-Infos schon jetzt knapp am Limit des MSP430F1121 mit 4 kB. Der Prozessor sollte dafür aber auch weiterhin eingesetzt werden können. Die Lösung einer Aufteilung mit dem Einbinden über include-Anweisungen hat nicht geklappt (wg. Codegrösse, evtl auch andere Probleme) Nach dem Prinzip Versuch und Irrtum (die Doku für den IAR Assembler die ich habe - a430.pdf kann man total vergessen), hat sich jetzt diese Lösung (Anlage) als praktikabel erwiesen.
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.