Forum: Mikrocontroller und Digitale Elektronik defines fuer AVR-Assembler


von Matthias Weisser (Gast)


Lesenswert?

Hallo,

seit einer Weile programmiere ich mit Assembler
in Verbindung mit dem AVR-Studio und bin recht
zufrieden.

Eine Sache stört mich aber. Gerne würde ich
auch verschiedene Software-Varianten in ein
und demselben Grundcode verwalten können.

Es ist ungünstig für jede Variante eine neue
Datei anlegen zu müssen. Bei entdeckten Fehlern
und Verbesserungen sind so immer parallel alle
Fassungen mitzuziehen, was erhebliche Probleme
macht, wenn man hier nicht genau vorgeht.

In C nutzt man #defines, die es aber leider beim
AVR-Assembler nicht gab. Oder habe ich da was
übersehen.

Wie realisiere ich nun diese unterschiedlichen
Stände in einer Datei? Gibt es da etwas?

von mikki merten (Gast)


Lesenswert?

Für die #defines gibts es als Alternative im AVR Assembler das .equ
Leider kann die Atmel Variante noch immer kein
If - then - else

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Es sollte doch kein Problem sein die Assembler-Dateien einfach durch den 
cpp zu jagen? Könnte aber sein dass das AVR-Studio beim Simulieren dann 
nicht die richtige Zeile findet...

von Matthias Weisser (Gast)


Lesenswert?

ich habe natuerlich die #ifdef -Anweisung gemeint.
Die bräuchte ich.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wie schon gesagt, probier doch mal den C-Präprozessor "cpp" aus und 
schau ob das AVR-Studio damit klarkommt.

von Matthias Weisser (Gast)


Lesenswert?

Danke Andreas für die Anregung:
Ich habe den cpp aus dem GNU mal drüberlaufen
lassen. Es gibt es paar Meldungen und die
Formatierung ändert sich ziemlich.

Dummerweise lässt der cpp neben der Auflösung
der #ifdef Kommentare in der Art #Zeilennummer
im Code zurück.

So ganz einfach wird es also wohl nicht gehen.
Einen Schalter, wie man das loswerden kann habe
ich nicht entdeckt.

So müsste ich ein kleines Programm schreiben, um
das wieder loszuwerden?

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.