当前位置: 代码迷 >> VxWorks >> MMU分配Flash缓存空间的有关问题
  详细解决方案

MMU分配Flash缓存空间的有关问题

热度:2915   发布时间:2013-02-26 00:00:00.0
MMU分配Flash缓存空间的问题
如题,系统环境为vxWorks,在做Flash的驱动,由于在之前一块板上已经为Flash分配了缓存地址,所以没管,直接配置了flash读写相关的控制寄存器将其搞定。现在新来了另一块板(同一系列,nand flash型号一样),完全没有nand flash的配置,访问原来的缓存基地址就会复位。
所以仿造前一块板子的程序,在结构体sysPhysMemDesc[]中为其分配空间。但依旧无法访问该基地址,极度困惑,片选也配置好了,还是不行!是不是还要有其他的操作的呢?。望高手解答!!

------解决方案--------------------------------------------------------
Nand Flash控制器的memory-map的寄存器都配置好了么?

Nand flash的 buffer ram 是访问数据用的。

访问nand flash的各种命令需要访问nand flash controller 空间中的memery-map 寄存器。

我觉得楼主你有些急了,做device driver的,即使是板子本身的一个小小改动也要注意,何况换了个板子
不要听别人说什么,板子都差不多,应该很快搞定的,,这都是 shit,不做根本就不知道,有些人就是喜欢这样子估别人的工作量,然后等deadline

建议楼主稳下来,好好看看nand flash的片选配置,操作命令是否都正确了
------解决方案--------------------------------------------------------
你的MMU是用 BAT block address translation 还是 TLB来做的?

看你说PTE,就不是用的BAT了。

Buffer Ram 其实就是以 Nand Flash 片选的base address 为基地址的。

你提到的“但是设置PTE还是失败” 是什么意思? “可以读Flash数据”是什么意思?
Buffer ram 如果没正确映射的话,怎么得到数据的呢?

分配的内存,你可以看看你们的config类的文件确定下,应该各个区域, ddr, immrbar,nand flash,nor flash, pci,pcie 都有提到才对的。
------解决方案--------------------------------------------------------
探讨

你的MMU是用 BAT block address translation 还是 TLB来做的?

看你说PTE,就不是用的BAT了。

Buffer Ram 其实就是以 Nand Flash 片选的base address 为基地址的。

你提到的“但是设置PTE还是失败” 是什么意思? “可以读Flash数据”是什么意思?
Buffer ram 如果没正确映射的话,怎么得到数……
  相关解决方案