Hallo, mich quälen ein paar Fragen zu JTAG, SWD.. Ein Segger J-Link EDU, kann ich diesen in Kombination mit OpenOCD für jeden Cortex M0/M0+ nutzen? z.b. Raspberry PI pico, SAMD21, oder welche von NXP? Was bedeutet eigentlich das EDU, hat der debugger einen eingeschränkten Funktionsumfang?
segger schrieb: > Was bedeutet eigentlich das EDU, hat der debugger einen eingeschränkten > Funktionsumfang? findet man beim Hersteller in wenigen Sekunden: https://www.segger.com/products/debug-probes/j-link/models/model-overview/ zu ersten Frage: ja, sollte funktionieren. Es gibt jlink als interface in OOCD.
Johannes S. schrieb: > zu ersten Frage: ja, sollte funktionieren. Es gibt jlink als interface > in OOCD. Unter Windows ist es nur blöd, dass OOCD die libusb benutzt. Man muss jedes mal den USB Treiber umkonfigurieren (Zadig) wenn man das Interface mal mit OOCD benutzt und mal mit Software die das ohne diese Hampeleien macht. Ich hab es aber nur einmal versucht, wenn jemand was anderes weiß lerne ich gern dazu.
deshalb würde ich das in der Kombi auch nicht benutzen, und gerade JLink wird ja von fast allen Entwicklungsumgebungen und Werkzeugen unterstützt. Benutze auch gerade die light Version mit einem Nucleo F746 Board in VSCode, da funktioniert der JLink besser als der STLink.
segger schrieb: > Ein Segger J-Link EDU, kann ich diesen in Kombination mit OpenOCD für > jeden Cortex M0/M0+ nutzen? https://www.segger.com/products/debug-probes/j-link/ "OpenOCD Support J-Link can be used with OpenOCD (Open On-Chip Debugger). OpenOCD is an open-source software that can interface basically any debug probe. It provides a standardized API, allowing an IDE to support OpenOCD. There are several tutorials on the internet that describe how to use J-Link with OpenOCD. Note: OpenOCD is a 3rd party software, so SEGGER cannot provide any guarantees etc. Using J-Link with OpenOCD bypasses all J-Link specific features like flash programming, unlimited flash breakpoints and the J-Link high debugging speed. OpenOCD will handle J-Link as a simple sequence generator which will affect debug performance. Please also note that using J-Link with OpenOCD is not covered by the standard J-Link support. Support for OpenOCD is provided by the OpenOCD community." Was möchtest du denn genau machen? Mit einer IDE debuggen? Dann wäre eines von denen vielleicht was für dich: https://www.segger.com/products/development-tools/embedded-studio/ https://www.segger.com/products/development-tools/ozone-j-link-debugger/
Vielen Dank für die reichlichen Antworten. >>Was möchtest du denn genau machen? Mit einer IDE debuggen? >>Dann wäre eines von denen vielleicht was für dich: Ich möchte eigentlich nur flaschen und das debuggen steht nicht so im vordergrund. IDE´s nutze ich weniger gern, .. die M0+ von NXP und Microchip lassen sich auch bare-metal programmieren.
segger schrieb: > die M0+ von NXP dann reicht sogar ein USB-UART für 2€, auch die kleinen LPC haben einen seriellen Bootloader. Aber es ist schon sinnvoll das Debuggen zu nutzen. VSCode + CortexDebug Extension, mit dem JLink läuft das in ein paar Minuten.
Ok, dann schau bitte mal hier: https://www.segger.com/products/debug-probes/j-link/technology/flash-download/#download-into-flash-memory-for-development-purposes Für dich am einfachsten wäre wahrscheinlich J-Flash Lite.
Ohhh jflashlite ist für mich neu. Aber finde ich super. Hatte immer mal das Problem "nur" ein fremd .bin oder .hex zu haben und bisher musste ich dann immer auf openocd + jlink zurückgreifen.
Johannes S. schrieb: > deshalb würde ich das in der Kombi auch nicht benutzen, und gerade JLink > wird ja von fast allen Entwicklungsumgebungen und Werkzeugen > unterstützt. > Benutze auch gerade die light Version mit einem Nucleo F746 Board in > VSCode, da funktioniert der JLink besser als der STLink. Welche Debuggerumgebung nutzt Du denn dann in VSCode? Ich dachte, dass wäre in der Regel auch mit OpenOCD?
:-D :-D man darf sich nur nicht verschreiben beim googlen.. Wenn man a gegen e tauscht kommt man ganz woanders raus...
Die schon genannte Cortex-Debug Extension. Die schwatzt mit dem gdb per STLink, Jlink, BMP, OOCD.
Johannes S. schrieb: > Die schon genannte Cortex-Debug Extension. Die schwatzt mit dem gdb per > STLink, Jlink, BMP, OOCD. Bin in dem Thema leider nicht so firm. Habe diesen Thread von Dir gefunden: Beitrag "Debuggen mit VSCode und Cortex-Debug Extension" 1. Hätte man, wenn man in der Konstellation OpenOCD benutzen würde, das o.g. libUSB-Problem nicht trotzdem? 2. Wieso werden JLink und OpenOCD zusammen aufgelistet? Das eine ist doch ein Programmieradapter und das andere Software. Oder ist da mit Jlink der Jlink-gdbserver gemeint?
Gibt es den J-link EDU eigentlich zwischenzeitlich wieder irgendwo ? Es gab ihn zumindest mal bei Farnell und RS-Components. Der eine findet ihn gar nicht mehr, der Andere behaupte nicht mehr lieferbar. Haben die die Schülerausweise nicht genug kontrolliert oder soll der chinesische Handel wieder gefördert werden? Ich habe zwar einen J-Trace in der Schublade, aber unterwegs wo die Gefahr ist daß er verlorgen benutze ich diesen ziemlich ungern. Den Trace braucht man auch wirklich nur ziemlich selten.
Könnte ein DAPLink-Adapter eine Alternative sein? https://electronics.stackexchange.com/questions/405134/swdap-vs-cmsis-dap-vs-daplink
J. V. schrieb: > Gibt es den J-link EDU eigentlich zwischenzeitlich wieder irgendwo ja, da wo es ihn meistens gibt: https://www.ak-modul-bus.de/stat/segger_j_link_edu.html
Wenn gar nix mehr geht und die Not gross ist kann man ja einen kleinen ST-Link-Nachbau aus Fernost zu einem J-Link um-flashen.
temp schrieb: > ja, da wo es ihn meistens gibt: Also gibt es ihn effektiv NICHT. Nicht für Normalsterbliche. Denn da kann man ihn nur kaufen, wenn man nachweisen kann, daß man Schüler/Student ist. > Der J-Link EDU wird nur für den Hobbybereich und für Ausbildungszwecke > an Privatpersonen, Schulen, Universitäten und NPOs (Non Profit > Organizations) verkauft, nicht jedoch an Firmen oder an Personen, > die das Gerät in einem beruflichen Umfeld einsetzen. > > Für letztere Gruppe sind die kommerziellen Versionen des J-Link > EDU gedacht. Wir machen Ihnen hierzu gerne ein Angebot. > > Wir sind von SEGGER angehalten, die Zugehörigkeit zum berechtigten > Personenkreis ggf. nachzuprüfen. Mailen Sie uns bitte parallel zur > Bestellung einen Nachweis über Ihre Zugehörigkeit zum berechtigten > Personenkreis als Antwort-Email auf Ihre Bestellbestätigungs-Email. Man kann nicht nachweisen, daß man eine Privatperson ist. Geht nicht. Tatsächlich muss man ein Opensource-Projekt damit machen und das offenlegen, bevor man den Adapter überhaupt kaufen kann: > Bitte senden Sie uns einen Nachweis z.B. Schüler-/Studentenausweis > o.ä. per Email oder einen Link oder eine Beschreibung auf ein > (geplantes) Hobbyprojekt von Ihnen. (kommt aus 'ner Mail von AK Moduldings) Ich kann gut verstehen, daß viele darauf keinen Bock haben und dann irgendeinen China-Clone verwenden. Für ein Hobbyprojekt, das man nicht veröffentlichen will, soll man den Gewerbevolltarif bezahlen, also mehrere hundert Euro abdrücken.
Émile schrieb: > Denn da kann man ihn nur kaufen, wenn man nachweisen kann, daß man > Schüler/Student ist. Oder man macht vorab ein kleines Projektchen mit dem Lehrling und hofft, dass der Lehrling das Ding anschliessend nicht mehr braucht.
Émile schrieb: > Denn da kann man ihn nur kaufen, wenn man nachweisen kann, daß man > Schüler/Student ist. Nein. Man darf ihn schließlich auch als Privatmensch kaufen, steht ja explizit so. Bei mir gab es eine Nachfrage, weil ich das auch beruflich mache. Ich habe ihnen demonstriert, dass mein Brötchengeber mich dafür sehr wohl passend ausstattet, aber dass ich mich halt sehr lange schon auch privat mit MCUs beschäftige. Aber Segger scheint ihnen recht aggressiv da auf die Bude gerückt zu sein, damit die EDUs ihnen nicht die Marge der kommerziell verkauften versauen. (Wobei das natürlich die Frage aufwirft, ob man sich angesichts derartiger Geschäftsgebaren unbedingt mit Segger einlassen will oder doch lieber eine andere Variante wählt. Cortex-M-Debugging ist ja nun keine Raketenwissenschaft, das können viele.)
Mir scheint, dass die Segger die besseren Treiber haben als z.B. KEIL mit deren ULINK2. in uVsion sind bei mir die ULINKs absolut lahm wie Sau und das ganze Programm wird träge&zäh. Bei Segger keinerlei Probleme(das ist sicher kein generelles Problem, aber der Support zuckt da nur mit den Achseln) Offiziell sind die EDUs aufgrund Chiplieferproblematik nur begrenzt verfügbar. Ob das stimmt oder nur ein Vorwand ist, um sich da nicht die Gewinne zu kannibalisieren vermag ich nicht zu beurteilen. Was für Alternativen gibts denn noch so zum Hobbypreis? ST-Link?
:
Bearbeitet durch User
A. B. schrieb: > Mir scheint, dass die Segger die besseren Treiber haben als z.B. KEIL > mit deren ULINK2. Das liegt auch an der Hardware. Die einfachen mit FT232 die es früher viel gab haben langsames Bitbangig über USB gemacht. Bei den besseren ist ein µC drin der das SWD Protokoll macht. Die günstigen hatten bisher USB-FS mit 12 MBit/s, der STLinkV3 oder die teureren von Segger können USB-HS und sind damit deutlich schneller. Der STLink V3 ist immer noch günstig zu bekommen, den gibt es mehreren Varianten. Nur die Lieferbarkeit war schlecht, aber zumindest der STLINK-V3MINIE ist jetzt erhältlich. Für andere µC als STM32 ist auch Black Magic Probe interessant, da ist der gdbserver auf der Probe mit drauf. Da gibt es auch gerade ein neues Release und die org. Hardware ist auch erschwinglich.
Émile schrieb: > Man kann nicht nachweisen, daß man eine Privatperson ist. Geht nicht. Jeder Mensch ist auch irgendwo eine Privatperson. Immer. Oliver
:
Bearbeitet durch User
J. S. schrieb: > Die einfachen mit FT232 die es früher viel gab haben langsames Bitbangig > über USB gemacht. Reines Bitbanging eigentlich nie. Gibt zwar bei AVRDUDE diese Option (Bitbanging mit einem 08/15 FTDI), aber für SWD kenne ich das nur mit FTDIs, die auch MPSSE unterstützen. Da wird kein Bitbanging über USB direkt gemacht. Die gibt es auch wahlweise Fullspeed (FT2232) oder Highspeed (FT232H). Selbst die Fullspeed-Variante ist durchaus brauchbar und allemal vergleichsweise preiswert (vor allem, wenn man mit 3,3 V auskommt und keine Levelshifter braucht). > Bei den besseren ist ein µC drin der das SWD Protokoll > macht. Das dürfte bei den genannten ST-Link so sein und auch bei den AtmelICE, aber letztere sind mittlerweile nicht mehr günstig. Als Atmel sie neu rausgebracht hatte, war die Variante mit dem nackten PCB sogar günstiger als der alte AVR Dragon. > Die günstigen hatten bisher USB-FS mit 12 MBit/s, der STLinkV3 oder die > teureren von Segger können USB-HS und sind damit deutlich schneller. Bei Segger hängt das von der Hardwareversion ab, ab V10 ist es Highspeed-USB, egal ob Pro oder EDU. Hat sich aber manchmal recht mimosenhaft, wenn es an einem USB-Hub hängt. Dann blinkert da die grüne LED heftig.
Émile schrieb: > Tatsächlich muss man ein Opensource-Projekt damit machen und das > offenlegen Nein, man soll ihnen nur ein Projekt zeigen. Es steht nichts davon, dass das Opensource sein müsse, und es darf sogar ein nur geplantes Projekt sein, also Paperware. Aber mal ehrlich: für ein paar erste Schritte mit einem Controller kauft sich eh keiner ein originales J-Link. Dafür sind auch die 75 Euro für das EDU zu teuer. Das machst du nur, wenn du schon bissel was getan hast, und dann kannst du ihnen auch ein Foto von einem Steckbrett oder sowas senden.
https://www.segger.com/products/debug-probes/j-link/models/model-overview/ Hier noch ein Vergleich der Modelle. Der EDU hat eine geringere Geschwindigkeit. Wie sehr das stört muss jeder selbst entscheiden
A. B. schrieb: > geringere Geschwindigkeit als was? Das EDU ist hardwaremäßig identisch mit dem Plus Classic.
Naja wenn jemand einen Trace in der Schublade liegen hat.. Vermute ich mal stark, dass er den EDU nicht unbedingt nach der zugehörigen Lizenzbestimmung -> "Nur Hobby / Privat keine Professionellen Projekte" nutzen würde.. Weil wer leistet sich für Privat schon einen Trace und meckert dann über die Preise eines EDU als "2. Gerät"?
segger schrieb: > Ein Segger J-Link EDU, kann ich diesen in Kombination mit OpenOCD für > jeden Cortex M0/M0+ nutzen? > z.b. Raspberry PI pico, SAMD21, oder welche von NXP? segger schrieb: > Ich möchte eigentlich nur flaschen und das debuggen steht nicht so im > vordergrund. IDE´s nutze ich weniger gern, .. Für solche Randbedingungen wurde die Black Magic Probe erfunden und die darf jeder kaufen. Einziger Nachteil: kein Gehäuse, ich würde das RX2KL07-S-5 oder evt. RX2KL06-S-5 von Reichelt verwenden. https://1bitsquared.de/products/black-magic-probe > die M0+ von NXP und Microchip lassen sich auch bare-metal programmieren. Jeder Cortex-M lässt sich bare-metal programmieren, beim RPi scheitert das auch nur an der Dokumentation.
Bauform B. schrieb: > Für solche Randbedingungen wurde die Black Magic Probe erfunden und die > darf jeder kaufen. Wie gesagt, jeder FTDI mit MPSSE geht genauso. Auch debuggen geht damit. > Jeder Cortex-M lässt sich bare-metal programmieren, beim RPi scheitert > das auch nur an der Dokumentation. Das ist auch ein Cortex-A.
> Für solche Randbedingungen wurde die Black Magic Probe erfunden und die > darf jeder kaufen. Wenn ich das richtig sehe/verstehe kann die aber nur einige wenige MCUs. Wenn man damit auskommt okay. Aber letztlich bezahl man bei Segger fuer die ellenlange Liste der unterstuetzten MCUs und die Arbeit das alles einzubauen und nicht fuer die Hardware. Olaf
Der J-Link kann auch Cortex-A und mit Open-OCD dann sogar welche die nicht von Segger Unterstüzt werden (I.MX-8QM z.b.)
ja, dann ist das aber sicher nicht mehr Hobby und gewerblich sollte man sich einen 'guten' Segger leisten können. Mit BMP habe ich schon LPC, STM32 und nRF µC programmiert, das ist schon ein große Palette. Und Hobby ist heute ja nahezu only STM32, ESP und jetzt ein bisschen noch der RP2040.
Jörg W. schrieb: > als was? > > Das EDU ist hardwaremäßig identisch mit dem Plus Classic. hast recht. Ich bin vom EDU mini ausgegangen, da ich diesen und den Base in verwendung habe. mea culpa
olaf schrieb: >> Für solche Randbedingungen wurde die Black Magic Probe erfunden und die >> darf jeder kaufen. > > Wenn ich das richtig sehe/verstehe kann die aber nur einige wenige > MCUs. Denke ich nicht. Die Cortex-M haben doch ein einheitliches Debug-Interface. Ich kann mit einem STlink einen Atmel-ARM flashen und debuggen, ich kann mit einem Atmel-ICE einen STM flashen und debuggen, ich wüsste keinen Grund, warum das eine oder andere nicht gehen sollte. Schwieriger wird es erst dann, wenn du irgendein Firmware-Schnipsel in die MCU laden musst, damit bspw. ein QSPI-Flash oder dergleichen beschrieben werden kann; dann wirst du zuweilen halt nur für Segger den vorgekochten Support finden, wenngleich ich irgendwo gesehen habe, dass OpenOCD sowas wohl auch kann.
No Y. schrieb: > Der J-Link kann auch Cortex-A und mit Open-OCD dann sogar welche die > nicht von Segger Unterstüzt werden (I.MX-8QM z.b.) OpenOCD kann das auch mit allen möglichen JTAG Interfaces, inklusive den ganz einfachen mit FTDI Chip. Mit dem J-Link haben die Features von OpenOCD nichts zu tun.
> Ich kann mit einem STlink einen Atmel-ARM flashen und > debuggen, ich kann mit einem Atmel-ICE einen STM flashen und debuggen, DA bin ich ueberrascht. Haette gerade das die ST-Link mit Segger-Brain dann nur ST flashen koennen, alleine schon aus Prinzip. :) Geht damit dann ein RP2040? > ich wüsste keinen Grund, warum das eine oder andere nicht gehen sollte. Die muessten doch sogar die genauen Untertypen wissen damit die z.B wissen wie gross Flash und Ram ist und wo das im Speicher liegt. Olaf
@Dieter: Schon klar. Aber J-Link kann von sich schon Cortex-A aber halt nicht alle. Und die die nicht gehen kann man mit OpenOCD betüddeln.. Das war nur ein Hinweis weil die BMP ja scheinbar kein Cortex-A kann? Und Cortex-A kann sehr wohl Hobby sein.. Siehe BeagleBone z.b...? Gut 8QM ggf. eher nicht aber die Radxa / Tinker usw. Boards sind auch alle Hobby / Cortex-A Boards.. RP2040 geht auch nur mit den "neueren" J-Link deswegen (und wegen Cortex-A) musste auch mein V8 einem neuen J-Link weichen..
:
Bearbeitet durch User
olaf schrieb: > DA bin ich ueberrascht. Natürlich geht das nicht mit den Hersteller-Tools, die wollen nur jeweils ihrs bedienen. Aber die Hardware selbst kümmert sich nicht drum, welche Device-ID dahinter steckt. OpenOCD kann daher mit jedem der Tools arbeiten, und es sind natürlich auch nicht die Hardware-Tools sondern OpenOCD, was die Kenntnis über die Adressen und Speichergrößen und so hat. Die Hardware ist nur Bindeglied.
STLinkV3 können afaik nur mit ST, auch wenn man die mit BMP hosted betreibt. Ob BMP da jetzt native drauf läuft weiß ich nicht. Auch die Nucleo oder LPCLink2 mit JLink weigern sich mit fremden zu sprechen.
> Natürlich geht das nicht mit den Hersteller-Tools, die wollen nur > jeweils ihrs bedienen. Das verstehe ich jetzt nicht. Ich denke du benutzt einen ST-Link den du auf Segger J-Link umgeflasht hast. Dann musst und willst du doch auch die Segger-Software nutzen. Das ist doch gerade der Sinn der Sache. Olaf
olaf schrieb: > Ich denke du benutzt einen ST-Link > den du auf Segger J-Link umgeflasht hast. Nein, ich hatte einen STlink mal mit einem Atmel-ARM (jetzt Microchip, klar) benutzt, später dann aber die STMs eines Kundenprojekts mit AtmelICE. Das alles jedoch ohne irgendwas an den Tools zu ändern, mit OpenOCD auf dem Host. Natürlich geht OpenOCD auch für den Segger. Ich weiß nicht, aber zumindest von Segger wirst du kaum die Firmware bekommen, um irgendein anderes Device damit umzuflashen. Sie verkaufen einem bei Bedarf für teuer Geld embedded J-Link MCUs. Hatten wir bei einem früheren Brötchengeber mal, da kostet einer 10er-Pack wohl mehr als einen Tausender.
:
Bearbeitet durch Moderator
No Y. schrieb: > > RP2040 geht auch nur mit den "neueren" J-Link deswegen (und wegen > Cortex-A) musste auch mein V8 einem neuen J-Link weichen.. Beim RP2040 ist es eine Beschränkung der J-Link PC Software. Auch ältere J-Link Hardware kommt mit dem RP2040 klar wenn man die Beschränkung in der PC Software entfernt (das gilt auch für einige andere Devices). Ich habe Verständnis dafür wenn man neue JTAG Interface Hardware braucht weil die alte Hardware nicht leistungsfähig genug ist (z.B. weil cJTAG Unterstützung nicht mehr in die Firmware passt). Wenn man aber in erster Linie neue Hardware verkaufen will und deshalb bewusst bestimmte Dinge für die alte Hardware sperrt sehe ich das etwas anders.
> Ich weiß nicht, aber zumindest von Segger wirst du kaum die Firmware > bekommen, um irgendein anderes Device damit umzuflashen. Doch doch: https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/ Olaf
olaf schrieb: > https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/ "The firmware is only to be used with ST target devices. Using it with other devices is prohibited and illegal."
Jörg W. schrieb: > olaf schrieb: > Schwieriger wird es erst dann, wenn du irgendein Firmware-Schnipsel in > die MCU laden musst, damit bspw. ein QSPI-Flash oder dergleichen > beschrieben werden kann; dann wirst du zuweilen halt nur für Segger den > vorgekochten Support finden, wenngleich ich irgendwo gesehen habe, dass > OpenOCD sowas wohl auch kann. Das gibt's dort in verschiedenen Varianten, z. B. https://review.openocd.org/c/openocd/+/4760 für Cortex-M von (fast) beliebigen Herstellern.
Nicht schlecht. Hatte nur bei einem früheren Brötchengeber mal mit dialog-Chips zu tun, die sowas brauchten.
Oh, das mit dem RP2040 und der "Software Beschränkung" wusste ich nicht. Ja sowas sehe ich auch als "Sanktionierungsgrund" gegenüber Segger an. Gerade in Zeiten von Resourcenknappheit. Naja gut wegen Cortex-A war es ja kein ganz unnötiger Neukauf..
Jörg W. schrieb: > "The firmware is only to be used with ST target devices. Using it with > other devices is prohibited and illegal." ja, und die Firmware prüft das auch und verweigert den Dienst mit anderen Targets, das meinte ich mit ' weigern sich mit Fremden zu sprechen.' Der JLink bzw. zum JLink umgebrannte STLink auf den Nucleo Boards hat für mich nur einen Vorteil: er kann besser mit den F7 umgehen. Beim STLink landet man beim Step immer in einem Interrupt, der JLink macht das richtig. Bei OOCD funktionieren die ersten Steps, dann landet man auch damit im Interrupt. Man muss wohl bei jedem Step erst ein Debugregister wieder richtig setzen.
No Y. schrieb: > > Naja gut wegen Cortex-A war es ja kein ganz unnötiger Neukauf.. Welcher Cortex-A denn genau? Ein Cortex-A9 (i.MX6) funktioniert z.B. mit einem J-Link HW 8.0 auch wenn angeblich nur der Cortex-A8 mit HW 8.0 funktionieren soll.
Nachtrag zu Cortex-A: Auch ein Cortex-A7 (i.MX6UL) funktioniert mit einem J-Link HW 8.0.
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.