인텔 헥스
Intel HEX파일 이름 확장명 |
---|
Intel 16진수 객체 파일 형식, Intel 16진수 형식 또는 Intellec Hex는 이진 정보를 ASCII 텍스트 형식으로 전달하는 파일 형식이다.[7]그것은 일반적으로 마이크로컨트롤러, EPROM, 그리고 다른 종류의 프로그램 가능한 논리 소자와 하드웨어 에뮬레이터를 프로그래밍하는 데 사용된다.일반적인 애플리케이션에서 컴파일러나 어셈블러는 프로그램의 소스 코드(C 또는 어셈블리 언어 등)를 기계 코드로 변환하여 HEX 파일로 출력한다.일부에서는 스트림 데이터의 패킷을 보관하는 컨테이너 형식으로도 사용한다.[8]결과 파일에 사용되는 일반적인 파일 확장자는 입니다.HEX[1] 또는 .H86.[2][3] 그 후, HEX 파일은 프로그래머에 의해 읽혀져 기계코드를 PROM에 쓰거나, 로딩과 실행을 위해 대상 시스템으로 전송된다.[9][10]
역사
인텔 헥스 포맷은 원래 종이 테이프에서 프로그램을 로딩하고 실행하기 위해 인텔의 Intellec Microcomputer Development Systems(MDS)용으로 설계되었다.ROM 생산을 위해 인텔에 메모리 콘텐츠를 지정하는 데도 활용됐다.[11]1973년 인텔의 '소프트웨어 그룹'은 빌 바이얼리와 켄 버겟, 그리고 외부 컨설턴트로 게리 킬달만으로 구성되었다.[12][13]1975년부터 이 포맷은 MCS Series II IS-II 시스템에서 파일 확장자 HEX를 사용하여 활용되었다.[14]많은 PROM과 EPROM 프로그래밍 장치들이 이 형식을 받아들였다.
포맷
Intel HEX는 라인 피드 또는 캐리지 리턴 문자 또는 둘 다로 구분되는 ASCII 텍스트로 구성된다.각 텍스트 줄에는 여러 이진수를 인코딩하는 16진수 문자가 포함되어 있다.이진수는 선에서의 위치와 선 종류와 길이에 따라 데이터, 메모리 주소 또는 다른 값을 나타낼 수 있다.각 텍스트 행을 레코드라고 한다.
기록구조
레코드(텍스트 줄)는 왼쪽에서 오른쪽으로 순서대로 나타나는 6개의 필드(부품)로 구성된다.[9]
- 시작 코드, 한 문자, ASCII 콜론 ':'레코드에서 이 기호 앞에 있는 모든 문자는 무시해야 한다.[11][2][15][16][17][18]실제로 초창기 버전의 명세서는 첫 번째 레코드에 앞서 마지막 레코드를 따르도록 최소 25개의 NUL 문자를 요구하기도 했다.[11][19][16][17]그러나 이것이 명세서의 조금 알려진 부분이었기 때문에 모든 소프트웨어가 이것을 올바르게 기록한 것은 아니다.그것은 같은 파일에서( 갔고 심지어 같은 라인)[11][18] 다른 관련된 정보를 시설이 다양한 소프트웨어 개발 utilites에 의해 상징을 테이블이나 추가 comments,[20][11][16][21][6]가 제3자 확장 Mostek,[22][23]에 의해 Keil,[21]'