xuedongyi
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分971分
  • 威望109点
  • 贡献值0点
  • 好评度98点
  • 原创分0分
  • 专家分0分
阅读:3944回复:24

在系统中关于2k page nand的问题

楼主#
更多 发布于:2007-03-29 16:34
  我这段时间在ce5下做了个支持2k page 的nand flash driver 现在在bootloader中已经可以在2k nand中划分的binfs区域中烧人image并启动,但在系统起来后,我却无法在控制面板里找到我的nand flash (注:我已经将剩下的空间 低格为FAT文件系统),在nand 的驱动中,我也只是对它的 driver 进行了更改,希望有做过nand 的dx能帮我解决一下,谢谢!
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-29 17:15
你的注册表设置是否正确?

FAT分区是否创建成功?
[url]http://sniper167.bokee.com[/url]
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-29 17:19
顺便请问下
楼主是直接做的2K page的驱动,还是把2K page模拟成了512page的来做呢?

在CE 4.2下
我直接用2K page的做,似乎创建分区老是不成功,或者就是NK无法启动
偶的驱动是没有问题的,置顶的帖子里面有位朋友说 4.2的文件系统跟2K page的flash兼容性有问题,不知是否真的
[url]http://sniper167.bokee.com[/url]
xuedongyi
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分971分
  • 威望109点
  • 贡献值0点
  • 好评度98点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-30 11:25
注册表我没有动过,FAT 在bootloader中是显示分区成功,我也将分区表数据输出过,的确有分区,但进入系统后无法识别,让我很头疼,还有 我用的是直接2k page 读写,你的问题我碰到过,不知道你用的是什么cpu ,我用的是i.mx21,2knand 是K9F1G08,我估计你是地址的第11位有问题,你可以把你的代码给我看一下
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-03-30 19:22
无法在控制面板里找到我的nand flash ????????
是在我的电脑里没有出现   还是在存储管理器里看不到flash?
[url]http://sniper167.bokee.com[/url]
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-03-30 19:26
我用的s3c2440 + k9f2g08
代码我不能提供,因为是公司的

看你的情况,能进系统,应该是在我的电脑里面没有出现你建立了分区的那块flash区域
可能是因为你没有mount,你可以在注册表里讲他设置为自动挂载 automount = dword:1
[url]http://sniper167.bokee.com[/url]
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-30 19:31
地址的11位?
NF_ADDR((PhyAddr >> 8 ) & 0x0f);

第二个周期的时候要把高四位清零,你所说的是不是这个地方?
[url]http://sniper167.bokee.com[/url]
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-03-31 10:18
楼主能不能加个qq交流交流
偶的qq:31906073

请注明 驱动开发网哈

thanks
[url]http://sniper167.bokee.com[/url]
xuedongyi
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分971分
  • 威望109点
  • 贡献值0点
  • 好评度98点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-04-01 13:52
是的 只是在这句中把NF_ADDR((PhyAddr >> 8 ) & 0x0f);
改成              NF_ADDR((PhyAddr >> 8 ) & 0x07);
就可以了 我在这个问题上挂了一个月啊,哈哈!你改了就成了
因为A11是为从2048~2112所设置的,原来我是与上0x0f,
但在read write的时候A11会出现1,你可以自己算一下,单数*2048时,A11就为1了,
所以错了,改一下就ok了,当然你必须确保你前面是对的!
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-04-02 10:04
偶又检查了下偶的驱动
发现问题应该不是出在这里,偶贴部分代码上来

在read和write 页的时候,偶的地址是这样传送的  startSectorAddr 是要读写的页号,LastAddrCycleBitCnt是最后一个地址周期需要多少位

//  Set up address
NF_ADDR(0x00);
NF_ADDR(0x00);
NF_ADDR(startSectorAddr & 0xff);
NF_ADDR((startSectorAddr>>8) & 0xff);
if(NEED_EXT_ADDR)
    NF_ADDR((startSectorAddr>>16) & (~(0xff << LastAddrCycleBitCnt)));

-------------------------------------------------------------------

而在读写spare区域时,地址是这样传送的,byteAddr = 2048
//  Write the address
NF_ADDR(byteAddr);
NF_ADDR((byteAddr>>8)&0x0f);
NF_ADDR(sectorAddr & 0xff);
NF_ADDR((sectorAddr>>8) & 0xff);
if(NEED_EXT_ADDR)
    NF_ADDR((sectorAddr>>16) & (~(0xff << LastAddrCycleBitCnt)));

这样就刚好避开了xuedongyi大哥上面说的问题
[url]http://sniper167.bokee.com[/url]
xuedongyi
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分971分
  • 威望109点
  • 贡献值0点
  • 好评度98点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-04-03 10:56
现在我使用2knand 在binfs区域是正确的,image 可以装载,系统一可以起来,但系统起来后看不到nand(我分了fat32区域)在控制面板里可以看到nand但属性容量为8tb,我现在到底出了什么问题,有人能回答吗?
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-04-03 11:27
你说的“FAT 在bootloader中是显示分区成功”你用什么哪个函数作的FAT分区?
如果分区成功,必须改注册表才可以挂载。我也正在做挂载NAND,现在一挂载就不能2次启动了。
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-04-03 11:55
检查FMD_GetInfo函数

很有可能是因为你没有挂载

你看看存储管理器里能看到你的那个FAT32分区不
[url]http://sniper167.bokee.com[/url]
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-04-03 12:17
我是挂载上了,但是把前面的binfs分区也格式化了,我看了存储管理器里里的FAT32分区,大小就是整个nand的大小。所以怀疑fat分区没有分成功,想问一下你用那个函数建的fat分区.
xuedongyi
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分971分
  • 威望109点
  • 贡献值0点
  • 好评度98点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-04-03 12:19
我用的是wince5.0,在使用512b/page nand时,不需要做任何的更改,只要给fat分了区就可以看到nand并且使用,但现在我用2k/page nand时,程序有过更改,但现只能在控制面板的storage里看到nand,但容量是8tb,这显然是不对的,我现在问题到底是分区表错误,还是没有挂载啊?
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-04-03 15:21
在存储管理器里面看看 分区名后面有“*”号就是挂载了的分区
[url]http://sniper167.bokee.com[/url]
xuedongyi
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分971分
  • 威望109点
  • 贡献值0点
  • 好评度98点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-04-05 15:44
在任务管理器里看不到 nand还是只能在存储管理器里看到  这是为什么啊
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-04-05 19:15
任务管理器?存储管理器?
[url]http://sniper167.bokee.com[/url]
xuedongyi
驱动牛犊
驱动牛犊
  • 注册日期2006-08-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分971分
  • 威望109点
  • 贡献值0点
  • 好评度98点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-04-06 07:01
说错了  是资源管理器里看不到,在存储管理器里能看到!
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2007-04-06 11:24
在存储管理器里面看看 分区名后面是否有“*”
没有的话,就是没有挂载,在资源管理器里面当然看不见,改改注册表,加载后应该就能看到了
当然,前提是要有正确的分区
[url]http://sniper167.bokee.com[/url]
上一页
游客

返回顶部