Intel HEX

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 14. december 2017; checks kræver 23 redigeringer .

Intel HEX  er et filformat designet til at repræsentere vilkårlige binære data i tekstform. Af historiske årsager er det de facto-standarden for flashing af forskellige mikrokredsløb med hukommelse ( mikrocontrollere , ROM , EEPROM osv.). Derfor kan de fleste værktøjer til at forberede firmwarebilleder ( kompilere , redaktører, seere osv.) arbejde med dette format.

Filen har normalt filtypenavnet .hex. Navnene I8HEX, I16HEX og I32HEX bruges nogle gange til at identificere det sæt af poster, der bruges i en fil. I8HEX bruger kun poster med typer 00/01 (16-bit adressering), I16HEX tilføjer poster 02/03 (20-bit adressering), og I32HEX tilføjer poster 04/05 (32-bit adressering).

Fordelen ved formatet (i modsætning til simpel binær) er muligheden for kun at angive bestemte adresseområder (med byte - nøjagtighed ). Mange mikrocontrollerarkitekturer har flere programmeringsområder med omfattende adresseringsgab mellem dem.

Optagelsesformat

Forklaring et

Filen består af ASCII -tekstlinjer . Hver linje repræsenterer én indgang. Hver post begynder med et kolon ( : ), efterfulgt af et sæt hexadecimale cifre , der er multipla af en byte :

Forklaring to

En Intel HEX-fil kan indeholde et vilkårligt antal poster. Hver post er en ASCII - streng bestående af flere par hexadecimale cifre. Strengen skal starte med et kolontegn og slutte med et par CR- og LF-tegn. Posten består af fem felter i følgende format:

: LL AAAA TT DD… CC

Hver gruppe af bogstaver (LL, AAAA, TT osv.) er et separat felt. Hvert bogstav er et separat hexadecimalt ciffer (4 bit). Hvert felt består af mindst to hexadecimale cifre (én byte). Nedenfor er en oversigt over rekordfelterne:

Indtastning af segmentadresse

En fil i Intel HEX-format kan indeholde indgange til Intel 8086-processorer, der definerer segmentadressen (med andre ord afsnitsnummeret, et afsnit er 16 bytes). Hvis H167-direktivet anvendes, erstatter denne posttype den udvidede lineære adressepost. Paragrafnummeret bruges som adresseforskydning for alle dataposter efter denne post. Forskydningen er forskydningen af ​​adressen fire bit til venstre. For eksempel vil en offset på 0x1234 give den rigtige adresse 0x12340. Eksempel på optagelse:

: 02 0000 02 1000 EC

hvor:

Udvidet adresseindtastning

Når H167-direktivet bruges, vil Intel HEX-formatfilen muligvis indeholde udvidede lineære adresseindtastninger. Denne indtastningstype definerer værdierne af de to mest signifikante bytes af den absolutte adresse (bit 16-31). Disse to mest signifikante bytes af adressen vil blive brugt som adresseforskydning for alle dataposter efter denne post. Eksempel på optagelse:

: 02 0000 04 00FF FB

hvor:

Slutoptagelse af fil

Intel HEX-formatfiler skal have en End of File (EOF)-indgang.

Eksempel på optagelse:

: 00 0000 01FF _

hvor:

Eksempler

Eksempel 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

     Start optagelsen      Antal bytes med data i denne post (række)      Den adresse, hvorfra dataene i denne post begynder at blive placeret      Record Type      Data      Registrer kontrolsum

Eksempel 2

Eksempel på en datapost:

: 10 2462 00 464C5549442050524F46494C4500464C 33

hvor

Eksempel 3

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

     Record med segmentadresse (recordtype 02). De 2 bytes med data indeholder den høje del af adressen.      Registrerer med data (recordtype 00).      En post, der markerer slutningen af ​​en fil (posttype 01). Linjer efter denne indtastning ignoreres.

Se også

Links