-         

Ergebnis 1 bis 5 von 5

Thema: "'PB1' undeclared" und andere Fehlermeldungen dies

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    06.07.2007
    Ort
    München
    Alter
    32
    Beiträge
    32

    "'PB1' undeclared" und andere Fehlermeldungen dies

    Anzeige

    Guten Tag, ehrenwertes Forum,

    wie schon im Titel dieses Threads angedeutet, macht entweder mein avr-gcc Probleme, oder ich kann ihn nicht richtig bedienen (was vielleicht sogar wahrscheinlicher ist ^^ )
    Und zwar hatte ich mir, um mein RN-Control-Board zu testen, gestern das entsprechende C-Testprogramm aus dem Wiki runtergeladen und versucht, mit dem avr-gcc zu bauen, was wir erstmal einen ordentlichen Haufen Fehlermeldungen einbrachte. Also hab ich auf mikrocontroller.net nachgeschaut, ob ich irgendwelche Optionen vergessen hatte (eine ganze Menge, wie sich rausstellte). Damit bekam ich dann auch einige der Fehlermeldungen weg.
    Aber leider nicht alle. Denn alle Fehlermeldungen der Art "'PB1' undeclared" (eigentlich waren alle Namenskürzel für irgendwelche Register "undeclared") _obwohl_ ich extra geprüft habe, ob auch avr/io.h inkludiert wird (wird es).
    Daraufhin schöpfte ich Verdacht gegen meinen Compiler (vielleicht ist der ja kaputt). Also, auf http://hoepfl.de/articles/2008/02/AVR_am_Mac.html gegangen (ich programmier auf nem 4 Jahre alten PowerMac G5 und benutze den AVRISP MkII mit USB zum Flashen)
    und den Anweisungen zum Installieren des gcc, der avr-libc, der binutils, der libusb und so weiter exakt gefolgt. Die Installation hat auch geklappt.
    Nur dummerweise kennt mein Compiler immer noch nicht die Registernamen des Mikrocontrollers.
    Ich hab immer noch eine ewig lange Liste an Register-Kürzeln, die als "undeclared" bezeichnet werden, obwohl ich nach wie vor avr/io.h inkludiere und bin hier mit meinem Latein am Ende.
    Leider hat auch die Themensuche und Onkel Google nichts zutage gefördert, was mir da helfen kann.
    Was könnte da schief laufen?

    mfg
    ~StackDaniels

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    ist der verwendet AVR irgendwo angegeben, damit das io.h "weiss" welche Registernamen es includen muss ?
    Normalerweise im Makefile steht die Zeile:
    MCU = atmega32
    oder welchen AVR man eben verwenden will.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    06.07.2007
    Ort
    München
    Alter
    32
    Beiträge
    32
    oh, stimmt, ich vergaß!
    Als Compileroptionen verwendete ich:
    avr-gcc -mmcu=atmega32 -I. -std=c99 -O3 -DF_CPU=1000000 RNControl-Test.c rncontrol.h

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Hast Du vielleicht in nen Pfad installiert, der Sonderzeichen enthält?

    Wenn io.h nicht gefunden wird, sollte schon das eine Fehlermeldung geben.
    Was sagt der Aufruf, wenn zudem noch -v angeben wird?

    Zudem ist es unwahrscheinlich, daß ein *.h compiliert wird, lass das mal weg, steht wohl als include im *.c.

    ::Edit::

    Nochwas: -O3 ist übel, nimm -O2 oder -Os
    Disclaimer: none. Sue me.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    06.07.2007
    Ort
    München
    Alter
    32
    Beiträge
    32
    hab mal probiert ohne die .h-Datei zu kompilieren und kriege nur 2 Warnings. Wieder was gelernt

    Vielen Dank für die Hilfe
    Und danke für den Hinweis beim Optimierungsflag.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •