home *** CD-ROM | disk | FTP | other *** search
/ Best of German Only 1 / romside_best_of_german_only_1.iso / anwender / sim / sim51_04.arj / HEX.DOC < prev    next >
Text File  |  1993-02-01  |  5KB  |  150 lines

  1. HEX-File Formate:
  2. -----------------
  3. Dieser File erhebt keinen Anspruch auf Vollständigkeit und es wird keine Ge-
  4. währ gegen Fehler übernommen. Ergänzungen werden immer gerne entgegengenom-
  5. men: Werner Hennig, Sulzgrieser Str. 101, 73733 Esslingen, 0711/376718.
  6.  
  7.  
  8.  
  9.  
  10. Im Gegensatz zum Absolut-File Format oder Binär Format kann das HEX-File Format
  11. mit einem Ascii-Editor gelesen werden. Es wird oft bei der Datenübertragung zu
  12. EPROM-Programmiergeräten verwendet. Jeder "Record" belegt eine eigene Zeile im
  13. HEX-File. Jede Zeile ist durch eine Carriage-Return/Line-Feed Sequenz abge-
  14. schlossen.
  15.  
  16. Es gibt mehrere, von verschiedenen Firmen definierte HEX-Datei-Formate. Am be-
  17. kanntesten ist das Intel-HEX Format. SIM51 lädt nur Files im Intel-Hex, Binär
  18. und Intel-Absolut Format!
  19.  
  20.  
  21.  
  22.  
  23.  
  24. Intel-HEX-Format:
  25. -----------------
  26.    Jede Zeile wird von einem ":" eröffnet. Dies dient bei der Datenübertrag-
  27.    ung zum EPROMmer als Start-Flag.
  28.  
  29.    Danach folgt ein Byte (in Ascii-Hex-Darstellung), das die Anzahl der in die-
  30.    ser Zeile enthaltenen Code-Bytes enthält. (üblich 00 bis 10h)
  31.  
  32.    Danach folgt ein Word (4 Ascii-Ziffern) mit der Adresse des ersten in dieser
  33.    Zeile enthaltenen Code-Bytes.
  34.  
  35.    Danach folgt ein Kenn-Byte, das über den Typ dieses Records Aufschluß gibt:
  36.      00 = Code ist im Record enthalten
  37.      01 = Record dient als Ende Flag
  38.      02 = Offset-Adresse ist im Record enthalten (bei 8051 nicht relevant)
  39.  
  40.    Danach folgen n Bytes Code (wie im 1.Byte angegeben). 
  41.  
  42.    Als letztes Byte folgt das Zweierkomplement der Quersumme über alle vorigen
  43.    Bytes aus dieser Linie (high Byte weggestrichen).
  44.  
  45.  
  46. Beispiel:
  47.  
  48.      :03FF0A000204D21C  = Zeile mit 03 Codebytes ab Adresse 3FFh: 02 04 D2h
  49.      │└┤└┴┼┘└┤└┤└┤└┤└┤
  50.      │ │  │  │ │ │ │ └─── Check-Summe über alle vorigen Bytes in Zeile
  51.      │ │  │  │ └─┴─┴────── Code Bytes, hier 3
  52.      │ │  │  └───────────── Typ-Kennung, hier für Code
  53.      │ │  └───────────────── Adresse 0FF0Ah
  54.      │ └───────────────────── Anzahl der Code-Bytes, hier 3
  55.      └──────────────────────── Start-Flag
  56.  
  57.      :00000001FF        = Ende-Flag mit 0 Code-Bytes, Kennung 01
  58.  
  59.  
  60.  
  61. Beim Absolut-Hex Konvertierprogramm von Keil können optional zusätzlich 
  62. Symbol-Informationen in den Hex-File aufgenommen werden. Die Symbol-Informa-
  63. tionen stehen dabei am Anfang des Files, vor dem ersten ':'. Die Symbol-
  64. Informationen sind allerdings nicht sehr aussagekräftig, da nicht unter-
  65. schieden wird zwischen Modul-Name, CODE, XDATA, DATA, IDATA, BIT, NUMBER.
  66. Für jeden Symboleintrag werden nur ASCII-Zeichen verwendet. Pro Zeile ist
  67. 1 Symbol angeschrieben und zwar in der Form:  "0 SymbolName Wert"
  68.  
  69.  
  70.  
  71.  
  72.  
  73. MOS Technology Hex Format:
  74. --------------------------
  75.  
  76. Beispiel:
  77.      ;03FF0A0204D201E4
  78.      │└┤└┴┼┘└┤└┤└┤└┴┼┘
  79.      │ │  │  │ │ │  └─── Check-Summe über alle vorigen Bytes in Zeile
  80.      │ │  │  └─┴─┴─────── Code Bytes, hier 3
  81.      │ │  └─────────────── Adresse, hier 0FF0Ah
  82.      │ └─────────────────── Anzahl der Code-Bytes, hier 3
  83.      └─────────────────────── Start-Flag
  84.  
  85.      ;00        = Ende-Flag mit 0 Code-Bytes
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. EASM51 - HEX Format  (elektor Assembler):
  93. -----------------------------------------
  94.  
  95. Beispiel:
  96.      03 FF0A:02 04 D2 00D8
  97.      └┤ └┴┼┘ └┤ └┤ └┤ └┴┼┘
  98.       │   │   │  │  │   └─── Check-Summe nur über die Code-Bytes in Zeile
  99.       │   │   └──┴──┴──────── Code Bytes, hier 3
  100.       │   └─────────────────── Adresse, hier 0FF0Ah
  101.       └──────────────────────── Anzahl der Code-Bytes, hier 3
  102.  
  103. Ein Ende-Flag gibt es nicht. Man beachte, daß die Datei SPACEs zwischen
  104. den einzelnen hexadezimal dargestellten Bytes bzw. Words enthält. Nach der
  105. Adresse steht ein ":". Es gibt kein Startzeichen.
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. Motorola - HEX Format:
  114. ----------------------
  115.  
  116. Beispiel:
  117.      S106FFF00204D232
  118.      ├┘└┤└┴┼┘└┤└┤└┤└┤
  119.      │  │  │  │ │ │ └─── Einerkomplement der Check-Summe über vorige Bytes
  120.      │  │  │  └─┴─┴────── Code Bytes + 3, hier 3+3 = 6
  121.      │  │  └────────────── Adresse
  122.      │  └────────────────── Anzahl der Code-Bytes, hier 3
  123.      └────────────────────── Start-Flag und Typ-Kennung, hier Code
  124.  
  125.      S9030000FC        Ende-Flag, mit 0 Code-Bytes
  126.  
  127.     Typ  S0  =  Sign-On-Record (ist optional)
  128.     Typ  S1  =  Zeile mit Code
  129.     Typ  S9  =  Ende Flag
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. Tektronix - HEX Format:
  137. -----------------------
  138.  
  139. Beispiel:
  140.      /000003030204D2D8
  141.      │└┴┼┘└┤└┤└┤└┤└┤└┤
  142.      │  │  │ │ │ │ │ └── Check-Summe über Code-Bytes, High Byte weggestrichen
  143.      │  │  │ │ └─┴─┴───── Code Bytes, hier 3
  144.      │  │  │ └──────────── Check-Summe über vorige Bytes
  145.      │  │  └─────────────── Anzahl der Code-Bytes, hier 3
  146.      │  └─────────────────── Adresse
  147.      └─────────────────────── Start-Flag und Typ-Kennung, hier Code
  148.  
  149.      /00000000        Ende-Flag
  150.