FX2LP 固件開發中,Keil 編譯默認產生 .hex(燒錄 RAM),需借助 Hex2bix.exe 轉換為 .iic(燒錄 EEPROM,C2 啟動)。本文詳述 Keil 專案配置實現編譯後自動生成 .iic。
Hex2bix.exe:安裝目錄下 CY3684_EZ-USB_FX2LP_DVK\1.1\Bin\Hex2bix.exe。C:\Cypress\Bin\Hex2bix.exe。.hex 是轉換前提)。C:\Cypress\Bin\Hex2bix.exe -i -f 0xC2 -o bulkloop.iic bulkloop.hex
-i:輸出 Intel Hex 格式(.iic)。-f 0xC2:指定 C2 啟動模式(從外部 EEPROM 啟動,讀取 VID/PID 等)。-o bulkloop.iic:輸出文件名(可自定義,如 myfw.iic)。bulkloop.hex:輸入文件(Keil 產生的 HEX)。按 F7 (Build) 或 Ctrl+F7 (Rebuild),輸出窗口顯示:
Run User Program #1: C:\Cypress\Bin\Hex2bix.exe -i -f 0xC2 -o bulkloop.iic bulkloop.hex
Output file: bulkloop.iic
Success!
專案目錄下出現 bulkloop.iic,大小通常比 .hex 小(僅含 EEPROM 需要的數據段)。
| 現象 | 原因 | 解決 |
|---|---|---|
| 提示 "Hex2bix.exe not found" | 路徑錯誤或含空格未加引號 | 用完整絕對路徑,路徑含空格用雙引號包裹 |
| 生成 .iic 但大小為 0 | 未勾選 Create HEX File,無 .hex 輸入 | Output 標籤勾選 Create HEX File |
| 燒錄後設備仍為 No EEPROM | -f 參數錯誤(需 0xC2)、EEPROM 型號不匹配 | 確認 -f 0xC2,檢查原理圖 EEPROM 型號 (24LC00/01/02) |
| 想修改輸出 .iic 文件名 | 直接改 -o 後參數 | 如 -o my_firmware.iic,重新 Build 即可 |
.hex 含完整代碼段、數據段、向量表等,用於 RAM 燒錄(斷電丟失)。.iic 僅含 EEPROM 需要的啟動配置、描述符、代碼段壓縮數據,掉電保持。Hex2bix 內部解析 .hex 記錄,按 FX2LP EEPROM 映射格式重組。