其他分享
首页 > 其他分享> > S3C2440-裸机篇-09 | 使用S3C2440操作Nor Flash

S3C2440-裸机篇-09 | 使用S3C2440操作Nor Flash

作者:互联网

1. Nor Flash与Nand Flash

NorNand
接口引脚多,类似于RAM引脚较少
容量小(1-32MB)大(128-512MB)
读操作简单,和RAM相同简单,和RAM相同
写操作发出特定命令才能写入发出特定命令才能写入
价格便宜
比较无坏块有坏块
XIP可以不可以
应用场合存储关键性代码(比如uboot,kernel)存储海量数据(允许错误)

2. JZ2440开发板上的Nor Flash

JZ2440开发板上板载了一个Nor Flash,型号为MX29LV160DBTI-70G,连接在S3C2440内存控制器上的BANK0,原理图如下:

3. 使用uboot命令直接读写内存操作Nor Flash

实验前提:烧录uboot.bin到Nor Flash,并且板子设置为Nor Flash启动方式。

知识准备:uboot | uboot内存操作指令mw和md详解

3.1. 读取Nor Flash ID(Manifacture ID)

查看Nor FLash芯片数据手册:

从数据手册中可知,读取Manifacture ID的流程如下:

因为S3C2440的A1接在Nor Flash的A0上,所以CPU发出的地址应该是左移一位之后的地址,所以uboot中应该使用如下几条命令进行测试:

mw.w aaa aa
mw.w 554 55
mw.w aaa 90
md.w 0 1

3.2. 读取Nor Flash ID( Device ID)

查看Nor FLash芯片数据手册:

从数据手册中可知,读取Device ID的流程如下:

因为S3C2440的A1接在Nor Flash的A0上,所以CPU发出的地址应该是左移一位之后的地址,所以uboot中应该使用如下几条命令进行测试:

mw.w aaa aa
mw.w 554 55
mw.w aaa 90
md.w 2 1


本实验中读取的Device ID是0x2249,和数据手册中的一致:

3.3. 读取CFI信息

CFI 即 Common Flash Interface,公共Flash接口。Flash存储器接口标准有CFI和JEDEC(比较老的规范),CFI用于帮助程序从Flash芯片中获取操作方式信息,而不用在程序中硬编码Flash的ID。

① 进入CFI模式

查看Nor FLash数据手册中的命令列表,找到进入CFI模式的命令:

因为S3C2440的A1接在Nor Flash的A0上,所以CPU发出的地址应该是左移一位之后的地址,所以uboot中应该使用如下命令进行测试:

mw.w aa 98

进入CFI模式后,任意读取需要的CFI信息

首先读取一下CFI信息的前三个字符QRY进行测试:

因为S3C2440的A1接在Nor Flash的A0上,所以CPU发出的地址应该是左移一位之后的地址,所以uboot中应该使用如下命令进行测试:

md.w 20 3


再读取Flash容量信息测试一下:

因为S3C2440的A1接在Nor Flash的A0上,所以CPU发出的地址应该是左移一位之后的地址,所以uboot中应该使用如下命令进行测试:

md.w 4e 1


测试结果和数据手册一致,Flash容量应该为 2 的 21 次 方 = 2 M B 2的21次方=2MB 2的21次方=2MB。

③ 读取CFI信息完毕,退出读CFI模式:向任意地址写0xF0(复位)。

mw.w 00 f0

3.4. 擦除和写入数据

Nor Flash不能直接写入,这样设计也是非常合理,如果Flash的内容像SDRAM那样被轻易修改,那还叫什么Flash呢?

① 擦除
Flash的特性就是写入时数据只能由1变为0,而不能由0变为1,所以向Flash写入数据时,需要先进行擦除操作,将数据变为0xFF,之后才能写入待写数据。

擦除Flash的命令如下:

因为S3C2440的A1接在Nor Flash的A0上,所以CPU发出的地址应该是左移一位之后的地址,所以uboot中应该使用如下命令进行测试:

mw.w aaa aa
mw.w 554 55
mw.w aaa 80
mw.w aaa aa
mw.w 554 55
mw.w 100000 30

② 写入

首先确保一下要写入的地址处是否是0xFF:

md.w 100000 1


接下来可以写入数据,查看芯片手册获取写入命令:

因为S3C2440的A1接在Nor Flash的A0上,所以CPU发出的地址应该是左移一位之后的地址,所以uboot中应该使用如下命令进行测试:

mw.w aaa aa
mw.w 554 55
mw.w aaa a0
mw.w 100000 1234

标签:Flash,写入,地址,裸机,mw,S3C2440,ID,Nor
来源: https://blog.csdn.net/Neutionwei/article/details/118830235