Microchip Studio - Schlüsselwörter werden nicht erkannt

OP #6823735
Lesenswert?

Hallo zusammen

Ich habe mir heute Microchip Studio zusammen mit deren xc8 Compiler 
installiert. Ich möchte für den Atxmega128A3U entwickeln.

Habe nun ein neues Projekt erstellt und bereits Probleme.
1
PORTA.DIR = 0x00;

Dabei wird PORTA nicht erkannt.
Wenn ich auf xc.h gehe und dort versuche die <avr/io.h> mittels "Go to 
implementation" aufzurufen, geschieht einfach nichts.

Kompilieren kann ich das ganze aber ohne Probleme.
In den Einstellungen des Projekts sind die korrekten Pfade verlinkt.
Ein separates hinzufügen under "Directories" hat nichts gebracht.

Hat jemand eine Idee?

Danke schonmal.
Angehängte Dateien:
Gast #6823754
Lesenswert?

Dieses Verhalten kenn ich von MPLABX. Oftmals ist nach dem Aufstart 
alles Proz-Typische rot unterstrichen. Auch bei altbekannten Teilen. 
Irgendwann löst dann ein Hintergrundprozess dieses optische Problem. 
Oder oftmals direkt nach dem Kompilieren. Wenn dann noch nicht, dann 
niemals. Schnief.

Ob da bei Netbeans und Microsoft die gleiche Funktion dahintersteckt?
OP #6823762
Lesenswert?

Danke für deine Antwort.
Es läuft hier kein Netbeans. Es ist VisualStudio integriert.

Habe inzwischen weiter geforscht.
Wenn ich das entsprechende io file direkt inkludieren (siehe bild), dann 
funktioniert intellisense auch nach dem entfernen des includes.

Echt zum kotzen...

Da das entsprechende io-file wird über den <xc.h> include includiert.
Dort steht dann:
1
#ifndef _XC_H
2
#define _XC_H
3

4
/* include CCI features.  */
5
#include <cci.h>
6

7
/* include device header file.  */
8
#include <avr/io.h>
9

10
/* define ei and di macros to enable/ disable interrupt respectively.  */
11
#ifndef ei
12
#define ei()  __asm__ __volatile__ ("sei" ::: "memory")
13
#endif
14

15
#ifndef di
16
#define di()  __asm__ __volatile__ ("cli" ::: "memory")
17
#endif
18

19
#endif


Da hab ich mir gedacht, gut, evtl. fehlt ja die Chip-Definition.
Also habe ich das Symbol manuell hinzugefügt (siehe bild).

Hat leider auch nichts gebracht.
Angehängte Dateien:
Gast #6823763
Lesenswert?

Eventuell musst ein Symbol mit dem Typ des Mikrocontrollers einstellen.

Vergleiche mit http://stefanfrings.de/avr_tools/index.html#ide
und
http://stefanfrings.de/avr_tools/index.html#eclipse

Da zeige ich das für den ATtiny2313, das Symbol heißt
1
__AVR_ATtiny2313__
Der avr-gcc Compiler braucht das nicht, weil er das Symbol automatisch 
entsprechend dem MCU Parameter setzt. Aber die IDE braucht es, weil die 
Header Dateien (wo die gesuchten Register definiert sind) bedingte 
Abschnitte enthalten, die davon abhängen.
Gast #6824009
Lesenswert?

Anscheinend sind das allerdings Optionen für den Compiler-Aufruf. Für 
den Editor (eventuell Stichwort "Code Assistence") gibt es vielleicht 
noch woanders was.

Die angehängte Bildschirmfotos sind von der Eclipse basierten STM32 Cube 
IDE. Da gibt es 2 weitere relevanten Dialoge außerhalb des "C/C++ Build" 
Bereiches. Vermutlich hast du etwas ähnliches in deiner IDE.
Gast #6824118
Lesenswert?

C. H. schrieb:

> Dabei wird PORTA nicht erkannt.
> Wenn ich auf xc.h gehe und dort versuche die <avr/io.h> mittels "Go to
> implementation" aufzurufen, geschieht einfach nichts.
>
> Kompilieren kann ich das ganze aber ohne Probleme.
> In den Einstellungen des Projekts sind die korrekten Pfade verlinkt.
> Ein separates hinzufügen under "Directories" hat nichts gebracht.
>
> Hat jemand eine Idee?

Geh' mal in den Projekteigenschaften auf "Device" und "Packs". Hier 
passiert das entscheidende für die IDE incl. VisualAssist.

Sprich: du hast bei der Anlage des Projektes wohl nicht das korrekte 
Target gewählt, sondern vermutlich einfach ein existierendes Projekt für 
ein anderes Target übernommen.

Wenn das so ist: einfach das passende Device und Pack wählen.

Falls nicht vorhanden, zuvor über Tools->Device Pack Manager 
runterladen. (Das erfordert dann allerdings einen Neustart des Studios, 
damit die heruntergeladenen Packs verfügbar werden).

Aber selbst, wenn das Device und ein passendes Pack bereits verfügbar 
sind, kann es nicht schaden, mit dem Device Pack Manager nachzuschauen, 
ob eventuell eine neuere Version des Packs existiert. Manchmal schafft 
es nämlich sogar Microchip, Bugs zu fixen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren