Intel Hex File Format 에 관하여 MCU KOREA Co.,Ltd 본문서의모든내용은대한민국저작권법에의하여보호되며모든권리는 MCUKOREA Co.,Ltd 에 있으며매뉴얼의어떤내용도복사나기타문서제조도구에의하여복제되는것을금지

Similar documents
ADP-2480

BY-FDP-4-70.hwp

PRO1_09E [읽기 전용]

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft Word - logic2005.doc

PRO1_14E [읽기 전용]

# E-....b61.)

Microsoft PowerPoint - o8.pptx

SRC PLUS 제어기 MANUAL

hwp

PowerPoint Presentation


PowerPoint 프레젠테이션

T100MD+

(......).hwp

ISP and CodeVisionAVR C Compiler.hwp

<4E505F415AB1DBB7CEB9FABAF1C1EEC7C3B7A35FBEE0B0FC E687770>

Microsoft Word - How to make a ZigBee Network_kr

untitled

Microsoft PowerPoint - J1C_User_Manual_V5.2.pptx

OCW_C언어 기초

s SINUMERIK 840C Service and User Manual DATA SAVING & LOADING & & /

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

歯3-한국.PDF

MicrocontrollerAcademy_Lab_ST_040709

0목차원고

Tablespace On-Offline 테이블스페이스 온라인/오프라인

1. 제품규격및특징 구분 규격및특징 입력전압 DC 12~30V 모터구동방식 Bipolar 방식 최대모터전류 Max 3.0A 초기설정정지전류 :4(0.46A), 구동전류 :18(1.75A) 분주비 0(x256), 1(x128), 2(x64), 3(x32), 4(x16),

윈도우즈프로그래밍(1)

Remote UI Guide

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

PowerPoint 프레젠테이션


화판_미용성형시술 정보집.0305

슬라이드 제목 없음

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

LS XGT SERIES Connection Manual

SMB_ICMP_UDP(huichang).PDF

untitled

휠세미나3 ver0.4

RS- 232, RS485 FND Display Module NET-SFND-4-23A RS-232, RS485 FND Display Module NET-SFND-4-23A MANUAL (Rev 1.0) Net-Control http

EBhostW_SerialOutputProtocol_rev10b_ (2002).hwp

,702 16,576 16, ,967 2,890 2, ,768 18,655 18,

4) 5) 6) 7)

IoT FND8 7-SEGMENT api

MAX+plus II Getting Started - 무작정따라하기

H122_E.book

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

CD-RW_Advanced.PDF


2010 차이나 퍼즐

003_°³Á¤3ÀúÀ۱dz»Áö

PowerPoint Template

행정학석사학위논문 공공기관기관장의전문성이 조직의성과에미치는영향 년 월 서울대학교행정대학원 행정학과행정학전공 유진아

Microsoft Word - src.doc

ºÎ·ÏB

istay

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

삼성955_965_09

<3130C0E5>

로거 자료실

acdc EQ 충전기.hwp

PRO1_02E [읽기 전용]

하루에 2시간 되는 거리를 매일 왔다 갔다 하는 것이 쉽지는 않았으나, 저는 다니는 동안 나름의 체력이 길러졌다고 생각합니다. 지하철로 이동하는 약 40분 정도 시간 동안 강의를 녹음한 것을 들으면서 굳이 책을 보지 않고도 강의를 복 습함으로써 시간을 효율적으로 사용했

chap 5: Trees

슬라이드 제목 없음

<BAB8C7E8B0A1C0D4BEC8B3BBBCAD28C0CEC3B5B1B3C0B0C3BB292D E687770>

Deok9_Exploit Technique

TOP-R V1.0 접속 매뉴얼

PRO1_04E [읽기 전용]

02-출판과-완성

hwp

歯설명서_020925_.PDF

UX410 SAP Fiori UI 개발. 과정개요 과정버전 : 02 학습시간 : 5 일


<4D F736F F D20B1E2BCFAC0DAB7E1202D20454F435220B8F0B5E5B9F6BDBA20C5EBBDC5C1A6C7B020BBE7BFEBB9FD202D F302E646F63>

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

( ),,., ,..,. OOO.,, ( )...?.,.,.,.,,.,. ( ),.,,,,,.,..,

2002 Game White paper 2002 Game White paper

The_IDA_Pro_Book

Microsoft Word - FunctionCall

PowerPoint 프레젠테이션


데이터베이스-4부0816

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

