xdata的问题

[复制链接]
 楼主| renyaq 发表于 2011-8-5 09:58 | 显示全部楼层 |阅读模式
定义的变量较多 一部分变量定义成了xdata形式,单片机外部扩展了双口ram,用于存储单片机采集的某些数据,
片内xram与外部ram有什么关系
 楼主| renyaq 发表于 2011-8-5 10:09 | 显示全部楼层
现在要对外部存储器接口进行配置,如果设置为只用外部ram,对存储在片内xram里的变量有影响吗
chuxh 发表于 2011-8-5 10:13 | 显示全部楼层
片内XRAM和片外RAM都是XRAM,其它的MCU一般是只能用其一
llljh 发表于 2011-8-5 10:18 | 显示全部楼层
如果有外部总线的,有多种配置
1:可以配置成仅使用内部XRAM,外部不可用
2:可以配置成仅使用外部XRAM,内部不可用
3:可以配置内部外部同时使用,当地址高于内部XRAM地址时,自动访问外部XRAM
 楼主| renyaq 发表于 2011-8-5 10:30 | 显示全部楼层
如果设置为只使用外部ram 那么定义成xdata型的变量是自动保存在片外ram中还是不可以使用了呀
 楼主| renyaq 发表于 2011-8-5 11:11 | 显示全部楼层
我看好多程序对xdata型的变量的操作没有涉及到地址  并没有像片外ram 那样每一个变量对应一个地址呀
juventus9554 发表于 2011-8-5 11:15 | 显示全部楼层
如果设置成只使用片外,那么XRAM变量当然自动定位在片外了
llljh 发表于 2011-8-5 11:18 | 显示全部楼层
但是如果内外都使用,那么XRAM变量是在片内还是片外当然取决它的地址了,而地址一般是编译器分配的,也就是说用户并不知道是在片内还是在片外
juventus9554 发表于 2011-8-5 11:21 | 显示全部楼层
当然如果只是个一般的变量也没有关系,但是有些总线扩展控制的变量就必须知道是在片外还是在片内了,因为片内的话外部总线根本不动作了,这种情况就要绝对定位变量了
 楼主| renyaq 发表于 2011-8-5 11:23 | 显示全部楼层
因为我有些变量定义成了xdata  所以现在只能内外ram都用了吧?
 楼主| renyaq 发表于 2011-8-5 14:56 | 显示全部楼层
对于定义成xdata 的变量编译器会自动保存到片内ram的某个地址吧?
llljh 发表于 2011-8-5 15:09 | 显示全部楼层
因为我有些变量定义成了xdata  所以现在只能内外ram都用了吧?
renyaq 发表于 2011-8-5 11:23
不一定
juventus9554 发表于 2011-8-5 16:05 | 显示全部楼层
对于定义成xdata 的变量编译器会自动保存到片内ram的某个地址吧?
renyaq 发表于 2011-8-5 14:56
这个取决于编译器怎么编译
 楼主| renyaq 发表于 2011-8-5 16:09 | 显示全部楼层
怎么讲?
pengf 发表于 2011-8-5 16:18 | 显示全部楼层
一般是从0开始分配,但这也取决于具体芯片
 楼主| renyaq 发表于 2011-8-5 16:21 | 显示全部楼层
为啥
pengf 发表于 2011-8-5 16:51 | 显示全部楼层
因为有些芯片XARM根本就不是从0开始的
 楼主| renyaq 发表于 2011-8-5 17:02 | 显示全部楼层
如果我想把某些变量存到片外ram里,应该自己分配地址了 吧?地址从0x2000开始吧?
 楼主| renyaq 发表于 2011-8-5 17:42 | 显示全部楼层
内外地址以8k为界吧?
llljh 发表于 2011-8-5 17:45 | 显示全部楼层
一般是这样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部