Hallo, ich hoffe auf den ein oder anderen, der schon mit dem Ubertooth One gearbeitet hat. Ich versuche gerade auf Ubuntu mein toolchain zur Entwicklung mit dem Ubertooth One aufzubauen. Debugen will ich über JTAG und habe dafür auch einen Programmieradapter ARM-USB-OCD von Olimex. Leider klappt es irgendwie nicht wirklich mit dem Einrichten, obwohl Olimex einige Dokumente bereit stellt, die das erklären sollten. Habe auch schon auf der Mailin-List vom Ubertooth Project um Hilfe gefragt, aber leider bisher keine Antwort bekommen. Ein Problem ist, dass ich es nicht schaffe OpenOCD richtig einzurichten oder ich verstehe es einfach nicht. Auch funktioniert das Einrichten mit Eclipse nicht so, wie es in den Dokumenten von Olimex angegeben ist. Ich habe gehofft, dass hier jemand ist, der vielleicht eine Art Tutorial kennt, was man auch als Einsteiger versteht. Auch verstehe ich nicht ganz, wozu ich für die GCC toolchain "Sourcery CodeBench Lite 20xxxx for ARM EABI" brauche und ob ich es auch brauche, weil die Anleitung auch auf dein STM32F103 ausgelegt ist und ich leider nicht verstehen bzw. weiß, wie sich das auf die Einrichtung auswirkt. Vielleicht hat ja jemanden einen Tipp, wo ich besser ansetzen sollte. Wenn genauere Informationen gewünscht sind, gebe ich die natürlich gerne. Danke im Voraus für die Hilfe. Gruß, Björn
Welche Ausgabe erhälst du denn, wenn du versuchst mit openocd -f deinconfiggile.cfg den Server zu starten?
Hi, also mit openocd -f openocd.cfg bekomme ich folgende Meldung: Open On-Chip Debugger 0.7.0 (2013-10-22-08:31) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxygen/bugs.html Info : only one transport option; autoselect 'jtag' none separate adapter speed: 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 cortex_m3 reset_config sysresetreq Error: no device found Error: unable to open ftdi device with vid 15ba, pid 0003, description 'Olimex OpenOCD JTAG ARM-USB-OCD' and serial '*' in procedure 'init' mit lsusb bekomme ich dazu noch: Bus 003 Device 078: ID 15ba:0003 Olimex Ltd. OpenOCD JTAG Die Einstellungen in der cfg habe ich nach dem Olimex Dokument vorgenommen. Außer das dort 002b anstatt 0003 steht. Zusätzlich ist der Adapter über einen USB-Hub an meinen Rechner angeschlossen. Keine Ahnung ob das ein Problem sein könnte. Gruß, Björn
Welches OS? Unter Linux braucht man Root-Rechte (oder man muss ein udev-Skript benutzen). Unter Win muss der korrekte Treiber installiert sein, für "ftdi" ist das WinUSB. Übrigens kann es auch sein, dass er sich an der "description" stört - die scheint nicht 100%ig übereinzustimmen. Den Eintrag könnte man mal probehalber aus dem Config File mit "#" auskommentieren.
Nutze das aktuelle Ubuntu und führe die Befehle auch eigentlich alle mit sudo aus oder geht das nur, wenn ich direkt als root im Terminal arbeite? Ansonsten ist es halt leider sehr unklar in der Beschreibung von Olimex, wie die openocd.cfg aussehen muss bzw ist sie explizit für den ARM-USB-OCD-H und den STM32 eingestellt. Aber ich prüfe nochmal meine ftdi Treibe bei Ubuntu und schaue was passiert, wenn ich die device_desc ändere. Benutzen tue ich folgende Anleitung: http://www.downloads.seng.de/HowTo_ToolChain_STM32_Ubuntu.pdf Die bezieht sich halt auf die Einrichtung des ARM-USB-OCD Adapters in Verbindung mit einem STM32 anstatt Ubertooth, aber das sollte ja nicht das Problem sein. Verstehe halt auch nicht wirklich, was es mit dem Sourcery CodeBench auf sich hat, was zur GCC Toolchain gehört. Will ja eigentlich Eclipse verwenden und für mich sieht Sourcery CodeBench aus wie eine Entwicklungsumgebung. Alternativ habe ich gelesen, kann man sich über den USB Port des Ubertooth auch Ausgaben schicken lassen, die man in den Code der Firmware einbaut. Allerdings habe ich bisher nichtmal hinbekommen, Ubertooth in den DFU-Modus zu versetzen. Lieber wäre mir natürlich die Arbeit mit dem Adapter, da ich dann richtige Breakpoints setzen könnte und auch die Register eventuell betrachten könnte. Ich schreibe nochmal, wenn ich etwas mehr rumprobiert hab. Danke erstmal für die Mühe.
Hast du denn die udev-Regeln für den Adapter erstellt? Nach der Anleitung habe ich meinen ARM-USB-OCD-H unter archlinux auch eingerichtet und es funktioniert alles wunderbar. Wenn du das Sourcery CodeBench nicht verwenden möchtest, dann bietet dir http://ubertooth.sourceforge.net/firmware/develop/ doch immer noch die gcc-arm-embedded Toolchain an.
Also ich habe jetztnochmal etwas angepasst und bekomme mit openocd -f openocd.cfg folgende Ausgabe: Open On-Chip Debugger 0.7.0 (2013-10-22-08:31) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxygen/bugs.html Info : only one transport option; autoselect 'jtag' none separate adapter_nsrst_delay: 200 jtag_ntrst_delay: 200 adapter speed: 10 kHz cortex_m3 reset_config vectreset Info : clock speed 10 kHz Error: JTAG scan chain interrogation failed: all zeroes Error: Check JTAG interface, timings, target power, etc. Error: Trying to use configured scan chain anyway... Error: lpc1756.cpu: IR capture error; saw 0x00 not 0x01 Warn : Bypassing JTAG setup events due to errors Warn : Invalid ACK 0 in JTAG-DP transaction Polling target lpc1756.cpu failed, GDB will be halted. Polling again in 100ms Polling target lpc1756.cpu failed, GDB will be halted. Polling again in 300ms Polling target lpc1756.cpu failed, GDB will be halted. Polling again in 700ms Polling target lpc1756.cpu failed, GDB will be halted. Polling again in 1500ms Polling target lpc1756.cpu failed, GDB will be halted. Polling again in 3100ms Polling target lpc1756.cpu failed, GDB will be halted. Polling again in 6300ms Da der Uberooth eine LPC1756 µC besitzt, habe ich in der openocd.cfg Datei für interface und target auf die entsprechende mitgelieferte lpc1756.cfg Dateien in den entsprechenden Ordnern verwiesen. Das Ergebnis ist leider nur die obere Eingabe. Was ich leider nicht zu 100%sagen kann ist, ob ich den ARM-USB-OCD richtig mit dem 10-pin Cortex Debug Connector verbunden habe. Ausgehend vom ARM-JTAG-Layout (https://saturn.ffzg.hr/rot13/index.cgi/arm-jtag-layout.gif?action=attachments_download;page_name=android_g1;id=20100924164502-0-17314) und dem Layout des Cortex Debug Connectors sieht die Verbindung wie folgt aus: ARM_JTAG Cortex DConnector 4->GND 3->GND 5->TDI 8->NC/TDI 6->GND 5->GND 7->SWDIO 2->SWDIO/TMS 9->SWDCLK 4->SWDCLK/TCLK 13->SWO 6->SWO/TDO 15->Reset 10->nRESET Nun weiß ich nicht, ob ich auch noch VCC mit VCC, also 1 mit 1 verbinden soll. Weil Ubertooth bekommt ja seinen Strom über USB und daher befürchte ich etwas zu beschädigen, wenn ich diese beiden verbinde. Außerdem bin ich mir nicht sicher ob 15->Rest auf 10->nRESET richtig ist. Zusätzlich ist die Frage, ob Pin 9 des Cortex (GNDDetect) auch auf einen der GND-Pins des ARM-JTAG gesteckt werden muss. Ich habe nämlich keine Ahnung was GNDDetect bedeutet und leider bisher auch nix hilfreiches bei Google dazu gefunden. Vielleicht hat ja jemande das mit Ubertooth schonmal gemacht und kann dazu was sagen. Gruß, Björn
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.