Forum: Mikrocontroller und Digitale Elektronik Programmer/Debugger ARM + X


von H. D. (lactobacillus)


Lesenswert?

Hallo,
ich besitze derzeit das G2 Launchpad, würde mein Spektrum aber gern 
erweitern. Insbesondere ESP8266 und MSP432 klingen für mich interessant.

Was lege ich mir am besten für einen Programmer/Debugger zu?
Gewünscht wären die gleichen Fähigkeiten (Emulator?) wie beim MSP430G2 
Launchpad.

Schön wäre allgemein kompatibel mit ARM, gern auch zusätzlich MSP430 
(für die, die mein Launchpad nicht kann). Spy-Bi-Wire gibt es nur bei 
den echten FETs von TI?

Auf der Softwareseite würde ich gerne Eclipse + GCC (weil schon 
eingearbeitet in Code Composer Studio) verwenden.

Gegoogled habe ich auch schon, bin aber recht vewirrt worden. Für ARMs 
besser JTAG oder UART? Ist damit in dem Kontext eigentlich das Gleiche 
gemeint?

Preiswert vom Chinesen wäre schön.

Wie wäre es zum Beispiel mit diesem J-Link Clone?
http://www.ebay.de/itm/J-Link-OB-ARM-Debugger-Programmer-Downloader-replace-v8-SWD-M74-New-/221808339497?hash=item33a4ceaa29
Oder diesem?
http://www.ebay.de/itm/J-Link-V8-USB-ARM-JTAG-Emulator-Debugger-J-Link-Emulator-JTAG-converter-/271867826353?hash=item3f4c95d0b1

von Frank K. (fchk)


Lesenswert?

JLINK kannst Du unbesorgt nehmen. Und ich weiß, dass die Chinesen 1:1 
nachbauen...

Bei ARM hast Du JTAG, bei Cortex zusätzlich SWD (quasi JTAG über zwei 
Signalleitungen+GND). Viele Cortexe in kleineren Packages führen nur 
SWD heraus, um Pins zu sparen. Dein Adapter sollte also unbedingt beides 
können.

Manche ARMs haben eingebaute Bootloader über UART oder USB. Debuggen 
kannst Du darüber nicht.

fchk

von H. D. (lactobacillus)


Lesenswert?

Dankeschön.

Soweit ich das rausfinden konnte, kann der J-Link nur ARMs. Gibt es 
nicht auch entsprechende Hardware, die auch µC beherrscht?

Wundert mich wo das Problem sein sollte. JTAG müsste doch gleich JTAG 
sein ...

von Frank K. (fchk)


Lesenswert?

> Soweit ich das rausfinden konnte, kann der J-Link nur ARMs. Gibt es
> nicht auch entsprechende Hardware, die auch µC beherrscht?
>
> Wundert mich wo das Problem sein sollte. JTAG müsste doch gleich JTAG
> sein ...

Das ist genauso wie bei Deinem Drucker. Der hat auch eine USB- oder 
Centronics-Schnittstelle, und trotzdem brauchst Du für jedes Modell 
einen eigenen Druckertreiber.

JTAG selber ist einigermaßen spezifiziert, aber nur für Boundary Scan. 
Debuggen und Flashen sind immer herstellerspezifische Erweiterungen. Du 
wirst für jede Architektur einen eigenen Debugger kaufen müssen. Ist so.

PS: Der J-Link kann auch PIC32 (also MIPS) handhaben, aber nur in der 
aktuellen Hardwareversion.

fchk

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

H. D. schrieb:
> kann der J-Link nur ARMs. Gibt es nicht auch entsprechende Hardware,
> die auch µC beherrscht?

ARMe sind auch µCs.

von Lothar (Gast)


Lesenswert?

H. D. schrieb:
> Soweit ich das rausfinden konnte, kann der J-Link nur ARMs

Und 8051, PIC-MIPS, Renesas RX z.B.

https://www.segger.com/jlink-silabs-efm8-support.html

AVR und PIC 8-bit sind halt proprietär, die lassen ihr Debug-Protokoll 
nicht von anderen nutzen.

von W.S. (Gast)


Lesenswert?

H. D. schrieb:
> Wundert mich wo das Problem sein sollte. JTAG müsste doch gleich JTAG
> sein ...

Die Hardware ist nicht das Problem, sondern die in der Firmware der 
einschlägigen JTAG- oder SWD-Adapter enthaltenen 
Mini-Programmier-Programme.

Hä?
Also: üblicherweise wird für das Programmieren über JTAG oder 
SWD-Schnittstelle ein kleines Programm in den RAM des jeweiligen 
Controllers geladen, was dann anschließend die eigentliche Arbeit macht, 
also Speicherblöcke löschen, Bitmuster hineinprogrammieren, verifizieren 
usw.

Diese kleinen Progrämmchen sind hardwarespezifisch, zum einen vom 
verwendeten Maschinencode her, zum anderen aber auch von den Eckdaten 
der vorliegenden Hardware her, also wo der RAM und ROM liegt, wie groß, 
in wieviele wie große Blöcke aufgeteilt, was für Register wie zu 
benutzen sind, um dort zu löschen und zu beschreiben usw.

Je nachdem, was für µC-Typen so ein SWD/JTAG-Adapter denn so alles 
behandeln kann, muß für jeden Typ so ein Progrämmchen im Adapter oder im 
zugehörigen Treiber auf dem PC vorliegen. Davon ist es abhängig, ob die 
vorliegende Adapterhardware ARM, MIPS, MSP, AVR oder sonstwas "kann".

Bei kommerziellen Adaptern (z.B. J-Link) hängt das Ganze obendrein noch 
davon ab, über was für Lizenzen man verfügt. Da lassen sich so manche 
Onboard-J-Link's eben NUR für ganz bestimmte µC benutzen.

W.S.

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
Noch kein Account? Hier anmelden.