本文的主要任务是实现JZ2440开发板板载的MX29LV800BBTC这款NOR FLASH驱动。
一、MX29LV800BBTC的简单介绍
这是一块容量为2MB,位宽为16位的NOR FLASH存储芯片,它可以像内存一样直接进行访问,但是不能像内存一样直接写入,它支持XIP。它的原理图如下所示:
它的引脚定义如下:
LDATA0~LDATA15:数据引脚
LADDR1~LADDR20:地址引脚
LnOE:读使能引脚
LnWE:写使能引脚
nGCS0:片选引脚
二、驱动程序编写
驱动基于Linux-3.4.10内核编写。
1、一般实现步骤
a、分配一个map_info结构体变量
b、设置这个结构体变量
c、使用:do_map_probe()
d、添加分区
2、驱动程序编写
2.1 前期准备工作,为了方便整个驱动程序的编写,定义了全局结构体,并定义了一个该结构体的全局变量,具体实现如下: