-         

Ergebnis 1 bis 7 von 7

Thema: AVR-Studio-Problem mit NiboBee

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245

    AVR-Studio-Problem mit NiboBee

    Anzeige

    Szenario:
    ich bin gerade am Display basteln und habe das Testprogramm für den NiboBee von m.a.r.v.i.n etwas modifiziert.
    Das klappte so lange bestens, bis ich anfing, die Liniensensoren mittels der line.h- Bibliothek einzubinden.

    Dann war nichts mehr wie vorher:

    Code:
    avr-gcc -mmcu=atmega16 -Wl,-Map=NiboBee_Intelligence.map NiboBee_Intelligence.o   -L"C:\Programme\NIBObeeLib\lib"  -lnibobee_line -lnibobee_base -lnibobee_utils -lnibobee_usart -lnibobee_i2c -lnibobee_line  -o NiboBee_Intelligence.elf
    C:\Programme\NIBObeeLib\lib\libnibobee_line.a(line.o): In function `line_readPersistent':
    line.c:(.text.line_readPersistent+0x10): undefined reference to `__eerd_block'
    C:\Programme\NIBObeeLib\lib\libnibobee_line.a(line.o): In function `line_writePersistent':
    line.c:(.text.line_writePersistent+0x10): undefined reference to `__eewr_block'
    make: *** [NiboBee_Intelligence.elf] Error 1
    Build failed with 2 errors and 0 warnings...
    Irgendetwas klappt mit den Bibliotheken nicht.
    Ich probiere da nun schon einige Stunden herum, erfolglos.
    Erkenntnis: das Problem tritt genauso auf, wenn ich das Liniensensor-Programm aus dem Tutorial benutze- und _das_ funktioniert eigentlich problemlos.
    Es muss also in den Einstellungen des AVR-Studios irgendwo ein Fehler sein. Leider ist _dort_ das Tutorial überhaupt keine Hilfe, da mit keinem Wort erklärt wird, wozu die ganzen Projekteinstellungen überhaupt gut sind, sondern nur, welche zu tätigen sind.
    Kurz gesagt: Hilfe. [-(
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Nach der Fehlermeldung sieht es so aus, als würden da Libs fehlen.
    Alles mit #include eingebunden? Alle *.h und *.c Dateien eingebunden?
    Hilfreich wäre das ganze Programm, damit ich es selbst im AVR-Studio testen kann.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    Wie gesagt: selbst das lausige Liniensensor-Programm aus dem Tutorial wird- mit den selben Fehlermeldungen- _nicht_ compiliert.
    Falls du das nicht hast:

    Code:
    #include <nibobee/iodefs.h>
    #include <nibobee/led.h>
    #include <nibobee/line.h>
    int main() {
    led_init();
    line_init();
    while(1==1) {
    enable_interrupts();
    led_set(LED_L_YE, line_get(LINE_L)>160);
    led_set(LED_L_RD, line_get(LINE_L)>240);
    led_set(LED_R_YE, line_get(LINE_R)>160);
    led_set(LED_R_RD, line_get(LINE_R)>240);
    }
    return 0;
    }
    Ich vermute ebenfalls, dass da irgendeine Bibliothek fehlt, aber inzwischen habe ich die im Tut genannten (erklärt wirds ja nicht) Projekteinstellungen mehrmals überprüft, finde aber nichts dran auszusetzen.

    Das Problem tritt _immer_ auf, wenn ich, wie hier, die line.h benutzen will- Programme, die die nicht brauchen laufen bestens.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Ich habe mal alle Dateien in mein Standard Verzeichnis kopiert.
    Und es lässt sich einwandfrei kompilieren.
    Also muss es ein Fehler im Dateiverzeichnis sein, Bibliothek fehlt keine.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    Ich vermute irgendeine fehlerhafte Projekteinstellung, denn auch neu installieren (ich benutze sowieso die Standardpfade) der Bibliothek hat nicht geholfen.
    Wie gesagt, andere Programme, die nicht line.h benötigen, laufen problemlos durch den Compiler.

    Nur leider erklärt weder das NiboBee-Tut noch die Hilfe vom AVR-Studio, _was_ man da eigentlich tut.

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Deine AVR-Libc Version ist sehr wahrscheinlich neuer als die, mit der die NiboBee-Libs erstellt wurden. Das AVR-Libc interne EEPROM-Interface hat sich kürzlich etwas verändert.
    Versuche folgendes:
    Code:
    #include <avr/eeprom.h>
    
    
    void __eewr_block (const void *src, void *dst, size_t n) {
    
        eeprom_write_block(src,dst,n);
    }
    
    
    void __eerd_block (void *dst, const void *src, size_t n) {
    
        eeprom_read_block(dst,src,n);
    }
    MfG
    Stefan

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    Danke, Stefan: it works!!

    Und das mit dem neu ist sehr wohl möglich: ich hab diesen Rechner erst am Dienstag eingerichtet und nun natürlich von allem die aktuellsten Versionen hier.
    Naja, in zwei, drei Tagen hab ich meinen wieder.

Berechtigungen

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