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

关于分页重叠问题

关于分页重叠问题

芯片采用MC129S512A。
对外部的RAM进行扩展,外部RAM分页地址从0x8000-0xBFFF到0x1F8000-0x1FBFFF,内部ROM从0x208000-0x20BFFF到0x3D8000-0x3DBFFF,对外部RAM的任意页读写都可以,但是惟独0x8000-0xBFFF这页进行写的时候,写完数据但是退出分页程序数据又被0x208000-0x20BFFF页的数据所覆盖。不知道是怎么回事?
初始化程序如下:
MODE = 0xE3;
PEAR = 0x0C;
EBICTL= 0x01;
MISC = 0x07;
PTT_PTT2 = 0; //使能SRAM
迷途的羔羊!
对0x8000-0xBFFF这页写的时候,PPAGE寄存器的值为多少?你可以做一个简单的project贴出来看看。
海纳百川  有容乃大
http://bbs.chinaecnet.com/uploadImages/SRAM_test.rar
迷途的羔羊!
是在memory窗口下看到变化后,又会被覆盖,如果赋给另外一个参数又是正确的值。
还有个问题想问一下,我把全局的变量定义在一个头文件里,里面有定义到外部RAM也有定义到内部RAM,那我在其他文件里面调用这个头文件里面的参数的时候,要不要再对这些参数进行段定义?
迷途的羔羊!
看到了你的project。能不能描述一下你的具体调试过程。程序在哪里写0x8000-0xBFFF这页,在哪里退出,在哪里又发现数据被覆盖?
海纳百川  有容乃大
goption = 0x12345678;这句执行的时候就开始向0x8001写4个字节数据,跳到分页执行程序那边,在页的切换过程中看到数据写进去了,可是退出分页程序的时候,memory窗口下的0x8001这页的上的数据变成跟0x208000那页的数据一样了
迷途的羔羊!
首先,你可以参考下图的提示,设置编译器中PPAGE的设置:
[upload=image/pjpeg]uploadImages/PPAGE_Setting.jpg[/upload]
海纳百川  有容乃大
其次,关于扩展地址及其指针的使用,可以参考这两个帖子:

http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104072&ID=104072

http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104163&ID=104163

[此贴子已经被strongchen于2007-4-27 16:28:56编辑过]

海纳百川  有容乃大
那个地方设成RUNTIME不行么?
迷途的羔羊!
就是要设成RUMTIME!不过你的问题还是在于对16位地址与分页地址的使用上。请参考我提供的那2个帖子。
海纳百川  有容乃大
那两个帖子我看过了,对于不是0x008000-0x00BFFF这页的情况,都是可以的
就是对这页进行写数据的时候,数据是有写到外部去了,可是在memory窗口下看这页的内容却是0x208000那页的数据内容了

[此贴子已经被作者于2007-4-27 16:54:31编辑过]

迷途的羔羊!
你把这一句
ulong goption@0x8001;
改成
ulong goption;
试试。
海纳百川  有容乃大
图片传不上去
改完还是一样
迷途的羔羊!
不会吧,我试过的,应该不一样了。
海纳百川  有容乃大
图片上传不上去,你把邮箱给我,我把调试时抓的3张图发给你看下,
迷途的羔羊!
返回列表