打印

《《求助关于xdata问题》》

[复制链接]
1980|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mymystery|  楼主 | 2008-12-3 20:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前f020单片机外接了一片ram方便存放大量数据 但是在程序头文件中定义的数据  当执行到单片机初始化 配置EMI0CF =0x3C的时候。。。将外部存储器接口配置为非复用方式并使用高端口,只使用外部存储器   以前头文件中定义的xdata类型数据就改变了...不知道是怎么回事。该如何解决这个问题呢

相关帖子

沙发
mymystery|  楼主 | 2008-12-3 20:20 | 只看该作者

郁闷

我理解为 头文件中定义的只是分配了一个地址空间 并没有真正赋值,当配置为使用片外XRAM的时候 以前定义的指向了片外空间,但是片外空间的数据并不是我所赋值的数据 所以以前的数据就看起来发生了变化,对于这样的情况我就在初始化单片机后进行数据初始化 但是对于大量的数组如何赋值 太郁闷了。。

使用特权

评论回复
板凳
ayb_ice| | 2008-12-3 20:22 | 只看该作者

仔细看DATASHEET

内部,外部XRAM共有4种配置方式

使用特权

评论回复
地板
mymystery|  楼主 | 2008-12-3 20:37 | 只看该作者

不太明白

共有4种配置方式 但是定义XDATA数据是在配置单片机之前 它是如何将我定义的数据存入外部xram里的?况且如果配置的是分片模式 如果之前我定义的数据量超过4k怎么办 多余的放哪去了呢? 完全不知道是如何工作的呵呵

使用特权

评论回复
5
mymystery|  楼主 | 2008-12-3 20:45 | 只看该作者

回ayb_ice

能不能详细讲解下是怎么一个过程,或者该如何解决这样的问题

使用特权

评论回复
6
mymystery|  楼主 | 2008-12-3 21:03 | 只看该作者

可能理解错了

帮忙解释下.... 先闪人

使用特权

评论回复
7
mymystery|  楼主 | 2008-12-4 08:40 | 只看该作者

为什么会出现这种情况有没人知道的

。RTRT

使用特权

评论回复
8
冷漠| | 2008-12-4 13:04 | 只看该作者

自己的问题。

3楼说的很清楚了。

数据存在哪,编程员能不知道吗?

使用特权

评论回复
9
mymystery|  楼主 | 2008-12-4 13:51 | 只看该作者

现在知道大概怎么存的了 但是又发现问题了

存放在地址0x28a3的数据 会被后面放在0x29a3的数据改写 ,这~~~

使用特权

评论回复
10
mymystery|  楼主 | 2008-12-4 14:49 | 只看该作者

太怪了

怎么回事  高字节地址 偶数和奇数的数据都一样,比如 0x29a5和0x28a5,0x30a5和0x31a5

使用特权

评论回复
11
冷漠| | 2008-12-4 20:33 | 只看该作者

对的。

看来还是没弄懂。

提示一下:高8位何时设置输出/不输出驱动?

使用特权

评论回复
12
ayb_ice| | 2008-12-4 21:32 | 只看该作者

实在不行自己初始化

最好的方法是在复位后立刻执行020初始化,再执行标准的STARTUP程序,当然这要修改STARTUP.A51...

使用特权

评论回复
13
mymystery|  楼主 | 2008-12-5 08:28 | 只看该作者

回ayb_ice

您的意思是 当复位的时候第一件事先干020的初始化,然后再惊醒后面定义数据.... 

使用特权

评论回复
14
mymystery|  楼主 | 2008-12-5 08:32 | 只看该作者

谢谢LS大家的帮忙

现在搞定数据出错的原因了 是高地址最后一位A8 线连错了 已经切断恢复正常了, 现在想请教的就是数据定义在020初始化前面,所以初始化以后还得初始化数据 对于大的数组来说很麻烦 ayb_ice所说的方法不知道如何更改,能否详细点说明一下 谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

93

帖子

0

粉丝