首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
Micron Parallel NOR Flash驱动
2024-11-05
十八、Nand Flash驱动和Nor Flash驱动
在读者学习本章之前,最好了解Nand Flash读写过程和操作,可以参考:Nand Flash裸机操作. 一开始想在本章写eMMC框架和设备驱动,但是没有找到关于eMMC设备驱动具体写法,所以本章仍继续完成Nand Flash设备驱动,eMMC这个坑留在以后填.如果读者开发板为eMMC,本节驱动可能无法正常执行. 在裸机操作中,读者应了解Nand Flash时序图.Nand Flash片选.读写和擦除等操作,在此不再赘述. 一.Nand Flash驱动分析 Nand Flash设备驱动放在dri
linux下Pl353 NAND Flash驱动分析
linux的NAND Flash驱动位于drivers/mtd/nand子文件夹下: nand_base.c-->定义通用的nand flash基本操作函数,如读写page,可自己重写这些函数 nand_bbt.c-->与坏块管理有关的函数和结构体 nand_ids.c-->nand_flash_ids[](芯片ID)和nand_manuf_ids[](厂商ID) nand_ecc.c-->软件ECC代码,若系统支持硬件ECC.则不用理会这个文件 pl353_nand.c-->
如何编写linux下nand flash驱动-2
[Nand Flash引脚(Pin)的说明] 图3.Nand Flash引脚功能说明 上图是常见的Nand Flash所拥有的引脚(Pin)所对应的功能,简单翻译如下: 1. I/O0 ~ I/O7:用于输入地址/数据/命令,输出数据 2. CLE:Command Latch Enable,命令锁存使能,在输入命令之前,要先在模式寄存器中,设置CLE使能 3. ALE:Address Latch Enable,地址锁存使能,在输入地址之前,要先在模式寄存器中,
Smart210学习记录------nor flash驱动
nor flash驱动与nand flash驱动的差别不大,只是设置不同的结构体而已,, nor flash驱动代码: #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
Smart210学习记录----nand flash驱动
[详解]如何编写Linux下Nand Flash驱动 :http://www.cnblogs.com/linux-rookie/articles/3016990.html 当读写文件请求到来的时候,流程如下 1.通过vfs进入文件系统, 2.文件系统把文件读写转换为块设备读写,其中有运用算法对读写操作进行合并,排序等,最后把块设备读写放进队列 3.循环从队列中取出读写要求,然后用处理函数(blk_init_queue设置)进行处理. 这个函数就是连接上层(IO调度)跟底层(硬件操作)的桥梁,当
Linux MTD子系统 _从模型分析到Flash驱动模板
MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化硬件驱动框架.本文基于3.14内核,讨论MTD驱动框架. MTD子系统框架 设备节点层:MTD框架可以在/dev下创建字符设备节点(主设备号90)以及块设备节点(主设备号31), 用户通过访问此设备节点即可访问MTD字符设备或块设备. MTD设备层: 基于MTD原始设备, Linux在这一层次定义出
Nand Flash驱动(实现初始化以及读操作)
简单制作一个Nand Flash驱动(只需要初始化Flash以及读Flash) 打开2440芯片手册,K9F2G08U0M芯片手册(因为2440中Nand Flash是用的256MB(2Gb)内存,8个数据引脚) 在芯片手册中得到K9F2G08U0M=2048块Block=128K页Pages=256MB=2Gb 1块Block=64页Pages 1页=(2K+64)B (因为每个地址里都存放了一个字节,所以用B表示) 其中64B是存放ECC的OOB地址,(ECC:存放判断
Linux-Nand Flash驱动(分析MTD层并制作NAND驱动)
1.本节使用的nand flash型号为K9F2G08U0M,它的命令如下: 1.1我们以上图的read id(读ID)为例,它的时序图如下: 首先需要使能CE片选 1)使能CLE 2)发送0X90命令,并发出WE写脉冲 3)复位CLE,然后使能ALE 4)发送0X00地址,并发出WE写脉冲 5)设CLE和ALE为低电平 6)读出8个I/O的数据,并发出RE上升沿脉冲 (我们的nand flash为8个I/O口,所以型号为K9F2G08U0M) 1.2 nand flash 控制器介绍 在244
24.Linux-Nand Flash驱动(分析MTD层并制作NAND驱动)
1.本节使用的nand flash型号为K9F2G08U0M,它的命令如下: 1.1我们以上图的read id(读ID)为例,它的时序图如下: 首先需要使能CE片选 1)使能CLE 2)发送0X90命令,并发出WE写脉冲 3)复位CLE,然后使能ALE 4)发送0X00地址,并发出WE写脉冲 5)设CLE和ALE为低电平 6)while判断nRE(读使能)是否为低电平 7)读出8个I/O的数据,并发出RE上升沿脉冲 (我们的nand flash为8个I/O口,所以型号为K9F2G08U0M) 1
linux2.6.30.4内核移植(2)——Nand Flash驱动移植
内核源码:linux2.6.30.4 交叉编译工具:3.4.5 移植linux内核至:TQ2440 工作基础:http://www.cnblogs.com/nufangrensheng/p/3669623.html Linux内核中已经做好了Nand Flash的驱动,只需要进行适当的修改即可使用. 一.修改内核源码arch/arm/plat-s3c24xx/common-smdk.c文件: 1.修改其中的smdk_default_nand_part[]结构体(大概在109行),将其修改为如下所
NAND FLASH 驱动分析
NAND FLASH是一个存储芯片 那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A" 问1. 原理图上NAND FLASH和S3C2440之间只有数据线, 怎么传输地址? 答1.在DATA0-DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令 怎么传入命令? 答2.在DATA0-DATA7上既传输数据,又传输地址,也传输命令 当A
块设备驱动之NOR FLASH驱动
转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25240947 一.硬件原理 从原理图中我们能看到NOR FLASH有地址线,有数据线,能向内存一样读,不能向内存一样写(要发出某些命令). 这也使得NOR的数据很可靠,所以一般用来存储bootloader.当然如今手机上都仅仅有nand flash了.节约成本嘛.下节我会带大家去分析nand flash驱动,并进行总结. 二.驱动程序 /* * 參考 drivers\mtd\
如何编写linux下nand flash驱动-4
2. 软件方面 如果想要在Linux下编写Nand Flash驱动,那么就先要搞清楚Linux下,关于此部分的整个框架.弄明白,系统是如何管理你的nand flash的,以及,系统都帮你做了那些准备工作,而剩下的,驱动底层实现部分,你要去实现哪些功能,才能使得硬件正常工作起来. [内存技术设备,MTD(Memory Technology Device)] MTD,是Linux的存储设备中的一个子系统.其设计此系统的目的是,对于内存类的设备,提供一个抽象层,一个接口,使得对于硬件驱动设
16、NOR FLASH驱动框架
mtdram.c是内核自带用内存模拟nor flash程序 physmap.c是内核自带nor flash驱动程序最底层硬件相关层代码 其关键代码是:1.分配一个map_info结构体 2.设置map_info结构体物理地址.size.位宽.虚拟地址 3.调用内核提供的do_map_probe函数,其会返回mtd_info结构体 4.调用add_mtd_partitions (map_info的一些参数是通过在make menuconfig的时候在配置nor flash驱动支持的时候输入物
15.1 linux操作系统下nand flash驱动框架2
当我们需要在操作系统上读写普通文件的时候,总是需要一层层往下,最终到达硬件相关操作,当然底层设备大多数都是块设备 NAND FLASH就作为一个最底层的块设备. 而写驱动,就是要构建硬件与操作系统之间的联系,因此我们需要知道nand flash在Linux操作系统下的框架. 框架如下: 1.即使nand flash是一个块设备,它也能作为一个字符设备使用,因为说到底,也只是从寄存器内部读取值而已. 2.对于不同的文件系统,会有不同的文件组织形式. 3.由于块设备的硬件操作繁琐,就像nand fl
Linux 下 Nand Flash 驱动说明
注册 driver_register 通过 module_init(s3c2410_nand_init);注册 Nand Flash 驱动. 在 s3c2410_nand_init ()中通过 driver_register()注册 s3c2410_nand_driver 驱动程序,如下所示: static struct device_driver s3c2410_nand_driver = { .name = "s3c2410-nand", .bus
NAND FLASH驱动框架以及程序实现
1.NAND FLASH的硬件连接: 实验用的NAND FLASH芯片为K9F2G08U0C,它是三星公司的存储芯片,它的大小为256M.它的接线图如下所示: 它的每个引脚的分别为LDATA0-LDATA7为数据引脚.CLE为发送命令使能引脚.ALE为发送地址使能引脚.CE为芯片使能引脚.WE为写使能引脚.WP为写保护引脚.R/B为芯片是否繁忙的状态指示引脚,如下图所示: 2.NAND FLASH的操作: 根据NAND FLASH的芯片手册可以知道需要操作NAND FLASH一般的流程是发出命令
FLASH驱动之-块设备驱动系统构架
一. 块设备是只能以块为单位进行访问的设备,块的大小一般是512个字节的整数倍,常见的块设备包括硬件,SD卡,光盘,flash等.驱动程序是块的整数倍从设备读写得到数据.块设备的最小访单位为块,不同系统之上,对块的大小是不一样的,linux一般定义为512个字节.我们每次访问一个块设备是最小访问单位为512个字节.这里的512字节是指硬件一次从磁盘上读写512个数据,而用户可能只需要1个字节.所以有时用户只得了1个字节. 二.块设备驱动系统框图 用户从磁盘中读取数据来分析
Tiny6410之NAND FLASH驱动
一.NAND FLASH的特点 S3C6410的NAND FLASH控制器有如下特点 1.自导入模式:复位后,引导代码被送入到8KB的STEPPINGSTONE中,引导代码移动完毕,引导代码将在STEPPINGSTONE中执行.导入期间,NAND FLASH控制器不支持ECC矫正. 2.NAND FLSH 控制器I/F:支持512字节和2KB页 3.软件模式:用户可以直接访问nand flash 控制器,该特性可以用于读/檫/编程nand flash 存储器. 1)写命令寄存器=NAND FLA
25.Linux-Nor Flash驱动(详解)
1.nor硬件介绍: 从原理图中我们能看到NOR FLASH有地址线,有数据线,它和我们的SDRAM接口相似,能直接读取数据,但是不能像SDRAM直接写入数据,需要有命令才行 1.1其中我们2440的地址线共有27根(LADDR0~26),为什么是27根? 因为2440共有7个bank内存块,每个bank=128MB=(2^27)B,所以共有27根数据线 1.2为什么Nor Flash的地址线A0是接在2440的LADDR1上? 因为Nor Flash的数据共有16位,也就是每个地址保存了2B数
热门专题
小程序域配置后 请求不到数据
mac apple store 下载报错500
怎么查看打印机ip和mac
rman直接recover database吗
powermock mock final属性
c#获取wifi ip
cpu和内存都有资源但swap空间满了
ORACLE如何停止一个JOB
IBM MQ 错误码2538
Lodop 条形码隐藏编码
excel中有没有medianifs函数
ios button 不允许穿透
Asp.net单选、复选框控件
QRadioButton 设置文字的边距
float 影响后面的布局
type password线上不回填
sqlite 新建表乱码
pyqt5界面设计教程
php file_get_contents 读取文件超时设置
dbeaver怎么导入sql脚本