搜索
bottom↓
回复: 8

最近把历程的nand flash 程序移植到 MT29F32G08CBACA 这个芯片上

[复制链接]

出0入0汤圆

发表于 2016-12-19 14:09:26 | 显示全部楼层 |阅读模式
最近把 正点原子的 nand flash的 程序移植到 MT29F32G08CBACA 这个芯片上,出现如下问题,

如果单独使用如下函数进行测试是是正常的,

  FTL_Init() ;

  NAND_EraseBlock(4000);

    uint32_t RWDataSize = 8192 * 4;
  uint8_t  * nand_F_tx_buff =  (uint8_t  *)mymalloc(SRAMEX, RWDataSize );        
  uint8_t  * nand_F_rx_buff =  (uint8_t  *)mymalloc(SRAMEX, RWDataSize );        
  uint8_t i=0;
  for(cc=0; cc < RWDataSize; cc++)
  {
    nand_F_tx_buff[cc] = i * 2 ;
    nand_F_rx_buff[cc] = 0;
    i ++;
  }  

  NAND_WritePage( 4000, 6, &nand_F_tx_buff[0], 512);
  NAND_ReadPage(4000, 6, &nand_F_rx_buff[0], 512);   

  if( Buffercmp_8(&nand_F_tx_buff[0], &nand_F_rx_buff[0], 512) == 0)
    printf("NAND Data Read Write 8192 * 4 Test OK     ...  DD \r\n\r\n");
  else
    printf("NAND Data Read Write 8192 * 4 Test Error  ...  EE \r\n\r\n");   


  myfree(SRAMEX, nand_F_tx_buff);
  myfree(SRAMEX, nand_F_rx_buff);

上述测试是OK的

但是如果使用LUT功能建立分区表 就出错,格式化也是出错,也就是如下函数
u8 FTL_CreateLUT(u8 mode)

另外  hnand1.Init.ECCPageSize = FMC_NAND_ECC_PAGE_SIZE_1024BYTE;       //ECC页大小为1024字节 这个我配置是1024字节,根据资料介绍是1024字节,还有

还有#define NAND_ECC_SECTOR_SIZE                1024                        //执行ECC计算的单元大小,默认1024字节 我也改成了1024,

不知道其他的是否还需要修改啊 ???

mt29f32g08cbaca芯片的ecc资料介绍:


mt29f4g08abada芯片的ecc资料介绍:


还有这个地方的 i = nand_dev.page_mainsize + 0X10 + eccstart * 4;        //计算写入ECC的spare区地址   0X10是怎么得来的啊   ???????





















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2016-12-27 09:41:07 | 显示全部楼层
大侠们对这个都不敢兴趣啊 ??????????????

出0入0汤圆

发表于 2017-6-28 06:35:28 | 显示全部楼层
hpdell 发表于 2016-12-27 09:41
大侠们对这个都不敢兴趣啊 ??????????????

你解决了吗?

出0入0汤圆

发表于 2017-11-10 20:52:56 | 显示全部楼层
能否将 成功的程序提供给我参考一下,谢谢

出0入0汤圆

发表于 2022-6-16 15:49:16 | 显示全部楼层
请问楼主后来解决这个问题了吗

出0入0汤圆

发表于 2022-6-16 20:48:00 | 显示全部楼层
我发现问题了,正点原子声明的
  1. nand_dev.block_pagenum
复制代码
是 u8 类型的,而对于 MT29F32G08CBACA 应当填 256,所以溢出了...

出0入0汤圆

 楼主| 发表于 2022-6-19 12:52:46 | 显示全部楼层
karbon 发表于 2022-6-16 20:48
我发现问题了,正点原子声明的  是 u8 类型的,而对于 MT29F32G08CBACA 应当填 256,所以溢出了... ...
(引用自6楼)

大牛啊,

恭喜恭喜

出0入0汤圆

发表于 2022-6-19 20:51:22 | 显示全部楼层
hpdell 发表于 2022-6-19 12:52
大牛啊,

恭喜恭喜
(引用自7楼)

请问你后来调通这个Flash了吗?正点的FTL似乎不太适用于这颗MLC的Flash?

出0入0汤圆

 楼主| 发表于 2022-6-21 15:29:01 | 显示全部楼层
karbon 发表于 2022-6-19 20:51
请问你后来调通这个Flash了吗?正点的FTL似乎不太适用于这颗MLC的Flash?
(引用自8楼)

没有啊,后来更换了另外一个芯片,

MT29F32G08CBACA 这个貌似似 mlc 颗粒的,

后来更换了一个 slc 颗粒的,

之前看st 的官网介绍说是不支持 mlc 颗粒的 nand ,只支持 slc 颗粒的

现在貌似你可以使用 levelX 来搞 nand 的驱动,配合 filex 很好使用,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-3 17:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表