jerriaemail
驱动牛犊
驱动牛犊
  • 注册日期2002-11-21
  • 最后登录2003-04-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1230回复:3

讨论一下。关于线性地址和物理地址的问题。

楼主#
更多 发布于:2002-12-20 08:59
如果pci桥要求内存映射,那么首先必须把物理地址映射成线性地址需要做如下处理:先定义一个页面表,(nPages为要求映射的地址的大小。)
用:_PageReserve(PR_SYSTEM,nPages,0)
然后:往页面表中填写物理地址用:_PageCommitPhys(~~);(参数可查MSDN,在搜索一栏):最后将页面锁死:防止虚拟内存将其移动到硬盘。
但是我有一个问题就是:我的桥user guide上说基地址+偏移量就可访问HPI口,按照线性地址的定义方法偏移量地址只有12位。那如果我的偏移量超过4K(比如为0x800),那么怎么样利用线性地址来访问这个:基地址+0x800  地方的数据呢。
lzl
lzl
驱动大牛
驱动大牛
  • 注册日期2001-09-11
  • 最后登录2010-06-22
  • 粉丝1
  • 关注0
  • 积分127分
  • 威望48点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-24 10:31
你最好再看看微机原理,
win32 原理 不哟急于求成,

郭靖,开始虽苯可后来不成了一流高手了吗.
而且,还弄了个黄蓉.
l=z=l 我听说,灌水是使分数快速增长的有效方法
lstart
驱动牛犊
驱动牛犊
  • 注册日期2001-08-14
  • 最后登录2004-01-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-24 14:24
如果pci桥要求内存映射,那么首先必须把物理地址映射成线性地址需要做如下处理:先定义一个页面表,(nPages为要求映射的地址的大小。)
用:_PageReserve(PR_SYSTEM,nPages,0)
然后:往页面表中填写物理地址用:_PageCommitPhys(~~);(参数可查MSDN,在搜索一栏):最后将页面锁死:防止虚拟内存将其移动到硬盘。
但是我有一个问题就是:我的桥user guide上说基地址+偏移量就可访问HPI口,按照线性地址的定义方法偏移量地址只有12位。那如果我的偏移量超过4K(比如为0x800),那么怎么样利用线性地址来访问这个:基地址+0x800  地方的数据呢。


修改基地址...
X_ray
驱动中牛
驱动中牛
  • 注册日期2003-02-03
  • 最后登录2004-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-04 14:51
1页是12位,几个连续页就大于12位,P2以上的都是32位偏移。
游客

返回顶部