积极答复者
请问, 64M 128M 256M 512M 1G 2G Nandflash在 WinCe 虚拟内存上都被映射成32M大小吗?

问题
答案
-
Nandflash的地址不是线性的,和Norflash不同。换句话说,访问Nandflash中不同地址的数据和你的处理器的地址线没有什么关系。
楼主是要开发nandflash的驱动吧。这个要看你的硬件是如何接的??
说白了,你不管使用64M,128M,256M还是更大的NAND,和你要映射的虚拟内存的大小没有太大关系。你的nandflash应该是接在你的CPU的某个片选上面的,你只需要把这个片选对应的物理地址映射成虚拟地址就可以了。一般我们都会在OEMAddressTable里面添加虚拟地址/物理地址映射,这里有一个问题就是映射的大小,楼主映射成32M了,这个也要看你的硬件设计,如果你的地址线参与了Nandflash的操作,比如你把某个地址线和nandflash的ALE或者CLE接在一起,用于控制ALE和CLE,那你就需要根据地址线的范围决定映射的大小。如果你的nandflash没有和CPU的任何地址线相连,那么你可能只需要影射1M就够了。
不知道楼主明白了没有,呵呵。
全部回复
-
Nandflash的地址不是线性的,和Norflash不同。换句话说,访问Nandflash中不同地址的数据和你的处理器的地址线没有什么关系。
楼主是要开发nandflash的驱动吧。这个要看你的硬件是如何接的??
说白了,你不管使用64M,128M,256M还是更大的NAND,和你要映射的虚拟内存的大小没有太大关系。你的nandflash应该是接在你的CPU的某个片选上面的,你只需要把这个片选对应的物理地址映射成虚拟地址就可以了。一般我们都会在OEMAddressTable里面添加虚拟地址/物理地址映射,这里有一个问题就是映射的大小,楼主映射成32M了,这个也要看你的硬件设计,如果你的地址线参与了Nandflash的操作,比如你把某个地址线和nandflash的ALE或者CLE接在一起,用于控制ALE和CLE,那你就需要根据地址线的范围决定映射的大小。如果你的nandflash没有和CPU的任何地址线相连,那么你可能只需要影射1M就够了。
不知道楼主明白了没有,呵呵。