Friday, 2 June 2017

Objcopy Ihex Binäre Optionen


Advance Notice Navigation Generierung von srec (Motorola S Format), Binärdateien, Ihex (Intel Hex) Dateien Beim Erstellen eines Projekts erstellt die Code Red Tools Suite eine ARM ausführbare Formatdatei (AXF), die eigentlich ELFDWARF ist. Diese Datei kann mit der Code Red Debug-Funktionalität direkt auf Ihr Ziel programmiert werden. Aber es kann auch in eine Vielzahl von Formaten umgewandelt werden, die für den Einsatz in anderen externen Werkzeugen geeignet sind. Hierfür wird das objcopy (arm-none-eabi-objcopy) Dienstprogramm verwendet. Objcopy kann in folgende Formate umwandeln: srec binary ihex tekhex Zum Beispiel, um example. axf ins Binärformat umzuwandeln, verwenden Sie den folgenden Befehl: arm-none-eabi-objcopy - O binäres Beispiel. axf example. bin Wenn Sie Strg-Klick klicken Auf dem Projektnamen auf der rechten Seite der unteren Leiste der IDE startet eine Eingabeaufforderung im Projektverzeichnis mit entsprechenden Pfaden. 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 ändern, die verwendet werden, um eine Binärdatei auf diese Weise auf der Windows-gtPreferences, LPCXpressoRedSuiteUtilites Präferenzseite zu erstellen. Automatisches Konvertieren der Datei während eines Builds Objcopy kann verwendet werden, um automatisch eine axf-Datei während eines Builds zu konvertieren. Um dies zu tun, erstellen Sie einen entsprechenden Post-Build-Schritt. Für weitere Details siehe FAQ Post-Verarbeitung Ihrer verknüpften Anwendung. Bild-Prü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. Bei ARM7ARM9-basierten Teilen wird dieses Prüfsummenwort bei 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üfsummenprogramm ausführen, um die Binärdatei selbst nachzuverarbeiten. Wenn du den bereitgestellten Post-Build-Schritt modifizierst, um deine Binärdatei zu erstellen (nach der FAQ Post-Processing deine verknüpfte Applikation), dann geschieht dies normalerweise automatisch nach dem Build-Schritt: Aber wenn man eine Hex-Datei zur Verwendung erstellen muss Von FlashMagic Pflege muss genommen werden, dass Sie nicht das Checksum-Dienstprogramm auf der Hex-Datei selbst ausführen. Das Prüfsummen-Dienstprogramm funktioniert nur auf Binärdateien, nicht Hex-Dateien. So wird die Prüfsumme utilty Ihre Hex-Datei beschädigen, wenn Sie die Hex-Datei verwenden Als Eingabe. Beachten Sie, dass FlashMagic automatisch das Prüfsummenwort für Sie festlegt, wenn Sie es verwenden, um eine Hex-Datei auf ein LPC-Gerät zu programmieren. Aber wenn Sie die Prüfsumme selbst einstellen möchten, dann ist die empfehlende Möglichkeit, eine solche Hex-Datei zu erstellen Folgt: konvertieren in binäre laufen das checkum utility konvertieren die binäre 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 Wollen ein Bild aufführen. Ein großartiges Werkzeug zum Manipulieren von Bilddateien und zur Generierung einer Vielzahl von Prüfsummen ist das Open Source SRecord Tool. OutputFormats (() DerekMorris 2012-01-15 20:36:13) GNU Binutils Die GNU Binutils sind eine Sammlung von Binärwerkzeugen. Die wichtigsten sind: Aber sie beinhalten auch: addr2line - Konvertiert Adressen in Dateinamen und Zeilennummern. Ar - Ein Dienstprogramm zum Erstellen, Ändern und Extrahieren von Archiven. Cfilt - Filter, um codierte C-Symbole zu zerlegen. Dlltool - Erstellt Dateien zum Erstellen und Verwenden von DLLs. Gold - Ein neuer, schnellerer, ELF nur Linker, noch im Beta-Test. Gprof - Zeigt die Profilierungsinformationen an. Nlmconv - Konvertiert Objektcode in ein NLM. Nm - Listet Symbole aus Objektdateien auf. Objcopy - Kopiert und übersetzt Objektdateien. Objdump - Zeigt Informationen aus Objektdateien an. Ranlib - Erzeugt einen Index zum Inhalt eines Archivs. Lesen - Zeigt Informationen aus jeder ELF-Format-Objektdatei an. Size - Listet die Abschnittsgrößen eines Objekts oder einer Archivdatei auf. Strings - Listet druckbare Zeichenfolgen aus Dateien auf. Streifen - verwirft Symbole. Windmc - Ein Windows-kompatibler Nachrichten-Compiler. Windres - Ein Compiler für Windows-Ressourcendateien. Die meisten dieser Programme verwenden BFD. Die Binary File Descriptor Bibliothek, um Low-Level-Manipulation zu tun. Viele von ihnen verwenden auch die opcodes Bibliothek, um Maschinenanweisungen zusammenzubauen und zu zerlegen. Die Binutils wurden auf die meisten großen Unix-Varianten sowie Wintel-Systeme portiert, und ihr Hauptgrund für die Existenz ist es, dem GNU-System (und GNULinux) die Möglichkeit zu geben, Programme zu kompilieren und zu verknüpfen. Erhalten von binutils Die neueste Version von GNU binutils ist 2.27. Die verschiedenen NEWS-Dateien (binutils. Gas und ld) haben Details darüber, was sich in dieser Version geändert hat. Weitere Informationen zum Erhalt von Freigaben von GNU-Binutilen und anderen GNU-Software finden Sie auf der SOFTWARE-Seite. Die aktuelle Version kann von ftp. gnu. orggnubinutils heruntergeladen werden Wenn Sie planen, aktive Arbeit auf GNU binutils zu machen, können Sie auf den Entwicklungsquellenbaum durch anonyme git zugreifen: Alternativ können Sie die gitweb-Schnittstelle verwenden. Oder die Quell-Snapshots, die als assipped tar-Dateien über anonyme FTP von ftp: sourceware. orgpubbinutilssnapshots verfügbar sind. Bug-Reports Mailing-Listen Es gibt drei Binutils-Mailing-Listen: bug-binutilsgnu. org (Archive) Für die Meldung von Bugs. Binutilssourceware. org (archives) Für die Besprechung von binutils Ausgaben. Binutils-cvs (archive) Eine schreibgeschützte Mailingliste mit den Notizen von checkins zum binutils git repository. (Diese Liste hat einen ungeraden Namen aus historischen Gründen.) Sie können dieses Formular verwenden, um die Mailboxen von binutilssourceware. org oder binutils-cvssourceware. org abonnieren zu können: Um die Bug-binutilsgnu. org Mailingliste abonnieren zu können, lesen Sie die Bug-Binutils Infoseite. Vielleicht möchten Sie die alten Mail-Archive der Gas2- und bfd-Mailinglisten durchsuchen. Dies waren die Diskussionslisten für binutils bis Mai 1999. Bitte schicken Sie keine E-Mails an sie mehr. Dokumentation Ein Leitfaden zur Portierung der Binutile zu einem neuen Ziel wurde beigetragen. Bitte senden Sie FSF amp GNU Anfragen amp Fragen an gnugnu. org. Es gibt auch andere Möglichkeiten, die FSF zu kontaktieren. Bitte senden Sie Kommentare zu diesen Webseiten an binutilssourceware. org. Sende andere fragen an gnugnu. org. Copyright (C) 1998, 2000-2014 Freie Software Foundation, Inc. 51 Franklin Street, Fünfte Etage, Boston, MA 02110-1301, USA Verbatim Kopieren und Verteilen dieses gesamten Artikels ist in jedem Medium erlaubt, sofern diese Bekanntmachung erhalten bleibt. Aktualisiert: Letzte Änderung: Mo Sep 23 08:45:03 BST 2014AVR Libc Referenzhandbuch Ein einfaches Projekt Generieren von Intel Hex Dateien Wir haben eine Binärdatei, aber wie bekommen wir es in den Prozessor Die meisten (wenn nicht alle) Programmierer werden Ich akzeptiere keine GNU ausführbare Datei als Eingabedatei, also müssen wir ein wenig mehr Verarbeitung machen. 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 gezogen und in die Datei demo. hex mit folgendem Befehl gelegt 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 zum Programmieren 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 der avr-objcopy-Befehl, der die leeren EEPROM-Dateien generiert hat, nun wegen des leeren Eingabebereichs abgebrochen, so dass diese leeren Dateien nicht generiert werden. Es signalisiert auch einen Fehler an das Makefile, das dort gefangen wird und macht es eine Nachricht über die leere Datei nicht generiert drucken. HINWEIS: Diese Website wird in naher Zukunft heruntergefahren werden. Der Produktinhalt ist auf nxp verschoben worden. Forum-Inhalte und FAQs wurden in community. nxp verschoben. Wir ermutigen Sie, ein Benutzerkonto auf nxp zu erstellen, um die neuen Community-Foren zu nutzen und auf NXP-Mikrocontroller-Inhalte zuzugreifen. Wir freuen uns über Ihren Besuch und freuen uns auf Ihren neuen Standort. Bin-gthex Conversion Problem Mi, 2013-07-24 14:55 Ich versuche, eine. hex-Datei zu erstellen, die an einer Nicht-Null-Position im Speicher mit der Prüfsumme inbegriffen ist, und ich laufe in ein Problem. Um checksum. exe laufen zu lassen, muss ich von. axf zu. bin umwandeln, checksumme ausführen und dann in. hex konvertieren. Das Problem ist, dass die resultierende. hex-Datei nicht anfängt, wo das Linkerskript es sagt, sondern es beginnt um 0x0000. Alles funktioniert, wenn ich von. axf direkt zu. hex konvertiere, also führt es mich zu glauben, dass das problem in der. bin zu. hex umwandlung ist, oder möglicherweise in der. axf zu. bin umwandlung. Seine glatte Information wird irgendwo entlang der Linie verloren. Von dem, was ich gelesen habe, sind die Post-Build-Schritte, um in die Prüfsumme hinzuzufügen und am Ende mit einer. hex-Datei sind wie folgt: Ive genommen die Prüfsumme Schritt und versuchte. axf - gt. bin - gthehex und ich bekomme das gleiche Ergebnis, also ist das Problem nicht checksum. exe Irgendwelche Ideen oder offensichtliche Fehler Target LPC1769 Mit RedSuite5 Deine Bewertung: Keine Mi, 2013-07-24 20:38 Definitionsgemäß enthält eine Binärdatei keine Adressinformationen. Eine Binärdatei enthält nur Daten. Also, Umwandlung in binäre alle Adressinformationen geht verloren. Ich denke, du kannst objdump verwenden, um die Hex-Datei mit der Option --image-base zu re-base. Thu, 2013-07-25 02:56 Uh. Um die Startadresse zu ändern, nur um die Projekt-Eigenschaften - gt CC Build - gt MCU-Einstellungen. Dort ändere ich die Location-Adresse für den Flash (und die Größe auch offensichtlich) und trage Apply (lt - das ist wichtig, es wird keine Wirkung haben, wenn du nicht auf Apply klicken kannst. Dann in CC Build - gt Einstellungen - gt Build Schritte Ich benutze den folgenden Befehl in Post-Build-Schritte: Arm-Nicht-Eabi-Größe Arm-Nicht-Eabi-objcopy - O binäre. Bin-Checksumme - p - d. bin Arm - Kein-eabi-objcopy - O ihex. hex Das hat bisher einwandfrei funktioniert. Oder ich verstehe die Frage falsch Thu, 2013-07-25 09:38 TKoe hat geschrieben: Uh. Um die Startadresse zu ändern, nur um die Projekt-Eigenschaften - gt CC Build - gt MCU-Einstellungen. Dort ändere ich die Location-Adresse für den Flash (und die Größe auch offensichtlich) und trage Apply (lt - das ist wichtig, es wird keine Wirkung haben, wenn du nicht auf Apply klicken kannst. Dann in CC Build - gt Einstellungen - gt Build Schritte Ich benutze den folgenden Befehl in Post-Build-Schritte: Arm-Nicht-Eabi-Größe Arm-Nicht-Eabi-objcopy - O binäre. Bin-Checksumme - p - d. bin Arm - Kein-eabi-objcopy - O ihex. hex Das hat bisher einwandfrei funktioniert. Oder verstehe ich die Frage falsch Wenn du diese Schritte machst, sieht es so aus, als würdest du eine. bin-Datei mit der Prüfsumme erstellen und dann eine. hex-Datei ohne die Prüfsumme erstellen. Ist die Checksummen-Information tatsächlich in der. hex-Datei, die ich ausprobiert habe und es war nicht da drin. TheFallGuy hat geschrieben: Definitionsgemäß enthält eine Binärdatei keine Adressinformationen. Eine Binärdatei enthält nur Daten. Also, Umwandlung in binäre alle Adressinformationen geht verloren. Ich denke, du kannst objdump verwenden, um die Hex-Datei mit der Option --image-base zu re-base. Okay, das macht Sinn. Ich verstehe immer noch nicht viel über das Binärformat, aber wenn es darum geht, zu blinken, würde ich denken, dass es sich hierbei um eine Art von Ableitungsadressen von ihm handelt. Die Option - Bildbasis klingt vielversprechend. Ich habe versucht: arm-none-eabi-objcopy --image-base 0x10000 - I binary - O ihex. bin. hex Es hat nicht funktioniert, aber es scheint wie eine Möglichkeit. Ich muss ein bisschen mehr lesen. Okay, ich habe es geschafft Die enthaltene Version von objcopy verwendet nicht die Option --image-base. Es hat andere Optionen wie --set-start, - change-start, --adjust-start. Die nicht funktionierten, aber die, die funktionierte, ist - Adressen-Adressen. Danke, dass du mich in die richtige Richtung hingewiesen hast. Wer hätte gedacht, um die Optionen auf das Tool zu betrachten, das ich benutzt habe. Ich dusche dich in wertloses Internet Lob. Mi, 2015-03-25 05:58 Im neu bei ARM und LPCXpresso. Ich habe an den Händen ein COMBLOCK 1500B Board mit einem LPC1759 ARM Cortex M3 MCU. Für meine Einführung in diese Werkzeuge entschließe ich mich, mit einem akademischen LED-Blink-Beispiel auf P120 GPIO zu beginnen. (Ich lege mein Projekt an) Für die Konfiguration verwende ich: void led2init (void) Set P120 bis 00 - GPIO LPCPINCON-gtPINSEL3 amp (Set GPIO - P020 - zur Ausgabe LPCGPIO1-gtFIODIR (1 ltlt 20) Funktion zum Drehen der LED auf void led2on (1 ltlt 20) LPCGPIO1-gtFIOSET (1 ltlt 20) Funktion zum Blinken der LED2 aus void led2off (void) LPCGPIO1-gtFIOCLR (1 ltlt 20) Das Projekt wurde ohne Probleme aufgebaut, also für den Blitz der MCU benutze ich einen externen JTAG für diese Platine Und verwenden Sie Flash Magic Tool, um die HEX-Datei hochzuladen. Ich versuche Ihre Vorschläge die Post-Build-Schritte auf LPCXpresso Project - gt Eigenschaften - gt CC Build - gt Einstellungen: Ich lade den Code mit Flash Magic an die MCU ohne Probleme, aber ich nicht Sehen Sie Aktivität auf der LED, was habe ich falsch gemacht. Könnten Sie mir helfen?

No comments:

Post a Comment