고급 개발자로 가는 길

Firmware

[Firmware] Hex, Sre, S19 Format

다크엔지니어 2022. 1. 23. 21:56
반응형

Bootloader와 App 영역의 sre 포멧을 Merge 해야하는 경우가 생길 수 있다.

공정릴리즈나 업데이트 시 단 하나의 파일로 제공 할 수 있다.

컴파일 설정을 통해 sre, hex, s19 포멧의 데이터를 만들 수 있다.

CRT 프로그램 등을 통해 sre 파일에서 s19 파일으 만들 수도 있다.

 

먼저, SRE Format 은 elf와 같은 binary 를 hex 데이터로 바꾸어 볼 수 있게 만든다.

포멧의 형태는 아래와 같다.

  Indicate  Type Count  Address  Data  CheckSum 
value S 0~9 n 4, 6, 8 Max. 64Byte Count부터 Data의 모두 더한 값의 1의 보수
character 1 1 2 4~8 2~128 2
Record Description Address Bytes Data Sequence
S0 Block header 2 Yes
S1 Data sequence 2 Yes
S2 Data sequence 3 Yes
S3 Data sequence 4 Yes
S5 Record count 2 (실제는 data) No
S7 End of block 4 No
S8 End of block 3 No
S9 End of block 2 No

 

그렇다면 실제로 부트로더와 어플 영역 모두 sre 가 따로 존재하게 되고

부트로더와 어플 sre 를 merge 하여야 한다.

일반적으로 TRACE32 에서 cmm 으로 업로드 할때는 두 영역을 각각 올리기도 한다.

 

아래 툴을 사용하여 바이너리를 sre or s19 포멧으로 변경 가능하다.

https://sourceforge.net/projects/srecord/

 

SRecord

Download SRecord for free. The SRecord package is a collection of powerful tools for manipulating EPROM load files. It reads and writes numerous EPROM file formats, and can perform many different manipulations.

sourceforge.net

실제로 적용을 위해서는 script 를 통해 batch 파일 등을 만들면 편하다.

windows 라면 dos script / linux 라면 sheel script 를 사용해 bat or sh 을 만들어사용을 하면 된다.

결과적으로 merge 가 정상적으로 되어 run 가능하다.

반응형