xdata就是指的扩展RAM,不管是片内的还是片外的。我用的STC15系列,片上就有256+4K的RAM,这4K就需要通过声明变量为xdata类型来访问,比如:unsigned char xdata temp,此时的temp就被划分到了4K字节的片上扩展RAM。至于MCU外接RAM,STC51系列可以通过寄存器设置选择是否使用内部扩展RAM.如果不使用内部扩展RAM,则xdata就存储在和芯片连接的外部RAM芯片里,一般51能够支持的扩展RAM空间为64Kbyte。如果使能了内部扩展RAM,则xdata数据中的前4K字节会存放在片内扩展RAM,多余的就只能存放在片外RAM,但此时片外RAM最多只能存放64K-4K=60K字节的数据了,应该是受限于地址总线宽度吧。总之,xdata就是放在扩展RAM里的,至于实际是放在片内还是片外扩展RAM,就看你的扩展RAM设置以及编译时的数据划分了。 |