NAND FLASH 驱动理解求助

2019-07-20 13:47发布

在对NAND FLASH 驱动实验中,对其中一段话有理解困难,
MT29F4G08的访问地址为0X80000000,而NAND FLASH的命令/地址控制由 CLE/ALE 控制,也就是由 FMC_A17_CLE 和 FMC_A16_ALE 控制,因此,
发送命令和地址的语句为:
                                         *(vu8*)(0X80000000|(1<<17))=CMD;
                                        *(vu8*)(0X80000000|(1<<16))=ADDR;

在看信号线那里 不是说ALE为高时,IO上锁存地址,CLE为高时,IO上锁存命令。可是这个发送命令的地址的语句为什么是在MT29F4G08的访问地址上进行赋值操作,?
*(vu8*)(0X80000000|(1<<17))=CMD;
*(vu8*)(0X80000000|(1<<16))=ADDR;这两句话怎么理解?希望有人帮助我解答哈,多谢。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-20 14:58
就是当A16=1时,IO口上写入的就是地址;当A17=1时,IO口上写入的数据就是命令。
1018988577
2楼-- · 2019-07-20 16:07
这个A16和A17是指什么?0X80000000|(1<<17)和0X80000000|(1<<16)是不是就是命令寄存器和地址寄存器的地址?往命令寄存器写入命令或者地址寄存器写入地址|?
1018988577
3楼-- · 2019-07-20 18:07
 精彩回答 2  元偷偷看……
1018988577
4楼-- · 2019-07-20 18:35
CPU 是通过FMC达到控制NAND FLASH的,对于FMC的NADN FLASH的控制器中,他的存储区域分为两个部分,为特性区和通用区,每个区每个区又分为命令区、地址区和数据区,当往命令区或者地址区写入相应的值时,FMC就根据写入的值向NAND  FLASH发送对应的命令和地址,生成相应的时序信号。上面的0X80000000|(1<<17就是命令区地址,往该地址写命令字,FMC就会根据此得到要发送的命令,0X80000000|(1<<16就是地址区,往该地址区写入的地址即可。FMC会根据此得到地址

一周热门 更多>