TI中文支持网
TI专业的中文技术问题搜集分享网站

nanflash读写编程

在C:\ti\C6748_StarterWare_1_20_04_01\examples\evmC6748\nand下的例程,是关于NANDFLASH的读写实验,此实验是基于EDMA3的NANDFLASH的读写操作。函数里面,关于EDMA3初始化以及param的参数设置做如下操作:

1: hNandDmaInfo->DMAXferSetup              = EMIFANANDXferSetup; //EDMA的读写配置

2;EMIFANANDXferSetup(NandInfo_t *nandInfo, unsigned char *data, unsigned int len, NandDmaDir_t dir)函数里的

3:retVal = EMIFANANDRxDmaConfig(nandInfo->dataRegAddr, data, len);函数对相关param参数进行了设置

可是没有明确nandflash的地址,如下:

4:EMIFANANDRxDmaConfig(unsigned int csBaseAddr, unsigned char *data, unsigned int len)

5:{paramSet.srcAddr    = csBaseAddr;}

是不是将相应的函数做如1操作,在代码被封装的底层就已经进行了相应的函数操作,如地址的定义,以及其他相关NANDFLASH的EDMA3的param参数?

由于EDMA3被设置成手动触发,所以函数集:

6:retVal = NANDPageWrite(&nandInfo, blkNum, pageNum, &txData[0],&eccData[0]);

即对NANDFLASH的写操作,是不是此函数直接出发了EDMA3?效果和函数:

7:EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 0, EDMA3_TRIG_MODE_MANUAL);一样呢?

Denny%20Yang99373:

这是把NAND的读写和EDMA事件挂钩了的。

这个例程有什么问题吗?

shouyi hu:

回复 Denny%20Yang99373:

这个例程没办法看到,具体的NAND在EDMA的源地址与目的地址,以及触发的方式。

是不是使用EMIFA配置好读写时序之后,就可以直接对相应的NAND的地址进行读写访问?

如果想将EDMA和NAND的配置模块化分开?或者不适用EDMA对NAND进行读写需要怎么实现?

Denny%20Yang99373:

回复 shouyi hu:

不用EDMA可以直接对NAND片选地址读写就行了

shouyi hu:

回复 Denny%20Yang99373:

还想问一个问题,初始化操作是否是对EMIFA初始化,完成读写时序的配置如使用函数:

/*配置EMIFA相关复用引脚*/ EMIFAPinMuxSetup();

/*配置数据总线16bit*/ //This function will set the buswidth of async device connected. EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_2, // Device Interfaced on CS2 EMIFA_DATA_BUSWITTH_16BIT);

/*选着Normal模式*/ //This function selects the aync interface opmode. EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_2, EMIFA_ASYNC_INTERFACE_NORMAL_MODE);

/*禁止WAIT引脚*/ //This function configures the extended wait cycles to the device. EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_2, EMIFA_EXTENDED_WAIT_DISABLE);

/*配置W_SETUP/R_SETUP W_STROBE/R_STROBE W_HOLD/R_HOLD TA等参数*/ //This function configures the wait timing for the device interfaced on csNum. EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_2, EMIFA_ASYNC_WAITTIME_CONFIG(2, 3, 2, 2, 3, 2, 0 ));

这是EMIFA访问FPGA的初始化,是否对NANDFLASH或者NORFLASH之类的都按这样的初始化流程后,就可以实现正常的读写操作了呢?

因为TI提供的C:\ti\C6748_StarterWare_1_20_04_01\examples\evmC6748\nand下的例程,思路并不是那么清晰。

Denny%20Yang99373:

回复 shouyi hu:

连FPGA的初始化和NOR应该是差不多的。

NAND可能有点不一样,具体可以看看不同的DEMO代码

shouyi hu:

回复 Denny%20Yang99373:

好的,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » nanflash读写编程
分享到: 更多 (0)