Hallo µC-Freunde, ich habe ein LM3S6965-Eval-Board neben mir stehen. Zunächst habe ich Eclipse mit CodeSourcery zum Spielen gebracht. Es purzeln auch einige Dateien aus Eclipse heraus, wenn ich "Build All" wähle. Mein Problem: Ich weiß leider nicht, wie ich mein FreeRTOS-Demoprojekt nun auf dem ARM-Controller zum Laufen bringe. Ein Debugging-Profil habe ich bereits angelegt. Wenn ich den Debug-Modus starten will, dann erscheint jedoch der Fehler: "Program file not found." Unter "Run" erscheinen auch nicht die Einträge von OpenOCD, sodass ich langsam an mir zweifle... Leider weiß ich auch nicht direkt, wie ich OpenOCD ins Eclipse drücken soll... Bitte helft mir ^^ Jan
Vieleicht solltest du uns noch verraten mit welchen Tools / Version du das machen willst. Bei mir geht das sehr gut mit OpenOCD 4.0, LibUSB, Eclipse Galileo etc. Auf der freeRTOS seite findest du acuh Beispiele und Anleitungen mit einem kompletten Eclipse Projekt. Aber das hast du ja sicher schon alles ausprobiert, desshalb ist auch deine Fehlerbeschreibung so detailiert. Cheers
"Vieleicht solltest du uns noch verraten mit welchen Tools / Version du das machen willst." Also auf jeden Fall Eclipse Galileo und OpenOCD 0.4.0 "Auf der freeRTOS seite findest du acuh Beispiele und Anleitungen mit einem kompletten Eclipse Projekt." Richtig. Ich nutze auch ein ähnliches Projekt. Wie gesagt, Make funktioniert. Die Anleitungen gehen leider nie darauf ein, wie man OpenOCD richtig einbindet. Das scheint einfach vom Himmel zu fallen und da zu sein... "Aber das hast du ja sicher schon alles ausprobiert, desshalb ist auch deine Fehlerbeschreibung so detailiert." Höre ich da jetzt einen Hauch Sarkasmus heraus? ^^
@Markus: Ja ich habe geguckt. Danke für den Tipp - aber es will einfach nicht :-( Wahrscheinlich ist öffnen und direkt starten auch nicht so 100% richtig. Was ich sehr gut finde ist, dass immerhin schonmal OpenOCD in den Menüs auftaucht. Leider springt jetzt der Make-Prozess ab: "**** Build of configuration Default for project project **** cs-make all COMSPEC detected C:\WINDOWS\system32\cmd.exe SHELL is C:/WINDOWS/system32/cmd.exe process_begin: CreateProcess(NULL, env, ...) failed. -------- begin, mode: FLASH_RUN -------- cs-make: *** Zugriff verweigert . Stop. cs-make: *** Waiting for unfinished jobs.... (Command canceled)" Kommt dir der Fehler bekannt vor?
Hi, ich habe eclipse + codesourcery lite g++ + openOCD in Verbindung mit einem STM32 am laufen. Muß allerdings sagen, dass ich auch ganz schön gekämpft habe bis alles richtig funktionierte. So wie ich das verstanden habe möchtest du OpenOCD aus dem makefile starten? Bei mir wird aus eclipse der OCD als "externes tool" gestartet. Zuerst wird geflasht und anschließend der OCD-Server aktiviert. Zum debuggen verwende ich anschließend das Zylin CDT plugin. Kann dir gerne weitere Infomationen geben wenn Interesse besteht. Gruß Georg
Hey Georg, Du hast den Nagel auf den Kopf getroffen. Ich will es genauso wie du betreiben. Leider weiß ich nicht, wie ich OpenOCD als externes Tool einbinde. Zwar benutze ich keinen STM32 sondern ein LM (wo JTAG-Interface schon auf dem Board sitzt), aber es sollte ja trotzdem irgendwie funktionieren. Hatte schon auf http://developers.stf12.net/eclipse-demo geschaut, aber wie gesagt - OpenOCD fällt vom Himmel. Wäre dir für weitere Hilfestellung wirklich dankbar :-) Jan
Ok dann werd ich mal versuchen dir zu helfen. Was für eine Art Debugger verwendest du? Ich nutze den OpenOCD-USB von embedded-projects. Der ist auf Basis des FT2232D. Verwendest du etwas ähnliches/gleiches? Für diesen debugger wäre auch eine passende Version des OCD beim FreeRTOS (verwende ich übrigens auch) dabei.
Ich habe mal was zusammen geschrieben:
1 | Installation für STM32 |
2 | - Eclipse "Galileo" installation: |
3 | http://www.eclipse.org/ >> Downloads >> "Eclipse IDE for C/C++ Developers (79 MB)" |
4 | http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR1/eclipse-cpp-galileo-SR1-win32.zip |
5 | Entpacken der Datei eclipse-cpp-galileo-SR1-win32.zip nach "C:\WinARM\" (Ordner neu erstellen) |
6 | |
7 | - Yagarto Tools: |
8 | http://www.yagarto.de/ >> "Download (for Windows)" >> "YAGARTO Tools" |
9 | http://www.yagarto.de/download/yagarto/yagarto-tools-20091223-setup.exe |
10 | Installieren, Auswahl Verzeichnis "C:\WinARM\yagarto-tools" |
11 | |
12 | - CodeSourcery: |
13 | http://www.codesourcery.com/ >> Products>Sourcery G++>Editions>Lite >> Try Now |
14 | http://www.codesourcery.com/downloads/public/public/gnu_toolchain/arm-none-eabi/arm-2009q3-68-arm-none-eabi.exe |
15 | Installieren, Auswahl Verzeichnis "C:\WinARM\CodeSourcery" |
16 | |
17 | - ST UM0427 (FW-Lib con st.com): |
18 | http://www.st.com >> Auswahl CPU STM32F103xxx >> "Firmware" "STM32F10x_FW_Archive" |
19 | http://www.st.com/mcu/devicedocs-STM32F103RC-110.html |
20 | In dem ZIP ist ein ZIP mit der Firmware "\Archive\um0427.zip" |
21 | Das ZIP "um0427.zip" Entpacken nach "C:\WinARM\examples\stm32_FW2.0.3\ |
22 | |
23 | |
24 | Eclipse: |
25 | Help >> Install New Software... >> http://download.eclipse.org/tools/cdt/releases/galileo |
26 | "Eclipse C/C++ Development Tools" + "Eclipse C/C++ GDB Hardware Debugging" installieren |
Alles installiert nach C:\WinARM. Damit ist alles in einem Ordner und kann sogar auf einen anderen PC kopiert werden. (Nur noch die Path-Entrys anpassen :) ) Also ich nutze das CDT Hardware Deugging. Das Demo von Martin Thomas bezieht sich ebenfalls darauf. In der "External Tools Konfiguration..." wird OpenOCD eingerichtet. In der "Debug Configurations..." wird der GDB Debugger eingerichtet. - makefile tut nur kompillieren. - Dann in Eclipse in "Debug-Ansicht" wechseln. - Dann das eingerichtete "External Tool" OpenOCD starten - Im "Debug" Fenster erscheint das OpenOCD, das dann anklicken, so dass es blau gefärbt ist - Dann das Debug Tool "OpenOCD reset load run" ausführen - Warten - Dann das Debug Tool "OpenOCD reset Debug" - jetzt debuggen.
PS: Ich dachte es geht nur noch um die Debug-Konfigparameter von OpenOCD und GDB, das ist sehr gut aus dem Projekt von Martin-Thomas ersichtlich. (Bei der OpenOCD Konfiguration musst du noch Deinen JTAG Adapter eintragen und ev. die Pfade anpassen...)
@Georg: Ich dachte als Debugger nimmt man den GDB. Habe auch eine vermeindliche OpenOCD-Version in der eine FTD2XX.dll rumliegt. Leider bekomme ich jetzt die Sache mit dem Debugger und OpenOCD überhaupt nicht mehr unter einen Hut :-( Mir fällt es sehr schwer, mich mit der Philosophie der Entwicklungsumgebung anzufreunden. Dass man jetzt auf einmal wieder ein spezielles OCD für FreeRTOS benötigt irritiert mich. Gibt es vielleicht ein Tutorial, das die sehr geholfen hat und vielleicht etwas für mich wäre? OpenOCD-USB scheint leider mein LM3S6965 nicht zu unterstützen :-(
@Markus: Also, dass OpenOCD in dem Projekt eingetragen ist, das habe ich schon gesehen. Leider komme ich gar nicht erst bis zur Nutzung, weil sich vorher der Make-Prozess aufhängt. Wo bekommt man raus, was man für den eigenen JTAG-Adapter eintragen muss? Bei mir gibt es auch keinen expliziten JTAG-Adapter - der ist auf dem Board mit drauf. Ich habe lediglich die Treiber dafür installiert...
Hi! Ich wollte wissen welche Hardware du zum debuggen nutzen willst -> Was ist am JTAG des Prozessors angeschlossen. Du sagst ein JTAG-Interface ist schon auf deinem Board schon integriert. Aber was für eines? Hast du vielleicht einen Link zu deinem Board? Du hast schon Recht damit, dass man den GDB verwendet. Aber der GDB verbindet sich mit dem OCD und dieser wiederum mit der Debugg-Hardware. Du benötigst kein besonderes OCD für FreeRTOS sondern eines das zu deiner Debugg-Hardware passt. Gruß Georg
Upps man sollte vielleicht alles lesen: Wirklich hilfreiche Tutorien kann ich dir leider nicht nennen. Habe mich da Stück für Stück allein durchgekämpft.... So wie ich das sehe sollte der OpenOCD-USB auch deinen Prozessor unterstützen. Ist ja ebenfalls ein Cortex M3.
Das Board kannst du dir unter http://www.luminarymicro.com/products/lm3s6965_ethernet_evaluation_kit.html anschauen. Habe über Google leider auch nichts direktes gefunden, ob OpenOCD-USB mein Board unterstützt. Zum Thema OpenOCD-USB scheint es auch nicht viel sinnvolles zu geben ^^
OpenOCD unterstützt direkt das LMI EK-LM3S6965 von Haus aus. Das Interface heißt "luminary" und für den Controller (target) gibt es auch eine Config. Gruß Andreas PS: Aktuelle OpenOCD Windows Builds gibt es hier: http://www.freddiechopin.info
Jan R. schrieb: > @Markus: > Ja ich habe geguckt. Danke für den Tipp - aber es will einfach nicht :-( > Wahrscheinlich ist öffnen und direkt starten auch nicht so 100% richtig. > Was ich sehr gut finde ist, dass immerhin schonmal OpenOCD in den Menüs > auftaucht. Leider springt jetzt der Make-Prozess ab: > > "**** Build of configuration Default for project project **** > > cs-make all > COMSPEC detected C:\WINDOWS\system32\cmd.exe > SHELL is C:/WINDOWS/system32/cmd.exe > process_begin: CreateProcess(NULL, env, ...) failed. Diese "failed" ist erstmal "normal". Ist ein kleiner Fehler in meinem Makefile. Inzwischen behoben und korriegierte Fassung wird in der kommenden Version hochgeladen. > -------- begin, mode: FLASH_RUN -------- > cs-make: *** Zugriff verweigert > > . Stop. > cs-make: *** Waiting for unfinished jobs.... > > (Command canceled)" > > Kommt dir der Fehler bekannt vor? Auch wenn ein LMI/TI Cortex-M3 im Spiel ist, muss (cs-)-make all dennoch durchlaufen. "Zugriff verweigert" ist nicht gut. - Sind Cygwin und/oder MinGW tools im System-Suchpfad (%PATH%) - Sind irgendwelche Leer- und/oder Sonderzeichen im Verzeichnispfad (c:\Dokumente und Einstellungen\willi ist z.B. nicht so gut, C:\meinuczeugs z.B. besser) - Ist das Verzeichniss mit den Quellcodes für den Anwender beschreibbar? Es werden einige Untervereichnisse angelegt, in die die Ausgaben geschrieben werden (Objekt-Dateien, Listings, elf-, map-, hex-Dateien usw.) Ohne Schreibzugriff wird das nichts. - Falls noch nicht ausprobiert: cs-make all von der Kommandozeile ("Eingabeaufforderung") starten. - Evtl. auch ein Problem mit den virtuellen Pfaden von Vista/Win7 (ich habe beides nicht - da muss jemand anderes einspringen) Wenn der Maschienencode im Prinzip gebaut wird, d.h. schlussendlich eine .bin- und .hex-Datei erzeugt wird, kann man halbwegs sicher sein, dass die Toolchain funktioniert. Eclipse/OpenOCD und LM3S-spezifisches etc. dann später...
Gut da sind wir ja schon mal ein Stück weiter. Also auf deinem Board ist der FT2232D + Logik schon drauf. Also die Debug-Hardware ist mitgeliefert. Die Config Files sind im FreeRTOS mitgeliefert. Soweit ich das sehe... Also geh doch mal im eclipse in Debug-Perspektive und öffne die "External Tools Configurations" - Ansicht. Dort legst du eine neue configuration an. Hier gibst du unter Location den Ort an an dem bei Dir die openocd_ftdi.exe (ist bei FreeRTOS dabei) liegt. Als Argumente sollte --file fury_ft2232_flash.cfg passen. Und als Working Directory gibst du den Pfad zu eben diesem Config-file an. Sollte so etwas in der Art sein: FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse In der program.script (findest du auch in diesem ordner) muß zudem der Pfad zu deiner .bin Datei stimmen. Wenn du dann Run drückst sollte sich der kleine Mann flashen lassen Viel Spaß beim probieren...
Hey Leute, erstmal vielen Dank für die vielen Tipps. Ich bin jetzt wieder zu einem Projekt von der FreeRTOS-Seite zurückgekehrt. Bisher hatte ich da immer Probleme mit dem Make-Vorgang, jetzt scheint es aber zu funktionieren. @Georg: In die Debug-Perspektive also... mhmmm - schau mal in meinen Anhang. Wo liegt der Fehler? debug_ausfuehrung.jpeg zeigt, was pasiert, wenn ich in den Debug-Modus wechseln will. Danke schonmal, Jan
...also statt OpenOCD, lass erstmal den Debug klären. Habe das Bild vom OpenOCD nur der Vollständigkeit wegen eingefügt ;-)
Nochmal ich: Falls es von Interesse ist - der Fehler, der beim Aufruf von OpenOCD aufrtitt, ist im Bild dargestellt.
Hmm also ohne OpenOCD wird es nichts mit dem debuggen. Und vor dem debuggen ist ja eh erst mal flashen angesagt. Also sollten wir erst mal das angehen. Was passiert wenn du in der Ansicht aus debug_3.jpg run drückst?
Da passiert genau das selbe. Habe auch nochmal einen Screenshot der Debug-Perspektive angehängt. Vielleicht noch folgender Hinweis: Ich habe probiert, das .bin-file direkt mit dem mitgelieferten Flash Loader hochzuladen. Das funktioniert leider auch nicht :-( Er schreibt zwar, aber der Bildschirm bleibt schwarz...
Also wenn der OpenOCD so verschwindet, dann hat er das JTAG Interface nicht gefunden. Bei mir sieht die Einstellung so aus (Bild). Ich nutze den Olimex ARM-USB-OCD. Wenn ich den nicht eingesteckt habe, dann verschwindet bei mir auch der OpenOCD. Die Hardware ist eingesteckt? Der Gerätetreiber richtig installiert? >> Siehe Systemsteuerung/Gerätemanager ob kein Gerät mit gelbem Ausrufezeichen drin steht!! Dann kann es nur noch die falsche Parametrierung des OpenOCD sein. Es muss ein -f Parameter mit der richtigen Konfig-Datei angegeben werden.
hmm der pfad zur openocd_ftdi.exe stimmt auch wirklich? Ruf doch die openocd_ftdi.exe mit einem -h mal aus einer Konsole auf. Sollte so etwas kommen: O:\OpenOCD>openocd_ftdi.exe -h Info: openocd.c:92 main(): Open On-Chip Debugger (2007-08-17 11:00 CEST) Open On-Chip Debugger (c) 2005 by Dominic Rath --help | -h display this help --file | -f use configuration file <name> --debug | -d set debug level <0-3> --log_output | -l redirect log output to file <name> O:\OpenOCD>
Ich weiss nicht von welchem Philipp das Dokument ist: www.mikrocontroller.net/attachment/72616/OpenOCD_LM3S2965.pdf Aber hier ist für OpenOCD 0.4.0 alles beschrieben. Das Dokument ist zwar für den LM3S2965 aber auf Seite 6 ist eine Bemerkung dass die Config vom LM3S6965 kommt. Wichtig ist auch noch der Komentar auf Seite 3: Damit ist gemeint das die FTDI Treiber zu entfernen sind (falls schon von der CD des Entwicklungsboard) installiert. Dies gilt vor allem für die Treiber auf PortA des FDTI2232 and dem der JTAG hängt. Bei FTDI gibts ein Tool zum entfernen der Treiber: FTClean http://www.ftdichip.com/Resources/Utilities.htm Cheers
Hmmm... also ich wäre dafür wenn wir nochmal zurück rudern. Mir würde es als erstes ausreichen, wenn das .bin-file ausführbar wird. Statt des OpenOCD würde ich dann erstmal das mitgelieferte Tool nutzen. Leider passiert ja aber einfach nichts, wenn ich das ausgespuckte File rüberlade. Und das obwohl mir im Fenster "Probleme" in Eclipse nichts angezeigt wird...
@LM3SB96: Ich habe das gerade erst gesehen. Werde mal schauen, ob ich OpenOCD damit zum Laufen bringen kann. Danke.
Hallo nochmal, ich wollte ja nicht sang- unf klanglos verschwinden ^^ Vielen Dank nochmal für die vielen Tipps. Es hat sich herausgestellt, dass ich im Prinzip alles richtig konfiguriert hatte. Lediglich das Root-Dir lag knapp daneben. Man könnte es auch als Verkettung ungünstiger Umstände bezeichnen, dass das erzeugte File deshalb nichts am Board bewirkte, da sich die Version auf ein anderes Display bezog... Also lief es eigentlich, ich habe es nur nicht gesehen :-) Ich finde es sehr schön, dass hier so viele kompetente Leute antworten. Wenn ich nochmal Fragen posten sollte, dann werden sie auch sicher etwas konkreter als in diesem Fall ;-) PS: In ein FreeRTOS-Projekt kann ich jetzt auch mit Hilfe der mitgelieferten Libs einfach auf die Hardware zugreifen? Oder muss ich wegen des Schedulings auf irgendetwas besonderes achten?
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.