Forum: Mikrocontroller und Digitale Elektronik STM32 - Zusätzliche *.hex Datei mit Programmieren


von Tobias S. (tryan)


Lesenswert?

Hallo,

ich verwenden z.Z. den STM32F103 und CooCox CoIDE zum programmieren.

Ich möchte gerne eine zusätzliche *.hex mit Programmieren. Diese *.hex 
wird diverse Information enthalten mit dem der Controller arbeiten soll.

Also müsste die Speicher Adresse gleich bleiben.

Bei AVR habe ich damals die *.hex Datei ins EEPROM übertragen und damit 
gearbeitet.

Ich habe schon im Internet gesucht, aber leider nichts dazu gefunden, 
oder unter den falschen begriffen gesucht.

Wie könnte man das Problem beim STM32F103 lösen?

Vielen Danke für eure Hilfe

Viele grüße Tobias

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tobias S. schrieb:
> Diese *.hex wird diverse Information enthalten mit dem der Controller
> arbeiten soll.
"Arbeiten" bedeutet in diesem Fall also nur "Lesen"?

> oder unter den falschen begriffen gesucht.
Das am ehesten.

Ich würde das Ross aber gern von vorn aufzäumen und frage deshalb erst 
mal: woher kommt diese Hex-Datei? Wie wird sie erzeugt? Sind das 
irgendwelche Inbetriebnahme- oder Kalibrierdaten?

von Tobias S. (tryan)


Lesenswert?

Hallo Lothar Miller,

Danke für deine Antwort.

Ja, mit Arbeiten meinte ich in diesen Fall "nur" Lesen.

In der *.hex Datei werden Inbetriebnahme Daten gespeichert.

Die *.hex Datei wird von dem Programm "Phoenix EDID Designer" erzeugt.

Viele Grüße Tobias

von m.n. (Gast)


Lesenswert?

Von STM gibt es einen STM-Loader. Wenn ich nicht irre, kann man damit 
auch zusätzliche Dateien an entsprechende Positionen ins Flash 
schreiben, ohne das 'Hauptprogramm' dabei zu überschreiben.

von Klaus B. (Gast)


Lesenswert?

Müsste man die Hex Dateien vorher evtl mergen?
Oder kann ich einfach in eine evtl bereits beschriebene Page schreiben?

von StinkyWinky (Gast)


Lesenswert?

Ich mache das so: Zwei *.hex-Dateien (Motorola oder Intel Format) werden 
mit dem Copy-Befehl zusammenfügen, dann mit hex2bin zu einer *.bin Datei 
gewandelt, welche dann ins Flash geschrieben wird.

Dabei muss darauf geachtet werden, dass sich die Adressen nicht 
überlappen.

von Tobias S. (tryan)


Lesenswert?

Hallo,

danke für die Antworten.

Am liebsten wäre die Variante von m.n., aber leider finde ich den 
"STM-Loader" nicht. Ich habe nur den ST Visual Programmer gefunden.

Vielleicht sind das auch die gleichen...

Viele grüße Tobias

von Mike R. (thesealion)


Lesenswert?

Du musst mal bei ST nach ST-Link suchen. Das ist ein Programmer von 
denen und da findet sich auch auf jeden Fall ein Link auf den Loader.

von m.n. (Gast)


Lesenswert?


von Tobias S. (tryan)


Lesenswert?

Hallo,

der  "Flash loader demonstrator" geht leider nur über UART und ich habe 
nur die SDW-Schnittstelle zur Verfügung.

Ich habe noch den STM32 ST-Link Utility gefunden. Leider sagt der, aber 
das meine *.hex file "empty oder corrupted" ist :(.

Viele grüße Tobias

von Jim M. (turboj)


Lesenswert?

Tobias S. schrieb:
> Leider sagt der, aber
> das meine *.hex file "empty oder corrupted" ist :(.

Besteht das Hex aus zwei hintereinander kopierten Hex Dateien? Du musst 
dann in der ersten Datei vorher die letzte Zeile entfernen - in der 
steht eine Markierung für "Ende". Bei mehr als 64KB Flash ist auch die 
Reihenfolge beim Kopieren nicht mehr egal.

von Janvi (Gast)


Lesenswert?

schreib dir ein Skript das die hex Datei liest und einen Quellcode draus 
macht. Dann dazulinken und gut isses. Habe ich mal so mit einem 
Rampengenerator für Schrittmotoren und mit einem Zeichensatzgenerator 
für LCDs gemacht...

von Phantomix X. (phantomix)


Lesenswert?

Du kannst dir mal dieses tool anschauen:

http://firmwarebatchtools.ugfx.org/

ist momentan noch in der alpha und sucht Tester :D Damit ist es aber 
problemlos möglich, zwei hexfiles zu mergen und ein ext. programm 
aufzurufen, dass die resultierende hex dann auf den Controller schiebt.

von Tobias S. (tryan)


Lesenswert?

Danke für eure Antworten. Ich werden mal versuchen die beiden *.hex 
files zu mergen.

Viele grüße Tobias

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.