가끔 펌웨어(*.bin)파일을 Hex 형태의 Array로 변환해서 소스코드로 병합해서 사용할 때가 있습니다.


const char binary_array[]={0x01,0x00,0x00,0x00,0x00,0x00,0x00, ......


약간 억지기는 하지만 파일 I/O처리가 힘들때는 이런 테스트 방식도 유용합니다.ㅎㅎ


이렇게 바이너리 파일을 배열형태로 쉽게 만들어 주는 툴을 소개합니다.

쉽게 C언어로하면 몇줄 안될 수도 있지만 시간이 아까울때는 툴을 쓰면 시간도 절약되고 편리하겠죠..


아래사이트에서 Bin2h.exe 파일을 받습니다.

http://www.deadnode.org/sw/bin2h/


윈도우 커맨드 창에서 만들고자 하는 binary파일을 선택해서 아래처럼 명령을 입력합니다.

예를 들어 firmware.bin이라는 파일이 있다고 하면

\>Bin2h.exe –cz test < firmware.bin


이렇게 하면 firmware.bin파일이 그 크기만큼의 배열로 변환되면서 콘솔 출력 stdout으로 주루룩~~ 출력됩니다.

맨끝에는 Array length도 나옵니다.

const int firmware_size=361421; 


이것을 파이프를 이용해 파일에 담을 수 있습니다. 이런식으로

Bin2h.exe –cz test < firmware.bin > firmware.h

 

이렇게 되면 firmware.h라는 완전한 헤더파일이 됩니다. 

이것을 인클루드해서 접근하면 파일 IO를 쓰지 않고도 바이너리를 소스에 병합할 수 있습니다.