hallo, ich hab nun schon seit längerem das Problem, dass ich meinen Controller nicht mehr flashen kann. Im RAM funktioniert alles super. Runterspielen und debuggen; alles kein Problem. Ich arbeite mit ubuntu, eclipse, openocd, openocd-usb, gcc, usw. Das Problem hab ich auch schon vor längerer Zeit im openocd-forum gepostet, jedoch ohne resonanz. http://forum.sparkfun.com/viewtopic.php?t=13895 Ich hoffe, dass mir hier jemand weiterhelfen kann. Ich weiß absolt nicht, wo ich da zum Fehlersuchen beginnen soll. Die toolchain hab ich mir bis auf eclipse selber compiliert. lg, Karl
Gast
#1181995
hallo, lt. eclipse output versucht der debugger einen software breakpoint auf eine adresse im flash zu setzen, was mit openocd aber sicher nicht funktioniert. ich habe zwar keine ahnung von einer linux-umgebung aber das das debuggen vor der linux-neuinstallation funktioniert hat kann ich mir nicht vorstellen. da hast du an den einstellungen des gdb etwas geändert (oder das passiert bei einer linux-neuinstallation?)? gruss gerhard
>... > http://forum.sparkfun.com/viewtopic.php?t=13895 >... Warning am Anfang der Ausgabe deutet darauf hin, daß gdb nicht mit XML support zusammengebaut wurde. Damit funktioniert die recht praktische Funktion gdb_memory_map nicht, mit der der Speicherbereich für Flash und RAM und somit die Notwendigkeit für SW und HW-Breakpoints zwischen OpenOCD und Client ausgetauscht wird. Weiteres dann Folgefehler/-probleme. Man kann irgendwie OpenOCD auch manuell vorgeben, ob HW oder SB BP erzwungen werden sollen, habe diese Funktion aber nicht mehr genutzt, seit gdb_memory_map existiert. > Die toolchain hab ich mir bis auf eclipse selber compiliert. Nur Vorschlag: gdb configure nochmal neu laufen lassen (vorher aufräumen), Ausgabe genau anschauen, falls expat-Library (libexpat.a o.ä., nicht genau in der Erinnerung) nicht automatisch gefunden wird, nachsehen ob diese überhaupt installiert ist, gegf. installieren, dann noch evtl. bei configure mit --with-libexpat-prefix Hinweis auf Ablageort geben. Zum eigentlichen Problem: Ob die Einstellungen für Flash-Setup und Working-Area überhaupt stimmen, kann man wegen fehlender Angaben nicht beurteilen. Zum SAM7A3 müßte aber ohnehin jemand anderes Hinweise aus erster Hand geben, selbst nur mit S und SE etwas gemacht.
Vielen Dank euch beiden erstmal. @Gerhard: Das debuggen im Flash hat vorher wunderbar funktioniert! Ganz ehrlich! @Thomas: gdb configure schau ich mir gleich nochmal an. Die Einstellungen an sich sollten ja passen. Also Reset-Skript und config-Skript für openOCD. "Memory-Map"-file sollte ja auch passen. Ist direkt von ATMEL und hat ja alles schon mal prima funktioniert. Du hast gemeint, dir fehlen Angaben. Was musst du denn wissen, um mehr sagen zu können? Ich muss ehrlich gestehen, dass ich da noch nicht so den Durchblick habe, was da alles genau passiert. Wo ist zB der Unterschied zwischen HW und SW Breakpoints? Seltsamerweise wird ja nichteinmal das aktuelle Programm im Flash überschrieben! D.h. das Programm das jetzt im Flash ist, läuft selbst nach dem "flashen" als ob nie was gewesen wäre. Ich bin echt froh, dass sich endlich einmal ein paar "Profis" meinem Problem widmen. Vielen Dank! Ich hoffe, wir werden das gemeinsam hinbringen!
Hab nun probiert, den gdb neu zu kompilieren und installieren. Leider funktioniert da etwas mit der libexpat nicht. libexpat1 war schon am system installiert (standardmäßig) und libexpat1-dev hab ich sicherheitshalber mal nachinstalliert (mit dem Paketmanager). ich habe nun im wesentlichen folgendes ausgeführt: $ sudo make clean $ sudo ./configure --target=arm-elf --prefix=/usr/local/arm7/ --with-expat=yes $ sudo make all install hier kommt nun eine Fehlermeldung: ... checking whether to use expat... yes checking for ld used by GCC... (cached) ld checking if the linker (ld) is GNU ld... (cached) yes checking for shared library run path origin... (cached) done checking for libexpat... (cached) no configure: error: expat is missing or unusable make[1]: *** [configure-gdb] Error 1 make[1]: Leaving directory `/home/karl/Projektseminar/GNU_ARM_Toolchain/linux/build-gdb' make: *** [all] Error 2 Mit dieser Fehlermeldung konnte ich leider nichts anfangen. Auch google bracht mir keine direkten Hinweise. Ich bin auch leicht verwirrt, weil der Paketname einen '1'er angehängt hat. also libexpat1. kann das möglicherweise stören? Beim installieren hab ich mich zum großteil an die Anleitung von Adam Pierce gehalten. Hier meine Installationsanleitung:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
Sollte ich vielleich nochmals die komplette Iinstallation neu machen? lg, Karl
>...Was musst du denn wissen, um mehr sagen zu können? Alle Angaben, die OpenOCD gegeben werden (per -f, -c und evtl. implizit, also openocd.cfg). >...Wo ist zB der Unterschied zwischen HW und SW Breakpoints? HW-BP notwendig für Anwendung im Flash-Speicher, gibt nur wenig davon. Ist eine Besonderheit des Cores. Die ARM-Techn.-Library sowie beherztes googlen sollten ausreichend Information dazu liefern. >...Seltsamerweise wird ja nichteinmal das aktuelle Programm im Flash >überschrieben! Evtl. wird gar nicht geflasht. Im Zweifel erstmal per Telnet-Interface OpenOCD ausprobieren (erase, write, verify). Vgl. OpenOCD Dokumentation. Damit wäre dann auch getestet, ob flashen auf SAM7A3 unterstützt wird. >...checking for libexpat... (cached) no gibt es eine Datei libexpat.a oder libexpat.la im System? Wenn ja per o.g. Option (...prefix...) beim configure den Pfad angeben. Im Moment grade keinen Zugriff auf meine Toolchain-Zusammenbau-Rechner, kann also nicht nachschauen, würde aber ohnehin nicht helfen da mingw/msys/WinXP. >...Check out SVN 977 Ist ziemlich alt. Es gibt inzwischen auch eine "offizelle" Version 0.1.0. Unterstützung von den wirklichen OpenOCD-Profis (=OpenOCD ML) wird wahrscheinlich für Fragen zur alten Version eher spärlich ausfallen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.