새정치민주연합 혁신위원회에 대해 사실이 아닌 주장을 쏟아내고, 지도부를 향한 음해와 비난을 일삼으며 방송용으로는 적 절하지 않은 표현들을 남용한 것에 대해 심의를 요청한다는 민원에 대해 방송내용을 확인하고 논의한 결과, 진행자(장성민)와 출연자(김태현 변호사, 이종훈

untitled

歯표지.PDF

<B1B8B8AEB5B5B8C5BDC3C0E5BAB8B0EDBCAD2DB0EDB7C12E687770>

TROLLEY MATION

유니티 변수-함수.key

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

MR-3000A-MAN.hwp

歯세대갈등국민조사97.PDF

CPX-E-SYS_BES_C_ _ k1

R50_51_kor_ch1

Transcription:

Intel Hex File Format 에 관하여 MCU KOREA Co.,Ltd www.mcukorea.co.kr 본문서의모든내용은대한민국저작권법에의하여보호되며모든권리는 MCUKOREA Co.,Ltd 에 있으며매뉴얼의어떤내용도복사나기타문서제조도구에의하여복제되는것을금지합니다.

Intelhex format 에관하여 Intel Hex파일포멧은 Hex파일형태로가장많이사용하는것으로서, 만들어지게된목적은크게두가지로첫째, Binary 데이터를텍스트로변환하여모니터화면에 Display( 예전에 Punch Card나 Paper Tape사용을위한 ) 가능하게한것이고, 둘째는초기시리얼통신방식인 RS232, RS485 통신의 Error Recovery를위한것이었다. 실제 Binary로구성된파일의데이터를모니터에디스플레이했을경우그 Binary의 hex값은화면으로확인할수없다. 디스플레이된다하더라도다른숫자나문자가보일것이다. 왜냐하면화면에는그 Binary에해당하는 ASCII값이모니터에디스플레이되기때문이다. 일예로만약 Binary 데이터가 0x32를디스플레이할경우우리는모니터에서 0x32를확인할수없을것이며대신에 a 문자가확인될것이다. 그러므로 Binary 데이터를텍스트의 ASCII코드값으로변환하여기타다른텍스트정보 ( 어드레스, 체크섬등 ) 와같이저장하는형태를만듦으로써우리가직접확인해볼수있도록한것이다. 그래서우리는데이터의수정및변환등이 Editor로서가능하게된다. 이러한형태중하나가바로 Intelhex File Format이다. 그럼이제 Intelhex file format을살펴보도록한다. 만약예제로볼만한파일이있다면 Editor로열어서참조하기바란다. 다음과같은형식으로저장되어있을것이다. :MMNNNNOOPPPPP.QQ :RRSSSSTTUUUUU..VV :. 위에서보듯이보통은 5가지로구분될수있다. 갑부분은각기다른정보를가지고있는데다음과같다. [ : ] : Record Mark라칭하고이는라인의시작을알리는마크이다. [ MM ] : Data Length라고말하며현제라인에기록할데이터의길이 [ NNNN ] : OFFSET이라고말하면현제라인에기록된첫데이터가위치할어드레스 [ OO ] : Record Type이라고말하며현제라인의속성에관한정보를지닌다. [ PPPPP. ] : MM에서정의한길이만큼의실제데이터가위치한다. [ QQ ] : Check sum으로서 QQ앞의모든수를더한값의아래서두번째자리까지의숫자를 2의보수취한값이다. [ CR/LF ] Carrige return/linefeed 우선하나의예를들어설명을하면이해가쉬우리라생각되어예를살펴보기로한다. :0300000002502586 :00000001FF 예제를기능별로구분해보면각각

: 03 0000 00 025025 86 : 00 0000 01 FF 가된다. 위의라인부터살펴보면 03은동라인의실제데이터수로서 3바이트의데이터를가지고있음을나타내고있고그데이터의어드레스는 0000번지이며다음 00은현제기록이데이터의기록을의미하는속성을나타내며 025025는 3바이트의데이터가된다. 마지막으로 86은 Check Sum으로 86인데 03+00+00+00+02+50+25= 0x7A의값이나오고 0x7A의 2의보수를취하면 0x86이나오게된다. 다시말하면 0x100-0x7A=0x86이된다. 만약합계가 0x68라면아래서두번째까지의수 0x68에대한 2의보수를취한값은 0x100-0x68=0x98에의해 0x98이된다. 다음라인을살펴보면 00데이터수로현제라인의데이터는 0이며어드레스또한 0, 기록의타입은 01로현제파일의끝을나타내는속성을가진다. 그리고앞에서데이터의수가 0이었음으로데이터는없다. 마지막으로 0xFF로서모든합이 0x1이고 2의보수는 100-0x1=0xFF가됨으로써 Check sum이표시되어있다. 이와같이대부분의 hexfile은데이터라인데이터라인 --- --- 00000001FF ( 파일의끝을나타내는속성을갖는기록은 Fix 되어있다 ) 형태로구성된다. 이제전체적인구성이이해가되었을것이지만몇가지의문사항이생길것이다. Record Type의종류가궁금할것이고어드레스가 2바이트인데어드레스가 4바이트인경우는어떻게할것인가하고말이다. 그럼이제부터궁금사항에대해풀어가보도록하자. Record Type : 00 Data Record 01 End of File Record 02 Extended Segment Address Record 16 or 32 비트 CPU 03 Start Segment Address Record 16 or 32 비트 CPU 04 Extended Linear Address Record 32비트 CPU Only 05 Start Linear Address Record - 32비트 CPU Only 우리는흔히 Record Type이 00과 01인것을많이보아왔을것이다. 앞에서설명한것도이두가지의예인데다시한번설명하면 00과 01인 Record Type은다음과같다.! Data Record :MMNNNN00PPPPP.QQ MM은데이터의길이, NNNN은데이터가들어가어드레스, 00은데이터레코드타입, PPPP 은 MM에서정의한길이 ( 단위 : 바이트 ) 만큼의데이터, QQ는 Checksum

! End of File Record :00000001FF 위의 Record Type 은 End of File 로서 Check sum 이 FF 이다. 파일의끝을나타낸다. 그러나우리가 Record Type을 00과 01만을사용한다면 Data Record에 2바이트의어드레스만존재하므로 2바이트이상의어드레싱능력이없다. 따라서 64 Kbyte 이상의데이터저장할수있는 2바이트이상의어드레싱이가능한 02, 03, 04, 05 같은확장속성을갖는 Record Type을만들게되었다. 이제확장속성을갖는기록에대해알아본다.! Extended Segment Address Record : 16 or 32 비트 CPU :02000002GGGGMM 대부분은 20bit address급이상인경우이 Record Type을사용함 GGGG는 SBA(Segment Base Address), MM은 Checksum이다. 여기서 SBA인 GGGG는어드레스의 4 19까지의값을갖는다. 0xGGGG0와다음에따르는 Data Record의 OFFSET 값을더한값이지시하는어드레스가된다. 여기서더한 Carry발생은무시된다. [ 실제어드레스 = 0xGGGG0+ Data Record Type의 OFFSET 2바이트 ]! Extended Linear Address Record : 32비트 CPU Only :02000004GGGGMM GGGG는 LBA(Linear Base Address), MM은 Checksum이다. 32bit 어드레싱을위한것이다. 여기서 GGGG는 Extended Linear Address Record이후의다른확장 Record가있기전에 Data Record의상위어드레스비트 16 31까지의값을갖는다. 0xGGGG0000와다음에따르는 Data Record의 OFFSET값을더한값이지시하는어드레스가된다. [ 실제어드레스 = 0xGGGG0000+ Data Record Type의 OFFSET 2바이트 ]! Start Segment Address Record : 16 or 32 비트 CPU :04000003GGGGGGGGMM GGGGGGGG은 8086/80186의 CS/IP레지스터값, MM은 Checksum이다. 이 Record Type 은 Real Mode 20bit 어드레싱인경우만사용하는것으로서다운된오브젝트의프로그램 Start Address를지정하기위해사용된다.! Start Linear Address Record : 32비트 CPU Only :04000005GGGGGGGGMM GGGGGGGG은 80386의 EIP값, MM은 Checksum이다. 이 Record Type은 80386의리니어 32비트어드레싱인경우만사용하는것으로서다운된오브젝트의프로그램 Start Address를지정하기위해사용된다.

위에서각 Record Type에따라알아보았듯이, 이중 Intelhex File Format으로잘사용하는 Record Type을눈치챘을것으로생각된다. 우선 64K(2바이트어드레싱 ) 이내의데이터는 00, 01의 Record Type을사용하고, 2바이트어드레싱이상은 02, 04의 Record Type 중하나를더추가하여사용한다. 64K(16비트어드레싱 ) 이상의 1M(20비트어드레싱 ) 이하의경우는보통 02, 00, 01 Record Type을, 1M이상인경우 04, 00, 01의 Record Type을사용하게된다. 03, 05 Record Type은 8086, 80386을위한것으로위에서의설명으로충분하리라본다. 그럼이제 64K이내 64K-1M, 1M이상의예제를살펴보도록한다. i) 64K(2바이트어드레싱 ) 이내 위의경우 Data Record와 End of File Record 만으로구성되어있으며 2010번지부터 50 216021, 2018번지부터 FD20DE20의 8바이트의데이터를가지는 Hex File이다. 마지막으로 00000001FF는이 Hex File의끝을나타내주는 End of File Record이다. ii) 64K-1M(20비트어드레싱 ) :02000002F0000C ---- Extended Segment Address Record 위의경우는 Extended Segment Address Record와 Data Record, End of File Record로구성된 64K-1M의데이터를저장하는 Intel Hex File이다. 각데이터의번지는 Extended Segment Address Record에서정의된 0xF0000와 2010를합한 0xF2010과 0xF2018번지가되며그번지데이터는각각 50216021, FD20DE20가된다. iii) 1M이상 (20비트어드레싱이상 ) :020000040014E8 ---- Extended Linear Address Record 위의경우는 Extended Linear Address Record와 Data Record, End of File Record로구성된 1M이상의데이터를저장하는 Intel Hex File이다. 각데이터의번지는 Extended Linear Address Record에서정의된 0x00140000와 2010를합한 0x00142010과 0x0014 2018번지가되며그번지데이터는각각 50216021, FD20DE20가된다. 지금까지 Intel Hex File Format에관하여알아보았다. 조금이나마도움되었으면한다.