各位,
我正在尝试使用 IMXRT1171 处理器中的 SEMC 和 AXI 接口配置一个 SkyHigh ONFI Nand 闪存(编码 S34ML01G3)。
我从 nandflash_semc 示例开始,修改了一些部分,内存似乎可以正常工作。但是,有些细节我无法理解,我想问一下:
1) 突发长度:我必须使用哪个值?在内存数据表中我找不到关于这个领域的任何想法,在处理器参考手册中也是如此。你能更好地解释一下这个领域吗?在我的 projetc 突发长度是 64,似乎工作,但我想了解为什么。
2) 访问 AXI 内存:witch data width 是最好的选择?使用 memcpy,访问似乎是 32 字节宽,但它并不总是有效:在我的项目中,我必须在读取时使用 16 字节宽,在写入时使用 32 字节宽。这样读写内存还是不错的,但是我想明白为什么,如果有规则可以设置一下。
3)在我的理解中,AXI访问在读时自动添加05h和E0h命令,在写时自动添加85h命令。读取时,controller如何知道要从nand flash设备读取多少字节?有一个寄存器(如果存在,我找不到它),或者每次访问 AXI 映射内存都会生成一条对 nandflash 设备的读取指令?可能是突发长度来处理这个?