找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5975|回复: 6
收起左侧

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

[复制链接]
回帖奖励 9 黑币 回复本帖可获得 3 黑币奖励! 每人限 2 次
ID:383374 发表于 2019-2-3 16:20 | 显示全部楼层 |阅读模式
本帖最后由 梦园心田 于 2019-2-3 16:22 编辑

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


正常

正常




修改后异常

修改后异常

修改后异常

修改后异常

正常

正常
回复

使用道具 举报

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 来自手机 | 显示全部楼层
这个我查过了,我只是想知道为啥用没存
回复

使用道具 举报

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

使用道具 举报

ID:387733 发表于 2019-2-6 08:34 | 显示全部楼层
仅修改target 下的memory model 是不够的,Use On-chip XRAM 要选中,还要修改程序中的变量定义。
回复

使用道具 举报

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 单片机教程网

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