最近在s5pv210上面跑裸机,简单读写nandflash一页的内容,不做ECC。
很简单是吧。满足时序,往 NFDATA 寄存器操作既是了。
问题来了,在一直读错的情况下,我发现我 读写的方式是 通过 “字” 访问的,也就是一次4bytes。
看手册上,有这么个表格()
2) 8 位 NAND Flash 存储器接口
A 字访问
寄存器 大/ 小端 位[31:24] 位[2316] 位[15:8] 位[7:0]
NFDATA 小端 4 th I/O[7:0] 3 rd I/O[7:0] 2 nd I/O[7:0] 1 st I/O[7:0]
NFDATA 大端 1 st I/O[7:0] 2 nd I/O[7:0] 3 rd I/O[7:0] 4 th I/O[7:0]
B 半字访问
寄存器 大/ 小端 位[31:24] 位[2316] 位[15:8] 位[7:0]
NFDATA 小端 无效值 无效值 2 nd I/O[7:0] 1 st I/O[7:0]
NFDATA 大端 无效值 无效值 1 st I/O[7:0] 2 nd I/O[7:0]
C 字节访问
寄存器 大/ 小端 位[31:24] 位[2316] 位[15:8] 位[7:0]
NFDATA 大/小端 无效值 无效值 无效值 1 st I/O[7:0]
包括2440 、6410 、210 在NFDATA寄存器上面都有这个设置的问题,
但是找不到设置的地方。
不知道各位有没撞到这个坑,有的话请提示一下。
估计很多人都测试的时候,写helloworld进去,读出来,比较一下没问题就过去了。如果是字存储,在nandflash里面都已经数据错位了。。。 |