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
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?
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
Gast
#3713267
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.
Gast
#3713277
Müsste man die Hex Dateien vorher evtl mergen? Oder kann ich einfach in eine evtl bereits beschriebene Page schreiben?
Gast
#3713302
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.
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
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.
Gast
#3713390
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
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.
Gast
#3714156
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...
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.
Danke für eure Antworten. Ich werden mal versuchen die beiden *.hex files zu mergen. Viele grüße Tobias
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.