Ich möchte gerne auf einem Arm-91 Sam Board mit darauf aufgespieltm linux mit GDB- Stub über Ethernet Debuggen. Als oberfläche möcht ich Eclipse verwenden. Wie geht das?
Das hier: http://www.segger.com/cms/jlink-pro.html Hat Ethernet, Debug über Ethernet also möglich... Was es für Installationen für Eclipse braucht ist hier beschrieben: STM32 Natürlich ohne den OpenOCD. Dafür mit dem Segger GDB Server. Wie man parametriert ist hier beschrieben: Beitrag "Re: CortexM3 Startprobleme (YAGARTO+ECLIPSE+J-LINK)"
Gibt es eine Möglichkeit dass Ganze ohne J-link in Betrib zu nehmen? Ethernet und Serielle Schnitstellen sind auf dem Board vorhanden .
Wenn die CPU Ethernet hat, dann muss sie laufen um das Ethernet bedienen zu können, also kann damit nicht debuggt werden. Denn bei einem Breakpoint steht die CPU und nix mehr geht. Also benötigt es ein externen JTAG mit Ethernetanschluss.
Man kann auf dem Zielsystem unter Linux laufende Anwendungen auch ohne JTAG-Interface debuggen. Z.B. kann die Anwendung "unter Kontrolle" von gdbserver auf der Zielhardardware starten. gdbserver stellt einen Port zur Verfügung. IP/Name und Port gibt man in der Connections-Einstellung einer Ecplipse Debug-Konfiguration an. remote debugging linux Eclipse in Suchmaschine der Wahl eingeben hilft, es findet sich einiges. Durchlesen der Target Management (TM) Seiten (Startlink auf eclipse.org) wird auch nützlich sein.
Was willst du debuggen? Den Linux Kernel, oder eine Applikation? Markus Müller schrieb: > Wenn die CPU Ethernet hat, dann muss sie laufen um das Ethernet bedienen > zu können, also kann damit nicht debuggt werden. Denn bei einem > Breakpoint steht die CPU und nix mehr geht. Also benötigt es ein > externen JTAG mit Ethernetanschluss. Der Linux Kernel oder die Applikation steht aber nicht der GDB Stub und die Schnittstelle über welche GDB kommuniziert! Die Schnittstelle wird dann normalerweise auch nur für die GDB Kommunikation verwendet.
http://bhagwat-masalkar.blogspot.com/2008/05/remote-debugging-for-arm-target-board.html Wenn ich den anweisungen auf dieser Seite folge bricht der Vorgang mit Fehlern ab. if [ x"" != x ]; then \ gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I./../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ./strncmp.c -o pic/strncmp.o; \ else true; fi gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I./../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ./strncmp.c -o strncmp.o rm -f ./libiberty.a pic/./libiberty.a i386-ar rc ./libiberty.a \ ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o ./strsignal.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o ./mkstemps.o ./strncmp.o make[2]: i386-ar: Command not found make[2]: *** [libiberty.a] Error 127 make[2]: Leaving directory `/root/Download/gdb-7.1/libiberty' make[1]: *** [all-libiberty] Error 2 make[1]: Leaving directory `/root/Download/gdb-7.1' make: *** [all] Error 2
OK,dassProblem habe ich gelößt stat ./configure --host=i386 --target=arm-linux --build=i686 --prefix=/home/<path>/arm-tools/bin/arm-linux-gdb Das: ./configure --host=i386 --target=arm-linux --build=i386 --prefix=/home/<path>/arm-tools/bin/arm-linux-gdb Das neue Problem: checking for iconv... yes checking for iconv declaration... install-shextern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); checking for library containing waddstr... no configure: WARNING: no enhanced curses library found; disabling TUI checking for library containing tgetent... no configure: error: no termcap library found make[1]: *** [configure-gdb] Error 1 make[1]: Leaving directory `/root/Download/gdb-7.1' make: *** [all] Error 2
$ cd gdb-6.8/gdb/gdbserver $ export CC=arm-linux-gcc // if required $ export LD=arm-linux-ld // if required $ ./configure --build=i686 --host=arm-linux --target=arm-linux $ make Nach dem ./configure --build=i686 --host=arm-linux --target=arm-linux dieses Problem /configure --build=i686 --host=arm-linux --target=arm-linux checking for arm-linux-gcc... arm-linux-gcc checking for C compiler default output file name... configure: error: in `/root/Download/gdb-7.1/gdb/gdbserver': configure: error: C compiler cannot create executables See `config.log' for more details. in der .log steht: configure:2200: checking for arm-linux-gcc configure:2227: result: arm-linux-gcc configure:2496: checking for C compiler version configure:2505: arm-linux-gcc --version >&5 ./configure: line 2507: arm-linux-gcc: command not found configure:2516: $? = 127 configure:2505: arm-linux-gcc -v >&5 ./configure: line 2507: arm-linux-gcc: command not found configure:2516: $? = 127 configure:2505: arm-linux-gcc -V >&5 ./configure: line 2507: arm-linux-gcc: command not found configure:2516: $? = 127 configure:2505: arm-linux-gcc -qversion >&5 ./configure: line 2507: arm-linux-gcc: command not found configure:2516: $? = 127 configure:2536: checking for C compiler default output file name configure:2558: arm-linux-gcc conftest.c >&5 ./configure: line 2560: arm-linux-gcc: command not found configure:2562: $? = 127 configure:2599: result: configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" "config.log" 207L, 4685C
Lösung:mann muss den Pfade in die .bashrc eintragen und das terminal neu starten
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.