你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教 MT29F32G08 nand flash 移植 ????

[复制链接]
hpdell 提问时间:2016-12-13 10:11 /
悬赏5ST金币未解决
最近把历程的 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资料介绍:



收藏 2 评论16 发布时间:2016-12-13 10:11

举报

16个回答
cldym 回答时间:2016-12-27 09:33:35
帮顶帮顶
jcx0324 回答时间:2016-12-27 09:38:49
移植的是哪个例程?nand的驱动有点复杂
hpdell 回答时间:2016-12-27 09:47:34
本帖最后由 hpdell 于 2016-12-27 09:51 编辑
jcx0324 发表于 2016-12-27 09:38
移植的是哪个例程?nand的驱动有点复杂

你好,移植的正点原子的, 看stm资料,貌似只支持      1bit错误的ECC,也就是只支持SLC的nand flash 芯片,
MT29F32G08CBACA 这个nand flash 是MLC的芯片,估计是比较麻烦或者是stm的单片机不支持 MLC类型的 nand flash 吧

你们有没有什么好的办法啊(除跟换器件外) ??
小小超 回答时间:2016-12-27 11:36:39
确实没用过,帮顶吧
无薪税绵 回答时间:2016-12-27 12:52:41
这个不会,只能帮楼主加人气了。
五哥1 回答时间:2016-12-27 16:14:50
美光和STM有关系吗?
jcx0324 回答时间:2016-12-28 08:54:47
MLC的话要用软件ECC,没验证过原子的nand控制算法,毕竟涉及到磨损管理,碎片利用,坏块管理等, 可以参考下RTX的nand驱动,貌似还挺好用的

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

hpdell 回答时间:2016-12-28 11:48:33
jcx0324 发表于 2016-12-28 08:54
MLC的话要用软件ECC,没验证过原子的nand控制算法,毕竟涉及到磨损管理,碎片利用,坏块管理等, 可以参考下RTX ...

你好,能否把这块的程序发上来共享一下啊
jackten 回答时间:2016-12-28 15:45:41
顶                       
斜阳 回答时间:2016-12-29 09:27:12
帮顶帮顶
jcx0324 回答时间:2016-12-30 12:15:39
hpdell 发表于 2016-12-28 11:48
你好,能否把这块的程序发上来共享一下啊

keil 安装环境下有例程的
hpdell 回答时间:2016-12-30 19:52:42
jcx0324 发表于 2016-12-30 12:15
keil 安装环境下有例程的

你好,能否说说具体路径啊,我找了半天也找到
zbber 回答时间:2016-12-30 20:23:08
这个不会,只能帮楼主加人气了
未来战士wlzs 回答时间:2018-12-17 17:32:04
帮顶
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版