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.
@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.
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.
... 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?
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
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.:-)
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
Cooool. Es funzt. Hurra!!! Ich dacht, diese Einstellungen werden über die Parameter im MAKE file automatisch gesetzt. Besten Dank nochmal. Kuddel
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
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.