请问,ecc存放的地址?

[复制链接]
2767|3
手机看帖
扫描二维码
随时随地手机跟帖
lzh08|  楼主 | 2009-7-24 18:24 | 显示全部楼层 |阅读模式
我用的是K9F1G08U0B,页大小是2048 + 64,一个block是64页,在对page进行写和读的操作时,都会产生ECC,但是不知道这个ECC存放在什么位置?看自带的例程也没有找到相应的说明,请知道的告知一声。
另外,在stm32f10x_fsmc.c中,有个函数FSMC_GetECC,不知道这个函数是直接读出ECC的值么?
有一个数据结构,
typedef struct
{
  vu32 PCR2;
  vu32 SR2;
  vu32 PMEM2;
  vu32 PATT2;
  u32  RESERVED0;   
  vu32 ECCR2; 
} FSMC_Bank2_TypeDef; 
这个vu32 ECCR2是定义的ecc字节地址么?
香水城| | 2009-7-24 18:37 | 显示全部楼层

ECC放在哪里由你自己定,一般放在NAND的冗余区

数据结构中定义的是有关的寄存器。

使用特权

评论回复
lzh08|  楼主 | 2009-7-24 18:50 | 显示全部楼层

自己决定?ECC产生代码是自己写的么?

如果这样的话,
FSMC_NANDInitStructure.FSMC_ECC = FSMC_ECC_Enable;
这个初始化命令是什么意思呢?不是代表由硬件产生ECC么?
能否有一小段代码参考一下,谢谢。

使用特权

评论回复
香水城| | 2009-7-24 19:11 | 显示全部楼层

对不起,你的问题不是问产生的ECC存放在哪里吗?

STM32中有ECC计算器,ECC计算当然是硬件完成。

那个初始化命令就是使能ECC计算,当使能ECC后,所有的读写数据都会自动地被用于ECC计算,读写完成指定数目的数据字节后,读出ECC结果寄存器即可得到ECC的计算结果。

请看STM32参考手册的说明:ECC result registers 2/3 (FSMC_ECCR2/3)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

114

帖子

0

粉丝