各位好
调试nandflash,调用了startware的源码,但是有些地方看不懂,请教下。
static NandStatus_t NANDPageReadCmdSend(NandInfo_t *nandInfo, unsigned int blkNum,
unsigned int pageNum, unsigned int columnAddr)
{
NandStatus_t retVal;
unsigned int count;
unsigned int pageAddr;
NANDCommandWrite(nandInfo->cmdRegAddr, NAND_CMD_READ);
/* Write 2 bytes of column addr */
NANDAddressWrite(nandInfo->addrRegAddr,
(unsigned char)(columnAddr & 0xFF));
NANDAddressWrite(nandInfo->addrRegAddr,
(unsigned char)((columnAddr >> 8) & 0xFF));
pageAddr = ((blkNum * (nandInfo->blkSize/nandInfo->pageSize)) + pageNum);
/* Write the row address. */
for (count = 0; count < 3; count++)
{
NANDAddressWrite(nandInfo->addrRegAddr,
(unsigned char)pageAddr);
pageAddr = pageAddr >> 8u;
}
NANDCommandWrite(nandInfo->cmdRegAddr, NAND_CMD_READ_CYC2);
retVal = NANDWaitUntilReady(nandInfo);
return retVal;
}
这个发送读命令的函数,我的疑问是nandInfo->cmdRegAddr、nandInfo->addrRegAddr这两个地址是什么意思。从字面理解是命令寄存器地址、地址寄存器地址,但这个地址是怎么计算的啊,我在数据手册中也没有找到这些寄存器的地址值,所以想请大家指教下,
谢谢