65

帖子

0

TA的资源

一粒金砂(初级)

41
 
应该是文件系统没有加载起来,可能是读Boot Sector时数据有问题。

回复

85

帖子

0

TA的资源

一粒金砂(初级)

42
 
为什么你的函数名叫FMD_LB_GetBlockStatus
我记得FAL是静态链接到FMD_GetBlockStatus这个函数的
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

43
 
引用 42 楼 hhyh612 的回复:
为什么你的函数名叫FMD_LB_GetBlockStatus
我记得FAL是静态链接到FMD_GetBlockStatus这个函数的


我的是大页flash,在FMD_GetBlockStatus调用了FMD_LB_GetBlockStatus(这个是专门针对大页的)

我现在搞不定,准备暂缓一段时间了,flash驱动暂时用老的驱动。
知道的提点意见,我要搞一下camera先。
以后再结贴了。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

44
 
我写过大页驱动,但我没有你这样的问题,我不知道该怎么帮助你
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(中级)

45
 
引用 44 楼 Seven_zhangxw 的回复:
我写过大页驱动,但我没有你这样的问题,我不知道该怎么帮助你


谢谢。我发现这个驱动比较怪。一定要高低格式化才行的,我重新烧写了开发板自带的NK,因为没有格式化,盘符居然不见了。
现在我准备移植binfs分区等功能到我自己用的ADS BIOS当中。BSP自带的我觉得不好用,烧写程序繁琐。
这个不能发现盘符的问题我估计要到下个月才会有结果了。
到时候解决了把原因贴出来。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

46
 
重新烧NK,要把Flash区格式化为FAT格式才能显示盘符.
格式化可在控制面板的储存管理那个做.

如果Flash之前有数据可有可能识别不了.所以格式化比较安全.
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

47
 
我这两天看了一下驱动,估计和这个有关。

三星2440 wince5.0 nandflash驱动分析
creator
sz111@126.com

    若干天的实验和测试,终于对三星2440 wince5.0的nandflash有了一个初步的认识。
    首先解决了一个疑问:
    1.我的开发板仅仅有nandflash驱动,把stepldr烧录到0块,eboot烧录到第二块,看
程序是从nandflash的第二块开始读的啊。怎么就不行了呢?最后看到长高网站介绍要放到
第16块。
    仔细研究发现:
#define NAND_BLOCK_SIZE_BYTES   0x00020000
#define NAND_PAGE_SIZE_BYTES    0x00000200
#define NAND_PAGES_PER_BLOCK    (NAND_BLOCK_SIZE_BYTES / NAND_PAGE_SIZE_BYTES)

    // NOTE: we assume that this Steppingstone loader occupies *part* the first (good) NAND flash block.  More
    // specifically, the loader takes up 4096 bytes (or 8 NAND pages) of the first block.  We'll start our image
    // copy on the very next page.
#define NAND_COPY_PAGE_OFFSET   2*NAND_PAGES_PER_BLOCK

NAND_BLOCK_SIZE_BYTES为0x00020000,而我的64M的nandflash本来是1(block)=1(page)x32=512x32=0x4000
为何这里却是0x00020000呢?
    最后发现cfnand.h中:
    static S2440Spec     astNandSpec[] = {
        /*************************************************************************/
        /* nMID, nDID,                                                           */
        /*            nNumOfBlks                                                 */
        /*                  nPgsPerBlk                                           */
        /*                      nSctsPerPg                                       */
        /*                         nNumOfPlanes                                  */
        /*                            nBlksInRsv                                 */
        /*                                nBadPos                                */
        /*                                   nLsnPos                             */
        /*                                      nECCPos                          */
        /*                                         nBWidth                       */
        /*                                                nTrTime                */
        /*                                                    nTwTime            */
        /*                                                         nTeTime       */
        /*                                                                nTfTime*/
        /*************************************************************************/
        /* 8Gbit DDP NAND Flash */
        { 0xEC, 0xD3, 8192, 64, 4, 2,160, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        /* 4Gbit DDP NAND Flash */
        { 0xEC, 0xAC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0xDC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0xBC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0xCC, 4096, 64, 4, 2, 80, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        /* 2Gbit NAND Flash */
        { 0xEC, 0xAA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0xDA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0xBA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0xCA, 2048, 64, 4, 1, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        /* 2Gbit DDP NAND Flash */
        { 0xEC, 0xDA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0xAA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0xBA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0xCA, 2048, 64, 4, 2, 40, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        /*1Gbit NAND Flash */
        { 0xEC, 0xA1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0xF1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0xB1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0xC1, 1024, 64, 4, 1, 20, 0, 2, 8, BW_X16, 50, 350, 2000, 50},
        /* 1Gbit NAND Flash */       
        { 0xEC, 0x79, 8192, 32, 1, 4,120, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0x78, 8192, 32, 1, 4,120, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0x74, 8192, 32, 1, 4,120,11, 0, 6, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0x72, 8192, 32, 1, 4,120,11, 0, 6, BW_X16, 50, 350, 2000, 50},
        /* 512Mbit NAND Flash */
        { 0xEC, 0x76, 4096, 32, 1, 4, 70, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0x36, 4096, 32, 1, 4, 70, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0x56, 4096, 32, 1, 4, 70,11, 0, 6, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0x46, 4096, 32, 1, 4, 70,11, 0, 6, BW_X16, 50, 350, 2000, 50},
        /* 256Mbit NAND Flash */   
        { 0xEC, 0x75, 2048, 32, 1, 1, 35, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0x35, 2048, 32, 1, 1, 35, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0x55, 2048, 32, 1, 1, 35,11, 0, 6, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0x45, 2048, 32, 1, 1, 35,11, 0, 6, BW_X16, 50, 350, 2000, 50},
        /* 128Mbit NAND Flash */
        { 0xEC, 0x73, 1024, 32, 1, 1, 20, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        { 0xEC, 0x33, 1024, 32, 1, 1, 20, 5, 0, 6, BW_X08, 50, 350, 2000, 50},
        //{ 0xEC, 0x53, 1024, 32, 1, 1, 20,11, 0, 6, BW_X16, 50, 350, 2000, 50},
        //{ 0xEC, 0x43, 1024, 32, 1, 1, 20,11, 0, 6, BW_X16, 50, 350, 2000, 50},

    { 0x00, 0x00,    0,  0, 0, 0,  0, 0, 0, 0,      0,  0,   0,    0,  0}
};
    说明三星已经对多个flash(包括大页,小页)进行了支持。为了统一起见,1(BLOCK)=0x00020000
这样就可以保证在文件系统中大页的flash和小页的flash都可以采用统一的block的大小。而在进行一个
逻辑转换就行。这样,对文件系统来说,1block=128k,对应大页的nand是一对一,对应小页的nand是一对八。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

48
 
嘿嘿,老帖了,给做个总结。

——————————————————————
后来发现这个不能出现盘符是没有正确写入MBR,
两个驱动的MBR位置不同,导致一个能出现盘符,一个不行,大家要引以为戒啊。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

49
 
学习了,谢谢
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

50
 
dddd
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

51
 
老虾~有个新问题,两块硬件一样的板,烧同一个bsp,结果一个flash盘符显示有3m多的空间,另外一个显示300多k的空间啊~~检查很久没结果啊,请问一下空间显示值在程序中哪里可以体现?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

52
 
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

53
 
楼上的都是高手,我啥也不懂,也没有学过程序,路过!!
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

54
 
收藏一下。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表