打印

救救啊,怎么DATE区会益处那

[复制链接]
2147|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whj_1984|  楼主 | 2007-12-6 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mohanwei| | 2007-12-6 16:49 | 只看该作者

data区没这么大吧?

如果有扩展ram,不重要的都放到xdata区好了。

如果ram羞涩,把部分挪到pdata区也可以

使用特权

评论回复
板凳
xwj| | 2007-12-6 16:53 | 只看该作者

单片机内存宝贵,尽量节约使用啊

使用特权

评论回复
地板
xwj| | 2007-12-6 17:00 | 只看该作者

data区溢出时,片内RAM还可以使用idata呢

data区是直接寻址的低128字节,对于8x52以上的,还有128字节间接寻址的高位片内RAM呢,
LZ应该养成个习惯:把数组都用idata来声明,反正数组都是要间接寻址的嘛


PS:
LZ,不知道你的程序要干什么,那么点程序量分配了那么多RAM,自己研究研究怎么节约使用啊

如果真的非要这么多RAM,了马参照我的贴和2楼的贴,把数组用idata声明,把对速度没要求的变量放XRAM里,用pdata或xdata 声明

使用特权

评论回复
5
whj_1984|  楼主 | 2007-12-6 17:36 | 只看该作者

回复楼上的几位

是在做个USB通信的固件,我把无关紧要的数据都放到XDATA中了,DATA区是255个字节啊,我就是搞不懂为什么会出现那个错误提示

使用特权

评论回复
6
ayb_ice| | 2007-12-6 18:11 | 只看该作者

idata

使用特权

评论回复
7
mohanwei| | 2007-12-7 14:31 | 只看该作者

我在2楼打错了,那个pdata应该改成idata

关于这个内存分配范围,你最好看看C51编译器手册,里面讲的很详细的

使用特权

评论回复
8
huangqi412| | 2007-12-7 18:12 | 只看该作者

code=3826 怎么ram用了这么多啊?

使用特权

评论回复
9
xwj| | 2007-12-7 19:25 | 只看该作者

LZ,怎么里还没明白? data区是128字节!

高128字节片内寻址指令访问的是特殊功能寄存器,而要访问RAM必须用idata声明或通过堆栈访问

idata区是256字节,不过data区128字节也包含在里面
data区只有128字节,还包括4组R0~R7的寄存器。

使用特权

评论回复
10
cooperate| | 2007-12-8 11:11 | 只看该作者

支持xwj

将程序中的数组或其它占用RAM比较多的变量换成idata类型应该就OK了

使用特权

评论回复
11
jimoom| | 2007-12-8 19:03 | 只看该作者

date区只有128字节

_DATA_GROUP_为存放局部变量的ram,按照ls的方法,为_DATA_GROUP_留出更大的空间。

使用特权

评论回复
12
zusen| | 2007-12-8 19:14 | 只看该作者

唉,用汇编写嘛

一目了然

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