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
man splint sagt u.a.:
1 | ... |
2 | Pre-processor |
3 | |
4 | These flags are used to define or undefine pre-processor constants. The |
5 | -I<directory> flag is also passed to the C pre-processor. |
6 | |
7 | -D initializer |
8 | Passed to the C pre-processor. |
9 | ... |
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
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.
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.