Wednesday, 6 December 2017

Objcopy ihex binära alternativ


Advance Notice Navigation Generera srec (Motorola S-format), binära, ihex (Intel Hex) - filer När du bygger ett projekt, skapar paketet Red Tools-svit ett ARM-körbart format (AXF) - fil - vilket är faktiskt ELFDWARF. Den här filen kan programmeras direkt ner till ditt mål med funktionen Code Red debug. Men det kan också konverteras till en mängd olika format som är lämpliga för användning i andra externa verktyg. Den objcopy (arm-none-eabi-objcopy) verktyget används för detta. Objcopy kan konvertera till följande format: srec binär ihex tekhex Till exempel, för att konvertera example. axf till binärt format, använd följande kommando: arm-none-eabi-objcopy - O binär example. axf example. bin Om du Ctrl-klickar På projektnamnet på höger sida av IDE: ns undre fält öppnar detta en kommandotolk i projektkatalogen med lämpliga sökvägar. Allt du behöver göra innan du kör objcopy-kommandot ändras till katalogen för den nödvändiga byggkonfigurationen. Du kan också välja. axf-filen i Project Explorer, högerklicka och välj Binary Utilities-gtCreate binär. Du kan ändra alternativen som används för att skapa en binär fil på detta sätt på sidan Preferences-sida i Windows-gtPreferences, LPCXpressoRedSuiteUtilites. Automatiskt konvertera filen under en byggnad Objcopy kan användas för att automatiskt konvertera en axf-fil under en byggnad. För att göra detta, skapa ett lämpligt efterbyggnadssteg. Mer information finns i FAQ Efterbehandling av din länkade ansökan. Image Checksums (NXP LPC-familjer) NXP-delar använder ett ord i processorns vektortabell för att lagra en kontrollsumma som undersöks av startläsaren för att identifiera en giltig bild. För ARM7ARM9-baserade delar lagras detta kontrollsummord i offset 0x14, för Cortex-M-baserade delar lagras den i offset 0x1C. När du hämtar koden via debugger fylls det här kontrollsummordet automatiskt när bilden hämtas. När du skapar en binär fil måste du se till att du kör det medföljande kontrollsumverktyget för att efterbehandla binären själv. Om du ändrar det medföljande postbyggnadssteget för att skapa ditt binära (enligt Vanliga frågor efter bearbetning av din länkade ansökan, görs det normalt automatiskt efter steg efter byggnad: Men om du behöver skapa en hex-fil för användning av FlashMagic måste du ta hand om att du inte kör kontrollsumverktyget på hex-filen själv. Kontrollsumverktyget fungerar bara på binära filer, inte hex-filer. Därför kommer kontrollsummen att korrumpera din hex-fil om du använder hex-filen som inmatning. Observera att FlashMagic automatiskt ställer in kontrollsäkringsordet för dig när du använder det för att programmera en hex-fil till en LPC-enhet. Men om du vill ställa in kontrollsumman själv är det rekommenderat att skapa en sådan hex-fil som följer: konvertera till binär köra checkumverktyget omvandla binärt i hex, med hjälp av arm-none-eabi-objcopy - I binär - O ihex myfile. bin myfile. hex Generera andra typer av checksum Det finns många olika typer av checksum som användare kan vill utföra på en bild. En bra verktyg för att manipulera bildfiler och generera en mängd kontrollsummor är Open Source SRecord Tool. OutputFormats (() DerekMorris 2012-01-15 20:36:13) GNU Binutils GNU Binutils är en samling binära verktyg. De viktigaste är: Men de innehåller också: addr2line - Konverterar adresser till filnamn och radnummer. ar - Ett verktyg för att skapa, modifiera och extrahera från arkiv. cfilt - Filter för att demangle kodade C-symboler. dlltool - Skapar filer för att bygga och använda DLL-filer. guld - En ny, snabbare, ELF-endast länkare, fortfarande i beta-test. gprof - Visar profileringsinformation. nlmconv - Konverterar objektkod till en NLM. nm - listar symboler från objektfiler. objcopy - Kopierar och översätter objektfiler. objdump - Visar information från objektfiler. ranlib - Genererar ett index till innehållet i ett arkiv. självklart - Visar information från någon ELF-formatobjektfil. storlek - Visar sektionerna för ett objekt eller en arkivfil. strängar - listar utskrivbara strängar från filer. remsa - Kasta bort symboler. windmc - En Windows-kompatibel meddelande kompilator. windres - En kompilator för Windows resursfiler. De flesta av dessa program använder BFD. biblioteket för binära filbeskrivningar, för att göra manipulation på låg nivå. Många av dem använder också opcodes-biblioteket för att montera och demontera maskininstruktioner. Binutilsna har blivit portade till de flesta stora Unix-varianterna samt Wintel-system, och deras främsta orsak till existensen är att ge GNU-systemet (och GNULinux) möjligheten att sammanställa och länka program. Hämta binutils Den senaste versionen av GNU binutils är 2.27. De olika NEWS-filerna (binutils. Gas. Och ld) har detaljer om vad som har ändrats i den här utgåvan. Se SOFTWARESidan för information om hur man hämtar utgåvor av GNU binutils och annan GNU-programvara. Den nuvarande versionen kan hämtas från ftp. gnu. orggnubinutils Om du planerar att göra aktivt arbete på GNU binutils, kan du komma åt utvecklingskällträdet med anonym git: Alternativt kan du använda gitweb-gränssnittet. eller källa snapshots, tillgängliga som bzipped tar filer via anonym FTP från ftp: sourceware. orgpubbinutilssnapshots. Felrapporter Postlistor Det finns tre binutils-postlistor: bug-binutilsgnu. org (arkiv) För rapportering av fel. binutilssourceware. org (arkiv) För att diskutera problem med binutils. binutils-cvs (arkiv) En skrivskyddad e-postlista med anteckningar från checkins till binutils git repository. (Den här listan har ett udda namn av historiska skäl.) Du kan använda det här formuläret för att prenumerera på binutilssourceware. org eller binutils-cvssourceware. org-postlistorna: För att prenumerera på bug-binutilsgnu. org-postlistan, se bug-binutils info sida. Du kanske vill bläddra i de gamla postarkiven på gas2 och bfd-postlistorna. Dessa var diskussionslistorna för binutils fram till maj 1999. Vänligen skicka inte mail till dem längre. Dokumentation En guide för att transportera binutilsna till ett nytt mål har bidragits. Vänligen skicka FSF amp GNU förfrågningar amp frågor till gnugnu. org. Det finns också andra sätt att kontakta FSF. Vänligen skicka kommentarer på dessa webbsidor till binutilssourceware. org. skicka andra frågor till gnugnu. org. Copyright (C) 1998, 2000-2014 Free Software Foundation, Inc. 51 Franklin Street, 5th Floor, Boston, MA 02110-1301, USA Förbättrad kopiering och distribution av hela denna artikel är tillåten i något medium, förutsatt att detta meddelande bevaras. Uppdaterad: Senast ändrad: Måndag 23 september 08:45:03 BST 2014AVR Libc Referenshandbok Ett enkelt projekt Generera Intel Hex-filer Vi har ett binärt program men hur går det in i processorn De flesta (om inte alla) programmerare kommer acceptera inte en GNU-körbar som en inmatningsfil, så vi behöver göra lite mer behandling. Nästa steg är att extrahera delar av binären och spara informationen i. hex-filer. GNU-verktyget som gör detta kallas avr-objcopy. ROM-innehållet kan dras från våra projekt binära och läggas in i filen demo. hex med följande kommando: avr-objcopy - j. text - j. data - O ihex demo. elf demo. hex Den resulterande demo. hex-filen innehåller : 1000000020E0A0E6B0E001C01D92A336B207E1F700: 100010001F920F920FB60F9211242F938F939F93DD: 1000200080916200882301F1813081F48091600029: 100030009091610001979093610080936000009718: 1000400049F41092620080E090E004C0809160006A: 10005000909161009BBD8ABD9F918F912F910F90D0: 100060000FBE0F901F9018958091600090916100D5: 10007000019690936100809360008F3F23E0920788: 1000800049F781E0809362008FEF93E0E3CF83E84C: 100090008FBD8EB581608EBD1BBC1ABC82E087BB54: 1000A00084E089BF7894089583E88FBD8EB5816020: 1000B0008EBD1BBC1ABC82E087BB84E089BF7894EC: 1000C00085B7806885BF889585B78F7785BFF8CF5E: 0800D000F89400C0F894FFCF82: 00000001FF den - j alternativet visar att vi vill att informationen från. text och. data segment extraheras. Om vi ​​anger EEPROM-segmentet kan vi generera en. hex-fil som kan användas för att programmera EEPROM: avr-objcopy - j. eeprom - change-section-lma. eeprom0 - O ihex demo. elf demoeeprom. hex Det finns ingen demoeeprom. hex fil skrivet, eftersom den filen skulle vara tom. Från och med version 2.17 av GNU binutils avbryts kommandot avr-objcopy som brukade generera de tomma EEPROM-filerna på grund av den tomma inmatnings sektionen. eeprom, så dessa tomma filer genereras inte. Det signalerar också ett fel på Makefile som kommer att fångas där och får det att skriva ut ett meddelande om att den tomma filen inte genereras. NOTICE: Den här webbplatsen stängs av inom en snar framtid. Produktinnehållet har flyttats till nxp. Foruminnehåll och vanliga frågor har flyttats till community. nxp. Vi uppmanar dig att skapa ett användarkonto på nxp för att använda det nya communityforumet och få tillgång till NXP-mikrocontroller-innehåll. Vi uppskattar mycket dina bidrag och ser fram emot att se dig på vår nya webbsajt. bin-gthex Omvandlingsproblem ons, 2013-07-24 14:55 Jag försöker skapa en. hex-fil som börjar på en plats utan noll i minnet med kontrollsumma som ingår, och jag löser ett problem. För att kunna köra checksum. exe måste jag konvertera från. axf till. bin, köra checksum och konvertera sedan till. hex. Problemet är att den resulterande. hex-filen inte börjar där länkskriptet berättar det, men det börjar på 0x0000. Allt fungerar när jag konverterar från. axf direkt till. hex, så det leder mig att tro att problemet är i. bin till. Hex-omvandlingen, eller möjligen i. axf till. bin-konvertering. Dess som information försvinner någonstans längs linjen. Från vad jag läste är post-build-stegen för att lägga till i kontrollsumman och sluta med en. hex-fil enligt följande: Jag har tagit kontrollsatsen och försökt. axf - gt. bin - gt. hex och jag får samma resultat, så problemet är inte checksum. exe Eventuella idéer eller uppenbara misstag Mål LPC1769 Använda RedSuite5 Ditt betyg: Ingen ons, 2013-07-24 20:38 Enligt definition innehåller en binär fil ingen adressinformation. En binär fil innehåller bara data. Så konverteras till binär all adressinformation går förlorad. Jag tror att du kan använda objdump för att basera hex-filen igen med alternativet --image-base. Tis, 2013-07-25 02:56 Uh. att ändra startadressen jag bara till till projektegenskaperna - gt CC Build - gt MCU-inställningar. Där ändrar jag platsadressen för Flash (och storleken självklart också) och trycker på Apply (lt - det är viktigt, det kommer inte att ha någon effekt om du inte klickar på Apply). Därefter i CC Build - gt Inställningar - bygga steg Jag använder följande kommando i post-build-steg: arm-none-eabi-storlek arm-none-eabi-objcopy - O binär. bin kontrollsumma - p - d. bin arm - ingen-eabi-objcopy - Ohexhex. Det har hittills fungerat perfekt. Eller förstår jag frågan okej, 2013-07-25 09:38 TKoe skrev: Uh. att ändra startadressen jag bara till till projektegenskaperna - gt CC Build - gt MCU-inställningar. Där ändrar jag platsadressen för Flash (och storleken självklart också) och trycker på Apply (lt - det är viktigt, det kommer inte att ha någon effekt om du inte klickar på Apply). Därefter i CC Build - gt Inställningar - bygga steg Jag använder följande kommando i post-build-steg: arm-none-eabi-storlek arm-none-eabi-objcopy - O binär. bin kontrollsumma - p - d. bin arm - ingen-eabi-objcopy - Ohexhex. Det har hittills fungerat perfekt. Eller förstår jag frågan fel Genom att göra de här stegen ser det ut som om du skapar en. bin-fil med kontrollsumman och skapar sedan en. hex-fil utan kontrollsumman. Är kontrollsuminformationen faktiskt i. hex-filen jag försökte ut det och det var inte där inne. TheFallGuy skrev: Enligt definition innehåller en binär fil ingen adressinformation. En binär fil innehåller bara data. Så konverteras till binär all adressinformation går förlorad. Jag tror att du kan använda objdump för att basera hex-filen igen med alternativet --image-base. Okej det är vettigt. Jag förstår fortfarande inte mycket om binärformatet, men om det programmeras att blinka, skulle jag tro att det skulle vara något sätt att avleda adressinformation från den. Alternativet - image-bas låter lovande. Jag försökte: arm-none-eabi-objcopy - bild-bas 0x10000 - I binär - O ihex. bin. hex Det fungerade inte, men det verkar som en möjlighet. Jag behöver läsa lite mer. Okej, jag förstod det. Den medföljande versionen av objcopy använder inte alternativet - image-bas. Det har andra alternativ som --set-start, - change-start, --justjust-start. De fungerade inte, men den som arbetade är --change-adresser. Tack för att du pekade mig i rätt riktning mannen. Vem skulle ha tänkt att faktiskt titta på alternativen till verktyget jag använde. Jag dusch dig i värdelös internet beröm. Onsdag, 2015-03-25 05:58 Jag är ny på ARM och LPCXpresso. Jag har på händerna ett COMBLOCK 1500B bräda med en LPC1759 ARM Cortex M3 MCU. För min introduktion till dessa verktyg bestämmer jag mig för att börja med ett akademiskt LED-blinkande exempel på P120 GPIO. (Jag bifogar mitt projekt) För konfiguration använder jag: void led2init (void) Ställ P120 till 00 - GPIO LPCPINCON-gtPINSEL3 amp (Ställ GPIO - P020 - för att matas ut LPCGPIO1-gtFIODIR (1 ltlt 20) Funktion för att slå LED på tomrum led2on (tomt) LPCGPIO1-gtFIOSET (1 ltt 20) Funktion för att stänga av LED2 från void led2off (void) LPCGPIO1-gtFIOCLR (1 ltt 20) Projektet byggdes utan problem. Så för flash MCU använder jag en extern JTAG för det här kortet och använd Flash Magic-verktyget för att ladda upp HEX-filen. Jag försöker dina förslag på post-build-stegen på LPCXpresso Project - gt Egenskaper - gt CC Build - gt-inställningar: Jag laddar upp koden med Flash Magic till MCU utan problem, men jag se aktivitet på LED. Vad gjorde jag fel. Kan du hjälpa mig

No comments:

Post a Comment