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ß
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
> 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
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.
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ß
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 ...
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ß
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..,.
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.