日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

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

請教:錯誤Program Size:data=132.3 xdata=0 code=4054的解決辦法

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

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