mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega & splint


Autor: tkl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe nach langer Zeit 'mal wieder mein atmega162 bord hervorgehohlt, 
um etwas damit herumzuspielen. Als ich versucht habe splint über meinen 
code laufen zu lassen, wurden alle Registermakros als not defined 
angenörgelt. Das macht auch halbwegs sinn, da die Registerdefinitionen 
ja über "MCU=atmega162" im Makefile und dann über das avr/io.h include 
und vor allem über die implizite definition von 
"__AVR_ATmega162__"gemacht werden und splint diese Abhängigkeit somit 
nicht erkennt.
Hat jemand eine gute Idee, wie ich splint die Registerdefinitionen 
mitteilen kann?

gr. tkl

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man splint sagt u.a.:
...
       Pre-processor

       These  flags  are  used  to  define  or  undefine  pre-processor constants.  The
       -I<directory> flag is also passed to the C pre-processor.

       -D initializer
             Passed to the C pre-processor.
...

Autor: tkl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, du meinst, das ich splint einfach -D__AVR_ATmega162__ übergebe? das 
wird sicherlich funktionieren, dann definiere ich im Makefile jedoch den 
Prozessor 2 mal (einmal mit MCU=atmega162 und ein zweited mal mit 
...-D__AVR_ATmega162__). lässt sich diese Doppelung nicht umgehen?

gr. tkl

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tkl schrieb:
> lässt sich diese Doppelung nicht umgehen?

Ich wüsste nicht, wie.

Die Umsetzung von -mmcu=atmega162 zu einem impliziten 
-D__AVR_ATmega162__ passiert ja irgendwie im gcc.

Davon kann splint ja nichts wissen.

Je nachdem, wie man splint aufruft, kann man da vielleicht etwas 
basteln, z.B. im Makefile.

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.