Forum: Mikrocontroller und Digitale Elektronik Open DSP und DSP5005 problem mit openOCD und Linux Neuling auf Linuxmint


von LinuxNOOB (Gast)


Lesenswert?

Hallo Leute.

Ich habe das Problem, dass ich auf ein DPS 5005 die open DPS firmware 
drauf kriegen will. Das DPS ist das hier:
https://www.voelkner.de/products/1184997/Joy-it-JT-DPS5005-Labornetzgeraet-einstellbar-0-50V-0-5A-250W-Schraubklemmen-fernsteuerbar-programmierbar-schmale-Bauform.html?ref=43&utm_source=google&utm_medium=organic&utm_campaign=fpla&gclid=EAIaIQobChMIjtLkxLmt9gIVXOnmCh1apgD_EAQYASABEgIJQvD_BwE

Und das ist die Firmware die da drauf soll:
https://github.com/kanflo/opendps

Hier die Anleitung dazu:
https://johan.kanflo.com/upgrading-your-dps5005/

Ich komme immer bis zum Abschnitt
"Time to flash (flash the app first, then the boot loader):"
Wenn ich die Befehle davon dann in das Terminal eingebe sagt Linux nur

$ telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> make -C opendps flash
invalid command name "make"
> make -C dpsboot flash
invalid command name "make"

Ab da komme ich nicht mehr weiter. Ich hab schon alles probiert, was mir 
eingefallen ist, und bei den vorherigen Schritten wird auch eine ELF 
Datei erstellt, aber ich kriege es nicht fertig, das alles auf das Gerät 
zu krigen, wohl weil diese make sache nicht funktioniert. Ich habe 
vorher nur immer Windows genutzt, und bei den IDEs ist es halt schon 
einfacher, die bestehen nicht aus so viel einzelsoftware. Das verwendete 
Notebook hat Linuxmint drauf, GCC Compiler ist (Hoffentlich der 
richtige) (Hoffentlich korrekt) installiert.

Ich hoffe hier kann mir einer helfen.
Gruß

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Nicht dass ich mich da mit dieser Kiste auskennen wuerd', aber ich taet' 
mal vermuten, dass die beiden make Kommandos nicht aus dem telnet prompt 
raus ausgefuehrt werden sollten, sondern eben ohne vorheriges telnet - 
aus einer normalen shell raus.

Gruss
WK

von dy (Gast)


Lesenswert?

Es gibt auch für Windows Software zum flashen von ST. Lass dir auch Hex 
und bin erzeugen.
Du kannst auch einen rpi als SWD flasher nutzen.

von Olaf (Gast)


Lesenswert?

> Ich hoffe hier kann mir einer helfen.

Lerne erstmal allgemein die Grundlagen deines Systems und entwickel
ein allgemeines Verstaendnis bevor du dich als Hacker aufschwingst.

Du willst gerade einen Marathon durch eine Wueste laufen, bist
aber auf dem Level einer Oma die darauf wartet das ihr einer
ueber die Strasse hilft.

Olaf

von A. B. (Gast)


Lesenswert?

Dergute W. schrieb:
> Nicht dass ich mich da mit dieser Kiste auskennen wuerd', aber ich taet'
> mal vermuten, dass die beiden make Kommandos nicht aus dem telnet prompt
> raus ausgefuehrt werden sollten, sondern eben ohne vorheriges telnet -
> aus einer normalen shell raus.

Genau, die Anleitung ist da tatsächlich an der Stelle etwas unklar. Das 
"Make -C opendps" muss in einer normalen Shell erfolgen, damit wir das 
Target "opendps" innerhalb des Verzeichnisses opendps aufgerufen. Im 
Makefile dort geht's über mehrere "includes" letztlich dann zu einem 
Aufruf von "openenocd" (oder "gdb"), das dann mittels "nc" (netcat) 
"gefüttert" wird (statt mit telnet). Davon sieht man aber normalerweise 
gar nichts.

von LinuxNOOB (Gast)


Lesenswert?

Habe mal versucht, die beiden make commands in einer normalen Shell 
auszuführen,
dann sagt open OCD diesen Fehler:

> halt; program /home/david/opendps/opendps/opendps_DPS5005.srec verify reset
target halted due to debug-request, current mode: Handler HardFault
xPSR: 0x01000003 pc: 0xfffffffe msp: 0xffffffdc
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
** Programming Started **
auto erase enabled
device id = 0x10016420
flash size = 64kbytes
timeout waiting for algorithm, a target reset is recommended
flash write failed at address 0x8001400
error writing to flash at address 0x08000000 at offset 0x00001400
embedded:startup.tcl:487: Error: ** Programming Failed **
in procedure 'program'
in procedure 'program_error' called at file "embedded:startup.tcl", line 
543
at file "embedded:startup.tcl", line 487
>

Ich bin mir der Tatsache, dass ich darin nicht bewandert bin durchaus 
bewusst, aber es kann doch nicht so schwer sein, eine Open Source 
Firmware auf ein mehr oder weniger primitives digitales Netzteil zu 
kriegen, und vorher mit mehr oder weniger Fehlern zu kompillieren? Ich 
will ja mit dem Linux nicht gleich die EZB hacken...

