본문 바로가기
Embedded SW/Embedded SW Introduction

elf, hex, s19 파일 생성 방법 정리 (Tasking 컴파일러, Aurix Development Studio)

by 방구석 임베디드 2022. 9. 15.
반응형

안녕하세요.

바로 전에 메모리와 section에 대해서 정리를 하였는데

오늘은 elf, hex, s19 파일이 무엇인지

그리고 이러한 파일을 makefile에서 어떻게 생성하는지 알아보는 시간을 가지도록 하겠습니다.

 

아래 보이는 검은박스가 MCU입니다.

저 검은박스 안에는

CPU도 들어있고, RAM도 들어있고,

Flash도 들어 있습니다.

그리고 제어를 수행하기 위한 다양한 주변기기도 들어 있습니다.

 

우리가 코드를 만들게 되면

컴파일을 수행하고

다운로드 가능한 파일을 만들게 되는데요.

대표적으로 elf, s19, hex 파일이 있습니다.

elf 파일은 이진수로 이루어진 코드와 디버깅 심벌이 있습니다.

s19와 hex는 코드만 들어 있고 심벌은 없습니다.

각기 MCU에서 다운로드를 하기위한 약속된 형식으로 되어져 있습니다.

 

잠시 지금현재 Build된 코드를 살펴 보도록 하겠습니다.

저는 TC275 인피니언 MCU를 이용하여 개발을 하고 있고

인피니언사에서 제공해주는 무료 IDE 개발 Tool을 이용하여

컴파일을 수행하였습니다.

 

그리고 다운로드 하면 아래와 같이 0x8000 0000 메모리 영역에

코드가 들어있는것을 확인하실 수 있습니다.

그렇다면 build되어지 산출물을 한번 살펴보도록 하겠습니다.

앞서 말씀드린것 같이

hex파일을 보시면

elf 파일에는 코드 + 심블 정보가 있다면

hex는 코드만 들어가 있습니다.

한번 online hex viwer를 통해서 build된 hex파일을 열어보도록 하겠습니다.

https://hexed.it/

 

HexEd.it - Browser-based Online and Offline Hex Editing

HexEd.it is a free hex editor for Windows, MacOS, Linux and all other modern operating systems, which uses HTML5 and JavaScript (JS) technology to enable hexediting online, directly in your browser.

hexed.it

0x80000000 영역에 다운로드한 코드가 기계어 형식으로 되어 있는것을 확인할수 있습니다.

위의 다운로드한 코드와 동일한 것을 확인하실 수 있습니다.

현재 인피니언에서 제공하는 Aurix Development Studio는  Tasking 컴파일러를 사용하고 있습니다.

Tasking 컴파일러를 만든 회사는 아래와 같이 Aurix Development Studio용 tasking 컴파일러 메뉴얼을 무료로 제공해 주고 있습니다.

https://resources.tasking.com/p/tasking-vx-toolset-aurix-development-studio-user-guide-non-commercial

 

TASKING VX-toolset for AURIX Development Studio User Guide (non-commercial)

 

resources.tasking.com

 

 

그럼 위의 파일을 다운로드 하시고

Build 옵션 메뉴을 살펴보도록 하겠습니다.

.elf 파일 뿐만 아니라 .hex .sre 와 같은

다운로드 가능한 파일 포맷을 만들 수 있는것을 확인 하실수 있습니다.

아래와 같이 Makefile Linker 옵션에서 IHEX 옵션을 추가하면

다운로드 가능한 파일이 hex로 만들어 질 것입니다.

Makefile을 직접 만들어서

build를 수행하면 위의 명령어를 바로 넣어주면 되지만

현재 Aurix Development studio를 사용하고 있기 때문에

makefile은 빌드시 자동생성됩니다.

따라서 위의 컴파일 옵션 추가를 IDE 환경에서 설정해 주어야 합니다.

위의 Prooerties를 선택해 주시고 아래 그림에서 setting을 누루시기 바랍니다.

그러면 TASKING Linker에서

옵션을 추가하는 란이 나오게 됩니다.

그렇다면 여기서 아래 빨강색 부분을 넣어서

S19파일형식의 다운로드 가능한 포맷을 하나더 만들어 보도록 하겠습니다.

아래 보이시나요?

S19 포맷이 생성되었습니다.

그렇다면 이것을 notepad를 통해서

열어 보돌고 하겠습니다.

hex와는 조금 다른 형식이네요.

S00, S32, S31 이렇게 앞으로 시작하고

바로 시작주소가 보이네요.

하지만 이 주소부분을 제외하면

hex와 동일한 코드들이 들어가 있는것을 확인하실 수 있습니다.

S19 파일 형식에 대한 분석은 나중에 기회가 될때 또 글을 써 보도록 하겠습니다.

 

금일 포스팅은 이것으로 마무리 하도록 하겠습니다.

반응형

댓글