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 가능하다.