Gruß

von A. B. (Gast)


Lesenswert?

LinuxNOOB schrieb:
> device id = 0x10016420

0x420, STM32F100, die haben 1kByte Sektoren ...

> timeout waiting for algorithm, a target reset is recommended
> flash write failed at address 0x8001400

Und das ist gerade eine Sektor-Grenze. Vielleicht hat die aktuelle
Version von dem DPS5005 eines der WRPT-Bits gesetzt, oder Watchdog wird 
automatisch gestartet (via Option-Byte). Andere Möglichkeit wäre noch, 
dass das vielleicht gar kein echter STM32F100 ist, denn die echten 
werden im Moment gehandelt, als wären sie aus purem Gold.

Ich fürchte, da hilft nur, sich erst einmal gründlich mit OpenOCD zu 
beschäftigen dann und die Option-Bytes und WRPT-Bits zu inspizieren. 
Lesestoff dazu ist "PM0063 Programming manual STM32F100xx value line 
Flash programming".

Vielleicht hilft auch, das ganze noch mal von vorn zu machen, eventuell 
ist beim Löschen am Anfang etwas schief gelaufen. Glaube ich zwar nicht 
so recht, aber einen Versuch ist's wert.

> Ich bin mir der Tatsache, dass ich darin nicht bewandert bin durchaus
> bewusst, aber es kann doch nicht so schwer sein, eine Open Source
> Firmware auf ein mehr oder weniger primitives digitales Netzteil zu
> kriegen, und vorher mit mehr oder weniger Fehlern zu kompillieren? Ich

Das Kompilieren ging doch problemlos?! Hier geht's um das Flashen, und 
da der Hersteller zumindest schon mal den RDP-Schutz aktviert hat, muss 
man sich beim "Einbrechen" schon auf die eine oder andere Komplikation 
einstellen.

Tja, und die "Bequemlichkeit", das Flashen im Makefile zu verstecken, 
ist nett, solange alles wie am Schnürchen läuft. Denn man muss sich ja 
nicht mit den einzelnen Tools auseinandersetzen. Aber wehe, irgendetwas 
klappt nicht oder hat sich geändert oder ...

von LinuxNOOB (Gast)


Lesenswert?

Ich werd mir das mal alles noch näher ansehen, am Anfang wollte ich nur 
open DPS auf meinem DPS5005 haben. Jetzt wird da wohl ein Crashkurs in 
C, Compilern, Linuxmint, und OpenOCD draus... Kann man denn nicht die 
ConfigBits des STM32 irgendwie alle auf Werkszustand setzen? Vielleicht 
mit dem STVP (Stlink Visual programmer)? Den hätte ich auf Windows.

Immerhin haben sie nicht (Weiß nicht ob der STM32F100x es überhaupt hat) 
RDP Level 2 gesetzt, wobei man da leise sein muss, man will sie ja nicht 
noch auf dumme Gedanken bringen...

Ich glaube (Hoffe) dass der STM echt ist, die Beschriftung auf dem Chip 
sieht schon mal nicht nach Ching Chong great Wall blabla aus, aber das 
muss ja leider nichts heißen...

Dass die aktuell gehandelt werden wie Gold erlebe ich gerade als (Nicht 
ganz so Mikroelektronik)Bastler privat, und mein Arbeitgeber im 
industriell hochskalierten Stil ebenfalls so richtig schön live in HD 
und in bester true color Farbe...

Gruß

von LinuxNOOB (Gast)


Lesenswert?

Habs hingekriegt, die Open DPS läuft auf dem DPS.
Jetzt muss ich nurnoch den Umgang mit C, Linux, Open OCD, und dem 
Compiler lernen, dann bin ich fast schon Profi...
Müsste ja so in fünf bis zehn Jahren machbar sein..,.

von A. B. (Gast)


Lesenswert?

Woran lag es denn genau? Es wäre ganz nett, dem Urheber von 
https://johan.kanflo.com/upgrading-your-dps5005/
das mitzuteilen, vielleicht hilft's ja noch jemanden ...

von LinuxNOOB (Gast)


Lesenswert?

Ich denke eher nicht. Ich hatte zwei DPS5005 einer ließ sich nicht 
flashen, der andere mit ein bisschen Gerüttel auf Anhieb. Ich denke 
daher dass warum auch immer der µC auf dem anderen hin ist, auch weil 
ich ihn mehrmals versucht habe zu entsperren über Open OCD (Lockbit auf 
0) und er auch nach mehrmaligem aus und wieder einschalten bzw. "reset 
halt" immernoch gesperrt war.

Aber was Kanflo echt mal einbauen könnte (Schreibe ich ihm noch) wäre 
der Support für das DPH5005, das kann nämlich im Gegensatz zum DPS5005 
auch StepUp, also ausgangsspannung höher als Eingansspannung.

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.