|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe |
請教:編譯器生成的*.bin與*.hex為什么大小不一樣呢? |
| 作者:晗旭 欄目:單片機 |
| 2樓: | >>參與討論 |
| 作者: zhang_lj 于 2005/3/18 11:40:00 發(fā)布:
格式不一樣 bin:機器碼 hex: 大多是INTEL的一種數(shù)據(jù)格式,燒錄芯片實際是bin格式的(hex格式的會轉化為bin格式的) |
|
| 3樓: | >>參與討論 |
| 作者: 晗旭 于 2005/3/18 11:51:00 發(fā)布:
謝謝了。! 那也就是說真正用到的是*.bin了,我用WAVE軟件仿真生成了*.bin和*.hex,結果*.bin只有3.5k,*.hex就有10K,而單片機的選的是AT89C51,編譯通過結果無錯誤,我為了驗證將單片機選為2051,編譯就報錯了,我就奇怪為什么搞不懂是怎么回事,謝謝了,我想再請教一個問題,51單片機的ROM只有4K,我的*.bin就3.5K,能燒寫進去嗎?這樣運行起來可靠嗎? |
|
| 4樓: | >>參與討論 |
| 作者: isoar 于 2005/3/18 12:04:00 發(fā)布:
建議再仔細看看單片機的存儲結構部分和HEX文件格式 INTEL hex 文件格式 INTEL hex 文件常用來保存單片機或其他處理器的目標程序代碼。它保存物理程序存儲區(qū)中的目標代碼映象。一般的編程器都支持這種格式。 INTEL hex 文件全部由可打印的ASCII字符組成(可以用記事本打開),如下例所示: :2000000012014c75a800e4f508f509780a7a78e4f608dafcd283fcfded240af9a7050dbd81 :2000200000010ced2488ec34ff50edc283e4fcfded240af9e76d7013ed33e43c700d0dbd2a :2000400000010ced2488ec34ff50e50509e50970020508e50924a8e50834fd50aee4f50874 INTEL hex 由一條或多條記錄組成,每條記錄都由一個冒號“:”打頭,其格式如下: :CCAAAARR...ZZ 其中: CC 本條記錄中的數(shù)據(jù)字節(jié)數(shù) AAAA 本條記錄中的數(shù)據(jù)在存儲區(qū)中的起始地址 RR 記錄類型: 00 數(shù)據(jù)記錄 (data record) 01 結束記錄 (end record) 02 段記錄 (paragraph record) 03 轉移地址記錄 (transfer address record) ... 數(shù)據(jù)域 ZZ 數(shù)據(jù)域校驗和 INTEL hex文件記錄中的數(shù)字都是16進制格式,兩個16進制數(shù)字代表一個字節(jié)。CC域是數(shù)據(jù)域中的實際字節(jié)數(shù),地址、記錄類型和校驗和域沒有計算在內。校驗和是取記錄中從數(shù)據(jù)字節(jié)計數(shù)域(CC)到數(shù)據(jù)域(...)最后一個字節(jié)的所有字節(jié)總和的2的補碼。 |
|
| 5樓: | >>參與討論 |
| 作者: xwj 于 2005/3/18 12:04:00 發(fā)布:
bin文件的大小就是是實際代碼大小 51單片機的ROM只有4K,我的*.bin就3.5K,能燒寫進去嗎? 能! 這樣運行起來可靠嗎? 可靠!最大4096字節(jié)時也一樣可靠. 對于2051只有2K ROM,當然會報錯,就算沒報錯,燒進芯片也不能正常運行的 |
|
| 6樓: | >>參與討論 |
| 作者: 晗旭 于 2005/3/18 12:17:00 發(fā)布:
謝謝謝謝了! 謝謝各位大蝦了! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號 |