如何把 NFC 挂载到 G7的系统中去,调试一步一步的过程中分别做了什么。
1. 在AHB1上找到1个slave的空挡,ahb-slave8,修改相应AMAB里面的ahb_dcdr.v 文件,给NFC分配基地址空间 0x11005000
2.在ahb1_top文件当中例化NFC,同时给所有需要的 wire 列出实例。
包括 pin_configuration, intr_src, dmac_req, flash_pins
3.和 nand flash相连接的 IO 口声明为inout, 并做相应的处理(pullup, assigned)
4.在 test.v 里面例化NandFlash,双通道,例化2个NandFlash
可以在 test.v 里面对更深层次的 wire 引用,赋值。 如:
assign test.U_SEP0718.U_TOP.U_AHB1_SUB.NandBoot_in = ; //根据需要对 pin-config 进行配置(可以用'ifdef来配置)
...
在这里跟ahb1_top里面的 wire 对应起来。
RnB由 NandFlash 驱动,开漏结构,也必须加上一个pullup
~~可以进行基本的测试,寄存器读写,等等~~
5.在 DMAC 中对原来Nand的那个dma-req通道给剥掉,换做自己NFC的 dma-req(rx和in 对应, tx和out对应)。同时查到Nand的DMA通道为6.
~~测试DMA模式读写~~
6.添加中断
~~进行中断测试~~
7.修改DMAC的reset复位值配置,把NFC fifo的地址换上去。
~~设置为NandBoot_in,进行启动测试~~
~~~~~~~~~~~~~~~~~~~~~~
其他的细节,在file_rtl.f里面添加库文件,在define.v文件里面修改相应的define