Intel HEX

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 december 2017; kontroller kräver 23 redigeringar .

Intel HEX  är ett filformat utformat för att representera godtyckliga binära data i textform. Av historiska skäl är det de facto standarden för att blinka olika mikrokretsar med minne ( mikrokontroller , ROM , EEPROM , etc.). Följaktligen kan de flesta verktyg för att förbereda firmware-bilder ( kompilatorer , redaktörer, tittare, etc.) fungera med detta format.

Filen har vanligtvis filtillägget .hex. Namnen I8HEX, I16HEX och I32HEX används ibland för att identifiera uppsättningen poster som används i en fil. I8HEX använder endast poster med typerna 00/01 (16-bitars adressering), I16HEX lägger till poster 02/03 (20-bitars adressering) och I32HEX lägger till poster 04/05 (32-bitars adressering).

Fördelen med formatet (till skillnad från enkel binär) är möjligheten att endast specificera vissa adressområden (med byte- noggrannhet ). Många mikrokontrollerarkitekturer har flera programmeringsområden med omfattande adresseringsluckor mellan dem.

Inspelningsformat

Förklaring ett

Filen består av ASCII -textrader . Varje rad representerar en post. Varje post börjar med ett kolon ( : ), följt av en uppsättning hexadecimala siffror som är multiplar av en byte :

Förklaring två

En Intel HEX-fil kan innehålla valfritt antal poster. Varje post är en ASCII- sträng som består av flera par hexadecimala siffror. Strängen måste börja med ett kolontecken och sluta med ett par CR- och LF-tecken. Posten består av fem fält i följande format:

: LL AAAA TT DD… CC

Varje grupp av bokstäver (LL, AAAA, TT, etc.) är ett separat fält. Varje bokstav är en separat hexadecimal siffra (4 bitar). Varje fält består av minst två hexadecimala siffror (en byte). Nedan är en uppdelning av rekordfälten:

Segmentadressinmatning

En fil i Intel HEX-format kan innehålla poster för Intel 8086-processorer som definierar segmentadressen (med andra ord, styckenumret, ett stycke är 16 byte). Om H167-direktivet används, ersätter denna posttyp den utökade linjära adressposten. Paragrafnumret används som adressoffset för alla dataposter som följer denna post. Offset är förskjutningen av adressen fyra bitar till vänster. Till exempel skulle en offset på 0x1234 ge den verkliga adressen 0x12340. Inspelningsexempel:

: 02 0000 02 1000 EC

var:

Utökad adressinmatning

När H167-direktivet används, kommer Intel HEX-formatfilen möjligen att innehålla utökade linjära adressingångar. Denna inmatningstyp definierar värdena för de två mest signifikanta byten i den absoluta adressen (bitar 16-31). Dessa två mest signifikanta bytes av adressen kommer att användas som adressoffset för alla dataposter som följer denna post. Inspelningsexempel:

: 02 0000 04 00FF FB

var:

Inspelning i slutet av filen

Intel HEX-formatfiler måste ha en End of File-post (EOF).

Inspelningsexempel:

: 00 0000 01FF _

var:

Exempel

Exempel 1

: 10 0100 00 214601360121470136007EFE09D21901 40 : 10 0110 00 2146017EB7C20001FF5F160021480119 88 : 10 0120 00 194E79234623965778239EDA3F01B2CA A7 : 10 0130 00 3F0156702B5E712B722B732146013421 C7 : 00 0000 01 FF

     Börja filma      Antal byte med data i denna post (rad)      Adressen från vilken uppgifterna i denna post börjar placeras      Inspelningstyp      Data      Registrera kontrollsumma

Exempel 2

Exempel på en datapost:

: 10 2462 00 464C5549442050524F46494C4500464C 33

var

Exempel 3

:020000021000EC :10C20000E0A5E6F6FDFFE0AEE00FE6FCFDFFE6FD93 :10C21000FFFFF6F50EFE4B66F2FA0CFEF2F40EFE90 :10C22000F04EF05FF06CF07DCA0050C2F086F097DF :10C23000F04AF054BCF5204830592D02E018BB03F9 :020000020000FC :04000000FA00000200 :00000001FF

     Rekord med segmentadress (posttyp 02). De 2 byten med data innehåller den höga delen av adressen.      Registrerar med data (posttyp 00).      En post som markerar slutet på en fil (posttyp 01). Rader efter denna post ignoreras.

Se även

Länkar