CAFE

마이컴 Q/A

[[기타]]인텔 HEX파일의 구조

작성자에뜨랑제|작성시간03.11.19|조회수442 목록 댓글 0


: 03 8000 00 028003 F8
| | | | | |---- 체크섬 비트
| | | | |-------------- 데이터 내용
| | | |-------------------- 레코드의 형식(00 =데이터 레코드, 01= 마지막 레코드)
| | |--------------------------- 데이터가 메모리에 로드되는 시작번지(8000 번지를 의미)
| |------------------------------- 레코드의 길이(이 경우는 3바이트 )
|----------------------------------- 레코드의 시작 표시을 의미

인텔 HEX 파일에 사용되는 모든 문자는 ASCII 문자이며 각 레코드의 끝에는

구분기호로서 캐리지 리턴(0DH) 및 라인 피드(0AH) 문자가 추가되어 있으나

사람의 눈에는 보이지 않는다.


첫번째 필드는 1문자인 ":"로 구성되는데 이것은 한 레코드의 시작을 의미합니다.


두번째 필드는 2문자로 구성되는데 이것은 이 레코드에 포함된 데이터의 바이트

수로서 이 데이터 바이트는 각 레코드의 앞뒤에 붙는 기능적인 필드를 제외한

5번째 필드의 순수한 데이터만을 의미합니다.


세번빼 필드는 4문자로 구성되는데 이것은 이 레코드에 포함된 데이터를 로드하기

시작할 메모리의 번지를 나타낸다.


네번째 필드는 2문자로 구성되는데 00이면 정상적인 데이터 레코드를 의미하며

이것이 01이면 인텔 HEX파일의 마지막 행을 표시하는 레코드를 의미합니다.


다섯번째 필드는 두번째 필드에서 지정한 바이트 수만큼의 데이터로 구성됩니다.


여섯번째 필드는 2문자로 구성되는데 이는 전송 중에 에러가 발생했는지의 여부를

체크하기 위한 코드이다. 이것은 첫번째 필드인 ":"를 제외한 2 ~ 5번 필드에서

차례로 2문자씩을 8비트의 2진수로 변환하여 더한 후에 그 총합을 2의 보수로

취한 것이다.

혹시 모니터프로그램에서 다운로드 함수를 보시면 ":"를 체크하고

다우로드 되는 값들을 계속 더하는 등의 함수가 있을 겁니다. 이러한

함수는 방금 배운 인텔 HEX 파일 구조 때문입니다.
다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