nand flash 移植

2019-07-20 04:22发布

本帖最后由 hpdell 于 2016-12-19 14:11 编辑

最近把历程的 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 ");
  else
    printf("NAND Data Read Write 8192 * 4 Test Error  ...  EE ");   


  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资料介绍:
mt29f32g08-ecc.png

mt29f4g08abada芯片的ecc资料介绍:
mt29f4g08abada-ecc.png
还有这个地方的 i = nand_dev.page_mainsize + 0X10 + eccstart * 4;        //计算写入ECC的spare区地址   0X10是怎么得来的啊   ???????





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
正点原子
1楼-- · 2019-07-20 08:23
hpdell 发表于 2016-12-26 14:31
你好,目前我这个 nand flash 芯片是MLC的,不知道 stm是否支持啊,但是看stm资料貌似只支持 SLC 的nand  ...

不支持MLC啊。。。
hbyue
2楼-- · 2019-07-20 10:41
 精彩回答 2  元偷偷看……
hbyue
3楼-- · 2019-07-20 14:07
楼主有stm32f407通过fsmc访问nand flash的例程嘛
hpdell
4楼-- · 2019-07-20 14:58
本帖最后由 hpdell 于 2016-12-16 09:22 编辑
hbyue 发表于 2016-12-15 15:36
楼主有stm32f407通过fsmc访问nand flash的例程嘛

你好,正点原子就有啊,我也是使用它们的历程来改的啊, 但是目前移植到 这个 MT29f32g08的芯片上面也还没有成功哟,你有什么好的建议啊 ???
hpdell
5楼-- · 2019-07-20 18:44
 精彩回答 2  元偷偷看……
hbyue
6楼-- · 2019-07-20 23:08
本帖最后由 hbyue 于 2016-12-17 14:22 编辑
hpdell 发表于 2016-12-16 09:19
有429的哟

我是在STM32F103的fsmc nand.c,fsmc nand.H上更改的

一周热门 更多>