sxhwdz 发表于 2019-2-6 08:34 我已经解决了,我直接在变量初始化时指定内存类型就可以了。 |
| 仅修改target 下的memory model 是不够的,Use On-chip XRAM 要选中,还要修改程序中的变量定义。 |
| 我只想知道,用xdata为啥不行,按理说不应该存在这些问题 |
| 这个我查过了,我只是想知道为啥用没存 |
|
XDATA区是51的扩展内存,访问该空间使用的指令跟访问内部RAM是不一样的,你得要确认你的硬件有扩展内存。 data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。 idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。 xdata: 外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 |
| 你选用xdata就得选用内部有SRAM的单片机,比如stc15等,如果选用了内部没有SRAM的单片机就会出错。 |