NOR FLASH驱动程序
// 参考 drivers\mtd\maps\physmap.c
//
#include "linux/module.h"
#include "linux/types.h"
#include "linux/kernel.h"
#include "linux/init.h"
#include "linux/slab.h"
#include "linux/device.h"
#include "linux/platform_device.h"
#include "linux/mtd/mtd.h"
#include "linux/mtd/map.h"
#include "linux/mtd/partitions.h"
#include "asm/io.h"
static struct map_info *s3c_nor_map;
static struct mtd_info *s3c_nor_mtd;
static struct mtd_partition s3c_nor_parts[] = {
};
static int s3c_nor_init(void)
{
}
static void s3c_nor_exit(void)
{
}
module_init(s3c_nor_init);
module_exit(s3c_nor_exit);
MODULE_LICENSE("GPL");
=============================================================
使用UBOOT体验NOR FLASH的操作(开发板设为NOR启动,进入UBOOT)
先使用OpenJTAG烧写UBOOT到NOR FLASH
1. 读数据
md.b 0
2. 读ID
NOR手册上:
往地址555H写AAH
往地址2AAH写55H
往地址555H写90H
读0地址得到厂家ID: C2H
读1地址得到设备ID: 22DAH或225BH
退出读ID状态: 给任意地址写F0H
2440的A1接到NOR的A0,所以2440发出(555h<1), NOR才能收到555h这个地址
UBOOT怎么操作?
往地址AAAH写AAH
往地址554写55H
往地址AAAH写90H
读0地址得到厂家ID: C2H
读2地址得到设备ID: 22DAH或225BH
退出读ID状态:
3. NOR有两种规范, jedec, cfi(common flash interface)
NOR手册:
进入CFI模式
读数据:
2440的A1接到NOR的A0,所以2440发出(555h<1), NOR才能收到555h这个地址
UBOOT怎么操作?
进入CFI模式
读数据:
4. 写数据: 在地址0x100000写入0x1234
md.w 100000 1
mw.w 100000 1234
md.w 100000 1
NOR手册:
往地址555H写AAH
往地址2AAH写55H
往地址555H写A0H
往地址PA写PD
2440的A1接到NOR的A0,所以2440发出(555h<1), NOR才能收到555h这个地址
UBOOT怎么操作?
往地址AAAH写AAH
往地址554H写55H
往地址AAAH写A0H
往地址0x100000写1234h
NOR FLASH驱动程序框架
测试1:通过配置内核支持NOR FLASH
1. make menuconfig
-> Device Drivers
NORFLASH驱动程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)