인텔 헥사(Intel Hex) 파일 형식

 

⊙ 레코드 형식 : ":LLAAAATT[Data...]CC"

 

":": 데이터의 시작이다.
"LL": [Data...] 의 길이이다.
"AAAA" : [Data...]를 써넣을 주소의 Offset(이후에 설명)이다.
"TT" : 형식
"Data..." : 실제 데이터이다.
"CC" : 체크섬으로서 "LL" ~ "CC" 까지 모두 더하면 0x00이다.

 

⊙ 데이터 형식("TT")

 

"00" : Data 레코드
"01" : 데이터의 끝을 알리는 레코드(데이터의 제일 마지막에 온다.)
"02" : 세그먼트 설정 레코드(총 20bit의 주소길이를 가진다. SEGMENT:OFFSET 주소형식)
"03" : 프로그램 시작 주소 지정 레코드(총 20bit의 주소길이를 가진다. SEGMENT:OFFSET 주소형식)
"04" : 상위 16bit의 어드레스 설정 레코드(총 32bit의 주소길이를 가진다. HIGH16:LOW16 주소형식)
"05" : 프로그램 시작 주소 지정 레코드(총 32bit의 주소길이를 가진다. HIGH16:LOW16 주소형식)

 

⊙ 데이터 형식 예제

 

":100000000C945AA80C9477A80C9477A80C9477A811" 의 경우
"10" = 16byte data
"0000" = 써넣을 주소는 0x0000번지
"00" = 레코드의 형식은 Data 레코드
"0C945AA80C9477A80C9477A80C9477A8" = 16byte 길이의 데이터
"11" = 체크섬

 

":00000001FF" 의 경우
"00" = 0byte data
"0000" = 주소는 0x0000번지(레코드 형식 "01"에서는 의미없음)
"01" = 레코드의 형식은 Data end 레코드
"FF" = 체크섬

 

":020000021000EC" 의 경우
"02" = 2byte data
"0000" = 주소는 0x0000번지(레코드 형식 "02"에서는 의미없음)
"02" = 레코드의 형식은세그먼트 설정 레코드
"1000" = 세그먼트를 "1000"으로
"EC" = 체크섬