2009-07-22 2 views
3

Ich habe Eclipse CDT, CodeSourcery G ++ Toolchain auf Linux-Host installiert. Ich verwende die Code Sourcery Eclipse IDE. Ich habe den Linux-Kernel mit dem Linux Target Image Builder von der Freescale-Site auf die MCF5485-Karte installiert.In Bezug auf Remote-Debugging auf MCF5485EVB Board mit Eclipse CDT

Ich habe ein "Helloworld" -Projekt auf meinem Linux-Host mit der Sourceery Eclipse IDE erstellt. Ich habe die ausführbaren Dateien (wie gdbserver, catchsgev usw.) aus dem Ordner Sourcery auf die Karte im Root-Dateisystem kopiert.

Ich renne den gdbserver auf der Platine und debuggen dann mit TCP von meinem Linux-Rechner. In der Sourcery Eclipse IDE habe ich sysroot on target als / angegeben, weil ich gdbserver im root auf der Platine installiert habe (/root/bin).

Ich habe die IP-Adresse in der Debug-Konfiguration in Eclipse angegeben, während Ruhe ist Standard. ich ausgewählt habe die Option "Übersetzen sysroot Pfadnamen" in der Shared Libraries Registerkarte in Debug-Konfigurationen

ich an Bord starten gdbsrver (gdbserver IP:port /pathname/to/executable) und starten Sie dann die Debug-Konfiguration auf Linux-Host. Es stoppt bei main() wegen Haltepunkt. Wenn ich auf "Fortsetzen" drücke, wird der folgende Fehler angezeigt.

warning: .dynamic section for "C:\\Program Files\\CodeSourcery\\Sourcery G++\\m68k-linux-gnu\\libc/lib/libc.so.6" is not at the expected address (wrong library or version mismatch?) 
Stopped due to shared library event 
Stopped due to shared library event 
Stopped due to shared library event 

Mein Programm ist wie folgt:

include <stdio.h> 

int main(void) 
{ 
    int i=0; 
    printf("Hello = %d",i); 
    return 0; 
} 

ich auf irgendeinem Forum gelesen, dass ich brauche sysroot zu setzen, aber ich habe auch gelesen, dass, wenn ich sysroot im Root-Dateisystem auf dem Board installiert habe ich tun nichts tun müssen.

Antwort

1

Nicht sicher, dass Sie die Code Sourcery-Tools auf das Ziel setzen müssen, aber es sieht so aus, als ob der GDB-Client oder Eclipse die Zielbibliotheken nicht finden kann oder die Zielbibliothek nicht mit der Bibliothek übereinstimmt, die von den Code Sourcery-Tools verwendet wird .

Ich würde erwarten, dass diese Bibliotheken als Teil des Ziel-Linux-Builds gebaut werden. Sie müssen für Ihren Zielprozessor kompiliert werden und landen auf Ihrem Zieldateisystem im Verzeichnis/lib. Code Sourcery stellt möglicherweise vorgefertigte Bibliotheken für Ihr Ziel bereit, und dann müssen dies die Bibliotheken sein, die Ihr Ziel verwenden sollte. Sie müssen Teil des Dateisystems Ihres Ziels sein.