Saturday 14 January 2017

Objcopy Ihex Binary Options

Ich möchte Programm auf meinem STM32F4 Discovery-Board mit St-Flash-Befehl. Problem ist, wenn ich versuche zu hochladen. Hex oder. elf-Datei ist es nur nicht funktioniert. Ich habe versucht, viele Wege (wie mit xxd) der Umwandlung von. elf oder. Hex zu. bin, aber es ist immer noch nicht funktioniert, wenn ich es hochladen. Und ja, ich versucht Hochladen von Hex-Datei von anderen Windows-Computer und es funktioniert. Beispiel (erste drei Zeilen, nur um Ihnen zu zeigen, wie es innen aussieht) von Hex-Datei: Mein Betriebssystem ist Ubuntu 14.04 LTS. Danke für die Hilfe Ok, ich kann jetzt auf meinen PC zugreifen. So I39ve versucht beide Optionen: arm-keine-eabi-objcopy quotF4 Entdeckung test. elfquot - Obinary quot. binquot und arm-keine-eabi-objcopy quotF4 Entdeckung test. elfquot - Oihex quotnewout. binquot - sie don39t Arbeit, zumindest für mich . I39m tatsächlich versucht zu verstehen, OpenOCD und I39ve hochgeladen meine. Hex und es funktioniert. Ndash Jacajack Nov 17 14 am 14:58 hex Dateiformat ist im Web dokumentiert. Sie benötigen ein Loader-Programm in der Lage, es zu verstehen, wie es mehrere Arten von Registern, um den Ladevorgang zu kontrollieren. Einige der Register steuern die Einstiegspunktadresse. Andere sind Daten, die an einer festen Adresse geladen werden sollen. Sie können Informationen an der wikipedia (Ich habe es dort gefunden) für Intel Hex-Format (das ist, wie es heißt). Wenn alle Daten auf nur einem Segment vorhanden sind und kein Einstiegspunkt angegeben ist, können Sie es theoretisch in Binärdaten umwandeln, die geladen werden sollen, aber das ist unwahrscheinlich. Es handelt sich um eine Textdatei, die aus Zeilen besteht, die mit: Zeichen beginnen, dann kommt eine Hexadezimalzahl mit zwei Feldern, die die Anzahl der Bytes von Daten darstellt, die dieser Datensatz hat, dann die Adresse, auf die diese Daten geladen werden sollen, dann die Art der Datei Einer von: 00 Dieser Wert ist für einen Bündel von Daten, in der Regel 16 Byte (0x10) 01 Ende der Datei. Es hat keine Daten, also immer codiert als: 00000001FF 02 Erweiterte Segmentadresse, um Adressen mit mehr als 16bit zu ermöglichen. 03 Start Eintragpunktadresse, um die anfängliche CS: IP-Adresse in der 0x86-Architektur zu registrieren. 04 Extended Linear Address, um 32-Bit-Adressen festzulegen. Dies legt den oberen 16-Bit-Adressenteil von 00 Registern fest. 05 Start Eintragungspunkt Lineare Adresse. Dies ist die 32 Bit lineare Eintrittspunktadresse. Dann kommen n Bytes (n ist der Wert des ersten Feldes) der zu ladenden Daten (hex-codiert) und schließlich ein Prüfsummen-Byte (die Summe in Zweierkomplement aller Datensatzbytes aus dem Doppelpunkt). Antwort # 2 am: November 23, 2010, 01:14:22 am »Also, was Sie für mich vorschlagen, war ich mit st-flash schreiben bingotfromhex. bin 0x8000000. Ich bin eigentlich Lernen OpenOCD kleine Schritte, so kann ich hochladen. Vielen Dank für die Erklärung, wie Hex-Dateien arbeiten ndash Jacajack Ich weiß nicht. Intel hex format ist ein allgemeines, sehr verlängertes Format. Ich don39t Arbeit mit ARMs. Ich kann dir nicht mehr helfen. Es tut uns leid. Vielleicht müssen Sie eine Option für st-flash verwenden, um in der Lage, hex-Dateien zu analysieren. Haben Sie versucht st-flash --help. Ndash Luis Colorado Erstellung von srec (Motorola S-Format), binären, ihex (Intel Hex) Dateien Beim Erstellen eines Projekts erstellt die Code Red Tools Suite eine ARX-Datei (AXF) Die tatsächlich ELF / DWARF ist. Diese Datei kann mit dem Code Red Debug-Funktionalität direkt auf Ihr Ziel programmiert werden. Es kann aber auch in eine Vielzahl von Formaten umgewandelt werden, die für andere externe Werkzeuge geeignet sind. Das Objcopy (arm-none-eabi-objcopy) Dienstprogramm wird dafür verwendet. Objcopy kann in die folgenden Formate konvertieren: srec binary ihex tekhex Um Beispiel. axf in binäres Format zu konvertieren, verwenden Sie den folgenden Befehl: arm-none-eabi-objcopy - O binary example. axf example. bin Wenn Sie Strg-klicken Auf dem Projektnamen auf der rechten Seite der unteren Leiste der IDE, wird dies eine Eingabeaufforderung im Projektverzeichnis mit entsprechenden Pfaden eingerichtet. Alles was Sie tun müssen, bevor Sie den Befehl objcopy ausführen, ändert sich in das Verzeichnis der erforderlichen Build-Konfiguration. Sie können auch die. axf-Datei im Projekt-Explorer auswählen, mit der rechten Maustaste klicken und Binary Utilities-gtCreate binary auswählen. Sie können die Optionen für die Erstellung einer Binärdatei auf diese Weise auf der Voreinstellungsseite Windows-gtPreferences, LPCXpresso / RedSuite / Utilites ändern. Automatisches Konvertieren der Datei während eines Builds Objcopy kann verwendet werden, um automatisch eine Axf-Datei während eines Builds zu konvertieren. Erstellen Sie dazu einen geeigneten Post-Build-Schritt. Weitere Informationen finden Sie unter FAQ Nachbearbeitung Ihrer verknüpften Anwendung. Bildprüfsummen (NXP LPC-Familien) NXP-Teile verwenden ein Wort in der Vektortabelle des Prozessors, um eine Prüfsumme zu speichern, die vom Bootloader untersucht wird, um ein gültiges Bild zu identifizieren. Für ARM7 / ARM9 basierte Teile wird dieses Prüfsummenwort auf Offset 0x14 gespeichert, für Cortex-M basierte Teile wird es bei Offset 0x1C gespeichert. Beim Herunterladen von Code über den Debugger wird dieses Prüfsummenwort automatisch ausgefüllt, wenn das Bild heruntergeladen wird. Beim Erstellen einer Binärdatei müssen Sie sicherstellen, dass Sie das mitgelieferte Prüfsummen-Programm ausführen, um die Binärdatei selbst nachzuverarbeiten. Wenn Sie den mitgelieferten Postbuild-Schritt ändern, um Ihre Binärdatei zu erstellen (wie bei der FAQ Nachbearbeitung Ihrer verknüpften Anwendung, erfolgt dies normalerweise automatisch durch den Post-Build-Schritt: Aber wenn Sie eine Hex-Datei zur Verwendung erstellen müssen Von FlashMagic Pflege muss getroffen werden, dass Sie nicht die Prüfsumme-Dienstprogramm auf der Hex-Datei selbst ausgeführt. Die Prüfsumme-Dienstprogramm funktioniert nur auf binäre Dateien, nicht Hex-Dateien. Daher wird die Prüfsumme utilty Ihre Hex-Datei beschädigt, wenn Sie die Hex-Datei verwenden Als Input. Beachten Sie, dass FlashMagic automatisch die Checksumme Wort für Sie, wenn Sie es verwenden, um eine Hex-Datei auf ein LPC-Gerät zu programmieren. Aber wenn Sie die Prüfsumme selbst setzen wollen, dann ist die Empfehlung, eine solche Hex-Datei zu erstellen ist wie Folgendes: Konvertieren in Binärdateien Das Konvertierungs-Hilfsprogramm konvertieren die Binärdatei in Hex, mit arm-none-eabi-objcopy - I binary - O ihex myfile. bin myfile. hex Generierung anderer Arten von Prüfsumme Es gibt viele verschiedene Arten von Prüfsummen, die Benutzer können Ein großes Werkzeug für die Bearbeitung von Bilddateien und die Generierung einer Vielzahl von Prüfsummen ist das Open Source SRecord Tool. Ein einfaches Projekt Generierung von Intel Hex-Dateien Wir haben eine Binärdatei der Anwendung, aber wie bekommen wir es in den Prozessor Die meisten (wenn nicht alle) Programmierer akzeptieren keine GNU-Datei als Eingabedatei, also müssen wir ein wenig mehr Verarbeitung durchführen. Der nächste Schritt besteht darin, Teile der Binärdatei zu extrahieren und die Informationen in. hex-Dateien zu speichern. Das GNU-Dienstprogramm, das dies tut, heißt avr-objcopy. Der ROM-Inhalt kann aus unseren Projekten binär herausgezogen und mit folgendem Befehl in die Datei demo. hex eingefügt werden: avr-objcopy - j. text - j. data - O ihex demo. elf demo. hex Die resultierende demo. hex-Datei enthält : 1000000020E0A0E6B0E001C01D92A336B207E1F700: 100010001F920F920FB60F9211242F938F939F93DD: 1000200080916200882301F1813081F48091600029: 100030009091610001979093610080936000009718: 1000400049F41092620080E090E004C0809160006A: 10005000909161009BBD8ABD9F918F912F910F90D0: 100060000FBE0F901F9018958091600090916100D5: 10007000019690936100809360008F3F23E0920788: 1000800049F781E0809362008FEF93E0E3CF83E84C: 100090008FBD8EB581608EBD1BBC1ABC82E087BB54: 1000A00084E089BF7894089583E88FBD8EB5816020: 1000B0008EBD1BBC1ABC82E087BB84E089BF7894EC: 1000C00085B7806885BF889585B78F7785BFF8CF5E: 0800D000F89400C0F894FFCF82: 00000001FF die Option - j zeigt an, dass wir die Informationen aus dem. text und. data Segment extrahiert werden soll. Wenn wir das EEPROM-Segment angeben, können wir eine. hex-Datei erzeugen, die für die Programmierung des EEPROMs verwendet werden kann: avr-objcopy - j. eeprom - change-section-lma. eeprom0 - O ihex demo. elf demoeeprom. hex Es gibt Keine demoeeprom. hex-Datei geschrieben, da diese Datei leer wäre. Ab der Version 2.17 der GNU binutils wird nun der Befehl avr-objcopy, der die leeren EEPROM-Dateien erzeugt hat, wegen des leeren Eingabebereichs. eeprom abgebrochen, so dass diese leeren Dateien nicht erzeugt werden. Es signalisiert auch ein Fehler an der Makefile, die dort gefangen werden, und macht es eine Nachricht über die leere Datei nicht generiert drucken.


No comments:

Post a Comment