왜 hex 가 필요한가?

플래시에 쓰기 위해서 hex 가 필요하다. hex 파일을 보면 알겠지만, 각각의 주소가 적혀있다. DACS 의 경우, 가장 처음이 0x7fe00000 이다. 내가 나중에 해야 할 BSP 역시 hex 로 만들어야 한다. 현재 플래시가 2M 할당되어 있다. 하지만, 플래시에 구울 때, hex → bin 으로 바뀌면서, 용량이 약간 줄어든다. 그래서 hex 파일의 용량이 3.5M 정도 되어도, 구울 수 있는 것이다.

hex 를 만들기 위해 필요한 것들

필요한 것들은 다음과 같다.

  1. map 파일 : 컴파일 할 때 생성된다. 만일 자동으로 생성이 안되면, makefile 을 수정해주어야 한다.
  2. initfunc.tco : 부팅할 때 필요한 루틴이 들어가 있다.

잘 감이 안 잡힌 다면, DACS1000 의 makefile 이나, 5517ref 의 testapp1 의 makefile 을 참고하기 바란다.

st20cc -debug-runtime -g -LC:/stm/5517ref/lib -LC:/stm/5517ref/config/chip -LC:/stm/5517ref/config/board -LC:/stm/5517ref/config/platform -LC:/stm/5517ref/config/platform 
-T mb382_um.cfg   -M flashapp1.map   -romimage -o flashapp1.hex  initfuncs.tco main.tco boot.tco pio.tco evt.tco errors.tco uart.tco tbx.tco i2c.tco sections.tco cfg.tco
tsmux.tco pwm.tco scart.tco layer.tco vid.tco denc.tco vmix.tco avmem.tco aud.tco clkrv.tco tuner.tco vtg.tco stpti.tco transport.tco service.tco lists.tco testapp1.tco 
C:/stm/5517ref/lib/stapi_stpti.lib os20.lib os20intc1.lib os20ilc3.lib -p board_init_hex -o flashapp1.hex

위의 명령을 잘 보면, 대충 감을 잡을 수 있다. 중요한 것은 아래의 표와 같다.

구문 설명
-M flashapp1.map 컴파일시 생긴 map 파일을 지정한다.
-romimage -o flashapp1.hex 생성할 hex 파일명을 지정한다.
initfuncs.tco… hex 파일에 포함할 tco 파일을 지정한다.
-o flashapp1.hex 생성할 hex 파일명을 지정한다.

위의 옵션들을 변경하면, 어떤 프로그램이든지 hex 파일을 만들 수 있다.

  • computer/digitalarena/hex_만들기.txt
  • Last modified: 3 years ago
  • by likewind