Code::Blocks mit avr-libc -> Symbols-Browser / Code-completion

Gast #1954305
Lesenswert?
• ▲
▼
Hallo zusammen,

ich verwende zur Programmierung von AVRs Code::Blocks unter Ubuntu und 
suche nach einer Lösung, die Code-Komplettierung in gescheiter Form zum 
Laufen zu bringen.

Dazu gibt es in CodeBlocks den Symbols-Browser, der je nach 
Einstellungen und includes vollgestopft wird (und aus dem bedient sich 
dann die Code-Komplettierungs-Funktion). Erklärt am Beispiel eines 
ATmega644 ist das Problem, dass Codeblocks bei einem include von 
<avr/io.h> nicht alle defines zum mega644 findet. Es werden also 
beispielsweise die defines für PORTD gefunden, nicht aber PORTA und 
PORTB.

Ich vermute, das liegt an der ifndef-Abfrage in der io.h (s.u.), denn 
wenn ich die <avr/iom644.h> inkludiere, funktioniert es. Codeblocks 
merkt also anscheinend nicht, dass ich den mega644 verwende (wie soll es 
da auch von Allein drauf kommen, wenn das erst über den 
Übergabeparameter beim Kompilieren geregelt wird?) und übernimmt nur ein 
paar allgemeine includes aus der io.h in den Symbols-Browser. Allerdings 
wird in der io.h explizit empfohlen, dass man das nicht so machen soll, 
sondern dass man eben die io.h verwenden soll.

Das sind die Zeiles des Begehrens in der io.h:
1
#elif defined (__AVR_ATmega644__) || defined (__AVR_ATmega644A__)
2
#  include <avr/iom644.h>

Dann liegt ja schon fast nahe, in der main.c vor das include der io.h 
einfach zu schreiben:
1
#define __AVR_ATmega644__
Aber abgesehen davon, dass es Code::Blocks dann immer noch nicht 
begreift, wäre das ja genau so schmutzig wie die iom644.h zu 
inkludieren.

Daher suche ich eine Lösung, die nicht den Empfehlungen widerspricht.

Grüße,
Andreas

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.