Forum: Mikrocontroller und Digitale Elektronik Newbie mit Fragen GD32


von Mark (mastercut)


Lesenswert?

Hallo zusammen,

ich habe so die ein oder anderen Probleme mit dem weiteren Vorgehen, 
vielleicht hab ihr ein paar Infos für mich.
Grundsätzlich bin ich noch nicht so richtig im Thema Microcontroller 
programmieren. Experimentiere etwas mit TUYA, Hoass, Openbeken etc. 
herum.
Nun hab ich einen schönen Mähroboter der später in Hoass integriert 
werden soll.
Nun soweit gut.

Das Mainboard hat einen GD32F303xxx verbaut. Es besteht die Möglichkeit 
ein
Modul für Wifi einzubauen. Nach suchen wäre dort ein WBR3 Modul 
eingebaut.
Damit die zwei sprechen muss ich sicherlich in der MCU was dazu 
Programmieren.

So nun zu meinen geistigen Ende :-)
Ich habe Verbindung zur MCU über ST32 Utility hergestellt und konnte 
eine 4 KB grosses File auslesen. Das ist natürlich in Ascii und als . 
bin abgespeichert.
Wie kann ich dieses File öffnen, bearbeiten? Habe Programme wie, GD 
AllinOne, GD PRogrammer, ST Utility, STCube, STEmbedded, Keil V5....

Wäre dankbar für einen Tip.

Grus
Mark

von Obelix X. (obelix)


Lesenswert?

Mark schrieb:
> Das ist natürlich in Ascii

Mit Notepad. Bin Dateien mit HEX-Editor. Was erhoffst du dir davon?

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

Mark schrieb:
> Wie kann ich dieses File öffnen, bearbeiten?

Mit einem HEX-Editor. Notepad++ oder sowas reicht vermutlich.

Um deine Frage inhaltich zu beantworten:
Was du ausgelesen hast, ist kompilierter Maschinencode - Daraus 
verständlichen und funktionierenden Quellcode zu machen, den man dann 
sinnvoll editieren kann, ist nahezu unmöglich.

"Du kannst ein Ei nicht ungekocht machen" gibt es als schönes Sprichwort 
dazu.

Disassembler wie Ghidra können dabei helfen, aber es wird sehr viel Zeit 
und Wissen über den Controller benötigen, um irgendetwas Brauchbares 
dabei herauszubekommen.

Realisitischer wäre es vermutlich, den Controller als Blackbox zu 
betrachten und die Softwarefunktionalitäten so gut wie möglich zu 
verstehen, zu reverse engineeren und etwas Funktionsidentisches von 
Grund auf neu zu erstellen.

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Famg lieber mit originalen STM32 an, die (und ihre Software) sind schon 
komplex genug. Du musst dich nicht gleichzeitig auch noch mit den 
Mängeln der Fakes quälen.

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

Hier ist ein schöner Artikel, der den Prozess für einen STM32 zeigt:

https://blog.attify.com/analyzing-bare-metal-firmware-binaries-in-ghidra/

Für einen GD32 müsste man vermutlich sogar erst die ganzen 
grundlegedenden Strukturen wie Informationen über Befehle, 
Speicherbereiche,... anlegen.

Und auch dann braucht man noch tiefes Verständnis über die Funktion der 
Firmware, denn soetwas wie Variablen- und Funktionsnamen gibt es im 
Dekompilat nicht.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

4 kB scheint mir für einen Mährobotor verdammt wenig zu sein. Es ist 
anzunehmen, das da eine Menge der Firmware fehlt.
Das kriegst du nicht reengineered. Selbst mit einem symbolischen 
Disassembler und aller Hilfe, die du kriegen kannst, wird das Monate 
bzw. Jahre dauern, daraus wieder ein lauffähiges Mährobbi Programm zu 
machen.

: Bearbeitet durch User
von Mark (mastercut)


Lesenswert?

Ohje, habe es vermutet, das es nicht so einfach wird.

Mal ein paar Schritte zurück.
Kann ich das gesamte Programm der MCU auslesen, sodass es mir die 
Funktionen der Ausgänge, Eingänge, Datenverbindungen (Uart, I2C, etc) 
über ein Programm anzeigen lassen?
Hintergrund ist halt der Datenaustausch mit dem vermeintlichen 
WIFI-Modul.

Da laut Platinenlayout die an PA11 und 12 laufen, an Wifi-Modul RX/TX.
Laut Anleitung ist an PA11 und 12 Uart0 oder Can-TX/RX möglich.
Dann gibt es noch zwei GPIOs die ich noch suchen muss.

von Nemopuk (nemopuk)


Lesenswert?

Mark schrieb:
> Mal ein paar Schritte zurück.
> Kann ich das gesamte Programm der MCU auslesen, sodass es mir die
> Funktionen der Ausgänge, Eingänge, Datenverbindungen (Uart, I2C, etc)
> über ein Programm anzeigen lassen?

Nein. Du musst dem Maschinencode (Assembler) analysieren und verstehen. 
Wenn du damit nicht schon als 12 Jähriger angefangen hast, wirst du es 
in duesem Leben nicht mehr erlernen.

von Mark (mastercut)


Lesenswert?

Hmmm, ist ja nicht befriedigend.

Dann wäre meine Alternative nur eine Firmware von einem Gerät mit 
Wifi-Modul zubekommen und dies drüber flashen?

von Oliver S. (oliverso)


Lesenswert?

Wenn das Wifimodul nachrüstbar ist, dürfte die Firmware schon alles 
enthalten, was dafür gebraucht wird.

Ansonsten kannst du davon ausgehen, dass der Code gegen auslesen 
geschützt ist. Da kommst du nicht dran.

Oder anders gesagt: Verkauf den Mähroboter, und kauf einen mit WiFi.

Oliver

von Mark (mastercut)


Lesenswert?

Oliver S. schrieb:
> Oder anders gesagt: Verkauf den Mähroboter, und kauf einen mit WiFi.


Dabei hab ich schon Spass am basteln. Irgendwie enttäuschend.

Trotzdem Danke für die Antworten.
Gruß
Mark

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du kannst ja mal messen mit Logikprüfer oder Oszi, ob an TX zum Wifi 
Modul schon Daten gesendet werden. Wenn ja, kann es schon sein, das die 
Firmware darauf vorbereitet ist.

von Mark (mastercut)


Lesenswert?

Stimmt, hab leider keinen Oszi. Ich gucke mal

Gruß
Maik

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.