我現(xiàn)在用的是網(wǎng)上給的例子ch375hft.c,用的是AVR單片機(jī),為什么我編譯出來(lái)之后生成的ch375hft.hex文件有43k這么大啊,我的單片機(jī)的flash才16k???請(qǐng)問(wèn)這兩者有關(guān)系嗎?[Emot]5[/Emot]
生成的ch375hft.hex文件的大小,并不是真正的程序所需要空間的大小。具體程序占多大的代碼空間,你得看編譯時(shí)代碼端(code)的大小。
你是說(shuō)生成的.c文件的大小嗎?
不是的,實(shí)際生成的HEX文件實(shí)際是16進(jìn)制的文件,而你可以將16進(jìn)制文件轉(zhuǎn)換成2進(jìn)制的文件的話,那就是你寫進(jìn)單片機(jī)里面的實(shí)際程序空間的大小,或者按照2樓說(shuō)的方法知道CODE的大小
我還是有點(diǎn)不明白,到底怎么確定我要寫進(jìn)單片機(jī)內(nèi)的程序的大小呢? 難道16進(jìn)制和2進(jìn)制的文件大小不一樣嗎? 我剛開始學(xué)習(xí)單片機(jī)不是很明白,請(qǐng)賜教!
不是說(shuō)用ch375對(duì)單片機(jī)要求不少于4-7k的flash嗎,我的編譯之后出現(xiàn)了下面的情況,請(qǐng)幫忙解釋是什么 Device: atmega16
Program: 15544 bytes (94.9% Full) (.text + .data + .bootloader)
Data: 1297 bytes (126.7% Full) (.data + .bss + .noinit)
你用的是AVR單片機(jī),最少需要在atmega16上面才能執(zhí)行我們的庫(kù)文件,至于程序空間4-7K指的是在51單片機(jī)上面,并且?guī)煳募長(zhǎng)IB4的時(shí)候才為這么多
那有沒有辦法精簡(jiǎn)一下代碼呢,按這個(gè)比例這也燒不進(jìn)去單片機(jī)???
我用的就是ATMEGA16啊,為什么還這么多?。?/p>
并且你們給的ch375lib.zip里面的AVR中的exam6中的例子的.hex格式的也是43k ??!hcn幫忙??!
和你說(shuō)了,43K是16進(jìn)制的文件的大小,實(shí)際按照你編譯出來(lái)的文件大小為15544 bytes (94.9% Full)個(gè)程序空間,完全可以燒到M16單片機(jī)里面去啊
我不能用單片機(jī)只做這一件事情啊,我還得用ad將轉(zhuǎn)換的數(shù)據(jù)存到U盤里,那肯定不行了,我準(zhǔn)備換成ATmega32了,不知道兼容否?不過(guò)還是要謝謝你。
M32和M16程序上面應(yīng)該是兼容的