一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 3999|回复: 2
收起左侧

[其他综合] 刚知道52的超过128的ram怎么用

[复制链接]
发表于 2009-3-26 11:04 | 显示全部楼层 |阅读模式
<P>以前一直写小程序,ram怎么用也用不完。 </P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>刚才想把翻页钟再修改下,增加显示缓存,结果出现 <FONT color=red>*** ERROR L107: ADDRESS SPACE OVERFLOW</FONT></P>
<P>看看datasheet明明有256B的ram可以用。</P>
<P>再看看某教程才发现原来还有那么多存储器类型,以前都不知道。</P>
<P>&nbsp;</P>
<P>显示缓存放 data 好 还是 idata好。 </P>
<P>&nbsp;</P>
<P>又看到说</P>
<P>
但 small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为你程序所有,寄存器 R0-R7必须映射到低RAM,要占去 8 个字节,如果使用寄存组切换,占用的更多。 <BR><BR>所以你<FONT color=red>可以使用 data 区最大为 120 字节</FONT>,超出 120 个字节则必须用 idata 显示的指定为间接寻址,另外<FONT color=red size=5>堆栈至少要占用一个字节</FONT>,所以你最多能使用 127 上字节(如果) <BR>
</P>
<P>&nbsp;</P>
<P>是不是说S52上就不能用128B的 ram来做显示缓存了??</P>
<P>&nbsp;</P>
<TABLE class=t_table cellSpacing=0 cellPadding=0 width="50%">
<TBODY>
<TR>
<TD>&nbsp;存储器类型</TD>
<TD>&nbsp;说&nbsp; 明 <BR></TD></TR>
<TR>
<TD>data</TD>
<TD>&nbsp;直接访问内部数据存储器(128字节),访问速度最快&nbsp;<BR></TD></TR>
<TR>
<TD>bdata&nbsp;</TD>
<TD>&nbsp;可位寻址内部数据存储器(16字节) ,允许位与字节混合访问</TD></TR>
<TR>
<TD>idata</TD>
<TD>&nbsp;间接访问内部数据存储器(256字节) ,允许访问全部内部地址</TD></TR>
<TR>
<TD>pdata</TD>
<TD>&nbsp;分页访问外部数据存储器(256字节) ,用MOVX @Ri指令访问</TD></TR>
<TR>
<TD>xdata</TD>
<TD>&nbsp;外部数据存储器(64KB),用MOVX @DPTR指令访问</TD></TR>
<TR>
<TD>code</TD>
<TD>&nbsp;程序存储器(64KB),用MOVC @A+DPTR指令访问</TD></TR></TBODY></TABLE>
<P>&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; </P>
发表于 2009-3-27 08:37 | 显示全部楼层
我也没用到过后128字节,用的不熟,不过我上来就把堆栈指定到后128字节去。
发表于 2009-4-7 21:11 | 显示全部楼层
你是说AT系列的52吗?如果是的话,以我写过的汉字点阵程序,我直接定义缓存在后128字节范围,可以用哦,没去关注怎么回事

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-6 18:05 , Processed in 0.059377 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表