使用 Linux 內建的指令 hexdump 就可以將 *.bin 轉換成 *.mem
讓 verilog 的 $readmemh 直接讀取
範例:8051 的 program : test.bin 轉換成 test.mem
$ hexdump -e '"@%07.7_ax " 8/1 "%02x " "n"' test.bin > test.mem
使用 Linux 內建的指令 hexdump 就可以將 *.bin 轉換成 *.mem
讓 verilog 的 $readmemh 直接讀取
範例:8051 的 program : test.bin 轉換成 test.mem
$ hexdump -e '"@%07.7_ax " 8/1 "%02x " "n"' test.bin > test.mem
因工作上需要 hex2bin 的工具 又懶得自己寫
在網路上發現一個寫的還不錯的 hex2bin source code : hex2bin-1.0.9
其中包含了兩個程式 hex2bin and mot2bin
但使用時出現了錯誤的情形,
原來是 compile 時必須是 32-bit 架構,而我卻是在 64-bit Linux 下編譯的,
為了解決這問題,
首先安裝 32-bit gcc compiler
$ sudo zypper in libstdc++47-devel-32bit $ sudo zypper in gcc47-32bit
接下來修改 hex2bin 的 Makefile,在 gcc 後面加上 -m32 參數
重新編譯後即可正常使用!