找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7217|回复: 6
打印 上一主题 下一主题
收起左侧

51单片机ram内存不够修改为XDATA后程序出现异常如何处理

[复制链接]
回帖奖励 9 黑币 回复本帖可获得 3 黑币奖励! 每人限 2 次
跳转到指定楼层
楼主
本帖最后由 梦园心田 于 2019-2-3 16:22 编辑

keil 修改target 下的memory model 修改后出现异常如何处理.同一个程序,修改后就得到不同得结果.
一般这种情况如何处理.






内存模式XDATA.jpg (52.57 KB, 下载次数: 48)

修改后异常

修改后异常

异常.jpg (39.39 KB, 下载次数: 50)

修改后异常

修改后异常

正常.jpg (42.98 KB, 下载次数: 38)

正常

正常
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2019-2-4 09:24 | 只看该作者
你选用xdata就得选用内部有SRAM的单片机,比如stc15等,如果选用了内部没有SRAM的单片机就会出错。
回复

使用道具 举报

板凳
ID:474677 发表于 2019-2-4 09:43 | 只看该作者
XDATA区是51的扩展内存,访问该空间使用的指令跟访问内部RAM是不一样的,你得要确认你的硬件有扩展内存。
data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。
xdata: 外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
回复

使用道具 举报

地板
ID:383374 发表于 2019-2-5 23:58 来自手机 | 只看该作者
这个我查过了,我只是想知道为啥用没存
回复

使用道具 举报

5#
ID:383374 发表于 2019-2-5 23:59 来自手机 | 只看该作者
我只想知道,用xdata为啥不行,按理说不应该存在这些问题
回复

使用道具 举报

6#
ID:387733 发表于 2019-2-6 08:34 | 只看该作者
仅修改target 下的memory model 是不够的,Use On-chip XRAM 要选中,还要修改程序中的变量定义。
回复

使用道具 举报

7#
ID:383374 发表于 2019-2-8 13:00 来自手机 | 只看该作者
sxhwdz 发表于 2019-2-6 08:34
仅修改target 下的memory model 是不够的,Use On-chip XRAM 要选中,还要修改程序中的变量定义。

我已经解决了,我直接在变量初始化时指定内存类型就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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