daigua04
驱动牛犊
驱动牛犊
  • 注册日期2008-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1709回复:3

硬件连接的地址问题

楼主#
更多 发布于:2008-10-19 20:19
各位高手:
      我手上有一套系统,基于pxa255和wce4.2平台,外接1G的nandflash,硬件连接如图所示:
      请问,nandflash的物理地址是多少呢?怎么算的呢?假设3-8译码器的输出为第7路。
      谢谢!
        
qinlei_sz
驱动小牛
驱动小牛
  • 注册日期2007-03-24
  • 最后登录2012-12-18
  • 粉丝0
  • 关注0
  • 积分1090分
  • 威望510点
  • 贡献值0点
  • 好评度145点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-10-20 16:47
还要38译码干吗,nCS5不就确定了吗!
daigua04
驱动牛犊
驱动牛犊
  • 注册日期2008-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-10-22 14:29
谢谢qinlei_ze的关注先!
可是我手上的nandflash驱动里的地址映射代码如下:
pVMem = (PUCHAR)VirtualAlloc(0,PAGE_SIZE*4,MEM_RESERVE,PAGE_NOACCESS);
    
if (pVMem)
 {
         if (!VirtualCopy((LPVOID)pVMem,(LPVOID)0xbd200000,PAGE_SIZE,PAGE_READWRITE | PAGE_NOCACHE))
         ....
}

请问第二个参数表示物理地址,为什么它的值是0xbd200000呢?因为cs5的地址是0x14000000吧!
唉,我就是弄不明白wince4.2下的地址映射,bsp下的inc目录下定义了好多宏表示地址映射,它们的值怎么来的我都不知道,比如:
  #define APP_FLASH_BASE_PHYSICAL     0x04000000
    #define APP_FLASH_BASE_C_VIRTUAL    0x9C300000
    #define APP_FLASH_BASE_U_VIRTUAL    (APP_FLASH_BASE_C_VIRTUAL + CACHED_TO_UNCACHED_OFFSET)

而且platform.reg文件下有时也有MEMBASE的!如
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD]
"Dll"="stratad.dll"
"Order"=dword:2
"Prefix"="DSK"
"Ioctl"=dword:4
"Profile"="MSFlash"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Flags"=dword:1000
"MemBase"=dword:BA080000
"MemLen"=dword:00180000

恳请指点迷津啊!
liulangxing
驱动牛犊
驱动牛犊
  • 注册日期2008-07-07
  • 最后登录2009-06-12
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-10-28 15:18
物理地址的确定是通过片选脚CSn#来确定的,而CSn#脚关联到哪个物理地址,还有物理地址的范围应该是通过静态总线寄存器来设置的吧,我的是RMI1250的,MIPS内核的,你可以参考下,嗯
物理地址是软件定义的哦,而且只跟接到哪个片选脚有关,跟地址线无关.
游客

返回顶部