阅读:1230回复:3
讨论一下。关于线性地址和物理地址的问题。
如果pci桥要求内存映射,那么首先必须把物理地址映射成线性地址需要做如下处理:先定义一个页面表,(nPages为要求映射的地址的大小。)
用:_PageReserve(PR_SYSTEM,nPages,0) 然后:往页面表中填写物理地址用:_PageCommitPhys(~~);(参数可查MSDN,在搜索一栏):最后将页面锁死:防止虚拟内存将其移动到硬盘。 但是我有一个问题就是:我的桥user guide上说基地址+偏移量就可访问HPI口,按照线性地址的定义方法偏移量地址只有12位。那如果我的偏移量超过4K(比如为0x800),那么怎么样利用线性地址来访问这个:基地址+0x800 地方的数据呢。 |
|
沙发#
发布于:2003-01-24 10:31
你最好再看看微机原理,
win32 原理 不哟急于求成, 郭靖,开始虽苯可后来不成了一流高手了吗. 而且,还弄了个黄蓉. |
|
|
板凳#
发布于:2003-01-24 14:24
如果pci桥要求内存映射,那么首先必须把物理地址映射成线性地址需要做如下处理:先定义一个页面表,(nPages为要求映射的地址的大小。) 修改基地址... |
|
地板#
发布于:2003-02-04 14:51
1页是12位,几个连续页就大于12位,P2以上的都是32位偏移。
|
|