www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Code::Blocks mit avr-libc -> Symbols-Browser / Code-completion


Autor: Andreas K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
#elif defined (__AVR_ATmega644__) || defined (__AVR_ATmega644A__)
#  include <avr/iom644.h>

Dann liegt ja schon fast nahe, in der main.c vor das include der io.h 
einfach zu schreiben:
#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

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.