深度探索嵌入式操作系统:从零开始设计、架构和开发
上QQ阅读APP看书,第一时间看更新

2.2.7 Norflash

Flash存储器称为闪存,它结合了ROM和RAM的特点,不仅具备电子可擦除、可编程的特点,还可以快速读写数据,而且数据不会因为断电而丢失。这种特性使它可以用于U盘、MP3、智能手机等众多移动智能设备上。

目前Flash闪存芯片主要有两种:Norflash和Nandflash。下面介绍Norflash。

mini2440开发板上有一片2MB大小的Norflash芯片,它连接在S3C2440A的Bank0上,并且可以通过跳线控制。

mini2440开发板上的Norflash芯片特性如下:

1)有22根地址信号线和16根数据信号线。

2)掉电不会丢失数据。

3)支持“片上运行”。

由于它有22根地址信号线和16根数据信号线,所以它能索引Norflash芯片上每个存储字,一次可以传输16位数据,刚好是一个字。这就像SDRAM芯片一样,可以被CPU直接读写。掉电也不会丢失数据。这样写入其中的代码和数据就可以长久地保存。如果它里面包含可执行代码,那么就可以在不需要SDRAM芯片的情况下执行程序。什么情况下需要这样的存储芯片呢?例如,PC上的BIOS系统,CPU运行的第一个程序就是BIOS程序,那个时候连内存都还没初始化呢。再就是mini2440嵌入式开发板的上引导程序,也可以说是BIOS,它也完成了BIOS绝大部分工作,只是叫法不同而已。mini2440开发板在上电时,S3C2440芯片时钟和SDRAM芯片控制器都还没有初始化呢。所以要借助Norflash存储技术。

利用JTAG技术,向Norflash芯片中烧入引导程序,这个引导程序负责初始化开发板上的各种设备,如时钟、SDRAM、串口等。初始化完设备之后,就装载操作系统内核。mini2440开发板上Norflash芯片中烧写的是superVIVI引导程序。这个引导程序功能非常多,我们要用到的是从PC上下载的操作系统内核到mini2440开发板上的SDRAM芯片中,这非常方便。

Norflash芯片内部的实现细节我们不需要知道,我们只要知道mini2440开发板上有2MB的Norflash芯片,它就相当于掉电不丢失数据的内存,当然它的速度赶不上内存,它里面存放的是一个引导程序。我们还可以通过拨动mini2440开发板上一个开关从Norflash芯片开始启动,并且将它连接在S3C2440A的Bank0上,开始的物理地址是0,S3C2440A中的ARM920TCPU,一上电就是从地址0开始执行第1条指令,这样刚好就运行了Norflash芯片中的引导程序。