www.mikrocontroller.net

Forum: Compiler & IDEs Compilerabbruch bei OpenMCP


Autor: Kuddel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich beschäftige mich seit kurzem mit dem AVR NetIO. Habe heute das Board 
mit OpenMCP geflasht. Lief einwandfrei :-) Dann die IP geändert und neu 
compiliert. Seitdem bekomme ich immer den Compilerfehler:

Compiling C: hardware/pcint/pcint.c
avr-gcc -c -mmcu=atmega644 -I. -gdwarf-2 -DF_CPU=16000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wshadow -Wstrict-prototypes -Wa,-adhlns=./hardware/pcint/pcint.lst 
-std=gnu99 -D__heap_end=0x80ffff -DAVRNETIO -DNONE_ADDON 
-mcall-prologues -fdata-sections -ffunction-sections -fmerge-constants 
-mno-tablejump -ffreestanding -fno-move-loop-invariants --param 
inline-call-cost=5 -finline-limit=2 -MMD -MP -MF .dep/pcint.o.d 
hardware/pcint/pcint.c -o hardware/pcint/pcint.o
In file included from hardware/pcint/pcint.c:49:
hardware/pcint/pcint.h:45:3: error: #error "PCINT wird für diese 
Hardwareplatform nicht unterstützt, bitte in der config.h abwählen!"
hardware/pcint/pcint.c:51: error: array type has incomplete element type
hardware/pcint/pcint.c:78: error: expected declaration specifiers or 
'...' before 'PCINT_CALLBACK_FUNC'
hardware/pcint/pcint.c: In function 'PCINT_set':
hardware/pcint/pcint.c:86: error: 'pFunc' undeclared (first use in this 
function)
hardware/pcint/pcint.c:86: error: (Each undeclared identifier is 
reported only once
hardware/pcint/pcint.c:86: error: for each function it appears in.)
make.exe: *** [hardware/pcint/pcint.o] Error 1

Warum kommt jetzt der Fehler: PCint nich für diese HW-Plattform?

Habe bereits WinAVR neu installiert, ohne Erfolg. Warum wurde das Prog 
einmal erfolgreich compiliert und danach gehts nicht mehr?

HW:
AVR Net IO ohne Addon, AVRISPmkii, ATmega 644
SW:
OpenMCP (nur MAKE-File angepasst, sonst unverändert.

Kann bitte jemand helfen. Bin sehr neu im Geschäft.

Autor: Dirk Broßwick (sharandac)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Kuddel ...

hast du mal ein "make clean" versucht und dann "make" ? Ich hatte 
letztens auch einen bug gefunden in der pcint.c/.h . Schau mal bitte ob 
in der AVRNETIO.config.h PCINT ausgeschaltet ist. Für den ATmega644 habe 
ich das noch nicht eingebaut/getestet.

CA Dirk


Edit: Änderungen werden immer nur von der jeweiligen XXX.config.h 
übernommen, damit wird die config.h erzeugt/überschrieben.

Autor: Kuddel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Make clean habe ich gemacht. PCint ist eingeschaltet, soll aber aber 
auch laut Wiki funzen.
Und: es lief schon einmal. Und laut Startprotokoll über Seriell war 
PCint auch korrekt gestartet.

Autor: Kuddel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... mir fällt gerade ein:
der Vrenschutz Avira hat 2x angeschlagen. Kann mich nicht mehr genau 
erinnern, aber er hat sowas wie " die Änderung der Auto.config" 
verhindert. Dateiname kann auch ähnlich sein.
Kann das was mit meinem Problem zu tun haben?

Autor: Dirk Broßwick (sharandac)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hast du wohl das unwahrscheinlich Glück gehabt das es geklappt hat 
beim ersten mal (Hast du vielleicht die gelieferte main.hex aus dem 
zip-File geflasht für den 644P und die Fehlermeldung beim ersten mal 
übersehen?).
 Aber da ich jede Zeile meines Codes persönlich kenne weiß ich einfach 
das PCINT nicht auf dem ATmega644 geht. Auch wenn das Wiki auf das 
kleine Detail nicht extra hinweist sagt das doch die Fehlermeldung und 
was zu tun ist, oder?
 Denn ein blick in die Datei hardware/pcint/pcint.h die den Fehler 
erzeugt hat, sagt mir aber das es nur für den 644P/1284P implementiert 
ist.

CA Dirk

Autor: Kuddel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe PCint deaktiviert. LCD musste auch deaktiviert werden. Dann ist der 
Compiler bei Impuls.c stehengeblieben. Hier sollte ich PCint wieder 
aktivieren (????)
Habe dann Impulscounter, Templogger und MMC deaktiviert. Der Compiler 
lief durch. Die Initialisierung auf dem Board lief bis zum ENC28j60. Der 
Cursor blinkt bei HyperTerminal nach "Fullduplex:_"... und nichts geht.

Schönen Dank übrigens, das du dich mit meinen Anfängerproblemen 
beschäftigst.:-)

Autor: Dirk Broßwick (sharandac)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, Der Impulslogger setzt PCint vorraus, wenn PCint nicht aktiv ist 
geht das logischerweise nicht und muss auch abgeschaltet werden.
"Fullduplex:" Ja, hier wartet er auf eine Verbindung bis er weiter 
macht, sprich jetzt sollte ein Netzwerkkabel stecken. Wenn die 
Verbindung erkannt wurde geht es weiter.

CA Dirk

Autor: Kuddel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cooool. Es funzt. Hurra!!!
Ich dacht, diese Einstellungen werden über die Parameter im MAKE file 
automatisch gesetzt.
Besten Dank nochmal.

Kuddel

Autor: Dirk Broßwick (sharandac)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerne gemacht.

Das Makefile ist nur für die Hardwareplattform und CPU gedacht, was dann 
mit rein soll steht in der XXX.config.h.

CA Dirk

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.