|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
實(shí)際代碼容量 和 *.HEX 文件大小關(guān)系的問(wèn)題? |
| 作者:cuittao 欄目:單片機(jī) |
俺現(xiàn)在正在學(xué)PIC,編譯器用的是Mplab V5.7,寫(xiě)了一個(gè)極小極小的程序(500多行),軟件仿真都通過(guò)了,想燒到僅有1K空間的16F84中去試試。系統(tǒng)生成的 HEX 文件大小為1.95K(嚇我一跳,那么大1K空間我怎么放得下,板子我都焊好呀),但打開(kāi)ROM窗口時(shí),看到最后的代碼只到 166H ,余下的從 0167H~3FFH ,代碼空間顯示都為 ADDLW 0XFF(總算可以松一口氣,應(yīng)該可以放得下了)。 問(wèn)題如下:為什么實(shí)際代碼長(zhǎng)度很小的情況下,生成的 HEX文件卻大了那么多(雖然可能系統(tǒng)在HEX文件中加入了一定的編程輔助語(yǔ)句,但也不用大那么多呀)?如果我的編譯系統(tǒng)沒(méi)有ROM窗口,那我豈不是要給生成的 HEX 文件大小誤導(dǎo)?!希望高手能解釋一下,這里面(實(shí)際代碼容量 和 *.HEX 文件大。┯袥](méi)有一定的比例關(guān)系。謝謝! |
| 2樓: | >>參與討論 |
| 作者: wogudan 于 2004/8/17 11:57:00 發(fā)布:
呵 不是和HEX文件大小有關(guān),是用了多少ROM,看看LIST文件后面就知道了! |
|
| 3樓: | >>參與討論 |
| 作者: cuittao 于 2004/8/17 22:01:00 發(fā)布:
我看了,但這跟看Mplab的ROM窗口沒(méi)什么兩樣 謝謝,我看了,但這跟看Mplab的ROM窗口沒(méi)什么兩樣。舉個(gè)例子:現(xiàn)在ROM內(nèi)的代碼顯示為 0000H~185H(=389行ROM字節(jié)空間),List文件顯示如下: Program MEMORY Words Used: 377 Program MEMORY Words Free: 647 389跟377之間的差異可以忽略。問(wèn)題是:此時(shí)的 HEX 文件大小已為2.12K,我的想法是,如果讓我見(jiàn)到 HEX 文件大小就能聯(lián)想到(準(zhǔn)確說(shuō)是計(jì)算到)ROM的行數(shù)(與377相差不太遠(yuǎn)的一個(gè)數(shù)值)? |
|
| 4樓: | >>參與討論 |
| 作者: su_mj000 于 2004/8/18 7:07:00 發(fā)布:
若你想知其根底的話, 你就應(yīng)該查閱一下HEX文件的格式(用EDIT打開(kāi)文件,就能猜出個(gè)大概)。 否則的話,你可以本例為據(jù),將HEX文件大小除以2.5,粗略估計(jì)其實(shí)際 大小。(注:你的166H是WORD的單位,不是字節(jié)單位) |
|
| 5樓: | >>參與討論 |
| 作者: XIEYUANBIN 于 2004/8/20 13:24:00 發(fā)布:
大俠! PIC每個(gè)指令+操作數(shù)由12位以上二進(jìn)制代碼組成,你看到的文件大小是以8位的字節(jié)數(shù)為單位,在加上地址及其它信息當(dāng)然要多出許多字節(jié)。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào) |