首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用外部扩展ram的问题

使用外部扩展ram的问题

我有一个工程:
prm文件:
RAM = READ_WRITE 0x0400 TO 0x0FFF;
RAMPAGE_0 = READ_WRITE 0x008000 TO 0x00BFFF;
RAMPAGE_1 = READ_WRITE 0x018000 TO 0x01BFFF;
RAMPAGE_2 = READ_WRITE 0x028000 TO 0x02BFFF;
RAMPAGE_3 = READ_WRITE 0x038000 TO 0x03BFFF;
RAMPAGE_4 = READ_WRITE 0x048000 TO 0x04BFFF;
RAMPAGE_5 = READ_WRITE 0x058000 TO 0x05BFFF;
RAMPAGE_6 = READ_WRITE 0x068000 TO 0x06BFFF;
RAMPAGE_7 = READ_WRITE 0x078000 TO 0x07BFFF;

DEFAULT_RAM INTO RAM ;
PAGED_RAM INTO RAMPAGE_1, RAMPAGE_2, RAMPAGE_3;
也使用了编译选项-cppage=runtime;

我定义了好几个大数组,放在扩展RAM中(PAGED_RAM)。
但是只有RAMPAGE_1中的可以被使用。如:初始化为零。
其他的地址如高位应该为0x02XXXX,还是0x01XXXX. 为什么呀?哪里错了?
现象是:同样是初始化数组元素,比如a[100],
pbyte = (unsigned char* __far) a;
pbyte的值理论上是0x28000(a[100]放在RAMPAGE_2中,且通过.map文件看到应该是这个地址)。
实际上程序的值是0x18000.就是不切换page页。
我把文件传上来,你可以看看b,c,d数组能否正确初始化.
谢谢版主了.

[此贴子已经被作者于2007-7-27 8:35:38编辑过]

工程上传了
工程上传,稍等。

[此贴子已经被作者于2007-7-27 8:50:40编辑过]

传上来,http://bbs.chinaecnet.com/uploadImages/Test2.zip
真的也。斑竹能不能告诉我为什么呀?
strongchen是位好同志。
返回列表