性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

請(qǐng)教:錯(cuò)誤Program Size:data=132.3 xdata=0 code=4054的解決辦法

我用的是AT89S52,在寫一個(gè)232-485的通信控制程序時(shí),因數(shù)據(jù)量大(一次傳送26個(gè)數(shù))加上相關(guān)控制有二十多個(gè)變量(我已經(jīng)將變量數(shù)壓縮到盡可能少了),編繹出錯(cuò)Program Size:data=132.3 xdata=0 code=4054  ERROR L107:ADDRESS SPACE OVERFLOW.估計(jì)是SRAM不足,解決的辦法:1、外接芯片,難度在于需更改硬件,增加電路復(fù)雜程度,(下)
2、選用更好的單片機(jī),因電路用已經(jīng)成形,只能選用與S52兼容,沒找到合適的單片機(jī).
3、將一次傳送的數(shù)分成多次傳送,又會(huì)增加同一網(wǎng)絡(luò)中其它單片機(jī)中斷次數(shù),影響其它單片機(jī)正常工作.
特請(qǐng)各位大師指點(diǎn)指點(diǎn):
1、這個(gè)錯(cuò)誤提示是否的RAM不足?
2、外接RAM芯片選用何種型號(hào)好些?
3、與S52兼容的單片機(jī)價(jià)格相差不太多的但能解決這個(gè)問(wèn)題的型號(hào)有哪些?頭文件好找不?
4、還有沒有其它的辦法?
全部回復(fù)(6)
正序查看
倒序查看
whatcall
LV.5
2
2007-11-15 08:46
Program Size:data=132.3

data應(yīng)為內(nèi)部RAM的使用量,和芯片實(shí)際RAM大小比較一下可以確認(rèn)是否為內(nèi)部RAM不足.如果是又不想換片子,可以考慮程序其他部分的優(yōu)化,減少變量的使用.一些臨時(shí)變量(如果他們不沖突)可以用同一個(gè)全局變量代替.
0
回復(fù)
xing1234
LV.6
3
2007-11-15 11:12
@whatcall
ProgramSize:data=132.3data應(yīng)為內(nèi)部RAM的使用量,和芯片實(shí)際RAM大小比較一下可以確認(rèn)是否為內(nèi)部RAM不足.如果是又不想換片子,可以考慮程序其他部分的優(yōu)化,減少變量的使用.一些臨時(shí)變量(如果他們不沖突)可以用同一個(gè)全局變量代替.
謝謝!我很努力的減少變量了,還是不夠用呀!S52的RAM是256,閃存是8K,而我的程序總量大約在4-5K,所以閃存是夠用的.還在盡量?jī)?yōu)化!
0
回復(fù)
whatcall
LV.5
4
2007-11-15 18:00
@xing1234
謝謝!我很努力的減少變量了,還是不夠用呀!S52的RAM是256,閃存是8K,而我的程序總量大約在4-5K,所以閃存是夠用的.還在盡量?jī)?yōu)化!
132.3 不是還沒到256嗎?怎么編譯時(shí)即報(bào)錯(cuò)?你的芯片特殊寄存器應(yīng)該不占用RAM空間吧? 可用的RAM是256 bytes嗎? 是否還有其他可能?
0
回復(fù)
xing1234
LV.6
5
2007-11-16 09:43
@whatcall
132.3不是還沒到256嗎?怎么編譯時(shí)即報(bào)錯(cuò)?你的芯片特殊寄存器應(yīng)該不占用RAM空間吧?可用的RAM是256bytes嗎?是否還有其他可能?
我也懷疑這個(gè)問(wèn)題,我把頭文件//#include   //#include 都用過(guò),就是不行,不知頭文件是否有問(wèn)題.
0
回復(fù)
xing1234
LV.6
6
2007-11-16 09:54
過(guò)去用AT89C51(RAM為128)時(shí)也出現(xiàn)過(guò)這種情況,換成S52后把頭文件一改就能通過(guò).當(dāng)時(shí)為求解決問(wèn)題,也沒太注意,可能當(dāng)時(shí)的主要原因是程序大于4K閃存不夠而非RAM不夠.
0
回復(fù)
xing1234
LV.6
7
2007-11-16 10:21
@xing1234
過(guò)去用AT89C51(RAM為128)時(shí)也出現(xiàn)過(guò)這種情況,換成S52后把頭文件一改就能通過(guò).當(dāng)時(shí)為求解決問(wèn)題,也沒太注意,可能當(dāng)時(shí)的主要原因是程序大于4K閃存不夠而非RAM不夠.
謝謝!過(guò)去沒用過(guò),現(xiàn)在找資料才知道,unsigned int  idata     adinv[12];我的高8位RAM沒定義.
問(wèn)題基本解決!
0
回復(fù)
發(fā)